PHP code example of antistress-store / cdek-sdk-v2
1. Go to this page and download the library: Download antistress-store/cdek-sdk-v2 library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
antistress-store / cdek-sdk-v2 example snippets
$cdek_client = new \AntistressStore\CdekSDK2\CdekClientV2('TEST');
$cdek_client = new \AntistressStore\CdekSDK2\CdekClientV2($account, $secure);
$cdekSdkAuthSaver = function (array $memory) {
session($memory); // сохраняем в сессии возвращенный массив с данными авторизации
return true;
};
['cdekAuth'=>
[
'expires_in' => '', // здесь будет сохранено время до исчерпания срока действия токэна
"access_token" => '', // здесь будет сохранен токэн
'account_type' => '', // здесь будет тип среды
]
];
// Например, в Laravel можно указать ключ сессии session('cdekAuth')
$cdek_client->setMemory(session('cdekAuth'), $cdekSdkAuthSaver);
$tariff = (new Tariff())
->setCityCodes(172, 44) // Экспресс-метод установки кодов отправителя и получателя
->setPackageWeight(500)
->addServices(['PART_DELIV'])
;
$tariffList = $cdek_client->calculateTariffList($tariff);
foreach ($tariffList as $result) {
$result->getTariffName(); // Код тарифа
$result->getTariffCode(); // Название тарифа
$result->getTariffDescription(); // Описание тарифа
$result->getDeliverySum(); // Стоимость доставки
$result->getDeliveryMode(); // Режим тарифа
$result->getPeriodMin(); // Минимальное время доставки (в рабочих днях)
$result->getPeriodMax(); // Максимальное время доставки (в рабочих днях)
}
$tariff = (new Tariff())
->setTariffCode(136) // Указывает код тарифа для расчета
->setCityCodes(172, 44) // Экспресс-метод установки кодов отправителя и получателя
->setPackageWeight(500)
->addServices(['PART_DELIV'])
;
$tariff_response = $cdek_client->calculateTariff($tariff); // TariffResponse
$request = (new Location())->setCountryCodes('RU,TR')->setCode(44);
$response = $cdek_client->getCities($request);
// запрос всех данных формы (Laravel)
$cdek_data = $request->except('_token');
// Создание объекта заказа
$order = (new \AntistressStore\CdekSDK2\Entity\Requests\Order())
->setNumber('НовыйЗаказ1') // Номер заказа
->setType(1) // Тип заказа (ИМ)
->setComment('Оплата по карте') // Комментарий
->setTariffCode(136) // Код тарифа
->setDeliveryRecipientCost(150,55) // Стоимость доставки
->setPrint('waybill') // Запрос создать файл накладной вместе с заказом
;
// Добавление информации о продавце
$seller = (new \AntistressStore\CdekSDK2\Entity\Requests\Seller())
->setName('Antistress.Store')
->setInn(77777777777)
->setPhone('88002017708')
->setOwnershipForm(63)
;
$order->setSeller($seller);
// Добавление информации о получателе
$recipient = (new \AntistressStore\CdekSDK2\Entity\Requests\Contact())
->setName('Мастер Йода')
->setEmail('[email protected]')
->setPhones('911')
;
$order->setRecipient($recipient);
// Адрес отправителя только для тарифов "от двери"
$order->setShipmentAddress('ул.Люка Скайоукера, д.1')
->setShipmentCityCode(1204)
->setRecipientAddress('ул.Джедаев, д.3')
->setRecipientCityCode(44)
;
// Создаем данные посылки. Место
$packages =
(new \AntistressStore\CdekSDK2\Entity\Requests\Package())
->setNumber('1')
->setWeight(500)->setHeight(10)->setWidth(10)
->setLength(10)
;
\\ вариант 1 Один экземпляр класса
$packages =
(new \AntistressStore\CdekSDK2\Entity\Requests\Package())
->setNumber('1')
->setWeight(500)
->setHeight(10)
->setWidth(10)
->setLength(10)
;
$order->setPackages($packages);
\\ массив c экземплярами класса
$packages = [];
$packages[] =
(new \AntistressStore\CdekSDK2\Entity\Requests\Package())
->setNumber('1')
->setWeight(500)
->setHeight(10)
->setWidth(10)
->setLength(10)
;
$order->setPackages($packages);
$date = '2021-03-25';
$orders = $cdek_client->getPayments($date)->getOrders();
// возвращается массив с оплаченными, итерируемся, получаем данные об отдельном чеке
foreach($orders as $order) {
$order["uuid"]; // Идентификатор заказа в ИС СДЭК
$order["numberOrder"]; // Номер заказа СДЭК
$order["imNumber"]; // Номер заказа в ИС Клиента
}
$checks = $cdek_client->getChecks((new Check())
->setCdekNumber('123456789')
->setDate('2021-03-25')));
// возвращается массив с чеками, итерируемся, получаем данные об отдельном чеке
foreach($checks as $check) {
$check->getCdekNumber();
$check->getOrderUuid();
$check->getDate();
$check->getFiscalStorageNumber();
$check->getDocumentNumber();
$check->getFiscalSign();
$check->getType();
$check->getPaymentInfo();
}
$webhook = $cdek_client->setWebhooks(
(new Webhooks())
->setUrl('https://antistress.store')
->setType('ORDER_STATUS'));
$webhook->getEntityUuid();
// Создаем товары
$items = [];
$items[] = (new Item())
->setName('name')
->setWareKey('articul') // Идентификатор/артикул товара/вложения
->setPayment(1500.00, 0) // Оплата за товар при получении, без НДС (за единицу товара)
->setCost((1500.00) // Объявленная стоимость товара (за единицу товара)
->setWeight(100) // Вес в граммах
->setAmount(1) // Количество
;
$packages->setItems($items);
$order->setPackages($packages);
// Добавление доп.услуг (бесплатных) частичная доставка
if (count($items) < 1) {
$order->addServices(['PART_DELIV']);
}
// Заказ подготовлен отправляем в ранее объявленный клиент
$response = $cdek_client->createOrder($order);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.