Умная система выбора даты доставки для интернет-магазина на 1С-Битрикс
Автоматизация процесса выбора времени доставки с учетом бизнес-правил и ограничений
Обзор проекта
Задача
Реализовать систему выбора даты доставки для курьерской службы с учетом:
- Минимальной суммы заказа от 5000 руб.
- Ограничений по времени (пятница после 18:00)
- Разных временных окон для будней и выходных
- Автоматического скрытия/показа блока
Решение
Разработана динамическая система на JavaScript с:
- Автоматическим расчетом доступных дат
- Интеграцией со стандартным компонентом заказа
- Валидацией бизнес-правил
- Красивым UI с плашками выбора
Техническая реализация
Архитектура решения
1. JavaScript модуль в order_ajax.js
2. Свойство заказа ORDER_PROP_69
3. Модификация шаблона подтверждения
4. Бизнес-логика расчета дат
Ключевые функции JavaScript
toggleCourierDeliveryDateBlock()
setSelectedDeliveryDate()
shouldShowDeliveryDateBlock()
isCourierDelivery()
Бизнес-правила
- Пятница после 18:00 → исключаем выходные
- Четверг → завтра + выходные + понедельник
- Выходные → понедельник/вторник + след. выходные
- Будни → стандартный набор дат
Примеры кода
Генерация дат для пятницы после 18:00
var dates = [];
// Понедельник (+3 дня)
var monday = new Date(now);
monday.setDate(monday.getDate() + 3);
dates.push({
code: 'next_monday',
title: 'Понедельник',
date: monday,
timeRange: '9:00-19:00'
});
// ... остальные дни
return dates;
}
Проверка условий показа блока
var selectedDelivery = this.getSelectedDelivery();
if (!selectedDelivery) return false;
// Проверка ID курьерской доставки
var isCourierDelivery = [3].includes(
parseInt(selectedDelivery.ID)
);
// Проверка суммы заказа
var orderTotal = parseFloat(
this.result.TOTAL.ORDER_TOTAL_PRICE
) || 0;
return isCourierDelivery && orderTotal >= 5000;
}
Этапы внедрения
Создание свойства заказа
Добавление свойства ORDER_PROP_69 типа "Строка" для хранения выбранной даты доставки
Модификация JavaScript
Добавление функций в order_ajax.js для динамического отображения блока выбора дат
Интеграция с UI
Создание плашек выбора даты и их стилизация в соответствии с дизайном сайта
Обработка на бэкенде
Модификация шаблона подтверждения заказа для отображения выбранной даты
Результаты внедрения
Автоматизация процесса выбора даты
Ошибок при расчете доступных дат
Удовлетворенность клиентов
Используемые технологии
1С-Битрикс
CMSJavaScript
FrontendPHP 8.2
BackendBootstrap 5
UI FrameworkИтог
Реализована полностью автоматизированная система выбора даты доставки, которая:
- Учитывает все бизнес-правила компании
- Интегрирована в стандартный процесс оформления заказа
- Обеспечивает удобный пользовательский интерфейс
- Легко масштабируется для новых правил и условий
