Magento - 根据销售规则条件验证报价项目
Magento - validate quote item against salesrule conditions
我想根据 salesrule/rule 的条件验证报价项目。
针对单个项目验证以下操作:
$rule->getActions()->validate($item)
有没有办法针对这些条件做到这一点?
更新:我目前通过即时创建报价并仅向其中添加一个报价项,然后验证该虚假报价来实现这一点。不过,我还是想知道有没有其他方法可以实现。
工作示例:
$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
}
我想根据 salesrule/rule 的条件验证报价项目。
针对单个项目验证以下操作:
$rule->getActions()->validate($item)
有没有办法针对这些条件做到这一点?
更新:我目前通过即时创建报价并仅向其中添加一个报价项,然后验证该虚假报价来实现这一点。不过,我还是想知道有没有其他方法可以实现。
工作示例:
$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
}