При интеграции DPD разработчики часто спотыкаются о SOAP-протокол: ошибки в теле ответа, собственная система кодирования городов, неочевидные поля для заказа. Например, чтобы создать заказ, нужно передавать коды городов из справочника DPD, а не КЛАДР — иначе API вернёт ошибку city not found. Для расчёта стоимости требуется объём груза: длина × ширина × высота / 1 000 000. Без готового SDK самостоятельная разработка занимает до 10 дней и может привести к ошибкам в обработке ответов. Мы накопили опыт на 15+ проектах и сократили этот срок вдвое. Профессиональная интеграция экономит до 30% на доставке за счёт выбора оптимального тарифа и кеширования справочников. Средний бюджет на интеграцию составляет от 50 000 до 150 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 { // ... } Полный пример кода для всех методов
Полные реализации каждого метода (с параметрами и обработкой ошибок) предоставляются в рамках интеграции под ключ. Свяжитесь с нами, чтобы получить готовый код.
Настройка расчёта стоимости DPD: 5 шагов
- Получите тестовые учётные данные у менеджера DPD.
- Установите SDK через Composer.
- Инициализируйте клиент с test: true.
- Вызовите метод getDPDOrderCost2, передав коды городов, вес и габариты.
- Обработайте ответ: проверьте статус, извлеките стоимость для каждой услуги.
Кеширование справочника городов сокращает количество запросов на 80%. Среднее время расчёта — менее 1 секунды.
Принцип расчёта стоимости DPD
Расчёт стоимости требует передачи кодов городов отправителя и получателя, веса и габаритов. DPD возвращает стоимость для каждой доступной услуги. SDK автоматически обрабатывает ответ и формирует массив с ценами. Сравнение стоимости разных служб позволяет автоматически выбрать самый выгодный вариант, что экономит до 30% на доставке.
Какие сервисы доставки DPD поддерживаются?
| Код сервиса | Название | Описание |
|---|---|---|
| BZP | Бизнес-посылка | Доставка дверь-дверь, до 30 кг |
| PCL | Посылка до терминала | Доставка до ПВЗ, до 20 кг |
| MAX | Максималка | Крупные грузы до 1000 кг |
| EXPRESS | Экспресс | Срочная доставка за 1–2 дня |
Дополнительно поддерживаются сервисы с особыми условиями, например, "Parcel Return" для возвратов.
Что выбрать: тестовое или боевое окружение?
| Параметр | Тестовое окружение | Боевое окружение |
|---|---|---|
| URL | https://test.dpd.ru | https://ws.dpd.ru |
| Учётные данные | Тестовые (от менеджера) | Боевые |
| Создание заказа | Не создаёт реальные заказы | Создаёт заказы |
| Ошибки | Возможны тайм-ауты | Стабильно |
Использование официального SDK сокращает время разработки в 2 раза по сравнению с самостоятельной реализацией SOAP-запросов.
Почему профессиональная интеграция надёжнее самостоятельной?
SOAP-спецификация DPD содержит множество нюансов: ответы возвращают ошибки в теле, а не HTTP-статусы; коды городов не совпадают с КЛАДР; требуется собственная система маппинга. Наши сертифицированные инженеры интегрировали DPD для 15+ проектов, поэтому гарантируем:
- Корректную обработку всех типов ответов (включая ошибки status !== 'OK')
- Оптимизацию запросов: кеширование справочника городов, распараллеливание расчётов
- Поддержку всех сервисов: от PCL до EXPRESS
- Сокращение сроков разработки до 5–7 дней для базовой интеграции
Профессиональная интеграция обходится на 40% дешевле самостоятельного внедрения за счёт отсутствия ошибок и потерь времени.
Когда нужна расширенная интеграция?
Расширенная интеграция включает вызов курьера, печать накладных (PDF/ZPL), поддержку мультисклада и возвратов. Такая интеграция занимает от 10 дней и требует глубокой настройки учётных записей. Если ваш интернет-магазин обрабатывает более 100 заказов в день, расширенная интеграция окупается за счёт автоматизации процессов.
Объём работ по интеграции DPD
- Подключение API DPD (получение доступов, настройка SDK)
- Реализация расчёта стоимости с выбором сервиса и учётом габаритов
- Интеграция карты ПВЗ с фильтрацией и отображением режима работы
- Создание заказов с автоматической передачей данных в DPD
- Отслеживание статусов и обновление статуса заказа в вашей системе
- Печать накладных в форматах PDF или ZPL для термопринтеров
- Вызов курьера для забора отправлений
- Тестирование на тестовом и боевом окружениях
- Документация по интеграции и поддержка в течение месяца после запуска
Сроки и стоимость
Базовая интеграция (расчёт, ПВЗ, создание заказа, отслеживание) — от 5 до 7 дней. Расширенная интеграция (включая вызов курьера, печать накладных, мультисклад) — от 10 дней. Стоимость рассчитывается индивидуально на основе объёма работ. Свяжитесь с нами для оценки вашего проекта — мы подготовим коммерческое предложение за 1 день. Получите консультацию по интеграции DPD прямо сейчас.
Типичные проблемы самостоятельной интеграции
- Ошибки в ответах: DPD не использует HTTP-статусы, каждая операция требует проверки status в теле ответа.
- Коды городов: требуется отдельный поиск через getCitiesCashPay, так как DPD использует свою нумерацию.
- Объём груза: параметр volume вычисляется в кубических метрах, ошибка в формуле приводит к некорректной стоимости.
- Тайм-ауты: запросы к тестовой среде могут быть медленными, рекомендуется кеширование справочников.







