yooogi/dellinsdk

PHP SDK для Деловых Линий

0.1.2 2024-01-11 09:31 UTC

This package is auto-updated.

Last update: 2024-04-26 07:34:59 UTC


README

alt text

Installation

composer require yooogi/dellinsdk

Configuration

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

use GuzzleHttp\Client;
use Yooogi\DellinSDK\DellinClient;

$client = new Client();
$dellin = new DellinClient('YOUR_APP_KEY', $client);

PHP 8.1 or newer is required

PSR-18 Client is required

Auth

You can use existing Auth session id:

$auth = new AuthResponse('YOUR_SESSION_ID');

Or get new Auth session id from Dellin:

$authRequest = AuthRequest::create('YOUR_DELLIN_ACCOUNT', 'YOUR_DELLIN_PASSWORD');
$auth = $dellin->authorization->auth($authRequest);
echo $auth->getSessionId();

To use some methods with Auth:

$sessionInfoRequest = SessionInfoRequest::create('YOUR_SESSION_ID')
    ->withAuth($auth);
$sessionInfoResponse = $dellin->authorization->info($sessionInfoRequest);

Examples:

Calculation:

/* Погрузочные работы */
$handling = Handling::create(false, null, null);

/* Время */
$time = Time::create('10:00', '23:00', '11:00', '12:00', false);

/* Требуемые условия погрузки */
$requirements = RequirementsCollection::create();
$requirements[] = TransportRequirements::UNCOVER;

/* Адрес */
$address = Address::create(AddressType::SEARCH, 'Москва, Малая Тульская 2/1 корп 2 кв 355');

/* Информация по месту отправителя */
$derival = DerivalArrival::create($date, TransportType::ADDRESS)
    ->setProduceDate($date)
    ->setTime($time)
    ->setRequirements($requirements)
    ->setAddress($address);
    
/* Информация по месту получателя */
$arrival = DerivalArrival::create($date, TransportType::TERMINAL)
    ->setTerminalId(6)
    ->setTime($time);

/* Упаковка */
$packages = PackageCollection::create([PackageType::BUBBLE]);
$packages->addPackage(PackageType::CRATE);
$packages->setQuantity(PackageType::BUBBLE, 1);

/* Груз */
$cargoItem = CargoItem::create(130, 0.1, 0.1, 0.2, 4000);
$cargos = CargoItemsCollection::create([$cargoItem]);
$cargo = Cargo::create($cargos)
    ->setInsurance(true)
    ->setTermInsurance(true)
    ->setPayerInsurance(PayerType::SENDER)
    ->setFreightName('Мебель');

/* Заказчик */
$requester = Requester::create(RequesterType::SENDER); 

/* Калькулятор */
$calculationRequest = CalculationRequest::create(DeliveryType::AUTO, $derival, $arrival, $cargo)
    ->setPackages($packages)
    ->setRequester($requester)
    ->withAuth($auth);
$calc = $dellin->calculations->calculate($calculationRequest);

Async Calculation:

Please, use Guzzle Client 7.5

$calculationResponse = $dellin->calculations->asyncCalculate(
    ['AUTO' => $calculationRequest,'AVIA' => $calculationRequest2]
);

Create Order:

/* Сопроводительные документы */
$acdoc = AccompanyingDocumentsCollection::create([AcDoc::SEND,
    AcDoc::RETURN]);
$acdoc->setPayer(AcDoc::SEND, PayerType::SENDER);

/* Товар */
$product = Product::create('PRODUCT_NAME', 1, 344.3)
    ->setVATRate(VATType::VAT10);

/* Наложенный платеж */
$cashOnDelivery = CashOnDelivery::create(false)
    ->setOrderNumber('1234567')
    ->setOrderDate(new DateTimeImmutable('2042-04-20'))
    ->setCashOnDeliveryPaymentType(CashOnDeliveryPaymentType::CASH)
    ->setProducts([$product]);

/* Оплата */
$payment = Payment::create(PaymentType::CASH, PayerType::SENDER);
  //->setCashOnDelivery($cashOnDelivery)



$customForm = CustomForm::create('CUSTOM_FORM_NAME', 'COUNTRY_ID', false);
$document = Document::create(DocumentType::PASSPORT, 'NUMBER', 'NUMBER');
$counterAgent = Counteragent::create('YOUR_COUNTERAGENT_ID')
    ->setDocument($document)
    ->setForm('0xa3e714bceb061db84f91842983ef5abc')
    ->setInn('YOUR_INN_NUMBER');
  //->setJuridicalAddress($address);

