Модуль добавляет в интернет-магазин службы доставки с расчётом стоимости по адресу клиента. Адрес уточняется через сервис DaData: подсказки при вводе и определение координат. Тарифы DaData опубликованы на сайте сервиса.
Доступны три службы:
- МКАД — стоимость относительно Московской кольцевой автодороги;
- КАД — стоимость относительно кольцевой автодороги Санкт-Петербурга;
- Зоны на карте — фиксированная цена, если адрес попадает в полигон, который администратор нарисовал в админке.
Тарификация МКАД и КАД
- цена за километр за пределами кольца;
- таблица дистанций — разная стоимость для диапазонов, например от 0 до 20 км и от 21 до 40 км.
Можно задать стоимость доставки внутри кольца и при необходимости прибавлять её к цене за пределами МКАД или КАД.
Произвольные зоны
Функция выключена по умолчанию. После включения в настройках модуля администратор рисует зоны на Яндекс.Карте, задаёт название, цвет и цену. На оформлении заказа модуль берёт координаты адреса из DaData и определяет, в какую зону он попал. Если адрес вне всех зон, можно показать фиксированную цену.
Для рисования зон в админке нужен ключ JavaScript API Яндекс.Карт.
Нестандартная логика магазина
Расчёт можно дополнить своими обработчиками событий. Типичный пример: внутри МКАД доставка 300 ₽, а при сумме заказа от 3500 ₽ — бесплатно.
Модуль совместим со стандартным шаблоном компонента sale.order.ajax. Если шаблон оформления заказа сильно переработан, может понадобиться доработка.
ОБЯЗАТЕЛЬНЫЕ УСЛОВИЯ ДЛЯ КОРРЕКТНОЙ РАБОТЫ МОДУЛЯ
- в PHP включено расширение curl;
- на счёте DaData положительный баланс — тарифицируется каждый запрос;
- в свойствах заказа есть свойство с флагом «Является адресом», его поле выведено на странице оформления заказа;
- если модуль в демо-режиме, демо-период не должен быть просрочен;
- для зон: опция включена в настройках модуля и указан ключ JavaScript API Яндекс.Карт.
- В настройках модуля вкладка «Зоны доставки»: включение функции (по умолчанию выключена), ключ JavaScript API Яндекс.Карт, центр карты
- Администратор рисует полигоны зон с фиксированной ценой; обзорная карта на списке зон
- Новая служба доставки определяет зону по координатам адреса DaData и считает стоимость
- Вне зон — фиксированная цена или сообщение «по согласованию»
- Таблица зон и файлы админки/обработчика/JS копируются при обновлении без переустановки модуля
- Подсказки адресов ограничены выбранным свойством типа «Местоположение»
- При смене местоположения область поиска обновляется
- Добавлена настройка: при отсутствии поля местоположения ограничивать подсказки городом магазина из модуля «Интернет-магазин»
- Исправлены CSRF/XSS в админке тарифов, open redirect в настройках; API-ключ DaData убран с фронтенда (серверный proxy)
- Исправлен proxy подсказок: endpoint status/address и корректная работа suggest без пустого списка
- Для Москвы/Московской области и СПб/Ленинградской области подсказки включают оба региона
- Убраны ограничения на поиск адресов только в пределах Московской и Ленинградской областей
- Убрана нулевая цена, если расчет доставки еще не производился
- Небольшое исправление расчета доставки
- Критическое исправление
- Добавлена настройка отключения инпута ввода адреса в блоке "Доставка"
- Устранена ошибка подключения класса DeliveryHelper в обработчиках служб доставки при истечении демо-периода
- Убрано лишнее подключение обработчиков Dadata в административной части сайта
- Важные исправления для совместимости с некоторыми готовыми решениями от партнеров
- Добавлена настройка учета стоимости доставки внутри МКАД (КАД), в случае, если адрес находится за МКАД (КАД)
- Добавлена настройка подключения Jquery
- Добавлена настройка адреса страницы оформления заказа (при ее установке библиотеки модуля будут подключаться только на этой странице)
- Мелкие исправления
- Критические исправления
- Незначительные исправления
- Незначительное исправление подключения библиотеки Dadata
1. Установите модуль из Маркетплейса.
2. Зарегистрируйтесь в сервисе DaData и получите API-ключ и секретный ключ в личном кабинете.
3. Откройте Настройки → Настройки продукта → Настройки модулей → Расчёт доставки: МКАД, КАД и произвольные зоны. На вкладке «Интеграция с Dadata» укажите API-ключ и секретный ключ.
В свойствах заказа должно быть свойство с флагом «Является адресом», его поле нужно вывести на страницу оформления заказа.
Служба МКАД или КАД
- Перейдите в Магазин → Настройки → Службы доставки, нажмите «Добавить» и выберите службу для МКАД или КАД.
- На вкладке «Общие настройки» при необходимости измените название и описание.
- На вкладке «Настройка обработчика» укажите цену доставки внутри кольца. Для расчёта за километр заполните цену за километр. Для таблицы дистанций отметьте чекбокс «Рассчитывать стоимость доставки на основе таблицы дистанций».
- Если включена таблица дистанций, откройте Магазин → Настройки → МКАД — стоимость доставки или КАД — стоимость доставки и задайте цены по диапазонам (например, 0–20 км и 21–40 км).
Служба по зонам на карте
- В настройках модуля на вкладке «Зоны доставки» включите расчёт по зонам и укажите ключ JavaScript API Яндекс.Карт (не ключ Геокодера и не ключ DaData). Ключ получают в кабинете разработчика Яндекса. При необходимости задайте центр карты.
- Сохраните настройки. В меню появится пункт Магазин → Настройки → Зоны доставки. Нарисуйте полигоны, укажите название и цену каждой зоны.
- В Магазин → Настройки → Службы доставки добавьте службу «Доставка по зонам на карте». На вкладке «Настройка обработчика» выберите, что делать, если адрес вне зон: фиксированная цена или сообщение (например, «по согласованию»).
Готово: модуль настроен.
Разработчикам
Можно изменить уже рассчитанную стоимость через события модуля tmg.kaddelivery:
- OnDeliveryInMkadCalculated — стоимость внутри МКАД;
- OnDeliveryOutMkadDistanceCalculated — за МКАД по таблице дистанций;
- OnDeliveryOutMkadForKmCalculated — за МКАД по цене за километр;
- OnDeliveryInKadCalculated — стоимость внутри КАД;
- OnDeliveryOutKadDistanceCalculated — за КАД по таблице дистанций;
- OnDeliveryOutKadForKmCalculated — за КАД по цене за километр;
- OnDeliveryZoneCalculated — стоимость по зоне на карте (в том числе если адрес вне зон).
События МКАД и КАД получают три аргумента:
- $order — экземпляр Bitrix\Sale\Order;
- $arAddress — ответ DaData по адресу, см. документацию clean/address;
- &$price — рассчитанная стоимость, её можно изменить.
OnDeliveryZoneCalculated получает четвёртый аргумент $zone — строка найденной зоны или null, если адрес вне зон. Порядок аргументов: $order, $arAddress, $zone, &$price.
Пример: внутри МКАД доставка бесплатна, если сумма заказа больше 3500 ₽. В файле /bitrix/php_interface/init.php или /local/php_interface/init.php:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'tmg.kaddelivery',
'OnDeliveryInMkadCalculated',
'OnDeliveryInMkadCalculatedHandler'
);
function OnDeliveryInMkadCalculatedHandler($order, $arAddress, &$amp;price)
{
if ($order->getPrice() > 3500) {
$price = 0;
}
} |
Для покупки товара в нашем интернет-магазине выберите понравившийся товар и добавьте его в корзину. Далее перейдите в Корзину и нажмите на «Оформить заказ» или «Быстрый заказ».
Если оформляете быстрый заказ: напишите ФИО, телефон и e-mail. Вам перезвонит менеджер и уточнит условия заказа. По результатам разговора вам придет подтверждение оформления товара на почту или через СМС. Теперь останется только ждать доставки и радоваться новой покупке.
Оформление заказа в стандартном режиме выглядит следующим образом. Заполняете полностью форму по последовательным этапам: адрес, способ доставки, оплаты, данные о себе. Советуем в комментарии к заказу написать информацию, которая поможет курьеру вас найти. Нажмите кнопку «Оформить заказ».
Оплачивайте покупки удобным способом. В интернет-магазине доступно 3 варианта оплаты:
- Наличные при самовывозе или доставке курьером. Специалист свяжется с вами в день доставки, чтобы уточнить время и заранее подготовить сдачу с любой купюры. Вы подписываете товаросопроводительные документы, вносите денежные средства, получаете товар и чек.
- Безналичный расчет при самовывозе или оформлении в интернет-магазине: карты МИР. Чтобы оплатить покупку на сайте, система перенаправит вас на сервер платежной системы. Здесь нужно ввести номер карты, срок действия и имя держателя.
- Электронные системы при онлайн-заказе: ЮMoney. Для совершения покупки система перенаправит вас на страницу платежного сервиса. Здесь необходимо заполнить форму по инструкции.
- Безналичная оплата на наш расчетный счет по выставленному счету.
Экономьте время на получении заказа. В интернет-магазине доступно 4 варианта доставки:
- Электронная поставка - все необходимые сведения о лицензии, праве пользования, кодах, ключах и др. высылаются покупателю на его e-mail.
- Курьерская доставка. Когда товар будет отправлен с нашего склада, Вам придет уведомление. В день доставки с Вами заблаговременно свяжется курьер для уточнения времени и деталей доставки. Доставка производится "до двери". Осмотрите упаковку на целостность и соответствие указанной комплектации.
- Постамат. Когда заказ поступит на точку, на Ваш телефон или e-mail придет уникальный код. Заказ нужно оплатить в терминале постамата. Срок хранения — 3 дня.
- Доставка Почтой России. Когда заказ придет в отделение, на Ваш адрес придет извещение о посылке. Перед оплатой Вы можете оценить состояние коробки: вес, целостность. Вскрывать коробку самостоятельно Вы можете только после оплаты заказа. Один заказ может содержать не больше 10 позиций и его стоимость не должна превышать 100 000 р.
Дополнительная информация.
Изучите полный алгоритм продления лицензий на модули 1С-Битрикс: Маркетплейс, включая активацию льготных купонов. Мы детально разбираем все условия: обязательный 30-дневный срок для сохранения максимальной выгоды, пропорциональное ценообразование (12,5%, 25%, 50% от цены модуля) и ограничение по минимальной сумме в 500 рублей. Этот гайд поможет вам эффективно планировать бюджет и гарантировать актуальность вашего проекта.