/NovaPoshta

Управление отправками НоваПошта Украина (API 3.0) для Laravel 7+

Primary LanguagePHPMIT LicenseMIT

Laravel NovaPoshta API 2.0

Scrutinizer Code Quality Laravel Support PHP Support Official Site

Latest Stable Version Total Downloads License

Управление отправками NovaPoshta (novaposhta.ua) с помощью фреймворка Laravel 7 и старше (Laravel).

Удобный пакет для отправки и проверки ТТН через сервис NovaPoshta.ua

ВНИМАНИЕ

// Не доделал и не оттестил все модели
// используйте ветку `dev-master`
// В ней все самое последнее. Документацию стараюсь не затягивать

Laravel > 7, PHP >= 7.2.5

Минимальная версия Laravel 7.0, для более низкой версии нужно использовать guzzle/guzzle

Работает на Laravel 10 и PHP 8.3 (Laravel 11 не проверялся, но должно)

Установка

Установите пакет через композер.

composer require daaner/novaposhta

Если вы НЕ используете autodiscover - добавьте сервис провайдер в конфигурационный файл config/app.php.

Daaner\NovaPoshta\NovaPoshtaServiceProvider::class,

Добавьте фасад NovaPoshta в массив в config/app.php:

'NovaPoshta' => Daaner\NovaPoshta\Facades\NovaPoshta::class,

Выполните публикацию конфига и локализационных файлов командой:

php artisan vendor:publish --provider="Daaner\NovaPoshta\NovaPoshtaServiceProvider"

Конфигурация

После публикации ресурсов поправьте файл config/novaposhta.php и заполните .env новыми полями.

  • Создайте аккаунт на сайте novaposhta.ua
  • Скопируйте Ключ API в настройках безопасности в разделе Мои ключи API и добавьте в соответствующий параметр в config/novaposhta.php либо в .env файл
  • point поддерживается только json (вряд ли добавится xml)
  • dev режим отладки запросов. Включает в лог каждый запрос на API Новой Почты (не оставляйте на продакшене) и в массиве ответа данные с ключем dev без преобразования, а та как возвращает Новая Почта
  • читайте документацию и пользуйтесь

Использование и API

  • setAPI($apiKey) - установка API ключа, отличного от значения по умолчанию
$cp = new Counterparty;
$cp->setAPI('391e241b2c********************e7');
  • getResponse($model, $calledMethod, $methodProperties, $auth = true) - кастомная отправка данных, если добавятся новые методы
use NovaPoshta;
$model = 'TrackingDocument'; //нужная модель
$calledMethod = 'getStatusDocuments'; //нужный метод
$methodProperties = [
  //данные по документации
];
$np = new NovaPoshta;
$data = $np->getResponse($model, $calledMethod, $methodProperties, $auth = true);

dd($data);

Поддержка моделей / методов

Хелперы (более детальные хелперы можно увидеть в документации к модели)

Хелперы вызываются до главного метода обращения:

$foo = new Common;
$list = $foo->getPaymentForms();

$bar = new Address;
$bar->setLimit(5)->setPage(2);
$cities = $bar->getCities();

dd($cities);

Очень много моделей имеют в ответе дубляж на русском. В некоторых справочниках нет русской локализации.

  • setLimit(100) - лимит запроса записей
  • setPage(3) - пагинация при лимите

Официально не документированный функционал

  • Получение данных по бонусной карте
  • Обновить описание реестра
  • Краткий список накладных реестра
  • Получение данных об Контрагенте по номеру телефона
  • Получение данных по картам оплаты, подключенным к системе
  • Получение списка доступных API ключей
  • Продление действия API ключа
  • Получение списка доверенных устройств
  • Удаление доверенного устройства
  • Получение данных о входящих посылках
  • Получение активных промокодов прикрепленных к телефону контрагента
  • Список данных по бонусной программе контрагента
  • Список материальных ценностей доступных для заказа
  • Список заказанных материальных ценностей
  • Получение списка ордеров для заказа авто
  • Создание API ключа
  • Удаление API ключа
  • Замена/снятие наложного платежа

Статус обертки над API новой почты

