Модуль позволяет рассчитать стоимости доставки, на основе Яндекс.Карт, в зависимости от района(зоны) и удаленности от склада. Работать с модулем очень просто:
создаете пункты отправления;
создаете зоны (районы);
назначаете стоимость для каждой зоны;
активируете модуль доставки;
готово
#####Зоны доставки: Зоны доставки - главная особенность модуля. Пользователь создает зоны, в которые магазин доставляет заказы. За пределы этих областей доставка не осуществляется.
#####Создание и редактирование: - Указывается область на Яндекс.Карте при помощи полигонов;
#####Импорт: - Для упрощения создания зон, можно воспользоваться импортом из файла GEO JSON - Можно импортировать сразу несколько зон, либо для конкретной зоны; - Алогритм импорта ищет все объекты geometry в файле импорта со свойством type = "Polygon" - При импорте можно указать какие области импортировать (предлагается выбор)
#####Цены: - Можно указать фиксированную цену доставки в зону (Минимальная цена); - Можно указать цену доставки за километр (расстояние рассчитывается по проорженному пути); - Можно указать минимальную цену заказа для которой зона доставки будет доступна; - Можно указать цену, для которой доставка будет бесплатной;
#####Прочее: - Можно привязать зону доставки к определенным складам. Доставка будет рассчитываться только от них; - Для зоны доставки можно указать свой цвет; - Зону можно деактивировать, если она пока не нужна;
#####Склады: Есть 2 режима складов: 1. Склады магазина 2. Кастомные склады
Режими различаются только местом хранения информации о складах: кастомные склады хранятся в таблице модуля. Склады нужны для рассчета ближайшего склада к указанной пользователем точке.
#####Шаблоны: Для вывода карты используется компонент ctweb:yandexdelivery.
По-умолчанию есть 2 шаблона: 1. .default - Вы можете добавить его на любую страницу; - На страницу можно помещать несколько компонентов одновременно. 2. order - Автоматически добавляется на странице оформления заказа компонента sale.order.ajax; - Для указания параметров в шаблоне order, воспользуйтесь файлом parameters.php в шаблоне компонента;
Кастомизация: - Вы можете скопировать шаблон и поменять его верстку и стили так, как Вам нужно; - Единственное условие - проставлять для тегов определенные ID - они описаны в component.php и вверху шаблона; - В стандартных шаблонах можно найти примеры событий, на которые подключить выполнение функций; - Так же, можно расширять BX.Ctweb.YandexDelivery.Controller в script.js шаблона (пример в шаблоне order);
#####Расчет: - Модуль предоставляет событие OnYandexDeliveryCalculatePrice($distance, $regionID, $storageID) для модификации результата; - В настройках модуля можно указать свойство заказа, куда будет записана информация о выбранной пользователем точки. Создайте свойство типа "Строка" для заказа. В этом свойстве указывается "Название склада", "Адрес точки" и "Координаты точки"; - Можно скопировать "/bitrix/modules/ctweb.yandexdelivery/tools/delivery_ctwebyandexdelivery.php" в "/bitrix/php_interface/include/sale_delivery/" для кастомизации расчета доставки.