我正在开发一个脚本(外部的Magento,而不是一个模块),旨在输出所有可用产品的文本列表,它们的价格和一些其他属性。然而,目录价格规则似乎并不适用于产品价格。如果我使用以下任何一项:
$_product->getPrice()
$_product->getFinalPrice()我得到正常价格(没有应用规则)。
如果我使用:
$_product->getSpecialPrice()我得到null,除非产品本身中实际插入了特殊价格(即如果特殊价格与目录规则无关)。
我也试过了
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())正如Fabian Blechschmidt给出的答案中所建议的,但有趣的是,它仅在产品受任何目录规则影响时才返回正常价格,否则返回null。
前段时间在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。提前谢谢。
发布于 2012-12-31 10:57:48
我发现了问题。折扣价格在商店前台显示正常。问题是我正在开发Magento的“外部”脚本(因此不是Magento模块),类似于:
<?php
set_time_limit(0);
ignore_user_abort();
error_reporting(E_ALL^E_NOTICE);
header("Content-Type: text/plain; charset=utf-8");
require_once "app/Mage.php";
// Get default store code
$default_store = Mage::app()->getStore();
...要让一切正常工作,似乎必须遵循适当的Magento引导程序,并将所有内容作为模块进行开发。我的脚本非常简单,我认为没有必要编写一个完整的模块。换句话说,Magento中的一切都应该是一个模块。
最后,使用模块方法,所有方法都按预期工作:
$_product->getPrice()
$_product->getFinalPrice()
$_product->getSpecialPrice()感谢你们所有人的投入。
发布于 2012-12-31 04:25:35
多亏了你,我找到了一个新网站:http://www.catgento.com/magento-useful-functions-cheatsheet/
他们提到:
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())HTH
发布于 2012-12-31 08:12:38
由于目录价格规则在很大程度上依赖于时间、商店和访问客户,因此当您想要检索应用了价格规则的产品最终价格时,您需要设置这些参数。
因此,在您的示例中,请确保使用所需的商店和客户组id传递所提供的产品,可以将其设置为:
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product->setStoreId('STORE_ID')->setCustomerGroupId('CUSTOMER_GROUP_ID'),$product->getPrice())https://stackoverflow.com/questions/14093500
复制相似问题