2011-09-20 83 views
2

如何清除單個類別的緩存?當FPC(全頁面緩存)打開時,顯示缺貨項目關閉,產品售罄,類別頁面仍顯示產品(沒有「缺貨」消息)。當用戶點擊頁面時,產品仍然列爲有庫存。我已經添加了一個觀察者來清除產品上的緩存並解決了產品頁面。但是,我似乎無法清除類別頁面的緩存。以下是我試過到目前爲止:Magento - 清除單個類別的緩存

我想這基於什麼是在Mage_Catalog_Model_Category :: Move方法:

Mage::app()->cleanCache(array(Mage_Catalog_Model_Category::CACHE_TAG));

但是這看起來像它應該清理的緩存中的所有類別(當我使用它時似乎不起作用)。我想要一些能夠清除category_id = 123的緩存的東西。

我也試過:

Mage::app()->cleanCache('catalog_category'.$category_id);

但似乎並沒有在所有無論是做任何事情(注: 'catelog_category' 是Mage_Catalog_Model_Category :: CACHE_TAG的值)。

回答

2

所以它看起來像清除FPC你必須使用:

Mage::app()->getCacheInstance()->cleanType('full_page'); 

但這刷新所有的FPC的。我的最終解決需要我來清除FPC 使用重新索引類別:

Mage::getSingleton('index/indexer')->processEntityAction(
    $category, Mage_Catalog_Model_Category::ENTITY, 
     Mage_Index_Model_Event::TYPE_SAVE 
); 

其中$類是Mage_Catalog_Model_Category實例

+0

雖然這是最終的「修復」。我仍然希望能夠清除FPC的單一類別,而不是清除所有的FPC。 –

+0

你有沒有找到這方面的解決方案?我也看起來一樣。我需要清除FPC特定產品的緩存。如果你遇到任何解決方案,請幫助我。謝謝。 – Elavarasan

0

的標籤必須準確:

Mage::app()->cleanCache(array(Mage_Catalog_Model_Category::CACHE_TAG.'_1234'));

您可以在緩存系統中查找它,或使用文件系統緩存並在/ var/cache /中打開元文件。

祝你好運,快樂黑客!