Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

VM3 Step исправление кол-ва в партии

Заказать
Joomla 3.x

Стоимость 300


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Статьи

Вы можете Заказать 300руб. RUB

1.Некорректно вычисляется кол-во товара в партии на странице товара VM3?

Причина: Родной скрипт не готов обрабатывать атрибуты объекта, поэтому кол-во товаров некорректно высчитывается в случае, когда нужно изменить партию в шаге больше 1.

Исправление в VM3 в файле:

components\com_virtuemart\assets\js\vmprices.js

Необходимо исправить ссылку на атрибут и добавить условие обработки кол-ва - проверить точное соотношение шага и текущего кол-ва, если кол-во больше, то необходимо убрать излишек.

Virtuemart.incrQuantity = (function(event) {
var rParent = jQuery(this).parent().parent();
quantity = rParent.find('input[name="quantity[]"]');
virtuemart_product_id = rParent.find('input[name="virtuemart_product_id[]"]').val();
Ste = parseInt(quantity.attr("data-step"));
if (isNaN(Ste)) Ste = 1;
Qtt = parseInt(quantity.val());
if (!isNaN(Qtt)) {
var nQtt=Qtt + Ste;
var rQtt=(Math.ceil(Qtt/Ste));
if ((nQtt-(rQtt*Ste))>0) nQtt=rQtt*Ste+Ste;
quantity.val(nQtt);
maxQtt = parseInt(quantity.attr("max"));
if(!isNaN(maxQtt) && quantity.val()>maxQtt){
quantity.val(maxQtt);
}
Virtuemart.setproducttype(event.data.cart,virtuemart_product_id);
}
}); Virtuemart.decrQuantity = (function(event) {
var rParent = jQuery(this).parent().parent();
var quantity = rParent.find('input[name="quantity[]"]');
var virtuemart_product_id = rParent.find('input[name="virtuemart_product_id[]"]').val();
var Ste = parseInt(quantity.attr("data-step"));
if (isNaN(Ste)) Ste = 1;
var minQtt = parseInt(quantity.attr("data-init"));
if (isNaN(minQtt)) minQtt = 1;
var Qtt = parseInt(quantity.val());if (!isNaN(Qtt) && Qtt>Ste) {
var nQtt=Qtt - Ste;
var rQtt=(Math.ceil(Qtt/Ste));
if ((nQtt-(rQtt*Ste))>0) nQtt=rQtt*Ste-Ste;
quantity.val(nQtt);
if(!isNaN(minQtt) && quantity.val()<minQtt){
quantity.val(minQtt);
}
} else quantity.val(minQtt);
Virtuemart.setproducttype(event.data.cart,virtuemart_product_id);
});

2.В миниатюре корзины SJ Mod miniCart не работает добавление товаров с шагами?

В данном модуле не было рассмотрена такая ситуация, поэтому нужно добавить вычисление кол-во с шагами.

Необходимо внести изменения в файлы:

templates\kontiss\html\mod_sj_minicart_pro\default_js.php

/*-- process when click quantity control and change value input quantity --*/
$('.quantity-control', $_prod).each(function () {
$(this).children().click(function () {
var Qtt = parseInt($_quantity.val());
var Qtt = parseInt($_quantity.val());
var Ste = parseInt($_quantity.attr("data-step"));
if (isNaN(Ste)) Ste = 1;
if ($(this).is('.quantity-plus')) {
var nQtt=Qtt + Ste;
var rQtt=(Math.ceil(Qtt/Ste));
if ((nQtt-(rQtt*Ste))>0) nQtt=rQtt*Ste+Ste;
$_quantity.val(nQtt);
} else {
if (!isNaN(Qtt) && Qtt > 1)
{
var nQtt=Qtt - Ste;
var rQtt=(Math.ceil(Qtt/Ste));
if ((nQtt-(rQtt*Ste))>0) nQtt=rQtt*Ste-Ste;
if (nQtt<Ste) nQtt=Ste;
$_quantity.val(nQtt);
} else {
$_quantity.val(Ste);
}
}
if ($_quantity.val()==0) $_quantity.val(Ste);
return false;
});
})

