Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры2

Скидка изменила сумму — и доставка сломалась: чему учат обновления Ozon для 1С-Битрикс

Свежие исправления модулей Ozon показывают, как бонусы, округление и смена пользователя могут нарушить передачу заказа из 1С-Битрикс в доставку. Разбираем, какие сценарии нужно проверить магазину.

Комментарии 0

Посылка на весах рядом с принтером этикеток и системой обработки заказов
В этой статье

23 сентября в истории обновлений Маркетплейса 1С-Битрикс появилось исправление для модуля доставки Ozon: ошибка plan_bound_missing могла возникать после применения бонусов, скидок или финального округления. В описании изменения есть важная деталь — цена больше не используется как идентификатор физической упаковки, а стоимость каждой упаковки пересчитывается из окончательных цен уже сохранённого заказа без потери копеек.

На следующий день другой модуль интеграции с Ozon уточнил вывод причины, по которой заказ нельзя доставить, и изменил работу с подтверждённым телефоном: номер привязывается к конкретному покупателю и должен запрашиваться заново после смены пользователя. Это не одна общая ошибка и не обновление самой платформы 1С-Битрикс. Но два соседних изменения хорошо показывают, насколько чувствительной становится доставка к данным заказа и состоянию пользовательской сессии.

Почему скидка способна сломать доставку

В простом магазине стоимость позиции кажется одним числом. В рабочем интернет-магазине у неё несколько состояний: базовая цена, цена типа плательщика, скидка каталога, купон, бонусы, округление, распределение стоимости по комплектам и окончательная сумма в заказе. Служба доставки получает данные уже после части этих преобразований.

Проблема начинается, когда интеграция использует денежное значение не только как сумму, но и как технический признак. До скидки две сущности совпадают, после скидки — уже нет. Если цена служила косвенным идентификатором упаковки, изменение на несколько рублей или даже копеек может разрушить связь между товарами, упаковками и расчётом доставки.

Надёжнее считать сохранённый заказ источником истины. Сначала магазин должен окончательно применить скидки, бонусы и округление, затем распределить стоимость между упаковками и только после этого отправлять данные внешнему сервису. Повторный расчёт на стороне интеграции не должен создавать новую версию заказа, отличающуюся от той, которую видят покупатель и менеджер.

Что проверить владельцу магазина

Одного заказа без скидки для проверки недостаточно. Минимальный набор сценариев должен включать обычную скидку каталога, промокод, списание бонусов, сочетание скидки с платной доставкой и заказ с несколькими упаковками. Отдельно нужен случай, где после распределения возникает дробная сумма и требуется округление до копеек.

Полезно сравнить четыре значения: сумму в корзине перед оформлением, итог сохранённого заказа, сумму переданных в доставку товаров и общую денежную стоимость грузовых мест в ответе службы доставки. Они должны сходиться по заранее определённому правилу. Если одна система округляет каждую позицию, а другая — только общий итог, расхождение следует учитывать явно, а не скрывать случайной корректировкой последнего товара.

Нужно проверить и повторные действия. Заказ может быть пересчитан после смены адреса, способа доставки, состава корзины или профиля покупателя. Интеграция обязана либо заново сформировать корректные грузовые места — упаковки отправления, либо показать понятную причину отказа. Старая заявка на доставку не должна незаметно оставаться привязанной к новой версии заказа.

Телефон и пользовательская сессия — часть той же цепочки

Повторная проверка телефона после входа другого пользователя предотвращает важный класс ошибок. На общем компьютере, в пункте оформления менеджером или после смены аккаунта номер предыдущего покупателя не должен автоматически становиться контактом нового заказа.

Для магазина это означает, что тестировать следует не только поля формы, но и переходы между состояниями: выйти из одного аккаунта, войти в другой, выбрать сохранённый адрес, вернуться в корзину и оформить заказ. Данные, подтверждённые в одной сессии, нельзя считать подходящими для другого пользователя без проверки принадлежности.

Как обновляться без новых сбоев

Перед установкой новой версии модуля нужна резервная копия базы и файлов, но этого мало. Обновление стоит сначала поставить на копию сайта и прогнать контрольные заказы с реальными правилами скидок. В тесте важно дойти до создания заявки у перевозчика, а не остановиться на странице «Заказ оформлен».

После обновления следует посмотреть журнал интеграции и убедиться, что там можно связать заказ, попытку расчёта, сформированные упаковки и ответ внешнего сервиса. Покупателю полезно показывать понятное сообщение, а техническую причину сохранять для администратора. Выводить необработанный ответ API в публичную часть нельзя: он может содержать лишние данные или фрагменты разметки.

Связка скидок, бонусов и доставки проверяется как единый процесс. Если каждый модуль тестировать отдельно, магазин может успешно посчитать скидку и отдельно успешно получить тариф, но всё равно потерять заказ в момент передачи окончательных сумм. Именно такие стыки требуют больше внимания, чем перечень функций в карточке решения.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.