Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!

Расчет стоимости доставки через внешний калькулятор

Расчет стоимости доставки через внешний калькулятор
Материал добавлен: 14 Декабря 2017
Материал обновлен: 29 Апреля 2025

В интернет-магазине uShop, кроме вычисления стоимости доставки по матрице или через сервис «Яндекс.Доставка», есть возможность подключать собственные алгоритмы расчёта. Для этого используется модуль «Внешний калькулятор»:

Активация модуля

Чтобы начать пользоваться модулем:

  1. Включите опцию «Использовать модуль расчёта стоимости доставки».
  2. Выберите в ней значение «Внешний калькулятор».
  3. Нажмите кнопку «Сохранить».

Как работает внешний калькулятор

Когда пользователь выбирает способ доставки с внешним калькулятором, в форме заказа учитывается скрытое поле (шаблон «Страница служебных форм», $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;
  • Для пользователей определённой группы;
  • В зависимости от указанного города.

Готовые решения

Расчет стоимости доставки через внешний калькулятор