Перейти к содержимому


Ошибка Подсчёта Доставки При Оформлении Заказа


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 Mr.Nito

Mr.Nito

    Активный участник

  • Модераторы
  • 1 364 сообщений

Отправлено 24 Декабрь 2020 - 12:38

В шаблоне Быстрый заказ замените
			 <div class="delivery__text"></div>
			 </div>
			 <script>
			 var ORDER_DELIVERY = [ {% FOR order_delivery %} { id: '{order_delivery.ID}', name: '{order_delivery.NAME}', desc: '{order_delivery.DESC}', price: '{order_delivery.PRICE}', endPrice: '{order_delivery.END_PRICE}', sumLessPrice: '{order_delivery.SUM_LESS_PRICE}', rulesListEmpty: {order_delivery.rules_list_empty}, rulesList: {% IFNOT order_delivery.rules_list_empty %} [ {% FOR rules_list %} { sumMorePrice: '{order_delivery.rules_list.SUM_MORE_PRICE}', price: '{order_delivery.rules_list.PRICE}', }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} ,zoneListEmpty: {order_delivery.zone_list_empty}, zoneList : {% IFNOT order_delivery.zone_list_empty %} [ {% FOR zone_list %} { name: '{order_delivery.zone_list.NAME}', zoneId: '{order_delivery.zone_list.ID}', price: '{order_delivery.zone_list.PRICE}', endPrice: '{order_delivery.zone_list.END_PRICE}', zoneRuleListEmpty: {order_delivery.zone_list.zone_rule_list_empty}, zoneRuleList: {% IFNOT order_delivery.zone_list.zone_rule_list_empty %} [ {% FOR zone_rule_list %} { sumMorePrice: '{order_delivery.zone_list.zone_rule_list.SUM_MORE_PRICE}', price: '{order_delivery.zone_list.zone_rule_list.PRICE}' }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} ,availablePaymentList: {% IFNOT order_delivery.available_payment_list_empty %} [ {% FOR available_payment_list %} { deliveryId: '{order_delivery.ID}', id: '{order_delivery.available_payment_list.ID}', name: '{order_delivery.available_payment_list.NAME}', message: '{order_delivery.available_payment_list.MESSAGE}' }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %}, }, {% ENDFOR %} ]
			 </script>

на
			 <div class="delivery__text"></div>
			 {% FOR order_delivery %}
			 <div class="delivery__hidden-descr _{order_delivery.ID}" style="display:none">{order_delivery.DESC}</div>
			 {% ENDFOR %}			
			 </div>
			 <script>
			 var ORDER_DELIVERY = [ {% FOR order_delivery %} { id: '{order_delivery.ID}', name: '{order_delivery.NAME}', price: '{order_delivery.PRICE}', endPrice: '{order_delivery.END_PRICE}', sumLessPrice: '{order_delivery.SUM_LESS_PRICE}', rulesListEmpty: {order_delivery.rules_list_empty}, rulesList: {% IFNOT order_delivery.rules_list_empty %} [ {% FOR rules_list %} { sumMorePrice: '{order_delivery.rules_list.SUM_MORE_PRICE}', price: '{order_delivery.rules_list.PRICE}', }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} ,zoneListEmpty: {order_delivery.zone_list_empty}, zoneList : {% IFNOT order_delivery.zone_list_empty %} [ {% FOR zone_list %} { name: '{order_delivery.zone_list.NAME}', zoneId: '{order_delivery.zone_list.ID}', price: '{order_delivery.zone_list.PRICE}', endPrice: '{order_delivery.zone_list.END_PRICE}', zoneRuleListEmpty: {order_delivery.zone_list.zone_rule_list_empty}, zoneRuleList: {% IFNOT order_delivery.zone_list.zone_rule_list_empty %} [ {% FOR zone_rule_list %} { sumMorePrice: '{order_delivery.zone_list.zone_rule_list.SUM_MORE_PRICE}', price: '{order_delivery.zone_list.zone_rule_list.PRICE}' }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %} ,availablePaymentList: {% IFNOT order_delivery.available_payment_list_empty %} [ {% FOR available_payment_list %} { deliveryId: '{order_delivery.ID}', id: '{order_delivery.available_payment_list.ID}', name: '{order_delivery.available_payment_list.NAME}' }, {% ENDFOR %} ] {% ELSE %} null {% ENDIF %}, }, {% ENDFOR %} ]
			 </script>

далее блок
		 <!-- Способ оплаты -->
		 <section class="quickform__row -payment">
		 <h3 class="quickform__title">Cпособ оплаты</h3>
		 <div class="quickform-payment">
			 <div class="quickform__select-box">
			 {% FOR order_delivery %}
			 {% IFNOT order_delivery.available_payment_list_empty && order_delivery.first %}
				 <select name="form[payment][id]" class="quickform__select payment-select" data-delivery-id="{order_delivery.ID}">
				 {% FOR available_payment_list %}
				 <option value="{order_delivery.available_payment_list.ID}" {% IFNOT ORDER_FORM_PAYMENT_ID %}{% IF order_delivery.available_payment_list.first %}checked="checked"{% ENDIF %}{% ELSEIF order_delivery.available_payment_list.ID = ORDER_FORM_PAYMENT_ID %}checked="checked"{% ENDIF %}>
					 {order_delivery.available_payment_list.NAME}
				 </option>
				 {% ENDFOR %}
				 </select>
			 {% ENDIF %}
			 {% ENDFOR %}
			 </div>
			 {% FOR order_delivery %}
			 {% IFNOT order_delivery.available_payment_list_empty && order_delivery.first %}
				 {% FOR available_payment_list && available_payment_list.first %}
				 <div class="quickform-payment__desc payment__desc">
				 {order_delivery.available_payment_list.MESSAGE}
				 </div>
				 {break}
				 {% ENDFOR %}
			 {% ENDIF %}
			 {% ENDFOR %}
		 </div>
		 </section>
замените на
		 <!-- Способ оплаты -->
		 <section class="quickform__row -payment">
		 <h3 class="quickform__title">Cпособ оплаты</h3>
		 <div class="quickform-payment">
			 <div class="quickform__select-box">
			 {% FOR order_delivery %}
			 {% IFNOT order_delivery.available_payment_list_empty && order_delivery.first %}
				 <select name="form[payment][id]" class="quickform__select payment-select" data-delivery-id="{order_delivery.ID}">
				 {% FOR available_payment_list %}
				 <option value="{order_delivery.available_payment_list.ID}" {% IFNOT ORDER_FORM_PAYMENT_ID %}{% IF order_delivery.available_payment_list.first %}checked="checked"{% ENDIF %}{% ELSEIF order_delivery.available_payment_list.ID = ORDER_FORM_PAYMENT_ID %}checked="checked"{% ENDIF %}>
					 {order_delivery.available_payment_list.NAME}
				 </option>
				 {% ENDFOR %}
				 </select>
			 {% ENDIF %}
			 {% ENDFOR %}
			 </div>
			 <div class="quickform-payment__desc payment__desc">
			 </div>
			 {% FOR order_delivery %}
			 <div class="payment-descr__hidden _{order_delivery.ID}" style="display:none">
				 {% IFNOT order_delivery.available_payment_list_empty %}
				 {% FOR available_payment_list %}
				 <div class="payment-descr__hidden-item _{order_delivery.available_payment_list.ID}">
					 {order_delivery.available_payment_list.MESSAGE}
				 </div>
				 {% ENDFOR %}
				 {% ENDIF %}
			 </div>
			 {% ENDFOR %}
		 </div>
		 </section>

далее в файле main.js
function renderPaymentSelect(clearTemplate) {
	 var $paymentSelect = $('.payment-select');
	 var $paymentDescr = $('.payment__desc');
	 $paymentSelect.data('delivery-id', CURRENT_DELIVERY.id);
	 $paymentSelect.styler('destroy');
	 $paymentSelect.html('');
	 if (clearTemplate) {
	 var $option = $('<option>').val('').text('Не задан метод оплаты');
	 $paymentSelect.append($option);
	 $paymentSelect.prop('disabled', true)
	 $paymentDescr.hide();
	 } else {
	 $paymentSelect.prop('disabled', false)
	 $paymentDescr.show();
	 }
	 if (CURRENT_DELIVERY.availablePaymentList.length) {
	 $.each(CURRENT_DELIVERY.availablePaymentList, function(i, item) {
		 var $option = $('<option>').val(item.id).text(item.name);
		 $paymentSelect.append($option);
		 if (i == 0) {
		 $paymentDescr.html(item.message);
		 }
	 });
	 }
	
	 $paymentSelect.styler()
}
function changePaymentSelect(paymentId) {
	 var $paymentDescrBlock = $('.payment__desc');
	 var currentPayment = $.grep(CURRENT_DELIVERY.availablePaymentList, function(item, i) {
	 return item.id === String(paymentId)
	 })[0]
	 $paymentDescrBlock.html(currentPayment.message);
}
замените на
function renderPaymentSelect(clearTemplate) {
	 var $paymentSelect = $('.payment-select');
	 var $paymentDescr = $('.payment__desc');
	 $paymentSelect.data('delivery-id', CURRENT_DELIVERY.id);
	 $paymentSelect.styler('destroy');
	 $paymentSelect.html('');
	 if (clearTemplate) {
	 var $option = $('<option>').val('').text('Не задан метод оплаты');
	 $paymentSelect.append($option);
	 $paymentSelect.prop('disabled', true)
	 $paymentDescr.hide();
	 } else {
	 $paymentSelect.prop('disabled', false)
	 $paymentDescr.show();
	 }
	 if (CURRENT_DELIVERY.availablePaymentList.length) {
	 $.each(CURRENT_DELIVERY.availablePaymentList, function(i, item) {
		 var $option = $('<option>').val(item.id).text(item.name);
		 $paymentSelect.append($option);
		 if (i == 0) {		
		 var currentPaymentMessage = $('.payment-descr__hidden').filter('._' + CURRENT_DELIVERY.id).find('.payment-descr__hidden-item').first().html();
		 $paymentDescr.html(currentPaymentMessage);
		 }
	 });
	 }
	
	 $paymentSelect.styler()
}
function changePaymentSelect(paymentId) {
	 var $paymentDescrBlock = $('.payment__desc');
	 var currentPaymentMessage = $('.payment-descr__hidden').filter('._' + CURRENT_DELIVERY.id).find('.payment-descr__hidden-item').filter('._' + paymentId).html();
	 $paymentDescrBlock.html(currentPaymentMessage);
}

далее
function changeCartSum() {
var currentPriceWithoutChange = Number($('.cart__sum .total-sum').data('total-sum'));
var deliveryPrice = Number(getCurrentDeliveryPrice());
var discountPrice = Number($('.cart__sum .cart__sum--discount .cart__sum-text-price').data('discount-value'));
// Заполняем стоимость доставки
$('.cart__sum .cart__sum--delivery-sum .num').text(addSpaces(deliveryPrice));
$('.delivery__descr .delivery__price .num').text(addSpaces(deliveryPrice));
// Описание доставки
if (CURRENT_DELIVERY) {
	 $('.delivery__descr .delivery__text').html(CURRENT_DELIVERY.desc);
}
var priceNow = (currentPriceWithoutChange + deliveryPrice) - discountPrice;
if (priceNow < 0) {
	 priceNow = 0;
}
// console.log('priceNow',priceNow)
$('.cart__sum .total-sum').find('.num').text(addSpaces(Math.round(priceNow)));
}
замените на
function changeCartSum() {
var currentPriceWithoutChange = Number($('.cart__sum .total-sum').data('total-sum'));
var deliveryPrice = Number(getCurrentDeliveryPrice());
var discountPrice = Number($('.cart__sum .cart__sum--discount .cart__sum-text-price').data('discount-value'));
// Заполняем стоимость доставки
$('.cart__sum .cart__sum--delivery-sum .num').text(addSpaces(deliveryPrice));
$('.delivery__descr .delivery__price .num').text(addSpaces(deliveryPrice));
// Описание доставки
if (CURRENT_DELIVERY) {
	 var descriptionHtml = $('.delivery__hidden-descr').filter('._' + CURRENT_DELIVERY.id).html();
	 $('.delivery__descr .delivery__text').html(descriptionHtml);
}
// Описание оплаты
if(CURRENT_DELIVERY){
	 var $paymentDescr = $('.payment__desc');
	 var currentPaymentMessage = $('.payment-descr__hidden').filter('._' + CURRENT_DELIVERY.id).find('.payment-descr__hidden-item').first().html();
	 $paymentDescr.html(currentPaymentMessage);
}
var priceNow = (currentPriceWithoutChange + deliveryPrice) - discountPrice;
if (priceNow < 0) {
	 priceNow = 0;
}
// console.log('priceNow',priceNow)
$('.cart__sum .total-sum').find('.num').text(addSpaces(Math.round(priceNow)));
}

Прикрепленные изображения

  • Screenshot_15.jpg





Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных