В Magento 2 обычная Add to Cart
кнопка имеет очень приятную логику на основе AJAX для добавления товаров в корзину.
Однако, когда мы используем Catalog Products List
виджет, например, на страницах CMS, кнопка в этом списке продуктов работает с кнопкой, HTTP POST
которая перезагружает текущую страницу.
От этого страдает пользовательский опыт, и было бы желательно, чтобы кнопка имела ту же логику AJAX, что и в списках продуктов по умолчанию или на страницах продуктов.
Как мы можем расширить Catalog Products List
виджет, чтобы он использовал лучшую Add to Cart
кнопку? Или, может быть, есть другой обходной путь?
Ответы:
Вы должны переопределить файл addtocart.phtml
Теперь просто замените «bindSubmit»: false на «bindSubmit»: true
к
Теперь удалите кеш и папку page_cache или очистите кеш.
Примечание: убедитесь, что вы должны установить Нет от
Store->Configuration->Sales->Checkout->Shopping Cart->After Adding a Product Redirect to Shopping Cart to No
источник
Вы можете расширить
Catalog Products List
использование корзины ajax, создав модуль со следующими файлами:/Your/Module/Block/Product/ListBlock.php с содержанием:
Ваш / Module / etc / widget.xml с содержимым:
И, наконец, Ваш / Module / view / frontend / templates / product / widget / content / grid.phtml с контентом:
Обязательно замените все экземпляры 'Your \ Module' собственными пространствами имен.
источник
В Magento 2.2
Magento_Catalog/product/view/validation
скрипт вызывается вместоcatalogAddToCart
.Это уже присутствует в
addtocart.phtml
(с параметромradioCheckboxClosest
config), поэтому, чтобы включить Ajax Add to Cart, просто добавьтеbindSubmit
параметр следующим образом:источник
В последних выпусках Magento 2 это снова изменилось и теперь
источник
Решение для Magento 2.3
Для виджета Каталог Список товаров:
Вы должны найти шаблон виджета, в этом случае это
и вставьте этот код:
источник