Собственно, сабж. Магазин оптовых товаров, продается только коробами, с четким кол-вом элементов в каждом коробе.
Для OpenCart есть модуль Simple, которые отлично справляется с задачей, но только при чек-ауте (подтверждение покупки: на этой странице тоже можно +/- кол-во товаров).
Вот tiwg
<div class="products-full-list__spinner">
<div class="spinner-wrap products-qty-info-spinner">
<input type="text" name="quantity" class="spinner" value="{{ minimum }}" placeholder="{{ minimum }}" id="input-quantity">
</div>
</div>
вот куски js (какие точно не знаю)
function fastCartData($objectClick) {
var product_id = $objectClick.attr('data-for');
var qty = $objectClick.closest(".products-qty-info").find('.products-qty-info-spinner input').val();
var type = $objectClick.attr('data-typefrom');
$('#cat_qty').val(qty);
$('#cat_prod_id').val(product_id);
if(type == "category-popup"){
$('.fast-redirect').val(0);
var selector = 'popupprodid_'+product_id;
var $data = $('#'+selector+' input[type=\'text\'], #'+selector+' input[type=\'hidden\'], #'+selector+' input[type=\'radio\']:checked, #'+selector+' input[type=\'checkbox\']:checked, #'+selector+' select, #'+selector+' textarea');
}
if(type == "category-list"){
$('.fast-redirect').val(1);
var $data = $('#popup-buy-click input');
}
if(type == "cart-popup"){
return;
}
if(type == "product"){
var $data = $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea');
}
add2cartFast($data);
}
function spinner() {
if ($('.spinner').length) {
$('.spinner').spinner({
min: 1,
});
}
$( "#cartcontent .spinner" ).on( "change", function( event, ui ) {setTimeout(function() { $('#cartcontent').submit();}, 100); } );
$( "#product .spinner" ).on( "change", function( event, ui ) { $('#product input[name="quantity"]').change(); } );
$( "#cartcontent .spinner-wrap a" ).on( "click", function( event, ui ) { $('#cartcontent').submit();} );
}