Delivery Time Slot Configuration in 1C-Bitrix
Selecting a delivery time window — "10:00–14:00", "14:00–18:00", "18:00–22:00" — is not implemented through standard delivery service settings in 1C-Bitrix but rather via order properties or a custom checkout form. A standard delivery service does not have a built-in slot mechanism — this is a widespread misconception.
Implementation via Order Property
The simplest option is to add an order property of type "List":
Store → Settings → Order Properties → Add:
- Name: "Delivery Time Slot"
-
Code:
DELIVERY_TIME - Type: List
-
Values:
10:00–14:00,14:00–18:00,18:00–22:00
The property is linked to a specific delivery service via a condition in the checkout component. In the standard sale.order.ajax component, the property is displayed when the required service is selected via a JS handler.
Dynamic Slot Management
A real-world scenario: each slot has limited capacity — 10 orders per time window. Implementation via a highload block:
| Field | Type | Description |
|---|---|---|
UF_DATE |
Date | Delivery date |
UF_SLOT |
String | Time window (10:00–14:00) |
UF_CAPACITY |
Number | Maximum orders |
UF_BOOKED |
Number | Booked count |
When a date and slot are selected in the cart — an AJAX request checks availability:
$entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity('DeliverySlots');
$slots = $entity::getList([
'filter' => [
'UF_DATE' => $date,
'<=UF_BOOKED' => 'UF_CAPACITY - 1',
],
'select' => ['UF_SLOT', 'UF_CAPACITY', 'UF_BOOKED'],
]);
After the order is confirmed — UF_BOOKED is incremented within a transaction to prevent double-booking.
Integration with the Checkout Interface
For React/Vue checkout, slots are loaded via a dedicated API endpoint. The component renders available slots as buttons or a select — unavailable slots are greyed out and excluded from the server-side result set.
Setup Timeline
| Option | Timeline |
|---|---|
| Static list via order property | 2–4 hours |
| Dynamic slots with capacity limits | 1–2 days |
| + Integration with courier calendar | 2–4 days |







