Модуль позволяет рассчитать стоимости доставки, на основе Яндекс.Карт, в зависимости от района(зоны) и удаленности от склада. Работать с модулем очень просто:
создаете пункты отправления;
создаете зоны (районы);
назначаете стоимость для каждой зоны;
активируете модуль доставки;
готово
#####Зоны доставки: Зоны доставки - главная особенность модуля. Пользователь создает зоны, в которые магазин доставляет заказы. За пределы этих областей доставка не осуществляется.
#####Создание и редактирование: - Указывается область на Яндекс.Карте при помощи полигонов;
#####Импорт: - Для упрощения создания зон, можно воспользоваться импортом из файла 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/" для кастомизации расчета доставки.
Установка Для установки модуля в ваш сайт нажмите "Установить" и следуйте указаниям мастера установки модулей.
После установки Далее переходим в настройки модуля: Настройки → Настройки продукта → Настройки модулей → Стоимость доставки в зависимости от удаленности
Выполняем необходимые настройки и смело переходим: Магазин → Настройки → Службы доставки и добавляем новую автоматизированную службу доставки с обработчиком "Доставка Yandex delivery [ctweb.yandexdelivery]".
Внимание В ходе последних событий у многих перестала работать карта из-за превышения количества запросов к API Яндекс.Карт.
Решение: 1. Установите обновление 1.4.0 или выше. 2. В настройках модуля "Управление структурой" нужно задать API KEY для Яндекс.Карт, который можно получить здесь: https://developer.tech.yandex.ru/ 3. В шаблоне оформления заказа bitrix:sale.order.ajax есть подключение карты, но оно не использует данный ключ (ошибка Битрикса - для карт Google ключ подключается), а наш компонент из-за этого не может подключить карту с ключом (на отдельной странице подключается нормально). Нужно изменить подключение примерно так:
Теперь после поиска по адресу точка устанавливается автоматически
1.6.1,
FIX: Исправлены ошибки на PHP8
FIX: Исправлена кодировка некторых файлов
1.6.0,
FIX: Исправлена проблема с компонентом после предыдущего обновления
1.5.9,
CHANGE: Теперь при выборе точки доставки вне зоны можно оформить заказ
1.5.8, 18.12.2020
Исправлена ошибка с подключением нескольких компонентов "ctweb:yandexdelivery" на странице
1.5.7, 03.11.2020
Исправлено: Вернули шаблон компонента
1.5.6, 20.11.2020
Исправлено: Не подключался компонент с картой в оформлении заказа, если на странице уже был компонент bitrix:sale.basket.order.ajax
1.5.5, 19.11.2020
Исправлено: иногда заполнялось свойство "Адрес доставки" другого типа плательщика
1.5.4, 10.11.2020
Исправлено: На многих сайтах пропадала форма в настройках
1.5.3, 22.10.2020
Исправлено: Не работал функционал установки точки по введенному в поиск адресу
1.5.2, 19.10.2020
Добавлено: Можно указать в настройках как буудет выбрана точка на карте: одиночным кликом или двойным
1.5.1, 19.10.2020
Исправлено: При расчете бесплатной доставки на карте показывалась минимальная стоимость
1.5.0, 23.06.2020
Исправлено: теперь можно скопировать класс CDeliveryCtwebYandexDelivery в php_interface/include/sale_delivery/
1.4.9, 19.06.2020
Добавлено: Теперь точка на карте выбирается, если выбрать адрес в поиске
Исправлено: Не выбиралась точка, если цена доставки была меньше настройки Минимальная стоимость заказа.
1.4.8, 01.06.2020
Изменено: Шаблон 'order' компонента теперь использует собственный контроллер.
Изменено: Контроллер в шаблоне 'order' теперь наследует общий котроллер, а не дополняет его
Изменено: Контроллер в шаблоне 'order' теперь называется BX.Ctweb.YandexDelivery.OrderController
Добавлено: Настройка "Поведение кнопки заказа". Теперь можно выбрать: скрывать кнопку "Оформить заказ" или отключать её (при клике будет переводить прокрутку до блока способов доставки) при не выбранной точке
1.4.7, 13.04.2020
Исправлено: Ошибки в изменении DOM-элементов в скрипте компонента
1.4.6, 17.02.2020
Исправлено: Опечатка в предложении "Показать/скрыть другие регионы"
Изменено: Изменено название поля "Бесплатная доставка от" на "Бесплатная доставка от (руб)"
1.4.5, 13.02.2020
Исправлено: Неправильно подключался скрипт карты в админке
1.4.4, 13.02.2020
Исправлено: Размер поля для хранения координат точки склада увеличен до 255 символов. Ура, товарищи!
1.4.3, 15.10.2019
Исправлено: Ошибка в запросе выборки кастомного склада
Исправлено: Подключение API KEY для Яндекс.Карт из модуля "Управление структурой".
1.3.9, 27.08.2019
NEW: Добавлена галочка в редактировании региона "Показать/скрыть другие регионы"
1.3.8, 27.08.2019
FIX: Исправлена возможность фильтровать регионы по складу в компоненте через STORE.*
FIX: Изменена привязка к складам. Больше нет опции "Любой". ПЕРЕСОХРАНИТЕ РЕГИОНЫ
1.3.7, 08.05.2019
FIX: Исправлена ошибка в скрипте, из-за которой были попытки расчета расстояния от складов без точки на карте.
1.3.6, 07.02.2019
FIX: json_encode to Json::encode
FIX: json_decode to Json::decode
1.3.5, 11.12.2018
FIX: Подключение классов выведено в use
1.3.4, 26.11.2018
ADD: Подтверждение удаления кастомного склада/региона во избежание случайного удаления.
1.3.3, 16.11.2018
ADD: Обработка цены теперь во всех шаблонах компонента
1.3.2, 10.11.2018
CHANGE: Теперь регион со значением минимальной цены заказа отображается всегда При выборе такого региона пользователю показывается сообщение, если сумма заказа недостаточна для этого региона.
1.3.1, 17.10.2018
FIX: исправлены некоторые ошибки
1.3.0, 11.10.2018
CHANGES: Изменен компонент и шаблоны. Если Вы копировали шаблон, пожалуйста, посмотрите на новый.
Теперь можно ставить несколько компонентов карты на одной странице!
Используйте события, чтобы добавить свои действия после инициализации карты, расчета цены или получения адреса!
Расширяйте класс контроллера карты, чтобы добавить свой функционал!
Легко меняйте шаблон под Ваш сайт: классы более не используются в контроллере!
FIX: В админке отображаются ID у складов и зон.
1.2.2, 10.09.2018
FIXED region creation bug
1.2.1, 10.09.2018
FIXED some bugs
CHANGED module name
1.2.0, 24.08.2018
Обновления:
Кастомные склады теперь в таблице.
Добавлено описание для региона. Пока не используется, но доступно.
К региону можно привязать склады.
1.1.0, 14.08.2018
Большое обновление.
Обновления:
1. Новый интерфейс настройки регионов в админке.
2. Теперь карту с регионами можно расположить на странице.
3. Доступны события для расчета цены: OnYandexDeliveryCalculatePrice - при любом расчете цены, OnAfterYandexDeliveryCalculatePrice - при расчете цены доставки
4. Шаблоны компонентов более чистые, доступны BX события: yandexdelivery.calculate - при получении рассчитанной цены, yandexdelivery.address_response - при получении адреса точки. Примеры использования в шаблонах.
5. Добавлены ценовые пороги регионам:
- Начиная с какой стоимости заказа доставка по регионы бесплатна;
- Начиная с какой стоимости заказа регион доступен.
NEW: Теперь можно импортировать полигон региона из файла geoJSON (Проверено на файлах из Yandex.Карт).
NEW: Доступно событие OnYandexDeliveryPriceCalculate. Вызывается после рассчета цены, до отправки результата.
1.0.6, 17.07.2018
UPDATE: Оптимизировано время расчета расстояния
UPDATE: Теперь при поиске не ставится точка
1.0.5, 26.04.2018
CHANGE: Теперь при клике за областью всплывает balloon с текстом
CHANGE: Добавлены настройки модуля - тексты для модального окна
CHANGE: Изменена верстка компонента
1.0.4, 23.04.2018
FIX: неизвестная проблема в админке
1.0.3, 19.04.2018
CHANGE: Изменено название модуля
1.0.2, 18.04.2018
FIX: permissions in module settings page
1.0.1, 17.04.2018
FIX: Ошибка в настройках модуля при окончании демо-версии
FIX: Расчет доставки при окончании демо-версии
Техническая поддержка оказывается по будням, с 05:00 до 16:00(время московское). Обращения принимаются на электронную почту: support@ctweb.ru.