django 免费送货在satchmo

niwlg2el  于 2023-01-22  发布在  Go
关注(0)|答案(1)|浏览(208)

我需要为satchmo中的加拿大邮政模块添加一个“如果购买超过100美元,免费送货”的功能。这可以开箱即用吗?或者我需要制作一个新的送货模块吗?

f3temu5u

f3temu5u1#

好的,为了做到这一点,我做了以下操作:

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

相关问题