我正在开发一个脚本(Magento外部,而不是一个模块),其目的是输出所有可用产品的文本列表,它们的价格和一些其他属性。但是,目录价格规则似乎不适用于产品价格。如果我使用以下任何一项:Magento:如何获得应用目录规则的产品的价格
$_product->getPrice()
$_product->getFinalPrice()
我得到正常价格(没有应用规则)。
如果我使用:
$_product->getSpecialPrice()
我得到空,除非该产品实际上有一个特殊的价格插在产品本身的(即如有特殊价格不与目录规则有关)。
我也试过
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())
为在法比安布莱赫施密特给出的答案建议,但有趣的是它返回只有当产品被任何目录规则的影响,回国空否则正常价格。
前段时间StackOverflow和Magento Forums也有类似的问题,但是提供的答案(即插入代码如下)对我不起作用(返回的价格保持不变)。
Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND,Mage_Core_Model_App_Area::PART_EVENTS);
有没有人有如何实现这个想法?
我使用的是Magento 1.6.2.0。 在此先感谢。
也许还有其他的事情正在涉及您的数据或索引。所有定制模块被禁用时,折扣价格是否按默认主题预期显示? – benmarks
是的,折扣价显示在前端。问题是这不是一个Magento模块,而是一个“外部”脚本。看来Magento加载了一切正常工作所需的附加内容。换句话说,Magento中的所有东西都必须是一个模块...... – faken
*“Magento中的所有内容都必须是模块”* - 并非如此。然而,有很多模块在应用程序执行时以多种方式进行交互。我会检查'Mage_CatalogRule_Model_Observer'是否正在实例化。也许你应该粘贴远程脚本的相关部分('Mage :: app()'实例化,'loadAreaPart()'调用,产品加载等) – benmarks