Настройка одностраничного оформления заказа (checkout) 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка одностраничного оформления заказа (checkout) 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка одностраничного оформления заказа (checkout) 1С-Битрикс

Одностраничный checkout — режим ONE_PAGE компонента bitrix:sale.order.ajax. Все блоки (данные покупателя, доставка, оплата) отображаются на одной странице и обновляются через AJAX при изменении значений. Запрос на переход к этому формату обычно возникает после замеров: пошаговый checkout с 3–4 страницами увеличивает отвал на каждом шаге, одностраничный сокращает путь от «Оформить» до «Оплатить».

Подключение режима ONE_PAGE

В параметрах компонента на странице оформления заказа:

$APPLICATION->IncludeComponent(
    'bitrix:sale.order.ajax',
    '',
    [
        'DELIVERY_MODE' => 'ONE_PAGE',
        'SHOW_DELIVERY_PICTURE' => 'Y',
        'SHOW_DELIVERY_DESCRIPTION' => 'N',
        'PAY_FROM_ACCOUNT' => 'N',
        'SHOW_VAT' => 'N',
    ]
);

В режиме ONE_PAGE компонент при изменении любого поля (смена города, выбор службы доставки) отправляет AJAX-запрос и обновляет зависимые блоки — стоимость доставки, доступные платёжные системы.

Настройка AJAX-обновления блоков

В шаблоне одностраничного checkout за AJAX-обновление отвечает объект orderAjax — он инициализируется в order_ajax.php шаблона. При изменении поля «Город» вызывается orderAjax.updateDelivery(), которая:

  1. Запрашивает доступные службы доставки для указанного города через \Bitrix\Sale\Delivery\Services\Manager::getRestrictedObjectsList()
  2. Рассчитывает стоимость каждой через \Bitrix\Sale\Delivery\Services\Base::calculate()
  3. Обновляет блок доставки без перезагрузки страницы

Если расчёт занимает больше 1–2 секунд (например, внешний API СДЭК медленно отвечает) — пользователь видит крутящийся лоадер. Это нормально, но стоит добавить таймаут и кеширование расчётов по коду города и весу корзины.

Типичные проблемы настройки ONE_PAGE

Конфликт с SEO-плагинами. Одностраничный checkout загружает блоки динамически, поэтому некоторые SEO-инструменты не видят контент страницы и добавляют лишние мета-теги. Решение: исключить страницу checkout из индексации через robots.txt и <meta name="robots" content="noindex">.

Потеря данных при F5. При перезагрузке страницы на одностраничном checkout стандартный компонент не восстанавливает введённые данные. Для UX это критично. Решение — сохранение данных формы в localStorage при каждом изменении поля и восстановление при загрузке страницы через JS.

Некорректная работа с несколькими отгрузками. Если в корзине товары с разными условиями доставки, ONE_PAGE некорректно отображает список служб. Это ограничение стандартного компонента — для таких случаев нужна кастомная разработка.

Сроки настройки

Переключение на режим ONE_PAGE и настройка шаблона под дизайн — 1–2 рабочих дня. Добавление localStorage-сохранения, кеширования расчётов доставки и доработки AJAX-логики — 2–4 дня.