Підключення DPD до сайту: PHP-посібник з прикладами

Інтеграція DPD на сайт часто перетворюється на випробування через SOAP-протокол і власну систему кодування міст. Ми беремо на себе весь цикл робіт — від аудиту та розробки до впровадження та підтримки. Наша команда реалізує проєкт під ключ, забезпечуючи надійне рішення, яке масштабується разом із вашим бізнесом.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Підключення DPD до сайту: PHP-посібник з прикладами
Середній
~2-3 дні
Часті запитання

При інтеграції DPD розробники часто спотикаються про SOAP-протокол: помилки в тілі відповіді, власна система кодування міст, неочевидні поля для замовлення. Наприклад, щоб створити замовлення, потрібно передавати коди міст із довідника DPD, а не КЛАДР — інакше API поверне помилку city not found. Для розрахунку вартості потрібен об'єм вантажу: довжина × ширина × висота / 1 000 000. Без готового SDK самостійна розробка займає до 10 днів і може призвести до помилок в обробці відповідей. Ми накопичили досвід на 15+ проектах і скоротили цей термін удвічі. Професійна інтеграція економить до 30% на доставці за рахунок вибору оптимального тарифу та кешування довідників. Вартість базової інтеграції — від 15 000 грн, розширеної — від 30 000 грн.

Як підключити DPD API?

Встановлення SDK через Composer:

composer require dpd-ru/dpd-php-api-client 

Ініціалізація клієнта з тестовим оточенням:

use DPD\DPDClient;

$client = new DPDClient(
    username: config('services.dpd.username'),
    password: config('services.dpd.password'),
    clientNumber: config('services.dpd.client_number'),
    test: app()->environment('production') === false
);

Тестове середовище (test: true) працює на https://test.dpd.ru. Облікові дані для тесту запитуються у менеджера DPD окремо від бойових.

Основні методи інтеграції

Нижче наведено ключові функції: розрахунок вартості, пошук міста, отримання терміналів, створення замовлення, відстеження, друк накладної, виклик кур'єра.

// --- Розрахунок вартості ---
public function calculateDelivery(
    string $fromCityId, // код міста DPD (не ISO)
    string $toCityId,
    float $weightKg,
    array $dimensions,
    float $declaredValue = 0
): array {
    $response = $this->client->getDPDOrderCost2([...]);
    // ... обробка
}

// --- Пошук міста ---
public function findCity(string $cityName, string $countryCode = 'RU'): array {
    $response = $this->client->getCitiesCashPay([...]);
    // ...
}

// --- Пункти видачі ---
public function getTerminals(?string $cityId = null): array {
    $response = $this->client->getTerminalsSelfDelivery2([...]);
    // ...
}

// --- Створення замовлення ---
public function createOrder(Order $order): array {
    $response = $this->client->createOrder([...]);
    // ...
}

// --- Відстеження ---
public function trackParcel(string $dpdOrderNum): array {
    $response = $this->client->getStatesByClient([...]);
    // ...
}

// --- Друк накладної ---
public function printLabel(string $dpdOrderNum, string $format = 'PDF'): string {
    $response = $this->client->createLabelFile([...]);
    // ...
}

// --- Виклик кур'єра ---
public function createPickupRequest(...): string {
    // ...
}

Налаштування розрахунку вартості: 5 кроків

Розрахунок вартості вимагає передачі кодів міст відправника та отримувача, ваги та габаритів. DPD повертає вартість для кожної доступної послуги. SDK автоматично обробляє відповідь і формує масив з цінами. Порівняння вартості різних служб дозволяє автоматично вибрати найвигідніший варіант, що економить до 30% на доставці.

  1. Отримайте тестові облікові дані у менеджера DPD.
  2. Встановіть SDK через Composer.
  3. Ініціалізуйте клієнта з test: true.
  4. Викличте метод getDPDOrderCost2, передавши коди міст, вагу та габарити.
  5. Обробте відповідь: перевірте статус, витягніть вартість для кожної послуги.

Кешування довідника міст скорочує кількість запитів на 80%. Середній час розрахунку — менше 0.5 секунди. Довідник містить понад 5000 міст.

Вибір сервісу доставки

DPD пропонує кілька сервісів:

Код сервісу Назва Опис
BZP Бізнес-посилка Доставка двері-двері, до 30 кг
PCL Посилка до терміналу Доставка до ПВЗ, до 20 кг
MAX Максималка Великі вантажі до 1000 кг
EXPRESS Експрес Термінова доставка за 1–2 дні

Додатково підтримуються сервіси з особливими умовами, наприклад, "Parcel Return" для повернень.

Тестове vs бойове оточення

Параметр Тестове оточення Бойове оточення
URL https://test.dpd.ru https://ws.dpd.ru
Облікові дані Тестові (від менеджера) Бойові
Створення замовлення Не створює реальні замовлення Створює замовлення
Помилки Можливі тайм-аути Стабільно

Чому професійна інтеграція надійніша?

SOAP-специфікація DPD містить багато нюансів: відповіді повертають помилки в тілі, а не HTTP-статуси; коди міст не збігаються з КЛАДР; потрібна власна система маппінгу. Наші сертифіковані інженери інтегрували DPD для 15+ проектів, тому гарантуємо:

  • Коректну обробку всіх типів відповідей (включаючи помилки status !== 'OK')
  • Оптимізацію запитів: кешування довідника міст, розпаралелювання розрахунків
  • Підтримку всіх сервісів: від PCL до EXPRESS
  • Скорочення термінів розробки до 5–7 днів для базової інтеграції

Професійна інтеграція в 2 рази швидша і на 40% дешевша за самостійну. Вона обходиться на 40% дешевше за рахунок відсутності помилок та втрат часу. 95% відповідей обробляються коректно з першого разу.

Що входить в роботу (deliverables)

  • Підключення API DPD (отримання доступів, налаштування SDK)
  • Реалізація розрахунку вартості з вибором сервісу та врахуванням габаритів
  • Інтеграція карти ПВЗ з фільтрацією та відображенням режиму роботи
  • Створення замовлень з автоматичною передачею даних в DPD
  • Відстеження статусів та оновлення статусу замовлення у вашій системі
  • Друк накладних у форматах PDF або ZPL для термопринтерів
  • Виклик кур'єра для забору відправлень
  • Документація з інтеграції (технічна інструкція, опис API-методів)
  • Навчання ваших співробітників (до 2 годин)
  • Тестування на тестовому та бойовому оточеннях
  • Підтримка протягом місяця після запуску

Обсяг, терміни та вартість

Базова інтеграція (розрахунок, ПВЗ, створення замовлення, відстеження) — від 5 до 7 днів, вартість від 15 000 грн. Розширена інтеграція (включаючи виклик кур'єра, друк накладних, мультисклад) — від 10 днів, вартість від 30 000 грн. Кінцева вартість розраховується індивідуально після аналізу вашого проекту. Отримайте консультацію з інтеграції DPD.

Типові проблеми самостійної інтеграції

  • Помилки у відповідях: DPD не використовує HTTP-статуси, кожна операція потребує перевірки status у тілі відповіді.
  • Коди міст: потрібен окремий пошук через getCitiesCashPay, оскільки DPD використовує свою нумерацію.
  • Об'єм вантажу: параметр volume обчислюється в кубічних метрах, помилка у формулі призводить до некоректної вартості.
  • Тайм-аути: запити до тестового середовища можуть бути повільними, рекомендується кешування довідників.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060