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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Обсуждение0

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

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