cdek-it/sdk2.0

PHP SDK для API v2.0 от сервиса интеграции компании СДЭК

1.0.1 2024-07-22 03:30 UTC

This package is auto-updated.

Last update: 2024-11-09 13:59:04 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Packagist

Список обновлений в библиотеке от TTATPuOT:

Реализация 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.