免费送货satchmo

时间:2011-10-04 17:02:45

标签: django shipping satchmo

我需要在satchmo中为Canada Post模块添加“免费送货,如果购买超过100美元”的功能。这可以开箱即用,还是需要制作新的运输模块?

1 个答案:

答案 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方法