检索与Magento中的目录价格规则关联的所有产品ID

20g*_*o10 5 magento

我需要一种方法来检索与目录价格规则促销相关联的产品ID(例如,BICYCLES类别中所有项目的价格的50%).我想这样做而不必遍历整个产品数据库.

我知道有一个函数被调用getRuleProductIds($ruleID),它应该按规则ID返回一个产品ID数组,但是我不知道在哪里使用它,哪个集合与它相关联等等.

我在products_in_promotion.phtml模板中有以下代码:

<?php 
  $rules = Mage::getModel('catalogrule/rule');
  $collection = $rules->getCollection();
  $sale_items = $collection->getRuleProductIds(1); # ??????? this throws an error
?>
Run Code Online (Sandbox Code Playgroud)

$collection正确存储所有目录价格规则的数组,但这是我能得到的尽可能接近.没有产品清单.

我在这里做错了什么想法?

sea*_*den 7

您不必将其作为集合.只需加载您想要的规则并使用(aka )中getMatchingProductIds找到的规则.Mage_CatalogRule_Model_Rulecatalogrule/rule

$catalog_rule = Mage::getModel('catalogrule/rule')->load(1);  // Rule ID
$skus = $catalog_rule->getMatchingProductIds();

var_dump($skus);
Run Code Online (Sandbox Code Playgroud)

心连心