Подключение сайта к доставке DPD по API
Рад поделиться опытом успешного проекта по интеграции сайта с курьерской службой DPD через API. Клиент, владелец крупного интернет-магазина автозапчастей, обратился ко мне по рекомендации. Знакомство с его потребностями прошло быстро и чётко, а последующая работа – без задержек. Проект стал очередным подтверждением эффективности сотрудничества с клиентами, пришедшими по рекомендациям.
Поставленные задачи
В рамках данного проекта, были поставлены и реализованы следующие задачи:
Реализовать на сайте следующий функционал доступны для покупателей:
- Расчет стоимости доставки;
- Оформление заказа;
- Выбор местоположения для доставки груза;
- Выбор терминала.
Стек технологий
Языки программирования и фреймворки:
- JavaScript;
- jQuery;
- PHP 7;
- SDK Client.
Базы данных и системы кеширования:
- База данных MySQL (MariaDB);
Системы управления контентом (CMS):
- WordPress
Внешние сервисы
- Изучение документации, подключение и настройка внешнего сервиса по API (Application Programming Interface);
Пример кода расчет доставки
Просмотр кода PHP
$config = new \Ipol\DPD\Config\Config([ // ... параметры авторизации ]); $shipment = new \Ipol\DPD\Shipment($config); // Указываем города отправления и назначения $shipment->setSender('Россия', 'Москва', 'г. Москва'); $shipment->setReceiver('Россия', 'Тульская область', 'г. Тула'); // указываем отправку терминал - дверь $shipment->setSelfPickup(true); $shipment->setSelfDelivery(false); // список товаров входящих в отправку $goods = [ 1 => [ 'NAME' => 'Название товара', 'QUANTITY' => 1, // кол-во 'PRICE' => 1000, // стоимость за единицу 'VAT_RATE' => 18, // ставка налога, процент или строка Без НДС 'WEIGHT' => 1000, // вес, граммы, 'DIMENSIONS' => [ 'LENGTH' => 100, // длина, мм, 'WIDTH' => 200, // ширина, мм, 'HEIGHT' => 200, // высота, мм, ] ], // ... ]; // объявленная ценность $goodsPrice = 1000; // устанавливаем товары входящие в отправку $shipment->setItems($goods, $goodsPrice); // так же можно указать тип покупателя и платежную систему // в зависимости от указанных параметров можно реализовать наценку на доставку при использовании наложенного платежа $personeTypeId = 1; // значения переменный должны быть использованы в настройках секция COMMISSION_NPP_* $paySystemId = 1; $shipment->setPaymentMethod($personeTypeId, $paySystemId); |
Дополнительно в рамках работы требовалось
- В рамках проекта были зафиксированы и оговорены точные сроки сдачи работы, без возможности их переноса, т.е. был установлен дедлайн, это накладывало на меня дополнительную ответственность, с чем разумеется я справился;
Также было сделано
- Проект был разделен на этапы, что позволило сконцентрироваться на каждом из них и обеспечило плавную приемку результатов;
- Авансовый платеж от клиента, покрывший всю сумму проекта, повысил доверие и ответственность;
- Желание клиента использовать «безопасную сделку» было оценено как способ для обеспечения спокойствия обеих сторон и продуктивной работы.
Доработки
- Созданы новые страницы и разделы, реализован новый интерфейс;

Автор:






