Magento - 针对salesrule条件验证报价项目

时间:2015-03-03 16:17:47

标签: php magento zend-framework magento-1.9 magento-1.9.1

我想根据销售规则/规则的条件验证报价项目。

措施可用于验证单个项目,具体如下:

$rule->getActions()->validate($item)

有没有办法为这些条件做到这一点?

更新:我目前通过动态创建报价并仅向其添加一个报价项目,然后根据该假报价进行验证来实现此目的。但是,我仍然想知道是否还有其他方法可以实现这一目标。

1 个答案:

答案 0 :(得分:2)

工作示例:

$quoteId = Mage::getSingleton('checkout/session')->getQuoteId();
$quote = Mage::getSingleton('sales/quote')->load($quoteId);

$fakeQuote = clone $quote;
$fakeQuote->setId(null);

$product = Mage::getModel('catalog/product')->load(PRODUCT_ID);

$item = Mage::getModel('sales/quote_item')->setQuote($fakeQuote)->setProduct($product);
$item->setAllItems(array($product));
$item->getProduct()->setProductId($product->getEntityId());
$item->setQty(1);

$item->getQuote()->setData('items_collection', array($item));

$rule = Mage::getModel('salesrule/rule')->load(RULE_ID);
if ($rule->getConditions()->validate($item)) {
    // Do something
}