yooogi / dellinsdk
PHP SDK для Деловых Линий
0.1.2
2024-01-11 09:31 UTC
Requires
- php: >=8.1
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-soap: *
- guzzlehttp/guzzle: 7.5.0
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: *
- vimeo/psalm: ^4.22
This package is auto-updated.
Last update: 2024-04-26 07:34:59 UTC
README
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
- Информация по заказам
- Журнал заказов
- Поиск по параметрам перевозки
- История изменений заказа
- Печатные формы
- Отчеты
- Управление заказом
- Повтор заказа
- Доступные изменения
- Изменение получателя
- Изменение плательщика
- Изменение контактной информации
- Изменение адреса и времени отправки
- Изменение адреса и времени доставки
- Отмена заказа и доставки груза
- Приостановка и возобновление выдачи
- Добавление в Избранное
- Самомаркировка
- Маркировка грузовых мест
- Манипуляционные знаки
- Маркировка упаковки
- Адресная книга
- Контрагенты
- Контактные данные
- Адреса
- Удаление объектов
- Платежи
- Взаиморасчеты
- Периоды взаиморасчётов
- Получение ссылки на оплату
- Терминалы
- Справочник терминалов
- Поиск терминалов
- Терминалы на карте
- Местоположения
- Географические справочники
- Поиск географических объектов
- Поиск КЛАДР
- Справочные методы
- Подбор даты отправки
- Подбор даты доставки
- Подбор времени приезда водителя
- Проверка ограничений
- Доступные упаковки
- Параметры негабаритного груза
- Поиск ОПФ
- Поиск характера груза
- Справочники
- Самостоятельная маркировка груза
- Маркировка грузовых мест
- Манипуляционные знаки
- Маркировка упаковки