Бесплатная доставка от определённой суммы — это не отдельная кнопка в админке, а связка из механизма расчёта доставки и правил, которые обнуляют её стоимость при выполнении условия. В 1С-Битрикс это решается штатно, но у каждого способа есть свои нюансы: от какой суммы считать порог, учитывать ли скидки и как показать покупателю, сколько ему осталось добрать до корзины.
Два штатных способа реализации
В 1С-Битрикс бесплатную доставку от суммы можно сделать двумя принципиально разными путями, и выбор влияет на дальнейшую поддержку.
- Правила работы с корзиной (раздел
Магазин → Маркетинг → Правила работы с корзиной) — вы оставляете один платный тариф доставки, а отдельное правило обнуляет его стоимость при достижении порога. - Отдельная служба с ограничением по сумме — вы заводите вторую службу «Бесплатная доставка» с ценой 0 и ограничением
ByPrice, которое показывает её только при заказе выше порога.
Первый способ гибче: он работает с промокодами, региональными правилами и приоритетами. Второй — прозрачнее для менеджера, потому что бесплатная и платная доставка физически разные строки в заказе.
Через правила работы с корзиной
Это основной способ. Перейдите в Магазин → Маркетинг → Правила работы с корзиной и создайте новое правило.
- В блоке «Условия» задайте:
Сумма в корзине → больше или равно → 5000. Битрикс поддерживает условия по подытогу, по количеству товаров, по разделу каталога и по свойствам заказа. - В блоке «Действия» выберите
Действие на доставку → Скидка на доставкуи укажите100%либо фиксированное «сделать бесплатной». - Задайте период активности и приоритет — если акций несколько, порядок применения решает поле «Приоритет».
Правило хранится в таблице b_sale_discount и применяется на этапе пересчёта заказа, поэтому корректно отрабатывает и в публичной корзине, и при оформлении через sale.order.ajax, и при создании заказа менеджером в админке.
Через отдельную службу и ограничение по сумме
Альтернатива — две службы доставки. Первая, платная (например, курьер), и вторая — «Бесплатная доставка» с ценой 0. Чтобы бесплатная не показывалась при мелких заказах, на неё вешают ограничение.
Откройте службу в Магазин → Настройки → Службы доставки, вкладка «Ограничения», и добавьте «Ограничение по сумме заказа» (класс \Bitrix\Sale\Delivery\Restrictions\ByPrice) с минимальным значением, равным порогу. Симметрично на платную службу можно поставить максимум, чтобы после порога оставалась только бесплатная.
| Критерий | Правила корзины | Отдельная служба |
|---|---|---|
| Работа с промокодами | Да, штатно | Нет, только по сумме |
| Видимость в чекауте | Тариф один | Две строки доставки |
| Учёт скидок на товар | Настраивается | Зависит от базы расчёта |
Способ удобен, когда бесплатный вариант физически другой (например, самовывоз или ПВЗ), а не просто обнулённый курьер.
От какой суммы считать порог
Главная ловушка — что именно сравнивать с порогом. По умолчанию Битрикс берёт стоимость товаров в корзине, но здесь есть развилки, которые нужно проговорить с бизнесом.
- До или после скидок. Если покупатель применил промокод, подытог уменьшается. Решите заранее, считается ли порог от суммы со скидкой — в правилах корзины это регулируется полем базовой цены и условием на подытог.
- Без стоимости самой доставки. Порог всегда считается по товарам; включать доставку в сравнение нельзя, иначе получится замкнутый пересчёт.
- Региональность. Порог часто зависит от города. Комбинируйте условие по сумме с ограничением
ByLocation— для Москвы порог один, для регионов другой. - Габариты и вес. Крупногабарит нередко исключают из бесплатной доставки отдельным ограничением по весу (
ByWeight).
Индикатор «до бесплатной доставки осталось»
Порог работает на средний чек только тогда, когда покупатель его видит. Штатный компонент корзины sale.basket.basket такой подсказки не выводит — её добавляют доработкой.
Логика простая: в шаблоне корзины или в компоненте оформления берётся текущий подытог, вычитается из порога, и при положительной разнице выводится строка вида «Добавьте товаров на 800 ₽ для бесплатной доставки». Значение подытога доступно через объект заказа \Bitrix\Sale\Order или в данных компонента, а сам порог удобно вынести в настройки, а не хардкодить.
Технически индикатор пересчитывается тем же ajax-запросом, что и корзина, поэтому он должен обновляться при каждом изменении количества товаров без перезагрузки страницы.
Типичные ошибки
Ошибки в этой задаче почти всегда из-за того, что порог и расчёт доставки живут в разных подсистемах.
- Обнуление до выбора доставки. Правило срабатывает, но в одностраничном чекауте служба ещё не выбрана — покупатель видит платную доставку и уходит.
- Двойной учёт скидок. Порог считают от суммы со скидкой, а маркетолог ждал сумму до скидки — жалобы «не даёт бесплатную, хотя набрал».
- Конфликт приоритетов. Несколько правил корзины применяются в неожиданном порядке; проверяйте поле «Приоритет» и флаг «Прекратить дальнейшую обработку».
- Кэш и композит. После изменения правил корзину нужно перепроверить с очисткой кэша, иначе тестируете старую логику.
Как проверить настройку
Перед выкаткой прогоните бесплатную доставку по сценариям, а не по одному «удачному» заказу.
- Заказ ровно на пороге и на копейку ниже — граница должна отрабатывать однозначно.
- Заказ с промокодом, который опускает подытог ниже порога, — проверьте, что поведение совпадает с договорённостью.
- Разные регионы, если порог региональный, — Москва, область, дальний регион.
- Оформление и в публичной части, и менеджером в админке — правила корзины должны применяться одинаково.
Итог
Бесплатная доставка от суммы в 1С-Битрикс реализуется штатно — чаще всего через правила работы с корзиной, реже через отдельную службу с ограничением ByPrice. Главное — заранее договориться, от какой суммы считается порог (до или после скидок, по каким регионам), корректно обнулять доставку уже после её выбора и показать покупателю индикатор «сколько осталось добрать».
Если нужно связать порог со скидками, регионами и логикой служб доставки без конфликтов, мы настроим правила корзины и доработаем корзину под индикатор, а на этапе развития возьмём магазин на поддержку и мониторинг.
Частые вопросы
Где в Битрикс задаётся порог бесплатной доставки?
В правиле работы с корзиной: раздел Магазин, Маркетинг, Правила работы с корзиной. Условие задаётся по сумме в корзине, а действие обнуляет стоимость доставки.
Можно ли сделать бесплатную доставку без правил корзины?
Да, через отдельную службу с ценой ноль и ограничением по сумме заказа (класс ByPrice). Она будет показываться только при заказе выше порога.
Порог считается от суммы до или после скидки?
Это настраивается и зависит от требований бизнеса. По умолчанию сравнивается подытог корзины, но при промокодах поведение нужно проверить и зафиксировать заранее.
Почему доставка не обнуляется, хотя сумма достаточная?
Чаще всего служба доставки ещё не выбрана в заказе, и правилу нечего обнулять. Также причиной бывает конфликт приоритетов правил или незачищенный кэш.
Как сделать разный порог для Москвы и регионов?
Скомбинируйте условие по сумме с ограничением по местоположению (ByLocation). Для каждой группы регионов создаётся отдельное правило со своим порогом.
Как показать покупателю, сколько осталось до бесплатной доставки?
Штатный компонент корзины такой строки не выводит, её добавляют доработкой шаблона: из порога вычитается текущий подытог, и при положительной разнице выводится подсказка.
Работает ли бесплатная доставка с промокодами одновременно?
Через правила работы с корзиной да, но важно проверить приоритеты правил, чтобы промокод и обнуление доставки не мешали друг другу.
Как исключить из бесплатной доставки крупногабаритный товар?
Добавьте на службу или в условие ограничение по весу или габаритам (ByWeight), чтобы тяжёлые заказы не попадали под бесплатный тариф.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.