templates\kontiss\html\mod_sj_minicart_pro\default_list.php

<span class="value">
<?php
$init = 1;
if(isset($viewData['init'])){$init = $viewData['init'];}
if(!empty($product->min_order_level) and $init<$product->min_order_level){$init = $product->min_order_level;}
$step=1;
if (!empty($product->step_order_level)){$step=$product->step_order_level;if(empty($product->min_order_level) and !isset($viewData['init'])){$init = $step;}}
$maxOrder= '';
if (!empty($product->max_order_level)){$maxOrder = ' max="'.$product->max_order_level.'" ';}
?>
<input type="text" maxlength="4" size="2" name="mc-quantity test" class="mc-quantity" data-step="<?php echo $step?>" data-init="<?php echo $init; ?>" value="<?php echo $init; ?>" <?php echo $maxOrder?>/>
</span>

3.В корзине OnePage не учитывается партия ?

Данный плагин также не готов к работе с партиями - ни корректно выставляются шаги по товарам, необходимо добавить скрипты обработки в файлы:

\plugins\system\onepage_generic\vmprices.js

carts.each(function(){
var cart = jQuery(this),
//step=cart.find('input[name="quantity"]'),
addtocart = cart.find('.addtocart-button'),
plus = cart.find('.quantity-plus'),
minus = cart.find('.quantity-minus'),
select = cart.find('select:not(.no-vm-bind)'),
radio = cart.find('input:radio:not(.no-vm-bind)'),
virtuemart_product_id = cart.find('input[name="virtuemart_product_id[]"]').val(),
quantity = cart.find('.quantity-input');
step=parseInt(quantity.attr("data-step")); var Ste = step;
//Fallback for layouts lower than 2.0.18b
if(isNaN(Ste)){Ste = 1;}
addtocart.unbind( "click" );
addtocart.click(function(e) {
Virtuemart.sendtocart(cart);
return false;
});
plus.unbind( "click" );
plus.click(function() {
var Qtt = parseInt(quantity.val());
if (!isNaN(Qtt)) {
quantity.val(Qtt + Ste);
Virtuemart.setproducttype(cart,virtuemart_product_id);
}
});
minus.unbind( "click" );
minus.click(function() {
var Qtt = parseInt(quantity.val());
if (!isNaN(Qtt) && Qtt>Ste) {
quantity.val(Qtt - Ste);
} else quantity.val(Ste);
Virtuemart.setproducttype(cart,virtuemart_product_id);
});
select.change(function() {
Virtuemart.setproducttype(cart,virtuemart_product_id);
});
radio.change(function() {
Virtuemart.setproducttype(cart,virtuemart_product_id);
});
quantity.keyup(function() {
Virtuemart.setproducttype(cart,virtuemart_product_id);
});
});

plugins\system\onepage_generic\cart\tmpl\default_left.php

<input name="quantityv" type="hidden" value="<?php echo $step ?>" />
<?php
$init = 1;
if(isset($viewData['init'])){$init = $viewData['init'];}
if(!empty($prow->min_order_level) and $init<$prow->min_order_level){$init = $prow->min_order_level;}
$step=1;
if (!empty($prow->step_order_level)){$step=$prow->step_order_level;if(empty($prow->min_order_level) and !isset($viewData['init'])){$init = $step;}}
$maxOrder= '';
if (!empty($prow->max_order_level)){$maxOrder = ' max="'.$prow->max_order_level.'" ';}
?>
<input type="text" data-step="<?php echo $step?>" data-init="<?php echo $init; ?>" <?php echo $maxOrder?> title="<?php echo JText::_('COM_VIRTUEMART_CART_UPDATE') ?>" class="quantity-input js-recalculate opg-form-small opg-text-center" onblur="check_<?php echo $pkey; ?>(this);" size="2" maxlength="4" value="<?php echo $prow->quantity ?>" id='quantity_<?php echo $cartitemid; ?>' name="quantityval[<?php echo $pkey; ?>]" style="color:inherit !important;"/>

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.