$phone = PhoneNumber::create('79110000000');
$contactPerson = ContactPerson::create('YOUR_CONTACT_PERSON_NAME');
$dataForReceipt = DataForReceipt::create(true)->setPhone('+79110000000');
$member = Member::create($counterAgent)
    ->setPhoneNumbers([$phone])
    ->setContactPersons([$contactPerson])
    ->setDataForReceipt($dataForReceipt);
  //->setPhoneIDs(['123123'])
  //->setContactIDs(['123132'])
  //->setCounteragentID(123);

/* Участники перевозки */
$members = Members::create($requester, $member, $member);


/* Создание заказа */
$orderRequest = OrderRequest::create(DeliveryType::AUTO, $derival, $arrival, $members, $cargo, $payment)
    ->setInOrder(false)
    ->setAccompanyingDocuments($acdoc)
    ->setPackages($packages)
    ->withAuth($auth);
$orderResponse = $dellin->orders->create($orderRequest);

Get sender counteragents:

/* Контрагенты отправителя */
$counterAgentRequest = SenderCounteragentsRequest::create()->setFullInfo(true)->withAuth($auth);
$getCounterAgents = $dellin->services->getCounteragents($counterAgentRequest);
$getCounterAgents->getCounteragents();

Get orders log:

/* Журнал заказов*/
$orderLogRequest = OrdersLogRequest::create()->setDocIds(['YOUR_REQUEST_ID'])
    ->setStates(StatusesCollection::create([Statuses::INWAY,
        Statuses::PICKUP]))
    ->setOrderDatesAdditional(true)
    ->withAuth($auth);
$getOrderLogInfo = $dellin->ordersInfo->getLog($orderLogRequest);

Print request:

/* Печать заявок заказу*/
$ordersPrintPickUpRequest = OrderPrintRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$ordersPrintPickUp  = $dellin->ordersInfo->printPickUp($ordersPrintPickUpRequest);

Print document:

/* Печать документов к заказу*/
$ordersPrintDocumentsRequest = OrderPrintDocumentsRequest::create('YOUR_DOCUMENT_UID', PrintModeType::ORDER)->withAuth($auth);
$ordersPrintDocuments = $dellin->ordersInfo->printDocuments($ordersPrintDocumentsRequest);

Get order history:

/* История по заказу*/
$orderHistoryRequest = OrderHistoryRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$orderHistory = $dellin->ordersInfo->getHistory($orderHistoryRequest);

Search order by parameters:

/* Поиск заказа по параметрам*/
$requestMember = Member::create()->setInn('INN_NUMBER');
$orderSearchRequest = OrderSearchRequest::create(new DateTimeImmutable('2022-06-15'), new DateTimeImmutable('2022-07-22'))
  ->setReceiver($requestMember)
  ->setSender($requestMember)
  ->withAuth($auth);
$orderSearch = $dellin->ordersInfo->search($orderSearchRequest);

Get conditions:

/* Проверка ограничений */
$conditionsRequest = ConditionsRequest::create(DeliveryType::AUTO, '7701700000000000000000000', '3400000100000000000000000',
    0.01, 1, 1, 1)
  ->setArrivalDoor(true)
  ->setDerivalDoor(true)
  ->withAuth($auth);
$conditionsResponse = $dellin->services->getConditions($conditionsRequest);

Get dispatch dates:

/* Даты отправления */
$dispatchDatesRequest = DispatchDateRequest::create(DeliveryType::AUTO, $derival, $cargo)->withAuth($auth);
$dispatchDatesResponse = $dellin->services->getDispatchDates($dispatchDatesRequest);

Get dispatch time:

/* Время отправления */
$dispatchTimeRequest = DispatchTimeRequest::create(DeliveryType::AUTO, $derival2, $cargo)->withAuth($auth);
$dispatchTimeResponse = $dellin->services->getDispatchTimeInterval($dispatchTimeRequest);

Get delivery time:

/* Время доставки  */
$deliveryDatesRequest = DeliveryTimeRequest::create('YOUR_REQUEST_ID', $arrival)->withAuth($auth);
$deliveryDatesResponse = $dellin->services->getDeliveryTimeInterval($deliveryDatesRequest);

Get available packages:

/* Доступные упаковки */
$availablePackageRequest = AvailablePackagesRequest::createFromCargo('7700000000000000000000000', '100400003400000000000000', $cargo)->withAuth($auth);
$availablePackageResponse = $dellin->services->getAvailablePackages($availablePackageRequest);

Repeat order:

/* Повтор заказа */
$repeatOrderRequest = RepeatOrderRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$repeatOrderResponse = $dellin->manageOrders->repeatOrder($repeatOrderRequest);

