我们添加了“是/否”产品属性,标记为:“允许此产品应用优惠券?”默认值为“是”。购物车做相反的规则
这样做的原因是,我们不希望销售团队给予某些核心产品的可用成千上万的折扣。
我们可以将这些产品作为SKU的增加创造了千元的优惠券中的每一个,但可以再由事故发生变化,或者通过销售团队创建券不当上市。
因此,我们要求他们将此规则添加到他们的新优惠券中,以排除这些产品。我们还通过代码更新了所有其他优惠券,以包含此规则。
当我测试的Magento的1.5,社区版的规则,它不会完全的条件说的正好相反。
当我在我们的其他企业解决方案(magento 1.9)上测试同样的规则时,它实际上做了它应该做的。
当我在购物车中一个产品,是具有此属性设置为“否”,我申请优惠券代码产品,它接受优惠券代码。在另一个系统(企业)它拒绝它,因为它应该。
有没有人遇到过这个?
UPDATE: 好吧,这只是得到更有趣。 当我遍历Rule类时,产品已通过,但产品属性未通过。范围设置为网站,我确实检查了它是否保存在后端的范围内。
这真是奇怪......
在企业制度,产品属性,使用相同的配置和数据即将通过。
我甚至试图没有双重否定,与另一个新的属性,以确保。 针对以下规则运行时,优惠券被拒绝:“优惠券代码无效。” 这是正确的,因为该产品设置为“可以使用优惠券?=否”。
但问题是,我不想做对所有的其他产品进行检查,而是反对,已被标记为“否”的寥寥无几。
无论如何,这并不适用于我们,因为如果购物车中有任何产品的“否”属性值为“可以使用优惠券?”,我们不想应用优惠券。
这是一个双重否定规则,不管你看它哪一种方式。
通过validate()函数,当我第二次添加产品时,我通过了/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php,并且数据显示在属性,但是当我去和重新应用优惠券,并再次通过这个函数,这些值都消失了。这很奇怪。
当增加新产品购物车:
当重新申请优惠券代码:
凡赫克做了描述和其他一些属性的消失?
UPDATE NOTE我越来越接近了。 当我更改以下验证在 “/app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php”()函数从以下方面:
public function validate(Varien_Object $object)
{
$product = false;
if ($object->getProduct() instanceof Mage_Catalog_Model_Product) {
$product = $object->getProduct();
} else {
$product = Mage::getModel('catalog/product')
->load($object->getProductId());
}
$product
->setQuoteItemQty($object->getQty())
->setQuoteItemPrice($object->getPrice())
->setQuoteItemRowTotal($object->getBaseRowTotal());
return parent::validate($product);
}
这样:
public function validate(Varien_Object $object)
{
$product = false;
$product = Mage::getModel('catalog/product')
->load($object->getProductId());
$product
->setQuoteItemQty($object->getQty())
->setQuoteItemPrice($object->getPrice())
->setQuoteItemRowTotal($object->getBaseRowTotal());
return parent::validate($product);
}
然后它工作正常!
你刚救了我的命,男人! – 2012-09-17 16:28:28