Magento2: Minicart jest pełny, a koszyk jest pusty

12

Wielu naszych klientów skarży się, że dodają rzeczy do koszyka, a następnie, gdy przechodzą do kasy, zostają przekierowani do pustego koszyka.
Pomyśleliśmy, że może to wynikać z zbyt krótkiego czasu sesji, dlatego próbowaliśmy wydłużyć czas życia pliku cookie / sesji do 86400 (zarówno na serwerze administracyjnym, jak i serwerze).
Następnie próbowałem odtworzyć problem i udało mi się osiągnąć dziwne zachowanie, jak widać na załączonym zrzucie ekranu.
Dodałem produkty do koszyka, wróciłem po około 20-30 minutach i zobaczyłem moje przedmioty w minicart. potem przystąpiłem do kasy i przekierowałem mnie do tego pustego koszyka, gdy minikart wciąż pokazuje moje produkty (odświeżenie strony również nie działało): wprowadź opis zdjęcia tutaj

-- Dowolny pomysł?


AKTUALIZACJA: Do tej pory udało nam się rozwiązać ten problem, zmieniając konfigurację sesji, aby używać plików (wyłączone Memcached). Wiem, że Magento zaleca używanie Memcached i nie mam pojęcia, co spowodowało ten problem ...

Pini
źródło

Odpowiedzi:

2

app \ code \ Vendor \ Extension \ etc \ frontend \ section.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd">
    <action name="extension/controller/action">
        <section name="cart"/>
    </action>
</config>

W nazwie tego parametru akcji musisz przekazać pełną akcję (np. Pobranie / koszyk / dodanie), w której koszyk jest aktualizowany. Oznacza to, że programowo usuwasz lub dodajesz produkt do koszyka do koszyka.

Na koniec skomentuj poniżej, jeśli napotkasz jakiś problem podczas korzystania z tego kodu.

Happy Coding!

Yuvrajsinh Inżynier IT
źródło
0

Magento umieszcza wszystkie dane specyficzne dla klienta (koszyk, nazwa klienta itp.) W lokalnej pamięci, aby zapobiec buforowaniu na serwerach proxy, takich jak Lakier. Później dane te są wstawiane na stronę za pomocą JS. Zachowanie, które zaobserwowałeś, to błędna konfiguracja czasu życia pamięci podręcznej. Najlepiej byłoby, gdyby był on dostosowany do czasu życia sesji.

Andrey Konosov
źródło
Jak powiedziałem, zwiększyliśmy zarówno sesję, jak i plik cookie do 86400, co nie pomogło. Jedyną rzeczą, która wydaje się rozwiązać ten problem, było wyłączenie memcached (który został skonfigurowany zgodnie z sugestią dokumentów Magento). Po tym przestaliśmy sprawdzać problem, więc nie mam pojęcia, co go spowodowało.
Pini