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_version
jest ustawiany module-page-cache/view/frontend/web/js/page-cache.js
i używany w customer-data.js
. Zobacz customerData::reload
funkcję.
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_version
nie 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_version
i section_data_ids
mają 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
źródło
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
Odpowiedzi:
Wydaje się, że jest to nierozstrzygnięty problem, choć być może został rozwiązany w nowszych wersjach M2. Zobacz problemy z Magento GitHub:
„No items” w minicart w 2.1 (otwarte od tego pisania)
Minicart pusty, jeśli FPC wyłączony w Magento 2.1.1 (otwarty od tego pisania)
Minicart nie pokazuje żadnego produktu, nawet jeśli mam produkty w koszyku (zamknięte)
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.
źródło