Стоимость доставки выясняется после оформления
Покупатель узнаёт цену в момент звонка менеджера, и часть заказов отменяется. Расчёт в корзине требует корректных габаритов, веса и адреса — иначе сумма всё равно окажется неверной.
Выберите тему — соберём контекст
Подключаем СДЭК, Boxberry, Почту России, DPD и Яндекс Доставку через один внутренний интерфейс. Стоимость и сроки считаются при оформлении, пункт выдачи выбирается на карте, накладные печатаются из админки. Статусы посылок подтягиваются автоматически, а при недоступности API службы витрина продолжает продавать.
Или сразу: +7 (962) 368-39-51 Telegram
Типичные сбои в доставке почти всегда относятся не к курьеру, а к данным о заказе и к тому, как они передаются в API службы.
Покупатель узнаёт цену в момент звонка менеджера, и часть заказов отменяется. Расчёт в корзине требует корректных габаритов, веса и адреса — иначе сумма всё равно окажется неверной.
Вес берётся из карточки товара и часто оказывается устаревшим или указан без упаковки. Служба пересчитывает заявку и выставляет счёт по факту, а маржа по заказу уходит в минус.
Точки закрываются, переезжают и меняют режим работы. Без периодической синхронизации справочника покупатель выбирает пункт, который уже не принимает заказы, и посылку приходится переоформлять.
Трек-номер есть, но покупателю он не отправлен, а статусы не обновляются. Поддержка тратит день на однотипные вопросы «где мой заказ», хотя данные есть в системе службы.
Возвратную накладную менеджер создаёт в кабинете службы, минуя магазин. Остатки, деньги и статус заказа после этого перестают совпадать, а покупатель ждёт возврат дольше, чем мог бы.
В распродажу служба отвечает таймаутом, и оформление заказа останавливается целиком. Нужны кэш тарифов, короткие таймауты и заранее выбранное поведение витрины на такой случай.
От расчёта в корзине до возвратной накладной: логистика как часть заказа, а не отдельный кабинет перевозчика.
Показываем варианты доставки прямо при оформлении, с честными сроками и ценой для конкретного адреса.
Даём покупателю выбрать точку рядом с домом или работой, а не вводить адрес вслепую и потом уточнять его по телефону.
Передаём заказ в службу из админки и держим статусы отправлений в одном месте, без ручного переноса номеров.
Описываем, что происходит, когда покупатель возвращает товар, а служба временно недоступна.
Начинаем с той службы, которой вы пользуетесь чаще всего, и добавляем остальные уже поверх общего интерфейса.
Смотрим географию заказов, средние габариты и вес посылок, договоры со службами и текущий порядок оформления отправлений.
Подключаем API служб, настраиваем расчёт стоимости и сроков, добавляем кэш и правила выбора перевозчика для разных условий.
Выводим карту пунктов выдачи, автоматизируем создание заявок и печать документов, подключаем трекинг и уведомления.
Добавляем возвратные накладные, обработку сбоев, повторные попытки и мониторинг доступности API служб доставки.
Каждая служба доставки предлагает свой API, свои справочники и свои форматы документов. Если подключать их по отдельности прямо в код магазина, любое изменение на стороне перевозчика превращается в правку оформления заказа. Поэтому имеет смысл один раз описать внутренний интерфейс: расчёт, создание заявки, получение статуса, возврат.
Тогда добавление новой службы — это реализация адаптера, а не переписывание логики корзины. Такой подход упрощает и выбор перевозчика по правилам, и переход на резервную службу, если основная недоступна или пересмотрела тарифы.
Расчёт стоимости держится на весе и габаритах, поэтому карточки товаров нужно привести в порядок до начала работ. Проверьте, указан ли вес с упаковкой, есть ли размеры для каждой позиции, учтены ли товары, которые нельзя отправлять в одном месте. Для крупногабаритных позиций нужны отдельные правила: они часто не проходят по ограничениям пунктов выдачи.
Полезно также описать типы упаковки и то, как из нескольких товаров собирается одно место. Без этого расчёт будет формально работать, но расходиться со счётом службы, а разницу придётся объяснять покупателям и покрывать из своей маржи.
Стоимость доставки зависит от схемы: при отправке со своего склада расходы ложится на магазин, при отправке со склада службы они распределяются иначе. Отдельно стоит посчитать бесплатную доставку от определённой суммы: она повышает средний чек, но на тяжёлых заказах в дальние регионы может оказаться убыточной.
Практический подход — считать доставку как часть юнит-экономики заказа, а не как отдельную услугу. Тогда правило бесплатной доставки опирается на фактическую стоимость перевозки по региону и весу, а не на фиксированный порог, установленный однажды и забытый.
Технических ограничений нет: интерфейс к API служб унифицирован, поэтому добавление нового перевозчика — это в основном работа с его справочниками и форматами документов. На практике чаще подключают две-три службы и правило выбора между ними по региону, габаритам или сумме заказа, а остальные держат как резервный маршрут.
Точность зависит от данных о товаре: веса, габаритов и упаковки. Если они указаны корректно, расчёт совпадает с итоговым счётом службы. При сомнительных данных мы показываем покупателю оценку и фиксируем правило пересчёта, чтобы расхождение не превращалось в спор с клиентом. Перед запуском сверяем расчёт с контрольными отправлениями в ключевые зоны.
Оформление заказа не должно останавливаться. Мы кэшируем тарифы и справочник пунктов выдачи, задаём короткие таймауты и при ошибке предлагаем покупателю расчёт менеджером или самовывоз. Заявка в службу ставится в очередь и отправляется автоматически, когда API снова отвечает. Уже оформленные заказы при этом не теряются: номер заказа сохраняется, а повторная отправка идёт по расписанию.
В зависимости от службы — от нескольких минут до нескольких часов, это ограничение самого перевозчика, а не интеграции. Мы обновляем статусы по расписанию и по событиям, а покупателю отправляем уведомление только на значимых переходах, чтобы не заваливать его письмами. Обязательно настраиваем оповещение «прибыл в пункт выдачи»: это самый частый вопрос поддержке.
Смежные задачи, которые обычно решаются в одном проекте с этой.
Перечислите службы, с которыми работаете, — предложим порядок подключения и сроки.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.