Расчет стоимости доставки через внешний калькулятор
В интернет-магазине uShop, кроме вычисления стоимости доставки по матрице или через сервис «Яндекс.Доставка», есть возможность подключать собственные алгоритмы расчёта. Для этого используется модуль «Внешний калькулятор»:
Активация модуля
Чтобы начать пользоваться модулем:
- Включите опцию «Использовать модуль расчёта стоимости доставки».
- Выберите в ней значение «Внешний калькулятор».
- Нажмите кнопку «Сохранить».
Как работает внешний калькулятор
Когда пользователь выбирает способ доставки с внешним калькулятором, в форме заказа учитывается скрытое поле (шаблон «Страница служебных форм», $ORDER_FIELDS$):
<input type="hidden" name="custom_delivery_tax" value="">
Значение атрибута value этого поля прибавляется к стоимости заказа как наценка за доставку.
- Значение записывается в условных единицах магазина и не зависит от выбранной валюты.
- Может иметь отрицательную величину — в этом случае будет вычитаться из стоимости заказа (то есть выступать как скидка).
- Может быть отредактировано администратором на странице заказа.
Пример скрипта вставки наценки
Чтобы наценка отобразилась при оформлении заказа, необходимо записать в скрытое поле значение и обновить форму:
<script>
// переменная для хранения величины наценки
var calcPrice = 0;
// идентификатор способа доставки с внешним калькулятором
var calcDelivery = $('#del-type-1');
// обработчик клика по способу доставки
calcDelivery.on('click', function() {
// логика расчёта calcPrice
// …
// если поле custom_delivery_tax отсутствует
if ($('input[name="custom_delivery_tax"]').length == 0) {
// добавить его
$('#checkout-form').append('<input type="hidden" name="custom_delivery_tax" value="0">');
}
// записать стоимость доставки
$('input[name="custom_delivery_tax"]').val(calcPrice);
// обновить форму заказа
shEvOrd('delivery', calcDelivery);
});
</script>
#del-type-1 — это идентификатор способа доставки (может быть #del-type-1, #del-type-2 и т.д.).
Подключение скрипта из внешнего файла
Эту функцию можно вынести в отдельный файл и подключить его в шаблоне «Страница служебных форм»:
<script src="/js/myCalculator.js"></script> <script>myCalculator($DAY$);</script>
Варианты использования внешнего калькулятора
Возможности реализации внешнего калькулятора зависят только от вашей фантазии и требований магазина. Примеры:
- Для товаров из определённой категории;
- Для товаров с конкретными ID;
- Для пользователей определённой группы;
- В зависимости от указанного города.
