0

Magento CE 1.4.1.1 では、製品ビュー ページにブロック キャッシュを追加しました。そのため、最初の訪問後にフロントエンドの製品ページがキャッシュされます。これまでのところ問題ありません。

しかし、誰かがその製品を購入しても、ブロック キャッシュがフラッシュされないことがわかりました。フロントエンドでは、製品ページに間違った在庫/在庫情報が表示され、製品ページがキャッシュされると警告メッセージを表示する方法がないため、これは良くありません. (製品のブロック キャッシュは、バックエンド管理で製品を保存するときにのみフラッシュされるようです)

1) 特定の製品のブロックキャッシュをフラッシュする方法を専門家が教えてくれますか?

2) 同じように、ajax 階層化ナビゲーション (および ajax ページング、ajax ソート順) を使用しているため、カテゴリ ページをキャッシュしたい場合、上記の領域に除外キャッシュ条件を追加するにはどうすればよいですか?

ありがとう

4

1 に答える 1

0

コードを確認し、ページキャッシュがどのように実装されているかを知らずにこれを実現する方法を言うのは難しいですが、考えられる解決策は、注文したすべての製品のキャッシュをクリアするオブザーバーを作成することです。

/app/code/local/MageIgniter/ClearProductCache/etc/config.xml内

....
    <events>
        <sales_order_place_after>
            <observers>
                <clearproductcache>
                    <type>singleton</type>
                    <class>clearproductcache/observer</class>
                    <method>implementClearProductCache</method>
                </clearproductcache>
            </observers>
        </sales_order_place_after>
 ....

/app/code/local/MageIgniter/ClearProductCache/Model/Observer.php内

<?php
class MageIgniter_ClearProductCache_Model_Observer 
{
    public function implementClearProductCache($event)
    {

        $_order = $event->getOrder();

        foreach ($_order->getAllItems() as $item) {
            //call function to clear cahced
            //$item->getId();
       }


        return $this;
    }

オブザーバーMagentoの実装を参照してください

于 2012-12-23T20:17:53.477 に答える