Available changes for order:

/* Доступные изменения */
$changeAvailableRequest = ChangeAvailableRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$changeAvailableResponse = $dellin->manageOrders->getChangeAvailable($changeAvailableRequest);

Change receiver:

/* Изменение получателя */
$changeReceiverRequest = ChangeReceiverRequest::create('YOUR_REQUEST_ID', $member, true, PayerType::RECEIVER)->withAuth($auth);
$changeReceiverResponse = $dellin->manageOrders->changeReceiver($changeReceiverRequest);

Change payer:

/* Изменение плательщика */
$changePayerRequest = ChangePayerRequest::create('YOUR_REQUEST_ID', third: $counterAgent, member: $member)->withAuth($auth);
$changePayerResponse = $dellin->manageOrders->changePayer($changePayerRequest);

Change contact data:

/* Изменение контактных данных*/
$changeContactsRequest = ChangeContactsRequest::create('YOUR_REQUEST_ID', $members)->withAuth($auth);
$changeContactsResponse = $dellin->manageOrders->changeContacts($changeContactsRequest);

Change address and time of dispatch:

/* Изменение адреса и времени отправки */
$changePickUpRequest = ChangePickUpRequest::create('YOUR_REQUEST_ID', $derival, $member)->withAuth($auth);
$changePickUpResponse = $dellin->manageOrders->changePickUp($changePickUpRequest);

Change address and time of delivery:

/* Изменение адреса и времени доставки  */
$changeDeliveryRequest = ChangeDeliveryRequest::create('YOUR_REQUEST_ID', $arrival, $members, RequesterType::PAYER)->withAuth($auth);
$changeDeliveryResponse = $dellin->manageOrders->changeDelivery($changeDeliveryRequest);

Cancel pickup:

/* Отмена доставки от адреса отправителя */
$cancelPickUpRequest = CancelRequest::create('YOUR_REQUEST_ID', $member)->withAuth($auth);
$cancelPickUpResponse = $dellin->manageOrders->cancelPickUp($cancelPickUpRequest);

Cancel delivery:

/* Отмена доставки до адреса отправителя */
$cancelDeliveryRequest = CancelDeliveryRequest::create('YOUR_REQUEST_ID', $member, RequesterType::CUSTOMER)->withAuth($auth);
$cancelDeliveryResponse = $dellin->manageOrders->cancelDelivery($cancelDeliveryRequest);

Resume order:

/* Возобновление выдачи груза */
$resumeOrderRequest = ResumeOrderRequest::create('YOUR_REQUEST_ID', new DateTimeImmutable('2022-07-30'))->withAuth($auth);
$resumeOrderResponse = $dellin->manageOrders->resumeOrder($resumeOrderRequest);

Suspend Order:

/* Приостановка выдачи груза */
$suspendOrderRequest = SuspendOrderRequest::create('YOUR_REQUEST_ID', new DateTimeImmutable('2022-07-30'))->withAuth($auth);
$suspendOrderResponse = $dellin->manageOrders->suspendOrder($suspendOrderRequest);

Add to favorite:

/* Добавление в избранное */
$addFavoriteOrderRequest = AddFavoriteOrderRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$addFavoriteOrderResponse = $dellin->manageOrders->addFavoriteOrder($addFavoriteOrderRequest);

Delete from favorite

/* Удаление из избранного */
$deleteFavoriteOrderRequest = DeleteFavoriteOrderRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$deleteFavoriteOrderResponse = $dellin->manageOrders->deleteFavoriteOrder($deleteFavoriteOrderRequest);

Calculate delivery to address:

/* Расчет стоимости доставки до адреса */
$deliveryRequest = DeliveryRequest::create('7700000000000000000000000', 'YOUR_REQUEST_ID', new DateTimeImmutable('2042-04-20'))
    ->setHandling($handling)->withAuth($auth);
$deliveryResponse = $dellin->calculations->delivery($deliveryRequest);

Get counteragents from book:

/* Получить контрагента из книги */
$bookCounterAgentsRequests = BookCounterAgentsRequest::create()->withAuth($auth);
$bookCounterAgents = $dellin->book->getCounterAgents($bookCounterAgentsRequests);

Make markings to cargoplaces:

/* Запрос на создание этикеток к местам*/
$cargoPlace = CargoPlace::create('CARGO_PLACE_NAME');
$cargoPlaces = CargoPlacesCollection::create([$cargoPlace]);
$makeShippingLabelsRequest = MakeShippingLabelsRequest::create('YOUR_REQUEST_ID', $cargoPlaces)->withAuth($auth);
$makeShippingLabelsResponse = $dellin->marking->makeShippingLabels($makeShippingLabelsRequest);

