No Magento 2, o Add to Cart
botão normal possui uma lógica muito boa baseada em AJAX para adicionar produtos ao carrinho.
No entanto, quando usamos um Catalog Products List
widget, por exemplo, nas páginas do CMS, o botão nesta lista de produtos funciona com um HTTP POST
que recarrega a página atual.
A experiência do usuário sofre com isso e seria desejável que o botão tivesse a mesma lógica AJAX como nas listas de produtos da categoria padrão ou nas páginas de produtos.
Como podemos estender o Catalog Products List
widget para que ele use o botão melhor Add to Cart
? Ou talvez haja outra solução alternativa?
Respostas:
Você precisa substituir o arquivo addtocart.phtml
Agora basta substituir "bindSubmit": false para "bindSubmit": true
Para
Agora exclua o cache e a pasta page_cache ou limpe o cache.
Nota: Certifique-se de definir Não de
Store->Configuration->Sales->Checkout->Shopping Cart->After Adding a Product Redirect to Shopping Cart to No
fonte
Você pode estender o
Catalog Products List
para usar o carrinho ajax criando um módulo com os seguintes arquivos:/Your/Module/Block/Product/ListBlock.php com conteúdo:
Seu / Module / etc / widget.xml com conteúdo:
E finalmente, seu / Module / view / frontend / templates / product / widget / content / grid.phtml com o conteúdo:
Certifique-se de substituir todas as instâncias do 'Your \ Module' pelos seus próprios namespaces.
fonte
No Magento 2.2, o
Magento_Catalog/product/view/validation
script é chamado em vez decatalogAddToCart
.Isso já está presente em
addtocart.phtml
(com aradioCheckboxClosest
opção de configuração), portanto, para ativar o Ajax Add to Cart, basta adicionar abindSubmit
opção da seguinte forma:fonte
Nos últimos lançamentos do Magento 2, isso foi alterado novamente e agora é
fonte
Solução para Magento 2.3
Para a lista de produtos do catálogo de widgets:
Você deve encontrar o modelo do widget, neste caso, é
e insira este código:
fonte