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
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)