Magento从product_id(或entity_id)获取salesrule id

时间:2012-11-27 23:47:07

标签: php magento

我们正在使用Magento Enterprise 1.10,我需要一种方法来获取类别页面上每个产品的salesrule_id以及产品详细页面。当你使用购物车时,这很容易。

基本上我想做的就是这样 - >伪查询

SELECT rule_id FROM salesrule WHERE entity_id = <entity_id)

你知道在购物车之外做任何事吗?我是否可以使用产品ID调用该方法,如果该产品存在,则返回rule_id?

任何建议都会对我有很大的帮助。

2 个答案:

答案 0 :(得分:2)

产品没有附加销售规则,并且没有内置方法来加载给定产品的规则。在购物车页面上,它很容易,因为规则会应用于报价,并且您可以在每个项目上获得applied_rule_ids,它会为您提供当前应用于报价项目的任何匹配规则的ID,这些规则与产品对象不同。因此,例如,您可以有多个适用于同一项的销售规则,因此applied_sales_rule_ids将为您提供所有应用的规则,而不仅仅是一个。

您可以尝试加载一组销售规则,并在product_ids列上添加过滤器,然后传入产品的实体ID。 This post这里使用一些代码示例来探讨这一点,并且可能会有所帮助。

答案 1 :(得分:2)

尝试使用Mage_CatalogRule_Model_Resource_Rule::getRulesFromProduct()