Mit Magento 2.0.4- Cache, genauer gesagt aktiviertem Seiten- Cache , funktioniert alles.
Wenn ich es deaktiviere, lösche ich Cookies und melde mich als Kunde an, da Produkte in Minicart nicht vorhanden sind.
Begrüßungsnachricht funktioniert nicht richtig. Ich muss ein Produkt von einer Produktseite in den Warenkorb legen, um den Minicart zu sehen. Wenn ich zur Kasse gehe, wird das Land in der Adressübersicht nicht angezeigt (die Lieferadresse wurde bereits in meinem Konto hinzugefügt).
Ich habe das Debuggen getan , und es sieht aus wie das Problem zeigt:
module-customer/view/frontend/web/js/customer-data.js
. Der Cookie private_content_version
wird gesetzt module-page-cache/view/frontend/web/js/page-cache.js
und verwendet customer-data.js
. Siehe customerData::reload
Funktion.
Wenn der Seiten-Cache deaktiviert ist, werden die Daten nicht wie bei der Funktion vom Server geladen dataProvider::getFromServer()
.
Wenn der Seiten-Cache deaktiviert private_content_version
ist, ist das Cookie nicht vorhanden (page-cache.js wird nicht automatisch ausgeführt). Der Cookie section_data_ids
hat aber nur '*' und 'messages' => leer (false oder null).
Wenn der Seiten-Cache aktiviert ist, gibt es private_content_version
und section_data_ids
hat welche Schlüssel mit Werten:
*: null
cart: 123
compare-products: 123
customer: 123
directory-data: 123
last-ordered-items: 123
multiplewishlist: 123
review: 123
wishlist: 123
Nachdem ich mich mit aktiviertem Seiten-Cache angemeldet habe, gibt es im Kunden-Dashboard zwei zusätzliche Ajax-Anforderungen, die Daten laden:
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
Diese enthalten JSON-Objekte mit kundenspezifischen Daten und Verzeichnisdaten wie alle Länder und Regionen. Bei diesen Anrufen wird an der Kasse in der Adressübersicht der Ländername angezeigt. Siehe: module-customer/view/frontend/web/js/sections-config.js
und module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js
, Funktion getCountryName
.
Ist das ein Magento 2- Fehler oder habe ich etwas durcheinander gebracht? Vielen Dank
quelle
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
Antworten:
Dies scheint ein ausstehendes Problem zu sein, obwohl es möglicherweise in neueren Versionen von M2 behoben wurde. Siehe Probleme mit Magento GitHub:
"Keine Artikel" im Minicart in 2.1 (offen zum Zeitpunkt dieses Schreibens)
Minicart leer, wenn FPC in Magento 2.1.1 deaktiviert ist (offen zum jetzigen Zeitpunkt )
Minicart zeigt kein Produkt an, auch wenn ich Produkte im Warenkorb habe (geschlossen)
So weit wie möglich ...
Wenn es sich um Cookies handelt, können Sie möglicherweise einige Möglichkeiten ausschließen, indem Sie Ihre Website in einem privaten Browser / Inkognito-Browser besuchen. Gehen Sie Ihren Workflow durch (nicht angemeldet, fügen Sie das Produkt dem Warenkorb hinzu, melden Sie sich beim Kunden an, sehen Sie sich das Dropdown-Menü / Kasse / Warenkorb und Minicart an).
Darüber hinaus kann es hilfreich sein, in den M2- Entwicklerdokumenten nach bewährten Methoden für die Konfiguration der Caches in der Entwicklung und der Konfiguration in der Produktion zu suchen . Nach meiner Erfahrung ist es in der Entwicklung in Ordnung, alle Caches in der Entwicklung zu aktivieren und bei Bedarf einfach zu leeren (Beschreibungen der einzelnen Caches finden Sie in der Dokumentation). Beachten Sie, dass ich persönlich als Front-End-Entwickler die Entwicklung mit deaktivierten FPC-, Block-Ausgabe- und Layout-Caches vorziehen möchte. Dadurch können Änderungen am Frontend leichter erkannt werden.
quelle