Дополнительные услуги доставки в 1С-Битрикс — это платные или бесплатные опции, которые покупатель выбирает вместе со службой доставки: страховка, подъём на этаж, примерка, СМС-уведомление. Они привязаны к конкретной службе доставки и умеют влиять на итоговую стоимость отгрузки. Ниже разбираем, как их устроить, где настроить и как вывести в оформлении заказа.
Что такое дополнительные услуги доставки
Дополнительные услуги (extra services) — это механизм модуля Интернет-магазин (sale), который позволяет прикрепить к службе доставки набор опций и дать покупателю выбрать их на шаге оформления заказа. Появился он вместе с новой системой доставки (обработчиками) в редакциях sale 15.5+ и с тех пор — штатный способ монетизировать сервис вокруг доставки.
Ключевая идея: услуга не влияет на товар и его цену, она относится к отгрузке (shipment). Выбранные покупателем опции сохраняются вместе с заказом, могут прибавляться к стоимости доставки и попадают в счёт, письма и печатные формы.
- Страхование груза — процент или фиксированная сумма от стоимости заказа.
- Подъём на этаж — цена за этаж или за факт услуги.
- Сборка/установка — фиксированная надбавка.
- Примерка, частичный выкуп, СМС-уведомление — обычно флажок.
Типы дополнительных услуг
В карточке услуги задаётся её тип — он определяет, как опция выглядит в оформлении заказа и как считается её стоимость. Битрикс из коробки предлагает несколько типов:
| Тип | Как выглядит | Расчёт стоимости |
|---|---|---|
| Флажок (checkbox) | Чекбокс «да/нет» | Фиксированная цена при включении |
| Количество (quantity) | Поле ввода числа | Цена × количество (например, за этаж) |
| Список (enum) | Выпадающий список вариантов | Своя цена у каждого пункта |
Отдельно стоит тип «Наценка» (profit) — служебная услуга, которая не показывается покупателю, но добавляет процент или сумму к стоимости доставки. Её удобно использовать для скрытых надбавок по конкретной службе.
Каждая услуга привязана к профилю доставки: у курьера может быть свой набор опций, у самовывоза — другой. Внутри стоимость может задаваться как в базовой валюте, так и в процентах от суммы заказа (для страховки).
Где настраиваются услуги в админке
Дополнительные услуги живут в карточке службы доставки. Откройте Магазин → Настройки → Службы доставки, выберите нужную службу (или профиль автоматизированной службы) и перейдите на вкладку «Дополнительные услуги».
- Нажмите «Добавить услугу» и выберите тип (флажок, количество, список).
- Задайте название — именно его увидит покупатель в оформлении заказа.
- Укажите стоимость и, для списка, набор вариантов с ценами.
- При необходимости отметьте услугу как обязательную или включённую по умолчанию.
Услуги можно группировать в секции (разделы) — это удобно, когда опций много и их нужно визуально разбить в форме заказа. Порядок услуг внутри секции задаётся перетаскиванием.
Как услуги влияют на стоимость доставки
Стоимость выбранных услуг суммируется с ценой доставки, рассчитанной обработчиком, и формирует итоговую цену отгрузки. То есть покупатель видит не отдельную строку «услуги», а увеличенную стоимость доставки (в зависимости от шаблона оформления заказа — иногда услуги выводятся отдельным списком).
Разберём типовые схемы расчёта:
- Флажок: включил «Сборка мебели» — к доставке прибавилось, скажем,
1500руб. - Количество: подъём стоит
200руб. за этаж, покупатель указал 5 — доплата1000руб. - Список: «Упаковка» → «Плёнка» (0 руб.) / «Деревянный короб» (800 руб.).
- Страховка в процентах: 1% от суммы заказа — считается динамически от корзины.
Расчёт итога выполняется на стороне модуля sale при пересборке заказа: любое изменение опций в форме оформления пересчитывает стоимость отгрузки через AJAX без перезагрузки страницы.
Вывод услуг в оформлении заказа
За отображение услуг в публичной части отвечает компонент оформления заказа sale.order.ajax (в старых шаблонах — sale.order.full). Как только покупатель выбирает службу доставки, компонент подгружает привязанные к ней дополнительные услуги и рисует чекбоксы, поля и списки согласно их типам.
Что важно учитывать при выводе:
- Услуги отображаются только после выбора службы доставки — до этого шага их нет.
- Названия услуг берутся из карточки, поэтому формулируйте их понятно для клиента.
- Смена службы сбрасывает выбранные ранее опции — они принадлежат конкретному профилю.
sale.order.ajax так, что блок услуг вырезан.При кастомизации внешнего вида правьте шаблон компонента в /local/templates/, а не в /bitrix/, чтобы изменения пережили обновление ядра.
Работа с услугами через API
Для нестандартной логики услуги доступны из кода модуля sale. Основной класс — \Bitrix\Sale\Delivery\ExtraServices\Manager, а выбранные покупателем услуги хранятся на объекте отгрузки.
Типичные операции:
- Получить услуги, привязанные к службе:
Manager::getExtraServicesList($deliveryId). - Прочитать выбранные для отгрузки опции:
$shipment->getExtraServices(). - Программно задать значения услуг:
$shipment->setExtraServices([...])перед сохранением заказа.
Стоимость услуг участвует в общей сумме отгрузки (getPrice()), поэтому её не нужно прибавлять вручную — достаточно корректно проставить выбранные опции. Через события модуля sale (например, при сохранении отгрузки) можно валидировать выбор или подменять расчёт.
Практические рекомендации и частые ошибки
Несколько правил, которые экономят время при внедрении услуг:
- Не плодите услуги без нужды. Десяток чекбоксов в оформлении заказа снижает конверсию — оставляйте востребованные опции.
- Разделяйте профили. «Подъём на этаж» логичен для курьера, но бессмысленен для самовывоза и постаматов — привязывайте услуги адресно.
- Проверяйте валюту и проценты. Для страховки указывайте расчёт от суммы заказа, а не фиксированную сумму, иначе на дорогих заказах она будет неадекватной.
- Тестируйте пересчёт. Убедитесь, что смена опций обновляет итог в корзине без перезагрузки и корректно уходит в оплату.
Частые проблемы: услуги настроены, но не видны (не тот профиль или вырезан блок в шаблоне); стоимость не прибавляется (тип «наценка» вместо видимой услуги); опции теряются при смене доставки (это штатное поведение, о нём стоит предупредить менеджеров).
Итог
Дополнительные услуги доставки в 1С-Битрикс — гибкий инструмент: они привязываются к профилю службы, бывают трёх видимых типов (флажок, количество, список) плюс скрытая наценка, суммируются со стоимостью отгрузки и выводятся компонентом sale.order.ajax после выбора доставки. Настройка идёт из карточки службы, а для сложных сценариев есть API через ExtraServices\Manager и объект отгрузки.
Если нужно завести нетривиальные услуги — динамическую страховку, расчёт подъёма по адресу, перенос опций в 1С или свою логику в оформлении заказа, — аккуратнее доверить это интеграторам. Мы в B2Bsite настраиваем доставку и оформление заказа на 1С-Битрикс, дорабатываем расчёт услуг и связываем заказы с учётными системами.
Частые вопросы
Где включаются дополнительные услуги доставки?
В разделе Магазин → Настройки → Службы доставки. Откройте нужную службу или профиль и перейдите на вкладку «Дополнительные услуги». Там услуги добавляются, группируются в секции и получают стоимость.
Какие типы услуг поддерживает Битрикс?
Видимые покупателю типы — флажок (да/нет), количество (число с ценой за единицу) и список (варианты со своими ценами). Есть ещё служебный тип «наценка», который скрытно добавляет процент или сумму к стоимости доставки.
Как услуги влияют на итоговую стоимость доставки?
Стоимость выбранных услуг суммируется с ценой, рассчитанной обработчиком доставки, и формирует итоговую цену отгрузки. Пересчёт происходит на стороне модуля sale при каждом изменении опций в оформлении заказа.
Почему услуги не отображаются в корзине?
Чаще всего услуги привязаны не к тому профилю доставки, служба неактивна, либо блок услуг вырезан в кастомном шаблоне компонента sale.order.ajax. Услуги также появляются только после выбора конкретной службы доставки.
Можно ли сделать страховку в процентах от суммы заказа?
Да, для этого стоимость услуги задаётся как процент от суммы, а не фиксированной суммой. Тогда страховка пересчитывается динамически в зависимости от содержимого корзины.
Как получить выбранные услуги в коде?
Через объект отгрузки методом $shipment->getExtraServices(), а список услуг службы — через \Bitrix\Sale\Delivery\ExtraServices\Manager. Стоимость услуг уже входит в общую сумму отгрузки, вручную её прибавлять не нужно.
Переносятся ли услуги в 1С при обмене?
Штатный протокол CommerceML не выгружает дополнительные услуги отдельными строками. Если они должны попадать в 1С, обмен нужно дорабатывать под конкретную структуру заказа в учётной системе.
Почему при смене службы доставки сбрасываются выбранные опции?
Это штатное поведение: услуги принадлежат конкретному профилю доставки. При переключении на другую службу подгружается её собственный набор опций, а прежний выбор очищается.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.