2013-01-21 40 views

回答

10

當您使用產品集合時,即一次處理多件產品時,只能從索引表中讀取產品價格。 當您獲得單個產品時(例如在產品視圖頁面上),價格即時生成。

而現在的解釋與一些代碼引用:

當你考慮Mage_Catalog_Model_Product,你會看到getFinalPrice()調用$this->getPriceModel()->getFinalPrice($qty, $this); 反過來方法,默認價格模型(Mage_Catalog_Model_Product_Type_Price)計算方法getFinalPrice()價格並且還會觸發某個模塊(我認爲它是目錄或購物車價格規則)使用的事件catalog_product_get_final_price來調整價格。這種方法是「即時」計算,因此沒有索引。

在集合(Mage_Catalog_Model_Resource_Product_Collection)中,價格指數器用於減少計算每種產品價格的複雜程序。 它定義了映射到字段分配給適當的索引字段:

​​

其做的工作是類Mage_Catalog_Model_Product_Indexer_Price的索引器。

相關問題