Настройка бесплатной доставки по условиям в 1С-Битрикс

Настройка бесплатной доставки по условиям на 1С-Битрикс Бесплатная доставка при заказе от N долларов — классический приём для повышения среднего чека. Но как только бизнес требует более гибких условий: бесплатно только для акционных товаров, для новых клиентов, по промокоду, с разными порогами по г
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Настройка бесплатной доставки по условиям в 1С-Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1460
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    763
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1164

Настройка бесплатной доставки по условиям на 1С-Битрикс

Бесплатная доставка при заказе от N долларов — классический приём для повышения среднего чека. Но как только бизнес требует более гибких условий: бесплатно только для акционных товаров, для новых клиентов, по промокоду, с разными порогами по городам — стандартные ограничения 1С-Битрикс перестают закрывать задачу. Мы — команда разработчиков с 10+ летним стажем в Битрикс — реализовали более 50 проектов с кастомной логистикой. На примерах покажем, как настроить бесплатную доставку по нестандартным правилам и что важно учесть, чтобы не сломать корзину.

Почему стандартных ограничений доставки в Битрикс не хватает?

Стандартный механизм Битрикс позволяет установить только одно ограничение: минимальная сумма заказа для всех клиентов. Если нужно дифференцировать по группам пользователей, типам товаров или промокодам — приходится писать кастомные обработчики. В реальных проектах мы сталкивались с 20+ вариантами условий, которые не покрываются коробкой.

Как настроить бесплатную доставку по стандартному ограничению суммы?

В административной части для каждого обработчика доставки: «Ограничения» → «По стоимости заказа» → установить «Минимальная сумма заказа» = 0, «Максимальная» = пусто. Это подключит метод для любой суммы.

Для бесплатной доставки создаётся отдельный экземпляр обработчика (например, «СДЭК бесплатно») с нулевой ценой и ограничением «сумма заказа от $45–65.»:

// Обработчик с фиксированной нулевой ценой class FreeDeliveryWrapper extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); $result->setPeriodDescription('2–5 дней'); return $result; } } 

Ограничение по сумме настраивается через стандартный UI. Порог суммы для бесплатной доставки лучше вынести в настройки обработчика — чтобы менять без правки кода. Подробнее о создании обработчиков доставки читайте в документации.

Как реализовать бесплатную доставку только для определённых товаров?

Задача: доставка бесплатна, если в корзине есть товар из раздела «Акционные» или товар с определённым свойством.

class ConditionalFreeDelivery extends \Bitrix\Sale\Delivery\Services\Base { public static function isCompatible(\Bitrix\Sale\Shipment $shipment): bool { $basket = $shipment->getOrder()->getBasket(); foreach ($basket as $item) { $productId = $item->getProductId(); // Проверяем свойство товара FREE_DELIVERY = Y $props = \CIBlockElement::GetProperty( $item->getField('MODULE'), $productId, [], ['CODE' => 'FREE_DELIVERY'] )->Fetch(); if ($props && $props['VALUE'] === 'Y') { return true; } } return false; } protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $result->setDeliveryPrice(0); return $result; } } 

Как настроить бесплатную доставку для новых клиентов?

Если нужно предоставить бесплатную доставку только тем, кто оформляет заказ впервые, используйте событие OnSaleOrderSaved и флаг в заказе. В обработчике ограничения проверяйте этот флаг. Алгоритм: при создании заказа проверяем историю заказов пользователя; если заказов не было — устанавливаем пользовательский флаг. В обработчике доставки проверяем флаг и при его наличии делаем цену нулевой.

Как настроить бесплатную доставку по промокоду?

В корзине Битрикс можно применить промокод, который влияет на стоимость доставки. Реализуется через кастомный обработчик скидок на доставку или через свойство корзины. Обработчик доставки должен проверять наличие купона с определённым типом и обнулять цену.

Отображение прогресса до бесплатной доставки

В корзине показываем: «До бесплатной доставки осталось $11–16.». Это не фича Битрикс из коробки — реализуется на уровне шаблона компонента корзины.

// В шаблоне компонента $threshold = 5000; // порог бесплатной доставки $basketTotal = $APPLICATION->IncludeComponent('bitrix:sale.basket.basket', '', ['GET_BASKET_TOTAL' => 'Y'], false, ['HIDE_ICONS' => 'Y']); $currentTotal = $GLOBALS['BASKET_TOTAL'] ?? 0; $remaining = max($threshold - $currentTotal, 0); if ($remaining > 0) { echo 'До бесплатной доставки: ' . \CCurrencyLang::CurrencyFormat($remaining, 'USD'); } else { echo 'Доставка бесплатна!'; } 

Значение $threshold лучше получать из настроек обработчика доставки, а не хардкодить в шаблоне — при изменении порога нужно обновить только одно место.

Кейс из нашей практики

Магазин спортивного питания: бесплатная доставка от $27–39. для Москвы и от $45–65. для регионов. Стандартными средствами Битрикс это не решается одним обработчиком — разные пороги для разных зон. Решение: два экземпляра FreeDeliveryWrapper с разными настройками порога и ограничениями по зонам. Дополнительно настроили прогресс-бар, который показывает остаток до бесплатной доставки с учётом зоны клиента.

Что входит в настройку бесплатной доставки?

Этап Состав работ
1. Анализ Аудит текущей схемы доставки, выявление нестандартных условий
2. Проектирование Разработка архитектуры обработчиков, ограничений, интеграций
3. Разработка Написание кастомных классов, настройка свойств и ограничений
4. Тестирование Проверка всех сценариев: сумма, товары, зоны, промокоды
5. Документирование Передача документации и обучение менеджеров работе с доставкой

Типичные ошибки при настройке

Ошибка Последствие Как избежать
Хардкод порога в шаблоне Нужно править код при изменении Выносить в настройки обработчика
Не учтены несколько зон Клиенты из одного региона видят неверные условия Создавать отдельные обработчики с ограничениями по зонам
Отсутствие тестирования с купонами Промокоды не сбрасывают доставку Проверять интеграцию с корзиной и скидками

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

Сроки

Состав Срок
Стандартное ограничение по сумме 0,5 дня
+ Прогресс-бар «до бесплатной доставки» +1 день
+ Условия по товарам или зонам +1–2 дня