Skip to content

appwilio/cdek-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SDK для СДЭК

Total Downloads Latest Stable Version License

Это будет самое полное SDK для cdek.ru

Возможности:

  • 🔓расчёт стоимости доставки (API калькулятора v1.1)
  • 🔓получение списка пунктов выдачи заказов (ПВЗ) с фильтрацией
  • управление заказами
    • формирование новых заказов
    • генерация квитанции в PDF
    • удаление заказов
    • получение информации по заказам (отчёт «Информация по заказам»)
    • трекинг заказов (отчёт «Статусы заказов»)
    • прозвон получателя
    • вызов курьера

Работа с API возможна только при наличии договора с СДЭК (кроме методов, отмеченных как:unlock:).

Существует хард-форк этого SDK — с даунгрейдом до PHP 7.0, большей поддержкой методов API и более полной документацией. Мы планируем сделаем бэкпорт всего этого добра, как только дойдут руки...

Установка

Минимальные требования — PHP 7.1+.

composer require appwilio/cdek-sdk

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

Laravel 5.1+

// config/app.php

    'providers' => [
        // ...
        
        \Appwilio\CdekSDK\LaravelCdekServiceProvider::class
        
        // ...
    ]
    
// config/services.php

    'cdek' => [
        'account'        => env('CDEK_ACCOUNT', ''),
        'password'       => env('CDEK_PASSWORD', ''),
        'guzzle_options' => [ // необязательные параметры
            'base_uri' => 'https://integration.cdek-asia.cn',
            'timeout'  => 5
        ]
    ],

Иные фреймворки/без фреймворка

require_once '../vendor/autoload.php';

\Doctrine\Common\Annotations\AnnotationRegistry::registerLoader('class_exists');

$client = new \Appwilio\CdekSDK\CdekClient('account', 'password', $guzzleOptions = [
    'timeout' => 5
]);

Параметры Guzzle

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

Расчёт стоимости доставки

use Appwilio\CdekSDK\Requests\CalculationRequest;

// для выполнения авторизованного запроса используется
// $request = CalculationRequest::withAuthorization();

$request = (new CalculationRequest())
    ->setSenderCityPostCode('295000')
    ->setReceiverCityPostCode('652632')
    ->addGood([
        'weight' => 0.2,
        'length' => 10,
        'width'  => 10,
        'height' => 10,
    ]);

$response = $client->sendCalculationRequest($request)

Трекинг

use \Appwilio\CdekSDK\Common\Order;
use Appwilio\CdekSDK\Requests\StatusReportRequest;

$request = (new StatusReportRequest())
    ->setShowHistory();

$request->addOrder(new Order(['Number' => '89754564']));
$request->addOrder(new Order(['DispatchNumber' => '2222222222']));

$response = $client->sendStatusReportRequest($request);

Авторы

Лицензия

Данный SDK распространяется под лицензией MIT.