Почему бесплатная доставка в 1С-Битрикс ломает расчёт заказа
Классический сбой: клиент набирает корзину выше порога бесплатной отправки, видит нулевую стоимость доставки, оформляет заказ — а в счёте сумма с доставкой возвращается. Бывает и обратно: порог формально достигнут, но правило корзины считает сумму до применения скидок и подарков, а карточка заказа — после, и бесплатная доставка в 1С-Битрикс просто не срабатывает. Со стороны это выглядит как «сайт считает неправильно», хотя внутри работают три независимых механизма, которые не знают друг о друге.
Первый — правила работы с корзиной: именно там задаётся порог бесплатной отправки, и чаще всего он оформлен как скидка на службу доставки. Второй — настройки самой службы: её базовая стоимость, ограничения по региону, весу и габаритам позиций. Третий — модуль расчёта стоимости отправки, который обращается к внешнему сервису и пересчитывает результат при каждом изменении состава корзины. Пока скидка применяется раньше, чем посчитана стоимость, скидывать нечего: сумма либо обнуляется не там, где нужно, либо скидка «съедается» следующим пересчётом.
Отдельный источник ошибок в корзине — порядок пересчёта и кэширование результата. Стоимость доставки может остаться от предыдущего состояния: клиент сменил адрес или способ получения, часть позиций отменил — порог перестал выполняться, а на экране всё ещё ноль. Дальше расхождение уходит в обмен с 1С, и менеджер правит счёт вручную, объясняя клиенту разницу.
Цена такой схемы — не косметика, а потерянные заказы и ручные операции на каждом втором оформлении. Дальше разбираем, как это закрывается.
Что меняется после настройки правил отправки заказа
Правила отправки заказа в 1С-Битрикс описываются на уровне условий заказа, а не в шаблоне корзины: порог стоимости корзины, ограничение по службе доставки, региону или группе товаров. Расчёт идёт на стороне сервера при каждом пересчёте, поэтому ведёт себя одинаково на витрине, в мобильной версии и в оформлении в один шаг.
Дальше — что меняется в цифрах. Порог виден прямо в корзине вместе с подсказкой, сколько не хватает до бесплатной доставки: покупатель добирает товар вместо того, чтобы уйти сравнивать условия. Средняя стоимость корзины растёт, доля брошенных корзин падает — при условии, что подсказка обновляется вместе с составом заказа.
Обращения в поддержку снижаются по двум причинам. Клиенту больше не нужно писать «почему доставка стала платной» — правило и скидка срабатывают автоматически. Менеджер не согласовывает и не применяет скидку вручную, и уходит целый класс ошибок, когда бесплатную доставку обещали, а в заказе она осталась платной.
Скорость оформления заказа растёт за счёт отказа от лишних шагов: стоимость доставки пересчитывается без перезагрузки страницы, итог виден до подтверждения. Эффект стоит мерить по фиксированному набору показателей — средняя стоимость корзины, доля заказов с бесплатной доставкой, доля переходов из корзины в оплату, число обращений по доставке. Сравнение до и после настройки отделяет результат новых правил от сезонных колебаний.
Способы задать бесплатную доставку: сравнение подходов
Бесплатная доставка — не отдельный переключатель, а результат расчёта: модуль отдаёт стоимость, а дальше её либо обнуляет правило корзины, либо пересчитывает собственный обработчик. От того, где живёт логика, зависит, что придётся менять при росте числа служб и регионов.
| Вариант | Когда подходит | Ограничения |
|---|---|---|
| Правило корзины со скидкой на доставку | Одна-две службы, порог по сумме заказа | Скидка ложится поверх расчёта; при нескольких службах правило дублируется, а условия по регионам задаются списком вручную |
| Настройка модуля расчёта доставки | Пороги и география меняются часто | Логика привязана к конкретному обработчику — смена службы требует повторной настройки |
| Отдельная служба «бесплатно» | Нужно показать нулевую стоимость прямо в списке вариантов | Видна всем; фильтровать по сумме и региону приходится дополнительной проверкой на оформлении |
| Ограничения по регионам | Бесплатная доставка только в части географии | Требует корректных местоположений в заказе; для самовывоза логику нужно разводить отдельно |
| Ручное согласование | Нестандартные отправки, крупные заказы | Нет автоматики: клиент ждёт ответа, растёт доля брошенных корзин |
Что важно при любом варианте
Условие должно пересчитываться при каждом изменении корзины, а не только на последнем шаге оформления — иначе клиент видит одну сумму, а в заказе получает другую. Порог по сумме считаем по стоимости товаров без учёта самой доставки, иначе правило начнёт срабатывать само на себя. Если служб несколько, логику выносим в одно место: правила корзины и настройки модуля дублируют друг друга и расходятся при первом же изменении тарифов.
Этапы настройки: от аудита правил до передачи регламента
Бесплатная доставка в 1С-Битрикс — это не одна галочка в настройках, а набор правил расчёта, которые пересекаются между собой: привязка служб к складам, группы покупателей, порог суммы, регион, габариты и ограничения по способам оплаты. Поэтому работа идёт этапами, где каждый следующий опирается на результат предыдущего.
- Аудит правил расчёта. Выгружаем действующие правила доставки, привязки служб к складам и группам покупателей, смотрим историю заказов. Задача — найти, где условия конфликтуют между собой и почему бесплатная доставка не срабатывает при подходящей сумме.
- Схема расчёта. Описываем матрицу условий: для каких регионов, типов товаров и порогов доставка становится бесплатной, а для каких остаётся платной, включая поведение при частичном возврате.
- Выбор механики. Либо отдельное правило доставки с нулевой стоимостью, либо бесплатная доставка через скидку — если порог считается от корзины целиком и нужно учесть уже применённые акции.
- Настройка и приоритеты. Задаём порядок применения правил, чтобы скидка на доставку не складывалась с другими акциями и не обнуляла маржу на логистике.
- Тестовые заказы. Прогоняем сценарии: сумма ниже порога, ровно на границе и выше; самовывоз; заказ из нескольких складов; оформление гостем и авторизованным покупателем; оплата при получении.
- Передача регламента. Отдаём карту правил с приоритетами, инструкцию по правке порогов и список проверок для новых акций — чтобы условия можно было менять без правки кода.
Настройки правил, схемы расчёта и регламенты обновления
На руки заказчик получает не «настроили и ушли», а набор артефактов, по которым работу можно принять и дальше менять без нас. Каждый из них закрывает свой вопрос: почему бесплатная доставка сработала или нет и кто вправе обойти правило.
- Конфигурация правил: привязка служб к складам, группам товаров и типам плательщика.
- Схема расчёта: порядок применения скидок и округления до проверки порога.
- Политика ограничений: регионы, вес, габариты и группы товаров-исключений.
- Инструкция для менеджера: ручное изменение доставки в заказе и запись в истории.
- Регламент обновления порогов: кто инициирует пересмотр и как правка проверяется.
- Карта проверок: корзины на границе порога, с исключением, с двумя складами.
Отдельно фиксируем, после какого изменения что перепроверяем — правка условий не должна ломать соседние сценарии.
| Изменение | Что правим | Что проверяем |
|---|---|---|
| Новый порог | Условие в правилах | Корзину на границе и на шаг ниже |
| Новая служба | Привязку к складу и зоне | Расчёт при её выборе |
| Акция на срок | Период действия условия | Откат логики после окончания |
Регламент обновления порогов привязан к изменениям у перевозчиков, а не к календарю: при пересмотре тарифов условия сверяются и правятся в одном месте — в конфигурации правил, а не в шаблоне оформления заказа.
Кейс: как перенос правил убрал ошибки в расчёте заказов
Заказчик — дистрибьютор с розничным и оптовым направлением. Условия бесплатной доставки жили в четырёх местах: шаблон оформления заказа, обработчик корзины, административная часть и выгрузка заказов в 1С. Правило в каждом было своё, и расхождение давало заказы с нулевой стоимостью отправки, которые потом правили вручную.
Перенос правил
Собрали все условия в один модуль на стороне 1С-Битрикс: он считает стоимость отправки и для покупателя, и при пересчёте заказа из административной части, и при выгрузке в 1С. Порог суммы, регион и вес читаются из справочника, а не из кода шаблона, поэтому условие меняется без выпуска обновления сайта.
Отдельно закрыли ветки, которые раньше обрабатывались вручную: самовывоз, частичный возврат позиций и заказ из нескольких складов. По каждой есть тест на эталонных корзинах — новое региональное ограничение проверяется до публикации.
Метрики до и после
Руководитель направления: «Казалось, что правим мелочи, пока не посчитали, сколько заказов уходило с бесплатной отправкой там, где её быть не должно. Теперь условие меняется в одном месте, а расхождение с 1С всплывает в момент оформления, а не через неделю».
Что делать, если логика отправки уже задана другим модулем?
Если бесплатная доставка уже работает — через сторонний модуль, самописный обработчик или правку шаблона, — задача не в том, чтобы включить её заново, а в том, чтобы снять конфликт правил. Платформа 1С-Битрикс прогоняет корзину через цепочку обработчиков: стоимость доставки пересчитывает каждый, а применяется результат того, кто отработал последним. Пока обработчиков несколько, поведение непредсказуемо: у двух покупателей с одинаковой корзиной доставка то есть, то нет.
Начинаем с инвентаризации: какие обработчики зарегистрированы, где переопределены профили доставки, что зашито в шаблон оформления заказа, какие условия заданы в настройках стороннего модуля. Дальше собираем матрицу — регион, вес, сумма корзины, группа покупателя, служба доставки. Часть условий обычно дублируется в двух-трёх местах с разными порогами, и расхождения дают те самые странные бесплатные заказы.
Условия переносим на штатный механизм — правила работы с корзиной и профили доставки. Идём по одной службе доставки, а старые обработчики не удаляем, а отключаем: пока новый расчёт не проверен, должен оставаться путь отката одной правкой, без восстановления из копии. Миграция настроек идёт с сохранением истории: стоимость доставки в оформленных заказах зафиксирована, и переключение логики их не переписывает.
Переключение делаем параллельно: новый и старый расчёт считают доставку одновременно, расхождения попадают в журнал — видно, где условия не совпали. Когда расхождений нет, отключаем сторонний модуль, убираем правки шаблона и чистим дубли. Дальше бесплатная доставка живёт в одном месте: обновление модуля, смена тарифов или новый регион её не ломают.
Частые технические вопросы по расчёту стоимости заказа
Расчёт стоимости заказа в 1С-Битрикс — место, где ошибка видна покупателю сразу и стоит доверия к магазину. Ниже — частые вопросы по расчёту, которые задают до старта работ, и короткие ответы инженера.
Как ограничить бесплатную доставку по регионам?
Условие привязывается к местоположению покупателя: зоны задаются списком регионов, а порог суммы считается отдельно по каждой. За пределами зоны правило не срабатывает — покупатель видит платный тариф и не получает сюрприз на этапе оформления.
Можно ли задать разные условия отправки для групп покупателей?
Да: правила корзины работают в разрезе групп, и оптовик с розницей получают свой порог. Проверяем, что группа назначается автоматически при регистрации, иначе условие просто не применится.
Что будет, если несколько условий конфликтуют?
Правила срабатывают по приоритету: при пересечении применяется первое подходящее, остальные отключаются. Перед запуском прогоняем матрицу сценариев — регион, группа, сумма — чтобы акция и бесплатная доставка не накладывались друг на друга.
Переживут ли настройки обновление платформы?
Логику расчёта выносим в собственный модуль и обработчики, а не в шаблон оформления заказа. Обновление ядра и типовых модулей тогда не затирает условия — они живут отдельно от штатных файлов.
Кто отвечает за корректность расчёта?
Расчёт фиксируем набором проверок и передаём карту правил: видно, какое условие за что отвечает и в каком порядке срабатывает. Эта же карта служит точкой отката при следующих правках.
Обсудим задачу: правила отправки под ваши условия
Правила отправки завязаны на регион, сумму заказа, склад отгрузки и группу покупателя — универсальной настройки здесь нет. Чтобы не переделывать логику после запуска, на созвоне разбираем условия и смотрим рабочий сайт: какие службы доставки подключены, как считается стоимость, где сейчас подставляется скидка.
Этого достаточно, чтобы вернуться с оценкой работ и планом настройки. Что уточняем и какие данные смотрим:
- география: какие регионы обслуживаете и есть ли зоны с особыми условиями;
- порог: от какой суммы заказа доставка становится бесплатной и как он связан с минимальной суммой заказа;
- механика: отдельная скидка на доставку, правило с ограничением по корзине или отдельная служба с отбором;
- группы покупателей: розница, опт, партнёры — кому правило доступно, а кому нет;
- склады и способы получения: самовывоз, курьер, пункты выдачи, несколько складов отгрузки;
- доступы: тестовый контур или рабочий сайт, где правила можно проверить без риска для живых заказов.
С оценкой присылаем план настройки: какие правила создаём, в каком порядке включаем, как проверяем на тестовых заказах и как откатываем. Условия сотрудничества обсуждаем там же. Опишите задачу в двух-трёх предложениях — обсудим её предметно и вернёмся с оценкой и планом.







