daaner / novaposhta
NovaPoshta (API 2.0) for Laravel 7+
Requires
- php: >=7.4
- ext-json: *
- laravel/framework: >=7.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- guzzlehttp/promises: 1.5
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^8.5|^9.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Українська | Русский
Керування відправленнями 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.
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 Друковані форми
Колекція методів для отримання друкованих форм документів.
- Маркування - друкована форма
- Реєстри - друкована форма
- Експрес-накладна - друковані форми
API Реєстри
Робота з реєстрами експрес-накладних
- Додати експрес-накладні до реєстру
- Завантажити інформацію по одному реєстру
- Завантажити список реєстрів
- Оновити опис реєстру
- Короткий список накладних реєстру
- Видалити (розформувати) реєстр відправлень
- Видалити експрес-накладні з реєстру
API Довідники
Робота з довідниками.
- Види часових інтервалів
- Види вантажу
- Види зворотної доставки вантажу
- Види палет
- Види платників
- Види платників зворотної доставки
- Види пакування
- Види шин і дисків
- Описи вантажу
- Перелік помилок
- Технології доставки
- Типи контрагентів
- Форми оплати
- Форми власності
API Послуга повернення відправлення
Можливість самостійного оформлення Клієнтом послуги «Повернення відправлення» через API. Послуга доступна лише клієнтам-відправникам.
- Перевірка можливості створення заявки на повернення
- Отримання списку причин повернення
- Отримання списку підтипів причини повернення
- Створення заявки на повернення
- Отримання списку заявок на повернення
- Видалення заявки на повернення
API Послуга Зміна даних
Можливість самостійного оформлення Клієнтом послуги «Зміна даних» через API.
- Перевірка можливості створення заявки на зміну даних
- Створення заявки на зміну даних (Частково)
- Видалення заявки
- Отримання списку заявок
API Послуга переадресація відправлення
Можливість самостійного оформлення Клієнтом послуги «Переадресація» через API. Послуга доступна клієнтам-відправникам і одержувачам.
- Перевірка можливості створення заявки на переадресацію відправлення
- Створення заявки на переадресацію відправлення (відділення/адреса)
- Видалення заявки
- Отримання списку заявок
API Експрес-накладна
Робота з експрес-накладними
- Розрахувати вартість послуг
- Прогноз дати доставки вантажу
- Створити експрес-накладну
- Створити експрес-накладну на адресу
- Створити експрес-накладну у відділення
- Створити експрес-накладну на поштомат "Нова пошта"
- Створити експрес-накладну зі зворотною доставкою
- Редагувати експрес-накладну (НЕ ТЕСТУВАЛОСЯ)
- Отримання повної інформації про ЕН
- Отримати список ЕН
- Видалити експрес-накладні
- Формування запиту для отримання повного звіту по накладних
- Формування запитів на створення ЕН з додатковими послугами
- Формування запитів на створення ЕН з різними видами вантажу
Пропущений функціонал (не бачу потреби або не можу перевірити)
- Створення Контрагента з типом юрособа або третя особа
- не додано можливість вказувати
CityRef
- не додано можливість вказувати
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Завжди радий підтримці, вказівкам на помилки та PR!
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.