Get markings to cargoplaces:

/* Получение этиекток на груз*/
$getShippingLabelsRequest = GetShippingLabelsRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$getShippingLabelsResponse = $dellin->marking->getShippingLabels($getShippingLabelsRequest);

Get markings to accompanying documents:

/* Получение этиекток на сопроводительные документы */
$getAcDocShippingLabelsRequest = GetAcDocShippingLabelsRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$getAcDocShippingLabelsResponse = $dellin->marking->getAcDocShippingLabels($getAcDocShippingLabelsRequest);

Get statuses of cargoplaces:

/* Получение статусов грузомест*/
$getCargoStatusesRequest = GetCargoStatusesRequest::create('YOUR_REQUEST_ID')->withAuth($auth);
$getCargoStatusesResponse = $dellin->marking->getCargoStatuses($getCargoStatusesRequest);

Get handling markings catalog:

/* Получение справочника этикеток с манипуляционными знаками */
$getHandlingMarksCatalogRequest = GetHandlingMarksCatalogRequest::create()->withAuth($auth);
$getHandlingMarksCatalogResponse = $dellin->marking->getHandlingMarksCatalog($getHandlingMarksCatalogRequest);

Get handling markings:

/* Получение этикеток с манипуляционными знаками */
$handlingMark = HandlingMark::create(HandlingMarkName::BEACON, 2, ShippingLabelFormat::LARGE);
$getHandlingMarksRequest = GetHandlingMarksRequest::create([$handlingMark], false, ShippingLabelType::PDF)->withAuth($auth);
$getHandlingMarksResponse = $dellin->marking->getHandlingMarks($getHandlingMarksRequest);

Get packaging markings catalog:

/* Получение справочника этикеток с типами упаковки */
$getPackagingMarksCatalogRequest = GetPackagingMarksCatalogRequest::create()->withAuth($auth);
$getPackagingMarksCatalogResponse = $dellin->marking->getPackagingMarksCatalog($getPackagingMarksCatalogRequest);

Get packaging markings:

/* Получение этикеток с типами упаковки */
$packagingMark = PackagingMark::create(PackagingMarkName::CRATE, 2, ShippingLabelFormat::SMALL);
$getPackagingMarksRequest = GetPackagingMarksRequest::create([$packagingMark], true, ShippingLabelType::PDF)->withAuth($auth_test);
$getPackagingMarksResponse = $dellin->marking->getPackagingMarks($getPackagingMarksRequest);

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

  • Авторизация
    • Авторизация пользователя
    • Список контрагентов
  • Выполнение расчета
    • Калькулятор стоимости и сроков
    • Калькулятор услуги Доставка
    • Ориентировочные сроки и стоимость
  • Оформление заявок
    • Перевозка сборных грузов
    • Междугородняя перевозка еврофурой
    • Перевозка малотоннажным транспортом
    • Почасовая аренда транспорта
    • Дополнение заказа доставкой
    • Мультизаявка
    • Пакетный заказ Pre-Alert
  • Информация по заказам
    • Журнал заказов
    • Поиск по параметрам перевозки
    • История изменений заказа
    • Печатные формы
    • Отчеты
  • Управление заказом
    • Повтор заказа
    • Доступные изменения
    • Изменение получателя
    • Изменение плательщика
    • Изменение контактной информации
    • Изменение адреса и времени отправки
    • Изменение адреса и времени доставки
    • Отмена заказа и доставки груза
    • Приостановка и возобновление выдачи
    • Добавление в Избранное
  • Самомаркировка
    • Маркировка грузовых мест
    • Манипуляционные знаки
    • Маркировка упаковки
  • Адресная книга
    • Контрагенты
    • Контактные данные
    • Адреса
    • Удаление объектов
  • Платежи
    • Взаиморасчеты
    • Периоды взаиморасчётов
    • Получение ссылки на оплату
  • Терминалы
    • Справочник терминалов
    • Поиск терминалов
    • Терминалы на карте
  • Местоположения
    • Географические справочники
    • Поиск географических объектов
    • Поиск КЛАДР
  • Справочные методы
    • Подбор даты отправки
    • Подбор даты доставки
    • Подбор времени приезда водителя
    • Проверка ограничений
    • Доступные упаковки
    • Параметры негабаритного груза
    • Поиск ОПФ
    • Поиск характера груза
    • Справочники
  • Самостоятельная маркировка груза
    • Маркировка грузовых мест
    • Манипуляционные знаки
    • Маркировка упаковки