Configuring Order Checkout in 1C-Bitrix
The checkout page in Bitrix is managed by the bitrix:sale.order.ajax component. Most often, clients come to us with one of three problems: the delivery address autocomplete is not working, the delivery cost is calculated incorrectly when the city is changed, or the form fails to submit with no error in the console.
Structure of the Order Checkout Component
The bitrix:sale.order.ajax component consists of several parts:
-
Checkout steps — controlled via the
DELIVERY_MODEparameter (SPLIT_DELIVERYfor step-by-step,ONE_PAGEfor single-page) -
Payer profiles — configured in
Online Store → Buyers → Payer Types -
Delivery services — connected in
Online Store → Delivery Services -
Payment systems —
Online Store → Payment Systems
The component template is located in /bitrix/components/bitrix/sale.order.ajax/templates/. When working with a site under a site template, the copy used is in /local/components/bitrix/sale.order.ajax/templates/.
Standard Configuration via the Admin Interface
Order form fields. In Online Store → Settings → Order Properties, configure the fields the buyer fills in during checkout: full name, phone, email, address. For each field, you set the type, whether it is required, and its association with the payer type.
Linking delivery to warehouses. If the store has multiple warehouses (Catalog → Warehouses), configure at checkout which warehouse the item ships from. This affects delivery cost and lead time calculations.
City autocomplete. The component can pull the city from the authenticated user's profile — the UF_CITY field from b_user. For anonymous users — via geolocation from the sale.location module or an external service (DaData, Yandex Maps).
Configuring Order Property Binding to Delivery
A common task is to show the delivery address only when courier delivery is selected, and to show a list of pickup points for click-and-collect. This is configured via component parameters in the template:
// In the sale.order.ajax component template
$arParams['DELIVERY_NO_AJAX'] = 'N'; // update deliveries without page reload
$arParams['USE_PREPAYMENT'] = 'Y'; // prepayment
For conditional field display — via JS events from the component:
BX.addCustomEvent('onSaleOrderAjaxDeliveryChange', function(deliveryId) {
// show/hide fields depending on the selected delivery method
});
Configuration Timeline
Basic checkout configuration (form fields, delivery services, payment systems) — 4–8 hours. If conditional field visibility, geolocation, or API integration with delivery services is required — 1–3 working days.







