cdek-it / sdk2.0
PHP SDK для API v2.0 от сервиса интеграции компании СДЭК
Installs: 43 605
Dependents: 0
Suggesters: 0
Security: 0
Stars: 30
Watchers: 7
Forks: 61
Open Issues: 1
Requires
- php: ^7.1 || ^8.0
- ext-json: *
- doctrine/annotations: ^2.0
- jms/serializer: ^3.29.1
- nyholm/psr7: ^1.2
- psr/http-client: ^1.0
- rakit/validation: ^1.1
Requires (Dev)
- phan/phan: ^1 <1.3 || >1.3.0
- php-coveralls/php-coveralls: ^2.1
- php-http/mock-client: ^1.3
- phpmd/phpmd: ^2.7
- phpstan/phpstan: >=0.10
- phpunit/phpunit: ^8.5 || ^9.3
- squizlabs/php_codesniffer: *
- symfony/http-client: ^5.4.22
- vimeo/psalm: >=3.0.16
README
Список обновлений в библиотеке от TTATPuOT:
- Добавлена поддержка PHP 8.0+
- Исправлены мелкие PHPDoc неточности для более грамотных подсказок IDE
- Улучшены и добавлены новые юнит-тесты
- Добавлен метод
Client::calculator()
для расчёта стоимости доставки по доступным тарифам и по коду тарифа - Улучшена документация
- Исправлены тикеты оригинальной библиотеки:
Реализация API v2.0 для интеграции со службой доставки СДЭК. Данная SDK поможет быстрее внедрить в свой проект взаимодействие со службой доставки СДЭК.
Возможности SDK:
- создание заказа
- информация о заказе
- удаление заказа
- подписка на вебхуки (статусы заказов и статусы печатных форм)
- информация о подписке на вебхуки
- удаление подписки на вебхуки
- получение списка ПВЗ
- создание заявки на вызов курьера
- информация о заявке на вызов курьера
- удаление заявки на вызов курьера
- создание запроса на формирование печатной формы накладной
- создание запроса на формирование печатной формы ШК-места
- получение cписка городов
- получение cписка регионов
Работа со всеми методами API возможна только при наличии доступов к сервису интеграции, которые выдаются только при наличии договора с компанией СДЭК.
Требования
Требования — минимальны. Нужен PHP 7.1/8.0 или выше.
Данный SDK использует спецификацию PSR-18 (HTTP-client). Это значит в качестве HTTP-клиента можно использовать любой - клиент, поддерживающий данную спецификацию. Если у вашего клиента нет поддержки этой спецификации, можно посмотреть имеющиеся адаптеры для большинства популярных HTTP-клиентов
Установка
Установка осуществляется с помощью менеджера пакетов Composer
composer require cdek-it/sdk2.0
Документация
Полная документация располагается тут
Примеры использования
$client = new Psr18Client(); $cdek = new \CdekSDK2\Client($client); $cdek->setAccount('account'); $cdek->setSecure('secure'); // создание заказа $order = \CdekSDK2\BaseTypes\Order::create([...]); $res = $cdek->orders()->add($order); if ($res->hasErrors()) { // Обрабатываем ошибки // Если этого не сделать, в будущем будет ошибка RequestException foreach ($res->getErrors() as $error) { //считываем ошибки } } if ($res->isOk()) { $cdek_order = $cdek->formatResponse($res, \CdekSDK2\BaseTypes\Order::class); // $cdek_order->entity->uuid; // Если попытаться обработать ответ без проверки $res->isOk() // и при этом в ответе будут ошибки, то здесь выбросится исключение RequestException } // получение информации о заказе $res = $cdek->orders()->get($cdek_order->entity->uuid); if ($res->isOk()) { $cdek_order = $cdek->formatResponse($res, \CdekSDK2\Dto\OrderInfo::class); } //получить список офисов $res = $cdek->offices()->getFiltered(['country_code' => 'kz']); if ($res->isOk()) { $pvzlist = $cdek->formatResponseList($res, \CdekSDK2\Dto\PickupPointList::class); // $pvzlist->items; }
Тесты
Запуск тестов:
$ composer test
Лицензия
Данный проект распространяется под лицензией MIT.