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


Добавление Товаров В Корзину


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 20

#21 BOXBON

BOXBON

    Пользователь

  • Пользователи
  • PipPip
  • 11 сообщений

Отправлено 02 Октябрь 2022 - 22:29

ВНИМАНИЕ!!! В скрипте есть баг.
Для того, чтобы в корзине все срабатывало корректно необходимо в шаблоне Корзина и Товар найти (также обратите внимание, что в шаблоне Товар значение атрибутов шаблонизатора другие, например {% IF goods_features.NAME=... %} ):

<div class="qty flex-center">
<a href="javascript:void(0)" class="qty__minus flex-center unselectable" title="Уменьшить"><i class="icon-minus"></i></a>
<input
type="text"
name="form[quantity][{cart_items.GOODS_MOD_ID}]"
maxlength="4"
value="{cart_items.ORDER_LINE_QUANTITY}"
max="{cart_items.GOODS_MOD_REST_VALUE}"
title="Количество, {cart_items.GOODS_MOD_MEASURE_NAME}"
class="cartqty quantity"
onkeypress="return keyPress(this, event);"
onpaste="return false;"
autocomplete="off"
readonly="true"
/>
<a href="javascript:void(0)" class="qty__plus flex-center unselectable" title="Увеличить"><i class="icon-plus"></i></a>
</div>
Заменить на:

<div class="qty flex-center">
<a href="javascript:void(0)" class="qty__minus flex-center unselectable" title="Уменьшить"><i class="icon-minus"></i></a>
<input
type="text"
name="form[quantity][{cart_items.GOODS_MOD_ID}]"
maxlength="4"
value="{cart_items.ORDER_LINE_QUANTITY}"
max="{cart_items.GOODS_MOD_REST_VALUE}"
title="Количество, {cart_items.GOODS_MOD_MEASURE_NAME}"
class="cartqty quantity"
onkeypress="return keyPress(this, event);"
onpaste="return false;"
autocomplete="off"
readonly="true"
{% FOR goods_attr_list %}
{% IF cart_items.goods_attr_list.NAME=Минимальная партия для заказа %}
data-min="{cart_items.goods_attr_list.VALUE}"
{% ELSEIF cart_items.goods_attr_list.NAME=Продается по %} <!-- / Модернизированная версия с двумя характеристиками, если у вас только Мин партия, то этот атрибут можно удалить и немного подправить JavaScript, заменив data-part на data-min /-->
data-part="{cart_items.goods_attr_list.VALUE}"
{% ENDIF %}
{% ENDFOR %}
/>
<a href="javascript:void(0)" class="qty__plus flex-center unselectable" title="Увеличить"><i class="icon-plus"></i></a>
</div>
Далее в main.js найти
$(function () {

//Regulator Up копки + в карточке товара при добавлении в корзину
$('.qty-plus').click(function(){
var
						 quantity = $(this).parent().find('.quantity'),
						 currentVal = parseInt(quantity.val());
						 if ($('#val_num').length){
								 var numb=parseInt($('#val_num').text());
						 }
						 else{
								 var numb=1;
						 }
if (!isNaN(currentVal)){
						 quantity.val(currentVal + numb);
						 quantity.trigger('keyup');
}
return false;
});
//Regulator Down копки - в карточке товара при добавлении в корзину
$('.qty-minus').click(function(){
var
						 quantity = $(this).parent().find('.quantity'),
						 currentVal = parseInt(quantity.val());
						 if ($('#val_num').length){
								 var numb=parseInt($('#val_num').text());
						 }
						 else{
								 var numb=1;
						 }
if (!isNaN(currentVal) && !(currentVal <= numb) ){
						 quantity.val(currentVal - numb);
						 quantity.trigger('keyup');
}
return false;
});
заменить на
function quantity() {
//Regulator Up копки + в карточке товара при добавлении в корзину
$('.qty__plus').off('click').on('click', function(){

var quantity = $(this).parent().find('.quantity, .cartqty');
var currentVal = parseInt(quantity.val());
var numb = parseInt(quantity[0].getAttribute('data-part')); // Вытаскиваем значение атрибута data-part
if (!isNaN(currentVal)){
quantity.val(currentVal + numb);
quantity.trigger('keyup');
quantity.trigger('change');
}
return false;
});
//Regulator Down копки - в карточке товара при добавлении в корзину
$('.qty__minus').off('click').on('click', function(){
var quantity = $(this).parent().find('.quantity, .cartqty');
var currentVal = parseInt(quantity.val());
var numb = parseInt(quantity[0].getAttribute('data-part'));
var numb2 = parseInt(quantity[0].getAttribute('data-min')); // Получаем значение атрибута data-min
if (!isNaN(currentVal) && !(currentVal <= numb) && !(currentVal <= numb2) ){
quantity.val(currentVal - numb);
quantity.trigger('keyup');
quantity.trigger('change');
}
return false;
});
}





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

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