Интеграция 1С-Битрикс со службой доставки 5Post
Пункты выдачи заказов — основной канал получения товаров для покупателей в регионах. 5Post, дочерняя служба X5 Retail, управляет сетью из более чем 15 000 ПВЗ в магазинах «Пятёрочка» и «Перекрёсток». Но интеграция с 1С-Битрикс часто вызывает сложности: неправильная обработка токенов, неучтённые габаритные ограничения, потеря вебхуков. Мы предлагаем готовое решение — подключаем 5Post по REST API с нуля или дорабатываем существующую интеграцию. Опыт нашей команды — 5+ лет разработки на Битрикс, 100+ проектов по интеграции служб доставки, поэтому вы получаете стабильный результат и гарантию работоспособности.
Почему стоит интегрировать 5Post в 1С-Битрикс?
5Post лучше многих альтернатив: сеть ПВЗ крупнейшая среди российских служб доставки, а стоимость доставки ниже среднерыночной. Для интернет-магазина это означает больше лояльных покупателей и меньшие логистические затраты. Интеграция через REST API даёт полный контроль — от расчёта стоимости до отслеживания статуса в реальном времени.
Как настроить OAuth 2.0 для 5Post?
5Post предоставляет REST API. Авторизация — через OAuth 2.0 (client_credentials). Базовый URL продакшн: https://api.5post.ru. Тестовая среда предоставляется при подключении через личный кабинет 5Post. Получение токена:
$tokenResponse = $httpClient->post('https://api.5post.ru/api/v1/auth/token', [
'grant_type' => 'client_credentials',
'client_id' => $clientId,
'client_secret' => $clientSecret,
]);
$accessToken = $tokenResponse['access_token'];
// токен действует 1 час — кешируем в b_option
Токен действителен 60 минут, поэтому кешируем его в опциях модуля и обновляем за 5 минут до истечения. При ошибке 401 автоматически запрашиваем новый токен и повторяем запрос. Документация 5Post API подробно описывает параметры запросов.
Основные методы API:
-
POST /api/v1/orders — создание заявки на доставку
-
GET /api/v1/orders/{orderUUID} — статус заявки
-
DELETE /api/v1/orders/{orderUUID} — отмена
-
GET /api/v1/pvz — список ПВЗ с фильтрацией по региону/городу
-
POST /api/v1/orders/calc — расчёт стоимости доставки
Что делать при сбое вебхуков?
5Post отправляет вебхуки при смене статуса. Регистрируем URL в личном кабинете. Маппинг статусов:
| Статус 5Post |
Статус заказа Битрикс |
CREATED |
Передан в доставку |
IN_TRANSIT |
В пути |
ARRIVED_AT_PVZ |
Ожидает в ПВЗ |
ISSUED |
Доставлен |
RETURNED |
Возврат |
CANCELED |
Отменён |
При получении вебхука проверяем X-Signature заголовок (HMAC-подпись) — 5Post подписывает запросы секретным ключом партнёра. Если подпись не совпадает, вебхук игнорируется и логируется ошибка.
Пример проверки HMAC подписи
$signature = $_SERVER['HTTP_X_SIGNATURE'];
$payload = file_get_contents('php://input');
$expectedSignature = hash_hmac('sha256', $payload, $secretKey);
if (hash_equals($expectedSignature, $signature)) {
// обрабатываем вебхук
} else {
// игнорируем и логируем
}
Модуль в Битрикс
Класс доставки наследует \Bitrix\Sale\Delivery\Services\Base. Параметры хранятся в b_sale_delivery_service_params: CLIENT_ID, CLIENT_SECRET, PARTNER_CODE (код партнёра 5Post).
Расчёт стоимости
$calcResult = $httpClient->post('/api/v1/orders/calc', [
'partnerOrder' => [
'partnerOrderId' => 'SHOP-' . $orderId,
'pvzCode' => $selectedPvzCode,
'dimensions' => [
'length' => $lengthCm,
'width' => $widthCm,
'height' => $heightCm,
'weight' => $weightGram,
],
'assessedValue' => $assessedValue,
],
]);
$deliveryCost = $calcResult['deliveryCost'];
Для предварительного расчёта (до выбора конкретного ПВЗ) можно передавать код населённого пункта вместо кода ПВЗ — API вернёт базовую стоимость по зоне.
Загрузка и отображение ПВЗ
Список ПВЗ — большой: более 15 000 объектов. Стратегия загрузки:
- Раз в сутки (агент Битрикс) запрашиваем актуальный список
GET /api/v1/pvz.
- Сохраняем в HL-блок «ПВЗ 5Post» с полями: код, название, адрес, координаты, время работы, допустимые габариты.
- На странице оформления заказа фильтруем ПВЗ по выбранному городу и отображаем на карте.
Важный нюанс: ПВЗ 5Post имеют ограничения по габаритам. maxDimensionCm и maxWeightGram — обязательно учитывать при фильтрации, чтобы не показывать покупателю ПВЗ, куда его посылка физически не поместится.
Создание заявки
После выбора ПВЗ и оформления заказа создаём заявку:
$orderPayload = [
'partnerOrder' => [
'partnerOrderId' => 'SHOP-' . $bitrixOrderId,
'pvzCode' => $pvzCode,
'recipientName' => $fullName,
'recipientPhone' => $phone,
'recipientEmail' => $email,
'assessedValue' => $assessedValue,
'cashOnDelivery' => $codAmount,
'dimensions' => $dimensions,
'places' => [
['barcode' => 'SHOP-' . $bitrixOrderId . '-1', 'description' => 'Место 1']
],
],
];
Ответ содержит orderUUID — сохраняем в b_sale_order_props. Также возвращается этикетка для печати (labelUrl): PDF с штрихкодом для наклейки на посылку.
Особенности работы
5Post не возвращает деньги за невыкупленные заказы автоматически — нужна настройка условий возврата в договоре. Срок хранения на ПВЗ — 7 дней, потом посылка возвращается. При возврате в b_sale_order обновляем статус через тот же механизм вебхуков.
Что входит в интеграцию
- Настройка OAuth 2.0 и кеширование токенов
- Разработка класса доставки с расчётом стоимости
- Загрузка и хранение ПВЗ в HL-блоке
- Фильтрация ПВЗ по городу и габаритам
- Обработка вебхуков с проверкой HMAC-подписи
- Создание заявок и печать этикеток
- Тестирование в песочнице 5Post
- Документация и обучение вашего менеджера
Сроки
| Масштаб |
Состав |
Срок |
| Расчёт + создание заявок |
Без карты ПВЗ, только адресная доставка |
3–4 дня |
| + Карта ПВЗ |
HL-блок + виджет выбора + фильтр по габаритам |
+3–4 дня |
| + Вебхуки статусов |
Обработчик + маппинг |
+1–2 дня |
Свяжитесь с нами — оценим ваш проект и предложим точные сроки. Мы гарантируем стабильную работу интеграции: мониторинг, обработку ошибок и поддержку после запуска. Получите консультацию по интеграции — мы поможем настроить 5Post под ваш бизнес.
Интеграция доставки: от разрозненных API к единому калькулятору за 5 дней
Покупатель бросает корзину на этапе доставки — не видит расчёта или видит заведомо неверную цену. Каждый такой случай теряет конверсию. Автоматизация логистики в 1С-Битрикс решает эту проблему: мы подключаем службы доставки так, чтобы цена показывалась мгновенно, а трекинг обновлялся без участия менеджера. За 8 лет реализовано более 50 проектов с каталогами от 500 до 100 000 SKU. Среднее время подключения одной транспортной компании — 4 дня.
Как ускорить подключение служб доставки к 1С-Битрикс?
Главная сложность — не сам вызов API, а адаптация к логике каждого перевозчика. СДЭК, Boxberry, Почта России, ПЭК, DPD — у каждого свой формат запроса, тарификация и обработка ошибок. Мы используем готовые адаптеры под каждую ТК, что сокращает время интеграции втрое по сравнению с реализацией с нуля. Развернутый кейс: интернет-магазин товаров для дома (15 000 товаров) — подключили СДЭК и Boxberry за 5 дней, автоматизировали расчёт и создание заказов. Обращения в поддержку по доставке снизились на 60%, средний чек вырос на 8% за счёт индикатора бесплатной доставки.
Почему API каждой транспортной компании — отдельный квест?
СДЭК — объёмный вес и карта ПВЗ
API v2 (/api/v2/calculator/tarifflist) принимает габариты, вес и адреса — возвращает все доступные тарифы. Подводные камни: объёмный вес рассчитывается по формуле (Д × Ш × В) / 5000. Если физический вес 2 кг, а объёмный 8 кг — СДЭК берёт по объёмному. Не учтёте в калькуляторе — покупатель увидит одну цену, а заплатит другую. Карта ПВЗ загружается через /deliverypoints. Виджет СДЭК можно встроить, но он конфликтует со стилями Битрикс — рисуем свою карту на Яндекс.Картах. Автоматическое создание заказа через /api/v2/orders — при оформлении заявка улетает в СДЭК, возвращается трек-номер. Печать накладных и этикеток из админки — через /api/v2/print/orders. Тарифы: склад-склад, склад-дверь, дверь-дверь, экспресс, постамат.
Boxberry — широкая сеть ПВЗ в регионах
Самая широкая сеть пунктов выдачи в малых городах. API проще, чем у СДЭК, но есть нюансы с наложенным платежом и частичным выкупом. Карта ПВЗ с фильтрацией: примерка, оплата картой, работа в выходные. Обязательно проверяем корректную обработку ответа 0 при отсутствии ПВЗ.
Почта России — стабильность ценой скорости
API «Отправка» — расчёт стоимости, автоформирование бланков ф.103 и ф.116, трекинг по трек-номеру. Тарифы: посылка, бандероль, EMS. Международные отправления. API медленнее коммерческих ТК — закладываем таймауты 10 секунд, используем асинхронные агенты Битрикс для обновления статусов.
ПЭК — тяжёлые грузы и сбор
Когда нужно отправить диван или оборудование. Расчёт сборных грузов, страхование, обрешётка. Доставка до терминала и от двери до двери. Индексы терминалов ПЭК подгружаем в инфоблок для автоподстановки.
DPD — экспресс-доставка с временными слотами
DPD по России и за рубеж. Доставка в выбранный временной интервал, возврат подписанных документов. В расчёте учитываем объёмный вес по формуле (Д×Ш×В)/4000 — отличие от СДЭК.
Пример: типичные ошибки при интеграции Boxberry
Отсутствие фильтрации ПВЗ по признаку `onlyPrepaid` приводит к ошибкам при наложенном платеже. Игнорирование параметра `partialReturn` ломает частичный выкуп. API возвращает код города в формате "770000000000" — требуется маппинг на index города.
Как объединить разные ТК в едином калькуляторе?
Используем гибридный подход: модуль-агрегатор, который маршрутизирует запросы к разным API и нормализует ответы. Это позволяет сравнивать тарифы в реальном времени без переключения между личными кабинетами. В ответе модуля — единая структура: название тарифа, цена, срок, тип доставки. Кэширование тегированное: при изменении настроек модуля очищается только кэш расчёта для выбранного города, остальное остаётся. Событие OnBeforeDeliveryCalculate вешаем на кастомный обработчик — так подменяем стандартную логику доставки.
Расчёт стоимости: какие грабли встречаются?
Автоматический калькулятор суммирует физический и объёмный вес товаров в корзине, прибавляет вес упаковки, выбирает наибольший. Звучит просто, но:
- Габариты должны быть заполнены у каждого товара. Нет габаритов — нет расчёта. На каталоге в 10 000 SKU обязательно найдутся товары без размеров — для них заводим дефолтные значения (например, 0.1×0.1×0.1 м) и предупреждаем менеджера через почтовое событие.
- Промоакции и пороги бесплатной доставки — гибкая настройка: по сумме заказа, для VIP-клиентов, при конкретном способе оплаты. Реализуем через пользовательские свойства корзины.
- Индикатор «До бесплатной доставки осталось N руб.» — простая штука, но поднимает средний чек на 5–12%. Вычисляем по сумме корзины и ближайшему порогу, выводим в шаблоне корзины.
Как автоматизировать трекинг, самовывоз и курьерскую доставку?
Трекинг. Автоматический опрос API транспортных компаний — агент Битрикс каждые 30 минут проверяет статусы заказов, у которых STATUS_DELIVERY != 'DELIVERED'. При изменении — обновление статуса заказа в системе и уведомление покупателю (email, SMS, push). Встроенная страница трекинга в личном кабинете — покупателю не нужно идти на сайт ТК. Карта с текущим местоположением, прогнозируемая дата доставки, возможность переадресации.
Самовывоз. Собственные точки выдачи на карте: адреса, график, контакты. Поиск ближайшей по адресу покупателя. Проверка наличия в реальном времени, бронирование до определённого часа. QR-код для быстрого получения и SMS о готовности к выдаче.
Курьерская доставка. Зоны доставки с разной стоимостью. 2-часовые слоты, управление расписанием курьеров, ограничение заказов на слот. Доставка день в день — приём до 14:00, экспресс за 2-4 часа с наценкой за срочность. Интеграция с навигацией для оптимизации маршрутов.
Мультисклад. Несколько складов с адресами и зонами обслуживания. Автоматический выбор склада отгрузки по адресу покупателя — приоритет ближайшему, где есть все товары заказа. Если на одном складе всего нет — разделение заказа по складам (мультидоставка). Синхронизация остатков через 1С или WMS (CommerceML), используем события OnBeforeBasketAdd для проверки доступности.
Сравнение транспортных компаний
| Параметр |
СДЭК |
Boxberry |
Почта России |
ПЭК |
DPD |
| Покрытие |
Россия, СНГ |
Регионы, малые города |
Вся РФ |
РФ, тяжёлые грузы |
РФ, экспресс |
| Скорость доставки |
2–7 дней |
3–10 дней |
5–15 дней |
3–10 дней |
1–4 дня |
| Сложность API |
Средняя |
Низкая |
Высокая (XML) |
Средняя |
Средняя |
| Особенность |
Широкий набор тарифов, постаматы |
Самая широкая сеть ПВЗ |
Стабильный, но медленный ответ |
Страхование, обрешётка |
Временные интервалы |
Из каких этапов состоит подключение служб доставки?
-
Анализ логистики (1–2 дня) — география, средний вес, объём заказов, интеграция с 1С. Рекомендуем комбинацию ТК.
-
Подключение API (3–5 дней на ТК) — настройка расчётов, карт ПВЗ, автоматическое создание заказов через агенты и события.
-
Настройка трекинга (1–2 недели) — агенты обновления статусов, шаблоны уведомлений, страница трекинга.
-
Тестирование (2–3 дня) — проверка на реальных адресах, сравнение тарифов, контроль ошибочных расчётов, нагрузочное тестирование.
-
Деплой и обучение (1 день) — выгрузка модуля, передача доступов, обучение менеджеров.
-
Гарантийная поддержка (1 месяц) — исправление багов, корректировка конфигураций, донастройка кэширования.
Ориентировочные сроки реализации
| Этап |
Срок |
| Подключение одной ТК (API) |
3–5 дней |
| Карта выбора ПВЗ |
2–3 дня |
| Настройка самовывоза |
2–3 дня |
| Система трекинга |
1–2 недели |
| Мультисклад |
2–4 недели |
| Комплексная логистическая система |
4–8 недель |
Сроки зависят от количества ТК, сложности каталога и необходимости интеграции с 1С/ERP. Стоимость рассчитывается индивидуально — ориентируйтесь на экономию: снижение операционных затрат на доставку до 40% и сокращение обращений в поддержку на 60%. Например, один из клиентов с магазином электроники (20 000 товаров) вернул инвестиции за 3 месяца за счёт уменьшения числа «забытых» заказов.
Готовы ускорить логистику вашего интернет-магазина? Свяжитесь с нами — поможем подобрать оптимальную комбинацию ТК под ваш ассортимент и бюджет. Закажите консультацию, и мы подготовим предложение за 1 рабочий день.