Magento 2 Minicart, Willkommensnachricht, andere funktionieren nicht mit deaktiviertem Seiten-Cache nach Kundenanmeldung


16

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_versionwird gesetzt module-page-cache/view/frontend/web/js/page-cache.jsund verwendet customer-data.js. Siehe customerData::reloadFunktion.

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_versionist, ist das Cookie nicht vorhanden (page-cache.js wird nicht automatisch ausgeführt). Der Cookie section_data_idshat aber nur '*' und 'messages' => leer (false oder null).

Wenn der Seiten-Cache aktiviert ist, gibt es private_content_versionund section_data_idshat 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


Konnten Sie das Problem beheben oder herausfinden, was genau die Ursache dafür ist? Ich habe ein sehr ähnliches Problem, Magento ver. 2.0.1. Wenn ich den Cache GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
leeren

1
Ich habe noch keine Lösung gefunden. In Ihrem Fall kann es ein einfacherer Fall sein. Suchen Sie nach dem Fehler und versuchen Sie, ihn zu beheben. Aktivieren Sie Fehler in Magento 2 und umgehen Sie diesen bestimmten Fehler. Ich bekomme keine Fehler, es ist nur so, dass die Daten nicht geladen werden. Ich habe in meinem Fall keine Fehler gesehen.
Obskure

Ich habe den gleichen Fehler gemacht und ich werde sagen, dass es ein Magento2-Fehler ist, da es mit aktiviertem FPC funktionieren wird, aber wenn Sie es deaktivieren, wird es nicht funktionieren. Um das Problem vorübergehend zu beheben, müssen Sie die Minicarts auf jeder Seite programmgesteuert aktualisieren.
Salma Saiyad

Antworten:


0

Dies scheint ein ausstehendes Problem zu sein, obwohl es möglicherweise in neueren Versionen von M2 behoben wurde. Siehe Probleme mit Magento GitHub:

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.