Как передать все параметры товара при перемещении в корзину

Автор john_ol, 02 апреля 2018, 16:39:47

« назад - далее »

john_ol

Добрый день! Просмотрел уже весь интернет, так и ничего не нашел подходящего. Работает, но с костылями...
Имеется стандартный wishlist, добавляю кнопку в файл таким кодом

themes/your_template/modules/blockwishlist/views/templates/front/managewishlist.tpl
<a class="exclusive button ajax_add_to_cart_button add-to-cart-in-wl" href="{$link->getPageLink('cart', true, NULL, "qty={$product.quantity|intval}&amp;id_product={$product.id_product|intval}&amp;add")|escape:'html':'UTF-8'}" data-id-attribute="{$product.id_product_attribute}" data-id-product="{$product.id_product|intval}" data-minimal_quantity="{$product.quantity|intval}" title="{l s='Add to cart' mod='blockwishlist'}"><span>{l s='Add to cart' mod='blockwishlist'}</span></a>

Далее прописываю код в файле
themes/your_template/js/modules/blockcart/ajax-cart.js
событию .ajax_add_to_cart_button
$(document).off('click', '.ajax_add_to_cart_button').on('click', '.ajax_add_to_cart_button', function(e){
e.preventDefault();
var idProduct =  parseInt($(this).data('id-product'));
var idProductAttribute =  parseInt($(this).data('id-product-attribute'));
var minimalQuantity =  parseInt($(this).data('minimal_quantity'));
if ($(this).is('.add-to-cart-in-wl')) {
    quan = $(this).closest('.product_infos').find('.wishlist_product_detail input.form-control').val();
    if (quan != minimalQuantity)
        minimalQuantity = quan;
}
if (!minimalQuantity)
    minimalQuantity = 1;
if ($(this).prop('disabled') != 'disabled')
    ajaxCart.add(idProduct, idProductAttribute, false, this, minimalQuantity);
});


Кнопка добавляется. При нажатии на нее добавляется товар без проблем в корзину, даже количество сохраняется. НО вот комбинация товара добавляется стоковая. Подскажите, пожалуйста что не так? заранее спасибо!

coder

Версия prestashop? Такое решение выкладывали для prestashop 1.6, для 1.7 не подходит.

john_ol

1.6.1.6 версия. Попробую поискать. Это в этом разделе?

Виталий

data-id-attribute="{$product.id_product_attribute}"
замените на
data-id-product-attribute="{$product.id_product_attribute}"
Cоздание интернет сайтов Webstudio UwK

john_ol

Цитата: Виталий от 02 апреля 2018, 18:46:13
data-id-attribute="{$product.id_product_attribute}"
замените на
data-id-product-attribute="{$product.id_product_attribute}"


Спасибо заработало!!! Но теперь добавляет всегда только по одному товару, если в label указать даже 3,4,5 например.
Ставил значения minimalQuantity другое, не выходит... Может знаете как сделать? Спасибо!

john_ol

#5
Кому понадобится сделал так - добавил в themes/your_template/js/modules/blockcart/ajax-cart.js такой код
$(document).off('click', '.ajax_add_to_cart_button').on('click', '.ajax_add_to_cart_button', function(e){
e.preventDefault();
var idProduct =  parseInt($(this).data('id-product'));
var idProductAttribute =  parseInt($(this).data('id-product-attribute'));
var minimalQuantity =  parseInt($(this).data('minimal_quantity'));
if ($(this).is('.add-to-cart-in-wl')) {
    quan = $(this).closest('.product_infos').find('.wishlist_product_detail input.form-control').val();
    if (quan != minimalQuantity)
        minimalQuantity = quan;
}
if (!minimalQuantity)
    minimalQuantity = 1;
if ($(this).prop('disabled') != 'disabled')
    ajaxCart.add(idProduct, idProductAttribute, false, this, minimalQuantity);
});

на событие .ajax_add_to_cart_button