W Magento 2 normalny Add to Cart
przycisk ma bardzo ładną logikę opartą na AJAX do dodawania produktów do koszyka.
Jednak gdy korzystamy z Catalog Products List
widżetu, na przykład na stronach CMS, przycisk na tej liście produktów działa z tym, HTTP POST
który ponownie ładuje bieżącą stronę.
Cierpi na tym doświadczenie użytkownika i byłoby pożądane, gdyby przycisk miał taką samą logikę AJAX jak w domyślnych listach kategorii produktów lub na stronach produktów.
Jak możemy rozszerzyć Catalog Products List
widżet, aby korzystał z lepszego Add to Cart
przycisku? A może istnieje inne obejście?
Odpowiedzi:
Musisz przesłonić plik addtocart.phtml
Teraz po prostu zamień „bindSubmit”: false na „bindSubmit”: true
Do
Teraz usuń pamięć podręczną i folder page_cache lub opróżnij pamięć podręczną.
Uwaga: Upewnij się, że musisz ustawić Nie od
Store->Configuration->Sales->Checkout->Shopping Cart->After Adding a Product Redirect to Shopping Cart to No
źródło
Możesz rozszerzyć na
Catalog Products List
korzystanie z koszyka ajax, tworząc moduł z następującymi plikami:/Your/Module/Block/Product/ListBlock.php z zawartością:
Twój / Module / etc / widget.xml z zawartością:
I wreszcie Twój / Moduł / widok / interfejs / szablony / produkt / widget / treść / grid.phtml z zawartością:
Upewnij się i zastąp wszystkie wystąpienia „Your \ Module” własnymi przestrzeniami nazw.
źródło
W Magento 2.2
Magento_Catalog/product/view/validation
skrypt jest wywoływany zamiastcatalogAddToCart
.Jest to już obecne w
addtocart.phtml
(zradioCheckboxClosest
opcją konfiguracji), więc aby włączyć Ajax Add to Cart, po prostu dodaj takąbindSubmit
opcję:źródło
W najnowszych wydaniach Magento 2 zmieniono to ponownie i jest teraz
źródło
Rozwiązanie dla Magento 2.3
Dla widżetu Katalog Lista produktów:
W takim przypadku powinieneś znaleźć szablon widżetu
i wstaw ten kod:
źródło