API Нової пошти

API нової пошти. Створюємо декларації. Розраховуємо вартість доставки

API нової пошти

Вітання. Всі українці, напевно, знають про Нову пошту. Для не українців — це у нас така кур'єрська служба, на зразок FedEx (доставка по країну наступного дня).

Нова пошта має гарну систему відстеження вантажів, і спеціальну систему для інтернет-магазинів, яка дозволяє створювати декларації на посилки онлайн (а потім просто завозити посилки та декларації на склад перевізника). Це справді рятує багато часу, який потрібно для того, щоб відправити посилку особисто (черги, заповнення папірців тощо).

Крім того, Нова пошта має API Нової пошти, яка дозволяє створювати декларації автоматично, дізнаватися вартість доставки на льоту, отримувати список всіх відділень і робити багато всяких плюшок.

Пропоную вашій увазі клас для роботи з API Нової пошти (виконує більшість процесів, доступних сьогодні через API).

Клас реалізований на PHP, і всі статичні функції (тобто можна викликати без створення об'єкта). Наприклад:

Для початку нам знадобиться клас для роботи з API нової пошти

Лістинг класу наводжу нижче. Ще нижче можна його скачати чи подивитися на гітхабі. Пройдемося за функціями класу. Насамперед, найважливіше, це функція надсилання запиту та отримання відповіді від нової пошти. Працює через curl, просто відправляє XML, отримує XML та перетворює його на об'єкт.

Ну а далі вже йдуть дані для роботи із самим API.

Клас закоммічений на Github: [dl url='https://github.com/kozachenko/API-Nova-Poshta' title='Клас API Нової пошти' desc='На GitHub' type='PDF']

Лістинг класу

Що може робити клас?

  • надсилати запити на сервер Нової пошти
  • розраховувати вартість доставки
  • створювати декларацію на відправку
  • видаляти декларацію з бази Нової пошти
  • одержувати список складів Нової пошти по місту (і без)
  • отримувати список міст, де є відділення Нової пошти
  • друкувати маркування для надсилання посилки за декларацією

Як працювати із класом?

Дуже просто. Потрібно записати файл класу, викликати потрібну функцію. Примірник класу створювати не потрібно (функції працюють як статичні).