我正在学习Magento认证考试,我试图确定在什么情况下从Magento的索引表中读取产品价格.
我正在尝试遵循Magento的方法流程,但是在跟踪了几条兔子小径之后我就陷入了困境.
也许有人在过去的任何时候都找到了它?
mpa*_*per 11
只有在使用产品集合时,即一次处理多个产品时,才会从索引表中读取产品价格.当您获得单个产品时,例如在产品视图页面上,即可生成价格.
现在解释一些代码参考:
当你考虑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)中,价格指数用于减少每个产品的价格计算的复杂程序.它定义了一个映射,用于将字段分配给适当的索引字段:
protected $_map = array('fields' => array(
'price' => 'price_index.price',
'final_price' => 'price_index.final_price',
'min_price' => 'price_index.min_price',
'max_price' => 'price_index.max_price',
'tier_price' => 'price_index.tier_price',
'special_price' => 'price_index.special_price',
));
Run Code Online (Sandbox Code Playgroud)
完成工作的索引器是类Mage_Catalog_Model_Product_Indexer_Price.
| 归档时间: |
|
| 查看次数: |
1605 次 |
| 最近记录: |