Умная система выбора даты доставки для интернет-магазина на 1С-Битрикс

Автоматизация процесса выбора времени доставки с учетом бизнес-правил и ограничений

Обзор проекта

Задача

Реализовать систему выбора даты доставки для курьерской службы с учетом:

  • Минимальной суммы заказа от 5000 руб.
  • Ограничений по времени (пятница после 18:00)
  • Разных временных окон для будней и выходных
  • Автоматического скрытия/показа блока
Решение

Разработана динамическая система на JavaScript с:

  • Автоматическим расчетом доступных дат
  • Интеграцией со стандартным компонентом заказа
  • Валидацией бизнес-правил
  • Красивым UI с плашками выбора

Техническая реализация

Архитектура решения

Основные компоненты системы:
1. JavaScript модуль в order_ajax.js
2. Свойство заказа ORDER_PROP_69
3. Модификация шаблона подтверждения
4. Бизнес-логика расчета дат
Ключевые функции JavaScript
generateAvailableDeliveryDates()
toggleCourierDeliveryDateBlock()
setSelectedDeliveryDate()
shouldShowDeliveryDateBlock()
isCourierDelivery()
Бизнес-правила
  • Пятница после 18:00 → исключаем выходные
  • Четверг → завтра + выходные + понедельник
  • Выходные → понедельник/вторник + след. выходные
  • Будни → стандартный набор дат

Примеры кода

Генерация дат для пятницы после 18:00
generateDatesForFridayAfter18: function(now) {
  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;
}
Проверка условий показа блока
shouldShowDeliveryDateBlock: function() {
  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;
}

Этапы внедрения

1
Создание свойства заказа

Добавление свойства ORDER_PROP_69 типа "Строка" для хранения выбранной даты доставки

2
Модификация JavaScript

Добавление функций в order_ajax.js для динамического отображения блока выбора дат

3
Интеграция с UI

Создание плашек выбора даты и их стилизация в соответствии с дизайном сайта

4
Обработка на бэкенде

Модификация шаблона подтверждения заказа для отображения выбранной даты

Результаты внедрения

100%

Автоматизация процесса выбора даты

0

Ошибок при расчете доступных дат

↑ 15%

Удовлетворенность клиентов

Используемые технологии

1С-Битрикс
CMS
JavaScript
Frontend
PHP 8.2
Backend
Bootstrap 5
UI Framework

Итог

Реализована полностью автоматизированная система выбора даты доставки, которая:

  • Учитывает все бизнес-правила компании
  • Интегрирована в стандартный процесс оформления заказа
  • Обеспечивает удобный пользовательский интерфейс
  • Легко масштабируется для новых правил и условий
Количество показов: 20


Реклама: ООО «КЛАУДПЭЙМЕНТС». ИНН 7708806062. ERID: CQH36pWzJqCRJ4UXeNjXpDqc5rqRHP2xLyH2ojpuzzBdYG
Реклама: ИП Попович А.И. ИНН: 231537677964. ERID: CQH36pWzJqCRJ4UXZAPx4DUtAuR68f7j7SEtAw8y5oHN14

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.