Laravel NovaPoshta API 2.0


Управление отправками 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) - пагинация при лимите
Официально не документированный функционал
- [x] Получение данных по бонусной карте
- [x] Обновить описание реестра
- [x] Краткий список накладных реестра
- [x] Получение данных об Контрагенте по номеру телефона
- [x] Получение данных по картам оплаты, подключенным к системе
- [x] Получение списка доступных API ключей
- [x] Продление действия API ключа
- [x] Получение списка доверенных устройств
- [x] Удаление доверенного устройства
- [x] Получение данных о входящих посылках
- [x] Получение активных промокодов прикрепленных к телефону контрагента
- [x] Список данных по бонусной программе контрагента
- [x] Список материальных ценностей доступных для заказа
- [x] Список заказанных материальных ценностей
- [x] Получение списка ордеров для заказа авто
- [x] Создание API ключа
- [x] Удаление API ключа
- [x] Замена/снятие наложного платежа
Статус обертки над API новой почты
Официальная документация API Новой почты
Документация по пакету
Работа с адресами
- [x] Онлайн поиск в справочнике населенных пунктов
- [x] Онлайн поиск улиц в справочнике населенных пунктов
- [x] Создать адрес контрагента (отправитель/получатель)
- [x] Редактировать адрес контрагента (отправитель/получатель)
- [x] Удалить адрес контрагента (отправитель/получатель)
- [x] Справочник городов компании
- [x] Справочник населенных пунктов Украины
- [x] Справочник географических областей Украины
- [x] Справочник отделений и типов отделений
- [x] Справочник улиц компании
- [ ] Создать адрес контрагента (отправитель/получатель)
- [ ] Редактировать адрес контрагента (отправитель/получатель)
- [ ] Удалить адрес контрагента (отправитель/получатель)
Работа с данными Контрагента
- [x] Создать Контрагента
- [ ] Создать контактное лицо Контрагента
- [x] Создать Контрагента с типом (юридическое лицо) организация
- [x] Создать Контрагента с типом третьего лица
- [x] Загрузить список адресов Контрагентов
- [x] Загрузить параметры Контрагента
- [x] Загрузить список контактных лиц Контрагента
- [x] Загрузить список контрагентов
- [ ] Обновить данные Контрагента
- [ ] Обновить данные контактного лица Контрагента
- [ ] Удалить Контрагента получателя
- [ ] Удалить Контактное лицо Контрагента
- [x] Маркировки - печатная форма
- [x] Реестры - печатная форма
- [x] Экспресс-накладная - печатные формы
Работа с реестрами экспресс-накладных
- [x] Добавить экспресс-накладные в реестр
- [x] Загрузить информацию по одному реестру
- [x] Загрузить список реестров
- [x] Обновить описание реестра
- [x] Краткий список накладных реестра
- [x] Удалить (расформировать) реестр отправлений
- [x] Удалить экспресс-накладные из реестра
Работа со справочниками.
- [x] Виды временных интервалов
- [x] Виды груза
- [x] Виды обратной доставки груза
- [x] Виды паллет
- [x] Виды плательщиков
- [x] Виды плательщиков обратной доставки
- [x] Виды упаковки
- [x] Виды шин и дисков
- [x] Описания груза
- [x] Перечень ошибок
- [x] Технологии доставки
- [x] Типы контрагентов
- [x] Формы оплаты
- [x] Формы собственности
- [x] Проверка возможности создания заявки на возврат
- [x] Получение списка причин возврата
- [x] Получение списка подтипов причины возврата
- [x] Создание заявки на возврат
- [x] Получение списка заявок на возврат
- [x] Удаление заявки на возврат
- [x] Проверка возможности создания заявки по изменению данных
- [ ] Создание заявки по изменению данных (Частично)
- [x] Удаление заявки
- [x] Получение списка заявок
- [x] Проверка возможности создания заявки на переадресацию отправления
- [x] Создание заявки переадресация отправления (отделение/адрес)
- [x] Удаление заявки
- [x] Получение списка заявок
Работа с экспресс-накладными
- [x] Рассчитать стоимость услуг
- [x] Прогноз даты доставки груза
- [x] Создать экспресс-накладную
- [x] Создать экспресс-накладную на адрес
- [x] Создать экспресс-накладную на отделение
- [x] Создать экспресс-накладную на почтомат "Нова пошта"
- [x] Создать экспресс-накладную с обратной доставкой
- [x] Редактировать экспресс-накладную (НЕ ТЕСТИРОВАЛОСЬ)
- [x] Получение полной инфо об ЭН
- [x] Получить список ЭН
- [x] Удалить экспресс-накладные
- [ ] Формирование запроса для получения полного отчета по накладным
- [ ] Формирование запросов на создание ЭН с дополнительными услугами
- [ ] Формирование запросов на создание ЭН с различными видами груза
Пропущенный функционал (не вижу потребности или не могу проверить)
- Создание Контрагента с типом юрлицо или третье лицо
- не добавлена возможность указывать
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.