Когда в проекте Битрикс уже есть стандартный компонент заказа, но нужно добавить шаг выбора времени доставки или условный переход при самовывозе — стандартная логика перестаёт работать?
Клиенты теряют конверсию, а разработчики уходят в недели правок. Мы — команда с 10+ летним опытом разработки на Битрикс и более 50 успешных проектов — настраиваем пошаговое оформление заказа с нуля или дорабатываем существующий. Настраиваем количество шагов, порядок, AJAX-переключение и дополнительные поля. Оценим проект за 1 день — просто напишите нам. По статистике, правильно настроенное пошаговое оформление повышает конверсию в 1.3 раза по сравнению с одностраничной формой, за счёт снижения когнитивной нагрузки на пользователя. Мы решаем задачи любой сложности: от добавления одного поля до сложной логики с условными переходами, интеграцией с 1С и фискализацией.
Как работает пошаговость
Компонент bitrix:sale.order.ajax с параметром DELIVERY_MODE = SPLIT_DELIVERY разбивает оформление на шаги. В папке шаблона .default лежит order_ajax.php и файлы step_*.php. Переключение между шагами — JavaScript-функция orderAjax.gotoStep(). Она отправляет данные текущего шага на сервер и получает разметку следующего. Важно сохранить структуру JS-переменных: arOrderAjaxFields, arDeliveryList, arPaySystemList. Если эти объекты не заполнены корректно — AJAX-переключение сломается.
Как добавить новый шаг в пошаговое оформление?
Стандартный шаблон поддерживает 3 шага. Для добавления нового (например, «Выбор времени доставки» или «Подарочная упаковка») действуем по алгоритму:
- Создаём копию шаблона в
/local/components/bitrix/sale.order.ajax/templates/. - Добавляем файл
step_delivery_time.phpс разметкой шага. - Регистрируем шаг в JavaScript-массиве
orderAjax.steps. - В обработчике
OnSaleComponentOrderMakeOrderсохраняем данные дополнительного шага в свойства заказа.
Пример JS-кода для регистрации шага
BX.message({STEP_DELIVERY_TIME: 'Выберите время доставки'});
orderAjax.steps.push('STEP_DELIVERY_TIME');
На сервере в методе initStep проверяем, есть ли шаг в данных.
Причины поломки стандартного компонента при кастомных шагах
Основная причина — несовместимость с ожидаемой структурой данных. Каждый шаг должен возвращать JSON с полями HTML, TITLE, DATA. Если формат нарушен, orderAjax не обновляет шаг. Вторая причина — отсутствие обработки новых полей в функции checkValid. Обязательно добавляем валидацию для каждого кастомного поля. Согласно официальной документации Битрикс, копирование шаблона в /local — первый шаг для сохранения изменений при обновлении ядра.
Настройка условного перехода между шагами
Если для самовывоза нужно пропустить шаг с адресом, это реализуется через JS-событие:
BX.addCustomEvent('onSaleOrderAjaxStepChange', function(currentStep, nextStep) {
if (currentStep === 'DELIVERY' && selectedDeliveryIsPickup()) {
orderAjax.gotoStep('PAYMENT');
return false;
}
});
На сервере снимаем обязательность полей адреса для самовывоза — через условие в OnSalePropertyValueCheck.
Как ускорить AJAX-переключение между шагами?
AJAX-переключение уже асинхронное, но скорость можно повысить кэшированием тегированным для списков доставки и оплаты. Используем Bitrix\Main\Data\Cache с тегами sale_delivery и sale_pay_system. Также отключаем лишние вызовы GetList в эпилоге. При правильной настройке шаг переключается за 200–400 мс — это в 3 раза быстрее полной перезагрузки страницы.
Сравнение: пошаговое vs одностраничное оформление
| Параметр | Пошаговое оформление | Одностраничное оформление |
|---|---|---|
| Конверсия (средняя) | 68–72% | 55–60% |
| Количество полей на экране | до 7 | до 20 |
| Поддержка сложной логики | условные переходы, кастомные шаги | только базовые поля |
| Время разработки кастомизации | 2–5 дней | 1–2 дня |
| Риск ошибок при интеграции с 1С | средний (требуется тестирование) | низкий |
Что входит в работу
- Документация: техническое задание с описанием шагов, диаграмма состояний, инструкция по эксплуатации.
- Доступы: настройка прав доступа к компоненту, роли для операторов.
- Обучение: сессия для администраторов по управлению кастомными шагами.
- Поддержка: гарантийное обслуживание 1 год, консультации по доработкам.
Этапы работы
| Этап | Что делаем | Результат |
|---|---|---|
| Аналитика | Аудит текущей схемы оформления, проверка интеграций (1С, платежные системы) | Техническое задание с описанием шагов |
| Проектирование | Проектируем структуру шагов, логику условных переходов | Диаграмма состояний |
| Реализация | Пишем кастомный шаблон, добавляем шаги, настраиваем AJAX | Рабочий компонент в /local |
| Тест | Проверяем на всех сценариях (самовывоз, курьер, оплата картой/наличными) | Чек-лист тестов |
| Деплой | Заливаем на боевой сервер, тегированное кэширование, документация | Инструкция по эксплуатации |
Сроки и гарантии
Настройка на базе стандартного компонента — 1–3 рабочих дня. Добавление нестандартных шагов — 2–5 дней. Стоимость настройки — от 15 000 до 50 000 рублей в зависимости от объёма работ; окончательная смета фиксируется в договоре. Наши клиенты экономят до 40% времени на доработках по сравнению с самостоятельной кастомизацией. На все работы даём гарантию 1 год. Команда — сертифицированный партнёр 1С-Битрикс с опытом более 10 лет и более 50 реализованных интернет-магазинов. Используем только лицензионное ПО.
Типичные технические просчёты при кастомизации
- Шаблон не скопирован в
/local— при обновлении ядра изменения пропадут. - Новый шаг не добавлен в
orderAjax.steps— кнопка «Далее» не появляется. - Не обработано событие
onSaleOrderAjaxStepChangeдля условного перехода — пользователь застревает на шаге. - Не учтена фискализация (54-ФЗ) при изменении шагов — чеки не проходят. Настраиваем передачу данных на АТОЛ Онлайн или аналоги.
Перед началом работ проверяем соответствие требованиям Wikipedia: 1С-Битрикс и AJAX.
Свяжитесь с нами — оценим проект за 1 день. Получите консультацию и дорожную карту. Напишите нам — мы настроим пошаговое оформление заказа под ваши задачи.







