Fel*_*hur 11 magento cart quote coupon
喜欢在标题...由于某种原因,magento网站不应用优惠券代码...总是返回无效的"优惠券代码无效"消息.但奇怪的是,当购物车的价格大于120我的货币时会发生这种情况.
示例:如果我在购物车中有一个价格为65的产品,则优惠券代码可以正常工作...如果我在购物车中有相同的产品但是数量为2(这意味着总价格变为130)我得到上述无效错误信息
我已经将代码追溯到"Mage_Sales_Model_Quote"类,它有一个名为:_validateCouponCode()的函数,里面有以下内容:$ address-> hasCouponCode()总是返回false ...我该怎么办?...我重新索引,刷新缓存......等等...没有改变...我似乎无法在地址模型中找到hasCouponCode函数,看看那里发生了什么...非常感谢提前
好吧,没有你的确切规则,很难给出完整的答案.
首先,如果优惠券代码不在报价地址上,则Mage_Sales_Model_Quote :: _ validateCouponCode()调用只能从报价中删除优惠券代码.这是因为在collectTotal调用期间,折扣总模型将优惠券代码复制到有效并应用的地址IF.因此,在这种情况下$ address-> hasCouponCode()返回null的事实只是规则验证器拒绝应用所提供的优惠券代码的指示.
其次,您应该找出两种方法来找出您的优惠券未被应用的原因.可能它只是一个或另一个取决于你的优惠券,但我会指出两者.Mage_SalesRule_Model_Validator ::过程()和Mage_SalesRule_Model_Validator :: processShippingAmount()是两个地方,将检查您的优惠券代码,并可能运用它和代码复制到地址.
作为旁注,Mage_SalesRule_Model_Validator :: _ maintainAddressCouponCode()是负责将优惠券代码从验证器(从报价中获取代码)复制到地址的方法.如果从未调用此方法,则您的优惠券代码将始终从报价中删除.
TL;博士
步骤调试Mage_SalesRule_Model_Validator :: process()和Mage_SalesRule_Model_Validator :: processShippingAmount()来调试您的优惠券代码无效的原因.
首先 var_dump($address) 并检查详细信息。
然后,
检查以下内容:
active。如果以上 1、2、3 要求全部成立,则设置Stop further rules processing为YES
| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |