Каталог решений

Покупка продления купона

Продолжительность:
Общая сумма:
0 руб.
Ваш запрос успешно отправлен!

Я согласен с условиями активации продлений
Продлить
Продолжить покупки

Стоимость доставки по зонам

Модуль позволяет рассчитать стоимости доставки, на основе Яндекс.Карт, в зависимости от района(зоны) и удаленности от склада.Работать с модулем очень просто:создаете пункты отправления;создаете зоны (районы);назначаете стоимость для каждой зоны;активируете модуль доставки;готово #####Зоны доставки:Зоны доставки - главная особенность модуля.Пользователь создает зоны, в которые магазин доставляет заказы. За пределы этих областей доставка не осуществляется.#####Создание и редактирование:- Указывается область на Яндекс.Карте при помощи полигонов;    #####Импорт:- Для упрощения создания зон, можно воспользоваться импортом из файла 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/" для кастомизации расчета доставки.

Стоимость доставки по зонам

Стоимость доставки по зонам

Скриншоты
Описание

Технические данные

Опубликовано:
27.04.2018
Обновлено:
26.08.2022
Версия:
1.6.2
Установлено:
500 - 999 раз
Подходящие редакции:
«Малый бизнес», «Бизнес»
Адаптивность:
Да
Поддержка Композита:
Да
Совместимо с Сайты24
Нет
Совместимо с PHP 8.1
Да

Пользовательское соглашение

Описание

Модуль позволяет рассчитать стоимости доставки, на основе Яндекс.Карт, в зависимости от района(зоны) и удаленности от склада.
Работать с модулем очень просто:
  1. создаете пункты отправления;
  2. создаете зоны (районы);
  3. назначаете стоимость для каждой зоны;
  4. активируете модуль доставки;
  5. готово :)


#####Зоны доставки:
Зоны доставки - главная особенность модуля.
Пользователь создает зоны, в которые магазин доставляет заказы. За пределы этих областей доставка не осуществляется.

#####Создание и редактирование:
- Указывается область на Яндекс.Карте при помощи полигонов;
   
#####Импорт:
- Для упрощения создания зон, можно воспользоваться импортом из файла 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/" для кастомизации расчета доставки.
Отзывы ()
100 4
Обсуждения (34)
1 - 5 из 34
Что нового
1.6.2 (26.08.2022) Теперь после поиска по адресу точка устанавливается автоматически
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) Исправлено: Ошибка в запросе выборки кастомного склада
1.4.2 (11.10.2019) Исправлено: Быборка регионов и складов по фильтру
1.4.1 (03.10.2019) Исправлено: Неправильная инициализация JS компонента.
1.4.0 (02.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. Добавлены ценовые пороги регионам: - Начиная с какой стоимости заказа доставка по регионы бесплатна; - Начиная с какой стоимости заказа регион доступен.
1.0.8 (24.07.2018) Исправление ошибок обновлений, переделка верстки публичного окошка CHANGES: События: OnYandexDeliveryCalculatePrice(&$price, $arProps) - при расчете цены OnAfterYandexDeliveryCalculatePrice(&$price, $arOrder, $arProps) - после расчета цены
1.0.7 (18.07.2018) 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: Расчет доставки при окончании демо-версии
Установка
Установка
Для установки модуля в ваш сайт нажмите "Установить" и следуйте указаниям мастера установки модулей.

После установки
Далее переходим в настройки модуля:
Настройки → Настройки продукта → Настройки модулей → Стоимость доставки в зависимости от удаленности

Выполняем необходимые настройки и смело переходим:
Магазин → Настройки → Службы доставки и добавляем новую автоматизированную службу доставки с обработчиком "Доставка Yandex delivery [ctweb.yandexdelivery]".

Внимание
В ходе последних событий у многих перестала работать карта из-за превышения количества запросов к API Яндекс.Карт.

Решение:
1. Установите обновление 1.4.0 или выше.
2. В настройках модуля "Управление структурой" нужно задать API KEY для Яндекс.Карт, который можно получить здесь: https://developer.tech.yandex.ru/
3. В шаблоне оформления заказа bitrix:sale.order.ajax есть подключение карты, но оно не использует данный ключ (ошибка Битрикса - для карт Google ключ подключается), а наш компонент из-за этого не может подключить карту с ключом (на отдельной странице подключается нормально). Нужно изменить подключение примерно так:

[/bitrix/templates/<Ваш шаблон сайта>/components/bitrix/sale.order.ajax/.default/template.php]

- $this->addExternalJs($templateFolder.'/scripts/yandex_maps.js');
- ?>
- <sc ript src="<?=$scheme?>://api-maps.yandex.ru/2.1.50/?load=package.full&lang=<?=$locale?>"></sc ript>

+ $this->addExternalJs($templateFolder.'/scripts/yandex_maps.js');
+ $apiKey = htmlspecialcharsbx(Main\Config\Option::get('fileman', 'yandex_map_api_key', ''));
+ ?>
+ <sc ript src="<?=$scheme?>://api-maps.yandex.ru/2.1.50/?apikey=<?=$apiKey?>&load=package.full&lang=<?=$locale?>"></sc ript>

Обратите внимание, что желательно использовать платную версию ключа, чтобы ключ не был заблокирован (см. условия использования: https://tech.yandex.ru/maps/commercial/doc/concepts/about-enterprise-docpage/)
Поддержка
Техническая поддержка оказывается по будням, с 05:00 до 16:00(время московское).
Обращения принимаются на электронную почту: support@ctweb.ru.

Другие решения разработчика

Решение добавлено в корзину

Перейдите в корзину и оформите заказ или продолжите покупки
Перейти в корзину
Продолжить покупки