добавил возможность добавления товара прямо из нужной страницы (не каталог).
на странице несколько модулей featured. Один и тот же товар может быть в нескольких блоках. поэтому в скрипте для этой страницы добавил другую функцию в common.js
'add_lan': function(product_id, prefix) {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: $('.mini_add'+product_id+''+prefix+' input[type=\'text\'], .mini_add'+product_id+''+prefix+' input[type=\'hidden\'], .mini_add'+product_id+''+prefix+' input[type=\'radio\']:checked, .mini_add'+product_id+''+prefix+' input[type=\'checkbox\']:checked, .mini_add'+product_id+''+prefix+' select, .mini_add'+product_id+''+prefix+' textarea'),
dataType: 'json',
beforeSend: function() {
$('#cart > button').button('loading');
},
complete: function() {
$('#cart > button').button('reset');
},
success: function(json) {
$('.alert-dismissible, .text-danger').remove();
if (json['redirect']) {
location = json['redirect'];
}
if (json['success']) {
$('#cart > button').html('<img src="catalog/view/theme/manhattan/img/i9.svg" alt="">' + json['total'] + '');
$('#cart > ul').load('index.php?route=common/cart/info ul li');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
а в twig так:
{{ sid }} - это ид модуля featured
Таким образом обращаюсь к товару из из нужного featured, даже если он повторяется в других featured
но можно это как то упростить? или сделать хотя бы запрос не через класс, а через data?
например вместо:
<div class="lprod_item row product-thumb mini_add{{ product.product_id }}sid{{ sid }}">
вот так:
<div class="lprod_item row product-thumb" data-tovar="mini_add{{ product.product_id }}sid{{ sid }}">
тогда как должен выглядеть скрипт в коммон?