Подключение сайта к доставке DPD по API

Author Автор: Роман Чернышов    Опубликовано: 28 ноября 2024

dpd Рад поделиться опытом успешного проекта по интеграции сайта с курьерской службой DPD через API. Клиент, владелец крупного интернет-магазина автозапчастей, обратился ко мне по рекомендации. Знакомство с его потребностями прошло быстро и чётко, а последующая работа – без задержек. Проект стал очередным подтверждением эффективности сотрудничества с клиентами, пришедшими по рекомендациям.

Поставленные задачи

В рамках данного проекта, были поставлены и реализованы следующие задачи:

Реализовать на сайте следующий функционал доступны для покупателей:

  • Расчет стоимости доставки;
  • Оформление заказа;
  • Выбор местоположения для доставки груза;
  • Выбор терминала.

Стек технологий

Языки программирования и фреймворки:

  • JavaScript;
  • jQuery;
  • PHP 7;
  • SDK Client.

Базы данных и системы кеширования:

  • База данных MySQL (MariaDB);

Системы управления контентом (CMS):

  • WordPress

Внешние сервисы

  • Изучение документации, подключение и настройка внешнего сервиса по API (Application Programming Interface);

Пример кода расчет доставки

$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);

Дополнительно в рамках работы требовалось

  • В рамках проекта были зафиксированы и оговорены точные сроки сдачи работы, без возможности их переноса, т.е. был установлен дедлайн, это накладывало на меня дополнительную ответственность, с чем разумеется я справился;

Также было сделано

  • Проект был разделен на этапы, что позволило сконцентрироваться на каждом из них и обеспечило плавную приемку результатов;
  • Авансовый платеж от клиента, покрывший всю сумму проекта, повысил доверие и ответственность;
  • Желание клиента использовать «безопасную сделку» было оценено как способ для обеспечения спокойствия обеих сторон и продуктивной работы.

Доработки

  • Созданы новые страницы и разделы, реализован новый интерфейс;

 

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 359₽
Популярные записи
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка