2011-10-04 87 views
1

我需要爲satchmo中的加拿大郵政模塊添加「免費送貨,如果購買超過$ 100」功能。這可以開箱即用,還是需要製作新的運輸模塊?免費送貨在satchmo

+1

什麼..爲什麼這不與編程有關?你甚至知道satchmo和django是什麼嗎? – Lacrymology

+1

你的代碼現在是什麼樣的? – random

+0

我已經掛鉤了一個satchmo信號,並添加了一個自定義創建的折扣代碼到訂單。 – Lacrymology

回答

0

OK,要做到這一點,我做了以下內容:

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方法,如果我需要更詳細的控制應用哪種折扣

+1

這不會覆蓋用戶實際輸入的任何折扣代碼嗎? 此外,我不知道自動折扣代碼是否會最終顯示在電子郵件等中,然後可以由用戶重新使用其他訂單。 –

+0

好點。我也不太瞭解,說實話。此代碼已超過三年,我不記得是否以及如何測試這些東西 – Lacrymology

+0

我明白:-)最後,我沒有使用折扣對象,而是將自定義代碼放在託運人對象的成本方法中需要時返回0。 –

相關問題