首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Magento:如何获得应用目录规则的产品价格

Magento:如何获得应用目录规则的产品价格
EN

Stack Overflow用户
提问于 2012-12-31 02:42:55
回答 4查看 58.8K关注 0票数 19

我正在开发一个脚本(外部的Magento,而不是一个模块),旨在输出所有可用产品的文本列表,它们的价格和一些其他属性。然而,目录价格规则似乎并不适用于产品价格。如果我使用以下任何一项:

代码语言:javascript
运行
复制
$_product->getPrice()
$_product->getFinalPrice()

我得到正常价格(没有应用规则)。

如果我使用:

代码语言:javascript
运行
复制
$_product->getSpecialPrice()

我得到null,除非产品本身中实际插入了特殊价格(即如果特殊价格与目录规则无关)。

我也试过了

代码语言:javascript
运行
复制
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())

正如Fabian Blechschmidt给出的答案中所建议的,但有趣的是,它仅在产品受任何目录规则影响时才返回正常价格,否则返回null

前段时间在StackOverflowMagento Forums中也有类似的问题,但提供的答案(插入下面的代码)对我不起作用(返回的价格保持不变)。

代码语言:javascript
运行
复制
Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND,Mage_Core_Model_App_Area::PART_EVENTS);

有谁知道如何做到这一点吗?

我使用的是Magento 1.6.2.0。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-31 10:57:48

我发现了问题。折扣价格在商店前台显示正常。问题是我正在开发Magento的“外部”脚本(因此不是Magento模块),类似于:

代码语言:javascript
运行
复制
<?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中的一切都应该是一个模块。

最后,使用模块方法,所有方法都按预期工作:

代码语言:javascript
运行
复制
$_product->getPrice()
$_product->getFinalPrice()
$_product->getSpecialPrice()

感谢你们所有人的投入。

票数 12
EN

Stack Overflow用户

发布于 2012-12-31 04:25:35

多亏了你,我找到了一个新网站:http://www.catgento.com/magento-useful-functions-cheatsheet/

他们提到:

代码语言:javascript
运行
复制
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product,$product->getPrice())

HTH

票数 20
EN

Stack Overflow用户

发布于 2012-12-31 08:12:38

由于目录价格规则在很大程度上依赖于时间、商店和访问客户,因此当您想要检索应用了价格规则的产品最终价格时,您需要设置这些参数。

因此,在您的示例中,请确保使用所需的商店和客户组id传递所提供的产品,可以将其设置为:

代码语言:javascript
运行
复制
Mage::getModel('catalogrule/rule')->calcProductPriceRule($product->setStoreId('STORE_ID')->setCustomerGroupId('CUSTOMER_GROUP_ID'),$product->getPrice())
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14093500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档