Jos*_*ano 6 php magento shopping cart magento-rules
我已经发了优惠券[coupon_code = SWIMFREE]如果category是swimming equipment,hobby并且swimming将折扣50%.
现在我有关于3步结账的问题.这是描述......
sales_flat_quote table,
sales_flat_quote_hobby)我想要的是:当应用优惠券和爱好游泳时,第三步将价格改为每件产品的价格,优惠券仍在那里展示.
如何在Hobby步骤后拦截优惠券?
示例案例一步一步:
在购物车上它已经添加了
2.关于运输和结算步骤
3.关于爱好步骤
4.在概述步骤然后
我有很多产品,我试图添加新属性,但它与属性无关,因为它在 sales_flat_quote_hobby
我试图改变Sales/Model/Quote/Subtotal.php设置购物车上的所有产品价格,但似乎没用.
我自己找到了答案:
这是可能的,以创建一个定制的优惠券条件.

重写Mage_SalesRule_Model_Rule_Condition_Product
public function validate(Varien_Object $object){
if ($this->getAttribute() == 'quote_item_with_hobby') {
$quote = Mage::getSingleton('checkout/cart')->getQuote();
$hobby= $quote->getHobbyByItemId($object->getId());
if ($hobby){
if ($this->getOperator() == '=='){
if (strtolower($this->getValue()) == $hobby->getHobby()) return true;
else return false;
}
else if ($this->getOperator() == '!='){
if (strtolower($this->getValue()) == $hobby->getHobby()) return false;
else return true;
}
}
return true;
}
return parent::validate($object);
}
Run Code Online (Sandbox Code Playgroud)
每个步骤都会调用此函数.然后检查是否返回true,然后将应用优惠券,如果返回false,则不会应用优惠券.
感谢所有参与了的人.我很感激.