Зоны доставки
Зоны доставки
Функциональность позволяет настраивать зоны доставки и регулировать видимость даты отгрузки "Сегодня" в соответствии с временем оформления заказа и настройками зон доставки. Включается опцией Заказы: учитывать зоны адресов доставки:
0 - Нет
1 - Учитывать, суммировать с временем отгрузки
2 - Учитывать, заменять время отгрузки
3 - Заменять время отгрузки, учитывать исключенные дни недели
Работает при включенной опции "Корзина: показывать дату отгрузки".
Настройка зон в ПУ
При включении опции появляется новый раздел "Настройки"-"Заказы"-"Зоны адресов", в котором можно настроить зоны адресов и время крайнее оформления заказа для каждого дня недели, при котором будет доступен вариант даты отгрузки "Сегодня".

- Название зоны.
- Минимальный срок доставки. Для определения доступности даты отгрузки "Сегодня" и других дней недели к сегодняшней дате прибавляется минимальный срок зоны, к которой привязан выбранный адрес доставки.
- Крайнее время оформления заказа на мин. дату доставки. Время до которого отображается "Сегодня" в датах отгрузки для зоны.
- Доступность дня недели для отгрузки. Выключенный тоглер исключает данный день недели в датах отгрузки для зоны.
В карточках клиентов при редактировании адресов доставки появляется выбор зон доставки из списка:

Работа в корзине
Клиент выбирает адрес доставки.
-
Система проверяет, есть ли зона.
-
Если есть, проверяет, надо ли сбросить дедлайн позиции:
сброс дедлайна (дедлайн = 0) происходит, когда значение опции Заказы: учитывать зоны адресов доставки: равно 2 или 3 (заменять время отгрузки... ).
-
Потом, если сегодняшний день включен для зоны и время ≤ "Крайнее время оформления заказа на мин. дату доставки", то "Сегодня" доступно. Если скрываем "Сегодня", добавляем 1 день к дедлайну.
-
Потом, если у зоны заполнен "Мин. срок доставки", увеличиваем имеющийся дедлайн на указанный срок.
-
Потом возвращаем даты отгрузки, начиная от получившегося дедлайна:
- Если не равна "3 - Заменять время отгрузки, учитывать исключенные дни недели", возвращаем все даты от дедлайна.
- Если равна "3 - Заменять время отгрузки, учитывать исключенные дни недели", возвращаем даты от дедлайна, кроме исключенных дней (колонка "Доступность дня недели для отгрузки").
- Полученные даты ограничиваем по опции "Корзина: период отгрузки".