Magento 2ミニカート、ウェルカムメッセージ、その他は、ログイン後にページキャッシュを無効にすると機能しない


16

Magentoの2.0.4キャッシュ、より具体的にページのキャッシュが有効になって、すべての作品を。

無効にした場合、Cookieをクリアし、ミニカートの製品が存在しないよりも顧客としてログインします。

ウェルカムメッセージは実際には正しく機能しません。ミニカートを見るには、製品ページからカートに製品を追加する必要があります。チェックアウトに行った場合、国は住所の要約に表示されません(配送先住所はアカウントに既に追加されています)。

デバッグを行ったところ、問題が指しているように見えます: module-customer/view/frontend/web/js/customer-data.js。Cookieはでprivate_content_version設定module-page-cache/view/frontend/web/js/page-cache.jsおよび使用されcustomer-data.jsます。customerData::reload機能を参照してください。

ページキャッシュを無効にすると、関数のようにサーバーからデータが読み込まれませんdataProvider::getFromServer()

ページキャッシュが無効な場合、Cookie private_content_versionは存在しません(page-cache.jsはコース外で実行されません)。ただし、Cookieにsection_data_idsは「*」と「メッセージ」=>空(falseまたはnull)しかありません。

ページキャッシュが有効になっている場合、値private_content_versionsection_data_ids持つキーとそのキーがあります。

*:      null
cart:       123
compare-products:       123
customer:       123
directory-data:     123
last-ordered-items:     123
multiplewishlist:       123
review:     123
wishlist:       123

ページキャッシュを有効にしてログインした後、顧客のダッシュボードには、データをロードする2つの追加のajaxリクエストがあります。

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

これらには、すべての国と地域のような顧客固有のデータとディレクトリデータを持つJSONオブジェクトが含まれます。これらの呼び出しでは、チェックアウト時に住所の要約に国名が表示されます。module-customer/view/frontend/web/js/sections-config.js およびmodule-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js、functionを参照してくださいgetCountryName

これはMagento 2のバグですか、それとも私が台無しにしたものですか?ありがとう


これを修正したり、これを正確に引き起こしているものを見つけることができましたか?同様の問題、Magento ver。2.0.1。キャッシュをフラッシュする(すべてのキャッシュフォルダーを削除する)と、ブラウザーコンソールに同様のエラーメッセージが表示されますGET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
。– maginfortis

1
まだ解決策が見つかりませんでした。あなたの場合、それはより単純なケースかもしれません。エラーの内容を確認し、修正してください。Magento 2でエラーを有効にし、その特定のエラーを回避します。エラーは表示されません。データが読み込まれないだけです。私の場合、エラーは発生していません。
不明な

私は同じエラーに直面しており、FPCを有効にすると動作するので、magento2のバグと言いますが、無効にすると無効になります。一時的に修正するには、各ページでミニカートをプログラムで更新する必要があります。
サルマサイヤッド

回答:


0

これは未解決の問題のように見えますが、おそらく新しいバージョンのM2で解決されます。Magento GitHubの問題を参照してください。

あなたが試すことができる限り...

これがCookie関連の場合、プライベートブラウジング/シークレットブラウザでサイトにアクセスすることにより、いくつかの可能性を除外できる場合があります。ワークフローを実行します(ログインしていない、カートに製品を追加する、顧客ログイン、/ checkout / cartおよびミニカートドロップダウンを確認)。

さらに、検討すると便利かもしれM2 devのドキュメントに対して、開発中のキャッシュの設定に関するベストプラクティスのための生産の設定を。私の経験では、開発では、すべてのキャッシュを開発で有効にし、必要に応じて単純にフラッシュしてもかまいません(各キャッシュの説明についてはドキュメントを参照してください)。主にフロントエンドの開発者として、私は個人的にFPC、ブロック出力、レイアウトキャッシュを無効にして開発することを好みます。これにより、フロントエンドの変更をより簡単に見ることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.