Расчет стоимости доставки относительно МКАД (г. Москва) и КАД (г. Санкт-Петербург)
Модуль добавляет в систему две службы доставки, позволяющих рассчитывать стоимость доставки относительно МКАД для г. Москва и КАД для г. Санкт-Петербург. Для этого модуль использует информацию от сервиса Dadata. С тарифами сервиса можно ознакомиться на сайте.
Отличительной особенностью данного модуля является наличие возможности использования двух вариантов тарификации:
расчет стоимости доставки по цене за километр
расчет стоимости доставки по таблице дистанций. Например, разная стоимость для дистанций — от 0 до 20 км, от 21 до 40 км.
Также в модуле предусмотрена возможность влиять на алгоритм расчета, когда бизнес-логикой магазина предусмотрен нестандартный расчет стоимости доставки. Например, в пределах МКАД стоимость доставки составляет 300 р., но при сумме заказа больше 3500 р. - бесплатно.
Модуль полностью совместим со стандартным шаблоном компонента sale.order.ajax. Если у Вас на сайте используется кастомизированный шаблон, то может потребоваться доработка.
[COLOR=#ff0000]Обязательным условием для работоспособности модуля является наличие установленного расширения curl для php![/COLOR]
Дополнительные услуги
Единственное готовое решение для запуска множества маркетплейсов с одной панелью управления
- Комплект CS-Cart + UniTheme — это сочетание мощнейшей функциональности, продуманного до мельчайших деталей дизайна и профессиональной SEO-оптимизации.
- Ваш интернет-магазин будет выглядеть так же современно и стильно, как интернет-магазины гигантов рынка. Достаточно просто сменить логотип.
- Установите модуль из Маркетплейс.
- Зарегистрируйтесь в сервисе Dadata.
- В настройках модуля Настройки->Настройки продукта->Настройки модулей->Расчет стоимости доставки относительно МКАД (г. Москва) и КАД (г. Санкт-Петербург) на вкладке «Интеграция с Dadata» укажите ключ API и секретный ключ, которые Вы можете взять в личном кабинете сервиса Dadata.
- В меню Магазин->Настройки->Службы доставки нажмите кнопку «Добавить» и выберите необходимую службу доставки для МКАД или КАД.
- В открывшемся окне на вкладке «Общие настройки» при необходимости измените название и описание службы доставки. На вкладке «Настройка обработчика» укажите цену доставки внутри МКАД (КАД). Если планируется простой расчет с ценой за километр, то укажите цену за километр. Если планируется тарификация по дистанциям, то отметьте соответствующий чекбокс.
- Если на предыдущем шаге при добавлении службы доставки был отмечен чекбокс «Рассчитывать стоимость доставки на основе таблицы дистанций от МКАД (КАД)», то перейдите в настройки дистанций доставки Магазин->Настройки->МКАД (КАД) — стоимость доставки и добавьте цены для дистанций от МКАД (КАД)
- Готово! Модуль настроен.
[COLOR=#000000]OnDeliveryInMkadCalculated – сработает, когда стоимость доставки внутри МКАД рассчитана[/COLOR]
[COLOR=#000000]OnDeliveryOutMkadDistanceCalculated — сработает, когда стоимость доставки за МКАД на основе таблицы дистанций рассчитана[/COLOR]
[COLOR=#000000]OnDeliveryOutMkadForKmCalculated — сработает, когда стоимость доставки за МКАД на основе цены за километр рассчитана[/COLOR]
[COLOR=#000000]OnDeliveryInKadCalculated – сработает, когда стоимость доставки внутри КАД рассчитана[/COLOR]
[COLOR=#000000]OnDeliveryOutKadDistanceCalculated — сработает, когда стоимость доставки за КАД на основе таблицы дистанций рассчитана[/COLOR]
[COLOR=#000000]OnDeliveryOutKadForKmCalculated – сработает, когда стоимость доставки внутри КАД рассчитана[/COLOR]
[COLOR=#000000]Все события принимают на вход 3 параметра:[/COLOR]
[COLOR=#000000]$order – экземпляр класса Bitrix\Sale\Order для текущего заказа[/COLOR]
[COLOR=#000000]$arAddress – массив с параметрами адреса, полученными от сервиса dadata.ru. Подробнее https://dadata.ru/api/clean/address/#response[/COLOR]
[COLOR=#000000]&$price – рассчитанная стоимость[/COLOR]
[COLOR=#000000]Приведем пример, как повлиять на рассчитанную стоимость доставки. Допустим, при стоимости заказа более 3500 руб. доставка внутри МКАД должна быть бесплатной. Для решения задачи в файле /bitrix(local)/php_interface/init.php напишем следующий код:[/COLOR]
[CODE]Bitrix\Main\EventManager::getInstance()->addEventHandler("tmg.kaddelivery", "OnDeliveryInMkadCalculated", "OnDeliveryInMkadCalculatedHandler"); function OnDeliveryInMkadCalculatedHandler ($order, $arAddress, &$price) { if ($order->getPrice() > 3500) { $price = 0; } } [/CODE]