Avec le cache Magento 2.0.4 , plus spécifiquement le cache de pages activé , tout fonctionne.
Si je le désactive, effacez les cookies et connectez-vous en tant que client, car les produits de minicart ne sont pas là.
Le message de bienvenue ne fonctionne pas vraiment bien. Je dois ajouter un produit au panier à partir d'une page de produit afin de voir le minicart. Que si je passe à la caisse, le pays n'est pas affiché dans le résumé de l'adresse (adresse de livraison déjà ajoutée dans mon compte).
Je l' ai fait le débogage et il semble que le problème pointe vers:
module-customer/view/frontend/web/js/customer-data.js
. Le cookie private_content_version
est installé module-page-cache/view/frontend/web/js/page-cache.js
et utilisé dans customer-data.js
. Voir customerData::reload
fonction.
Lorsque le cache de pages est désactivé, les données ne sont pas chargées à partir du serveur comme le dataProvider::getFromServer()
fait la fonction .
Lorsque le cache de page est désactivé, le cookie private_content_version
n'est pas là (page-cache.js n'est pas exécuté bien sûr). Mais le cookie section_data_ids
n'a que '*' et 'messages' => vide (faux ou nul).
Lorsque le cache de page est activé, il y a private_content_version
et section_data_ids
a quelles clés avec des valeurs:
*: null
cart: 123
compare-products: 123
customer: 123
directory-data: 123
last-ordered-items: 123
multiplewishlist: 123
review: 123
wishlist: 123
Une fois que je me suis connecté avec le cache de page activé, sur le tableau de bord du client, il y a 2 demandes ajax supplémentaires qui chargent les données:
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
Ceux-ci contiennent des objets json avec des données spécifiques au client et des données d'annuaire comme tous les pays et régions. Avec ces appels, lors du paiement, le résumé de l'adresse affiche le nom du pays. Voir: module-customer/view/frontend/web/js/sections-config.js
et module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js
, fonction getCountryName
.
Est-ce un bug de Magento 2 ou quelque chose que j'ai foiré? Merci
la source
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
Réponses:
Cela semble être un problème en suspens, bien qu'il soit peut-être résolu dans les nouvelles versions de M2. Voir les problèmes de Magento GitHub:
"Aucun élément" dans minicart en 2.1 (ouvert au moment de l'écriture)
Minicart vide si FPC est désactivé dans Magento 2.1.1 (ouvert au moment de l'écriture)
Minicart ne montre aucun produit même lorsque j'ai des produits dans le panier (fermé)
Autant que ce que vous pouvez essayer ...
S'il s'agit d'un cookie, vous pouvez exclure certaines possibilités en visitant votre site dans un navigateur privé / navigation privée. Parcourez votre flux de travail (non connecté, ajoutez un produit au panier, connectez-vous au client, regardez / checkout / cart et liste déroulante minicart).
De plus, il peut être utile d'examiner les documents de développement M2 pour les meilleures pratiques concernant la configuration des caches en développement par rapport à la configuration en production . D'après mon expérience, en développement, il est OK d'avoir tous les caches activés en développement, et de simplement vider lorsque cela est nécessaire (lire les documents pour les descriptions de chaque cache). Remarque, en tant que développeur principalement frontal, je préfère personnellement développer avec FPC, la sortie des blocs et les caches de mise en page désactivés - cela permet de voir plus facilement les modifications frontales.
la source