Magento 2 minicart, wiadomość powitalna, inne nie działają z wyłączoną pamięcią podręczną stron po zalogowaniu klienta

16

Dzięki pamięci podręcznej Magento 2.0.4 , a dokładniej włączonej pamięci podręcznej stron , wszystko działa.

Jeśli go wyłączę , usuń pliki cookie i zaloguj się jako klient niż produkty w minicart .

Wiadomość powitalna tak naprawdę nie działa poprawnie. Muszę dodać produkt do koszyka ze strony produktu, aby zobaczyć minikart. Jeśli pójdę do kasy, kraj nie jest wyświetlany w podsumowaniu adresu (adres wysyłki został już dodany do mojego konta).

Zrobiłem debugowanie i wygląda problem jest skierowany do: module-customer/view/frontend/web/js/customer-data.js. Plik cookie private_content_versionjest ustawiany module-page-cache/view/frontend/web/js/page-cache.jsi używany w customer-data.js. Zobacz customerData::reloadfunkcję.

Przy wyłączonej pamięci podręcznej strony dane nie są ładowane z serwera tak jak funkcja dataProvider::getFromServer().

Gdy pamięć podręczna stron jest wyłączona, ciasteczka private_content_versionnie ma (strona-cache.js nie jest wykonywana poza kursem). Ale ciasteczkosection_data_ids ma tylko „*” i „wiadomości” => puste (fałszywe lub zerowe).

Gdy pamięć podręczna stron jest włączona, istnieją private_content_versioni section_data_idsmają klucze o wartościach:

*:      null
cart:       123
compare-products:       123
customer:       123
directory-data:     123
last-ordered-items:     123
multiplewishlist:       123
review:     123
wishlist:       123

Po zalogowaniu z włączoną pamięcią podręczną strony na pulpicie klienta są 2 dodatkowe żądania ajax, które ładują dane:

http://test.localhost/customer/section/load/?sections=&update_section_id=false&_=123 http://test.localhost/customer/section/load/?sections=directory-data&update_section_id=false&_=123

Zawierają one obiekty json z danymi specyficznymi dla klienta i danymi katalogowymi, jak wszystkie kraje i regiony. W przypadku tych połączeń przy kasie podsumowanie adresu wyświetla nazwę kraju. Zobacz: module-customer/view/frontend/web/js/sections-config.js i module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js, funkcja getCountryName.

Czy to błąd Magento 2, czy coś pomieszałem? Dzięki

niejasny
źródło
Czy udało Ci się to naprawić lub dowiedzieć się, co dokładnie to powoduje? Mam bardzo podobny problem, Magento ver. 2.0.1 Jeśli opróżnię pamięć podręczną (usuwając wszystkie foldery pamięci podręcznej), otrzymuję podobny komunikat o błędzie w konsoli przeglądarki:GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
maginfortis
1
Nie znalazłem jeszcze rozwiązania. W twoim przypadku może to być prostszy przypadek. Sprawdź, na czym polega błąd i spróbuj go naprawić. Włącz błędy w Magento 2 i obejdź ten konkretny błąd. Nie dostaję błędów, po prostu nie ładuje danych. W moim przypadku nie widziałem błędów.
niejasne
Napotkałem ten sam błąd i powiem, że jest to błąd magento2, ponieważ po włączeniu FPC będzie działać, ale po wyłączeniu nie będzie. Aby to naprawić tymczasowo, musisz odświeżyć programowo minikart na każdej stronie.
Salma Saiyad,

Odpowiedzi:

0

Wydaje się, że jest to nierozstrzygnięty problem, choć być może został rozwiązany w nowszych wersjach M2. Zobacz problemy z Magento GitHub:

O ile możesz spróbować ...

Jeśli jest to związane z plikami cookie, możesz wykluczyć niektóre możliwości, odwiedzając witrynę w prywatnej przeglądarce przeglądania / incognito. Przejdź przez swój przepływ pracy (niezalogowany, dodaj produkt do koszyka, zaloguj się do klienta, spójrz na / checkout / koszyk i listę rozwijaną minicart).

Ponadto pomocne może być przejrzenie dokumentacji deweloperów M2 w celu zapoznania się z najlepszymi praktykami dotyczącymi konfiguracji pamięci podręcznej w fazie projektowania i konfiguracji w środowisku produkcyjnym . Z mojego doświadczenia wynika, że ​​w fazie programowania można włączyć wszystkie pamięci podręczne podczas programowania i po prostu opróżnić, gdy jest to wymagane (przeczytaj dokumentację, aby uzyskać opisy każdej pamięci podręcznej). Zauważ, że jako deweloper głównie frontonu, osobiście wolę rozwijać przy wyłączonym FPC, blokach wyjściowych i buforach układu - pozwala to łatwiej widzieć zmiany interfejsu.

nshiff
źródło