Сайт или магазин под ключ от 3500 рублей или помощь по сайту от 500 рублей.
Подробнее

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

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

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

Чтобы начать пользоваться модулем, включите опцию “Использовать модуль расчёта стоимости доставки” и выберите в ней значение “Внешний калькулятор”. После этого нажмите на кнопку “Сохранить”.

Когда пользователь выбирает способ доставки с внешним калькулятором, в форме заказа учитывается скрытое поле (шаблон “Страница служебных форм”, $ORDER_FIELDS$):

<input type="hidden" name="custom_delivery_tax" value="">

Значение атрибута value этого поля прибавится к стоимости заказа в качестве наценки за доставку.

Особенности:

  • значение в поле custom_delivery_tax записывается в условных единицах магазина и не зависит от выбранной пользователем валюты
  • значение может иметь отрицательную величину, таким образом сумма будет вычтена из общей стоимости заказа (в этом случае такса фактически превратится в скидку)
  • значение может быть отредактировано на странице заказа администратором

Чтобы наценка отобразилась при оформлении заказа, необходимо записать в скрытое поле значение и обновить форму заказа:

<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">');
}
// записать стоимость доставки в поле custom_delivery_tax
$('input[name="custom_delivery_tax"]').val(calcPrice);
// обновить форму заказа
shEvOrd('delivery', calcDelivery);
});
</script>

#del-type-1 — идентификатор способа доставки (может быть #del-type-1, #del-type-2, #del-type-3 и так далее).

В данном случае логика расчета может быть реализована на JavaScript или PHP. С помощью внешнего калькулятора реализованы следующие скрипты:

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