lllyx Posted February 17, 2021 Share Posted February 17, 2021 Здравствуйте, столкнулся с такой проблемой, сразу говорю полный 0 в престе. Не могу вывести в product.tpl, количество продукта в корзине. Хочу реализовать как у тануки, вместо добавить в корзину +, убрать из корзины -, посередине количество товара. Увеличить или убавить продукт с карточки, я реализовал, а сам рендер на стороне сервера, не могу. Нашел функцию в классе Cart->containsProduct(), попытался передать туда product id, приложение сразу выдаёт ошибку, с массивами smarty не работает. Сделал это через Smarty {$cart->containsProduct($product.id_product)} Пробовал в контроллере в добавить $product['qty'] в функции initContent, опять выдает ошибку. Что я делаю не так? Link to comment Share on other sites More sharing options...
wagood Posted February 18, 2021 Share Posted February 18, 2021 {$product->quantity} Link to comment Share on other sites More sharing options...
lllyx Posted February 18, 2021 Author Share Posted February 18, 2021 (edited) 13 minutes ago, wagood said: {$product->quantity} Спасибо за отклик, данная функция показывает количество товара в наличии, я уже пробовал(, а мне нужно сколько в корзине. путь к pruduct.tpl в котором я хочу рендрить количество товара в корзине, "/themes/Katyk/templates/catalog/_partials/miniatures", ответственный контроллер ProductController как я понял Edited February 18, 2021 by lllyx (see edit history) Link to comment Share on other sites More sharing options...
TemKa_SD Posted February 18, 2021 Share Posted February 18, 2021 Здравствуйте. Идея не плохая, напишу код и поделюсь, нативно нельзя это вроде вывести. Link to comment Share on other sites More sharing options...
wagood Posted February 18, 2021 Share Posted February 18, 2021 Сколько в корзине именно этого товара? Link to comment Share on other sites More sharing options...
TemKa_SD Posted February 19, 2021 Share Posted February 19, 2021 9 hours ago, wagood said: Сколько в корзине именно этого товара? Угу Link to comment Share on other sites More sharing options...
wagood Posted February 19, 2021 Share Posted February 19, 2021 это в файл override/classes/Product.php <?php class Product extends ProductCore { public static function getQuantityInCart($id_product) { $context = Context::getContext(); $Cart = $context->cart; $products = $Cart->getProducts(true, $id_product); if (count($products) > 0 && isset($products[0]['cart_quantity'])) { return $products[0]['cart_quantity']; } return null; } } из шаблона product.tpl вызвать {Product::getQuantityInCart($product.id)} удалить кеш перед использованием и файл class_index.php, если это 1.6 версия 2 Link to comment Share on other sites More sharing options...
TemKa_SD Posted February 21, 2021 Share Posted February 21, 2021 @wagood Это нужно делать на JS. Link to comment Share on other sites More sharing options...
lllyx Posted February 24, 2021 Author Share Posted February 24, 2021 On 2/22/2021 at 2:50 AM, TemKa_SD said: @wagood Это нужно делать на JS. const token = $('input[name=token]').val(); $(".product-miniature").on("click", '.decrease' ,function (){ let qty = $(this).parent('.price').find('.quantity'), num = Number(qty.html()), product_block = $(this).parents(".product-miniature"), id_product = product_block.data('idProduct'), id_product_attribute = product_block.data('idProductAttribute'); if (num < 2){ qty.html(0); $.ajax({ type: "post", url : "/cart", cache: false, dataType: "json", data: { token: token, id_product: id_product, id_product_attribute: id_product_attribute, delete: 1, action: "update", ajax: 1 } }); }else { qty.html(num-1); $.ajax({ type: "post", url : "/cart", cache: false, dataType: "json", data: { token: token, id_product: id_product, id_product_attribute: id_product_attribute, op: 'down', update: 1, action: "update", ajax: 1 } }); } }); $(".product-miniature").on("click", '.increase' ,function (){ let qty = $(this).parent('.price').find('.quantity'), num = Number(qty.html()), product_block = $(this).parents(".product-miniature"), id_product = product_block.data('idProduct'), id_product_attribute = product_block.data('idProductAttribute'); qty.html(num+1); $.ajax({ type: "post", url : "/cart", cache: false, dataType: "json", data: { token: token, id_product: id_product, id_customization: 0, add: 1, qty: 1, action: "update" } }); }); С таким подходом, достаточно статичный вывод думаю Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now