Бесплатная доставка в Сатчмо - PullRequest
1 голос
/ 04 октября 2011

Мне нужно добавить функцию «бесплатная доставка при покупке на сумму более 100 долларов» для модуля Canada Post в satchmo.Можно ли это сделать из коробки или мне нужно будет сделать новый модуль доставки?

1 Ответ

0 голосов
/ 07 октября 2011

ОК, для этого я сделал следующее:

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)

IМожно добавить поля в модель AutoDiscount и переопределить метод isValid, если мне нужен более подробный контроль над тем, какие скидки применяются

...