我需要在satchmo中为Canada Post模块添加“免费送货,如果购买超过100美元”的功能。这可以开箱即用,还是需要制作新的运输模块?
答案 0 :(得分:0)
好的,为此,我做了以下事情:
from product.models import Discount
class AutoDiscount(Discount):
pass
这允许我在管理区域中定义不同的折扣,然后执行以下操作:
def check_automatic_discounts(sender, form=None, **kwargs):
"""
"""
if sender in (CreditPayShipForm, SimplePayShipForm,
PaymentContactInfoForm):
# I probably need to sort these in some specific order
for discount in AutoDiscount.objects.all():
if discount.isValid(cart=form.cart,)[0]:
form.order.discount_code = discount.code
form.order.save()
return
signals.form_postsave.connect(check_automatic_discounts)
如果我需要对应用哪些折扣进行更详细的控制,我可以向AutoDiscount
模型添加字段并覆盖isValid
方法