Официальная документация API Новой почты Документация по пакету

Работа с адресами

  • Онлайн поиск в справочнике населенных пунктов
  • Онлайн поиск улиц в справочнике населенных пунктов
  • Создать адрес контрагента (отправитель/получатель)
  • Редактировать адрес контрагента (отправитель/получатель)
  • Удалить адрес контрагента (отправитель/получатель)
  • Справочник городов компании
  • Справочник населенных пунктов Украины
  • Справочник географических областей Украины
  • Справочник отделений и типов отделений
  • Справочник улиц компании
  • Создать адрес контрагента (отправитель/получатель)
  • Редактировать адрес контрагента (отправитель/получатель)
  • Удалить адрес контрагента (отправитель/получатель)

Работа с данными Контрагента

  • Создать Контрагента
  • Создать контактное лицо Контрагента
  • Создать Контрагента с типом (юридическое лицо) организация
  • Создать Контрагента с типом третьего лица
  • Загрузить список адресов Контрагентов
  • Загрузить параметры Контрагента
  • Загрузить список контактных лиц Контрагента
  • Загрузить список контрагентов
  • Обновить данные Контрагента
  • Обновить данные контактного лица Контрагента
  • Удалить Контрагента получателя
  • Удалить Контактное лицо Контрагента

Это коллекция методов для получения печатных форм документов.

  • Маркировки - печатная форма
  • Реестры - печатная форма
  • Экспресс-накладная - печатные формы

Работа с реестрами экспресс-накладных

  • Добавить экспресс-накладные в реестр
  • Загрузить информацию по одному реестру
  • Загрузить список реестров
  • Обновить описание реестра
  • Краткий список накладных реестра
  • Удалить (расформировать) реестр отправлений
  • Удалить экспресс-накладные из реестра

Работа со справочниками.

  • Виды временных интервалов
  • Виды груза
  • Виды обратной доставки груза
  • Виды паллет
  • Виды плательщиков
  • Виды плательщиков обратной доставки
  • Виды упаковки
  • Виды шин и дисков
  • Описания груза
  • Перечень ошибок
  • Технологии доставки
  • Типы контрагентов
  • Формы оплаты
  • Формы собственности

Возможность самостоятельного оформления Клиентом услуги «Возврат отправления» при использовании API. Услуга доступна только для клиентов отправителей.

  • Проверка возможности создания заявки на возврат
  • Получение списка причин возврата
  • Получение списка подтипов причины возврата
  • Создание заявки на возврат
  • Получение списка заявок на возврат
  • Удаление заявки на возврат

Возможность самостоятельного оформления Клиентом услуги «Изменение данных» при использовании API.

  • Проверка возможности создания заявки по изменению данных
  • Создание заявки по изменению данных (Частично)
  • Удаление заявки
  • Получение списка заявок

Возможность самостоятельного оформления Клиентом услуги «Переадресация» при использовании API. Услуга доступна для клиентов отправителей и получателей.

  • Проверка возможности создания заявки на переадресацию отправления
  • Создание заявки переадресация отправления (отделение/адрес)
  • Удаление заявки
  • Получение списка заявок

Работа с экспресс-накладными

  • Рассчитать стоимость услуг
  • Прогноз даты доставки груза
  • Создать экспресс-накладную
  • Создать экспресс-накладную на адрес
  • Создать экспресс-накладную на отделение
  • Создать экспресс-накладную на почтомат "Нова пошта"
  • Создать экспресс-накладную с обратной доставкой
  • Редактировать экспресс-накладную (НЕ ТЕСТИРОВАЛОСЬ)
  • Получение полной инфо об ЭН
  • Получить список ЭН
  • Удалить экспресс-накладные
  • Формирование запроса для получения полного отчета по накладным
  • Формирование запросов на создание ЭН с дополнительными услугами
  • Формирование запросов на создание ЭН с различными видами груза

Пропущенный функционал (не вижу потребности или не могу проверить)

  • Создание Контрагента с типом юрлицо или третье лицо
    • не добавлена возможность указывать CityRef

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Всегда рад поддержке, указаниям на ошибки и ПР!

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.