pankovalxndr/dalli-sdk-php

This is a developer tool for integration with Dalli service.

v3.2.0 2024-10-21 06:17 UTC

This package is auto-updated.

Last update: 2024-11-21 06:37:43 UTC


README

Build Status Code Coverage Code Intelligence Status Scrutinizer Code Quality Latest Stable Version License

Реализация API для службы доставки Dalli. Данная SDK поможет быстрее внедрить в свой проект взаимодействие со службой доставки Dalli.

Полное официальное описание взаимодействия с API Dalli можно найти по ссылке

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

  • Добавить заявку в корзину
  • Редактировать заявку в корзине
  • Добавить заявку через Почту России
  • Показать содержимое корзины
  • Очистить корзины
  • Отправка в доставку
  • Получить акт приема-передачи
  • Получить акт передачи денег
  • Получить акт возврата
  • Получить наклейки
  • Получить наклейки из корзины
  • Запрос типов доставки
  • Запрос интервалов доставки
  • Запрос статуса заказов
  • Пункты выдачи
  • Расчет стоимости доставки

Работа со всеми методами API возможна только при наличии доступов к сервису интеграции, которые выдаются только при обращении по электронной почте it@dalli-service.com

Требования

Нужен PHP 7.4 или выше.

Данный SDK использует спецификацию PSR-18 (HTTP-client). Это значит в качестве HTTP-клиента можно использовать любой - клиент, поддерживающий данную спецификацию. Если у вашего клиента нет поддержки этой спецификации, можно посмотреть имеющиеся адаптеры для большинства популярных HTTP-клиентов

Установка

Установка осуществляется с помощью менеджера пакетов Composer

composer require pankovalxndr/dalli-sdk-php

Примеры использования (добавить заявку в корзину)

$client = new Client(new \GuzzleHttp\Client(), 'my_awsome_token', Endpoint::MSK);

$items = [];
$item = new Item();
$order = new Order();
$receiver = new Receiver();

$receiver->setAddress('ул. Константина Константинопольского, д.1 к1')
    ->setTown('г. Москва')
    ->setPerson('Константин Константинопольский')
    ->setPhone('+7 000 000 00 00')
    ->setDate(new DateTime('2022-12-25'))
    ->setTimeMin('9:00')
    ->setTimeMax('22:00');

$item->setQuantity(2)
    ->setName('Моя тестовая товарная позиция')
    ->setWeight(3.15)
    ->setRetPrice(50.0)
    ->setInshPrice(5.0)
    ->setOriginCountry('RU')
    ->setGtd('10702030')
    ->setSuppCompany('Компания поставщик')
    ->setSuppPhone('+7 000 000 00 00')
    ->setSuppInn('3664069397')
    ->setType(1);
$items[] = $item;

$order->setNumber('sdk-001')
    ->setReceiver($receiver)
    ->setService(1)
    ->setWeight(3.15)
    ->setQuantity(1)
    ->setPayType(PayType::CASH)
    ->setPrice(150.0) // стоимость товарных позиций + стоимость доставки
    ->setPriced(50.0)
    ->setInshPrice(500.0)
    ->setInstruction('Максимально аккуратно')
    ->setItems($items);


$request = new CreateBasketRequest();
$request->addOrder($order);

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

foreach ($response as $order) {
    $error = $order->getErrors();
    $success = $order->getSuccess();
    if ($success)
        echo $success->getBarcode() . PHP_EOL; // Штрих-код заказа в системе Dalli
}

Тесты

Запуск тестов:

composer test

Лицензия

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