2011-10-04 5 views
1

satchmo의 Canada Post 모듈에 대해 "$ 100 이상 구매시 무료 배송"기능을 추가해야합니다. 상자에서 꺼내거나 새 배송 모듈을 만들어야합니까?satchmo 무료 배송

+1

무엇이 프로그래밍과 관련이없는 이유는 무엇입니까? satchmo와 django가 무엇인지 아십니까? – Lacrymology

+1

코드는 어떻게 생겼습니까? – random

+0

나는 satchmo 신호에 연결하고 맞춤 주문 할인 코드를 주문에 추가했습니다. – Lacrymology

답변

0

OK,이 일을 내가 그랬어 다음

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) 

나는 필드를 추가 할 수 있습니다 :이 날이 작업을 수행 한 후 관리 영역에서 다양한 할인 혜택을 정의하고 있습니다

from product.models import Discount 

class AutoDiscount(Discount): 
    pass 

AutoDiscount 모델에 적용하고 적용 할 할인에 대한 세부적인 제어가 필요한 경우 isValid 메서드를 재정의하십시오.

+1

사용자가 실제로 입력 한 할인 코드를 무시하지 않습니까? 또한 자동 할인 코드가 전자 메일 등에서 표시되고 결국 다른 주문에 대해 사용자가 재사용 할 수 있는지 여부는 알지 못합니다. –

+0

좋은 지적. 나는 .. 솔직히 말하면, 정말로 알지도 못합니다. 이 코드는 3 년이 넘었고 이러한 것들을 어떻게 테스트했는지 기억하지 못합니다. – Lacrymology

+0

나는 이해합니다 :-) 결국 할인 오브젝트를 사용하지 않았지만 사용자 정의 코드를 shipper 오브젝트의 비용 메소드에 넣습니다. 필요한 경우 0을 반환합니다. –