これは、Magentoでニスを使用することをどのように回避できるかを説明していると思います
aoe_staticモジュールとニス3用のカスタムvclを使用すると、キャッシュされたページ応答のCookieがクリアされます。これはvclフェッチで実行する必要があります。その後、動的コンテンツをロードする小さなajax応答からCookieを設定できます。これにより、セッションやカートなどが維持されます。このajax応答は、vclリカバリで「パイプ」することができます。
私はこれを行うのに問題はありませんが、実稼働サイトで試したことはありません。
動的ブロックは、layoutxmlを介してプレースホルダーに置き換える必要があります。これらの置き換えが気に入った場合は、ニスエッジサイドインクルードまたはカスタムajax実装である可能性があります。
aoe_static(または任意のタイプのajaxメソッド)から動的コンテンツをロードする場合は、引き続きmagentosレイアウトシステムを使用できることを覚えておいてください。たとえば、レンダリングするネストされたブロックを使用してajax呼び出しのハンドルを作成します。
aoe_staticモジュールを使用すると、loadLayoutが呼び出されますが、そのloadLayoutに渡されるハンドルを覚えておいてください。これは、ページのレイアウトリクエストと同じではありませんが、デフォルトのハンドルを取得します。
もう1つの問題は在庫レベルです。商品にカートに追加するのに十分な在庫がなくなった場合でも、商品リストに表示され、構成可能でグループ化された商品のオプションとして表示されます。
おそらく、オブザーバー(cataloginventory_stock_item_save_after)を使用して在庫レベルをチェックできます(私はこれをチェックしていません)。次に、製品のURLに基づいてキャッシュを削除できます。製品が表示されるカテゴリのURLを取得し、同時にこれらを削除するのは非常に簡単です。
フェニックスモジュールには、オブザーバーからの簡単な実装を確認したい場合に、これらの種類のパージを実行するメソッドがあります。
しかし、階層化されたナビゲーションURLを処理する方法はもっと注意が必要です。基本カテゴリリストのURLをキーとして使用してアプリが提供したクエリ文字列パラメータを事前に保存してから、オブザーバーでこれらのURLを読み取ってパージする必要があります。このクエリ文字列パラメータの保存は、送信前の応答を使用して、正規表現でリクエストオブジェクトをチェックし、カンマで区切られたクエリ文字列をログに記録することで、十分に簡単になります。
現在のモジュールのどれもレイヤードナビゲーションの在庫レベルを扱っていないと考えるのは間違っていますか?
オープンソースコミュニティでは、他のすべてのモジュールが不足しているため、ニス用の完成度の高いモジュールが必要だと思います。個人的には、負荷分散されたサーバーで有料のフルページキャッシュのみを使用し、画像とcssのリクエストをキャッチするためにワニスを使用することを計画しています。誰かが力を合わせて適切なワニスの実装を作成したい場合を除いて、またはこれらすべての懸念にうまく対処するオープンソースの実装に作業を追加できれば、サイトの問題を喜んで支援します。
この質問に直面する問題の詳細については、この質問をチェックアウトしてください-magentoオープンソースフルページキャッシュ