우리의 사업은 현재 온라인 상점을 운영하고 있으며, 최근에 저희는 고객에게 무료로 특별 상품을 제공하고 있습니다. 바로 지금, 우리는 단순히 스페셜을 표시하고 구매자에게 체크 아웃 후 여분의 무료 항목을 주문에 추가 할 것이라는 내용의 통지를줍니다. 물론이 전체 프로세스를 자동화하는 것이 좋을 것입니다.실용적인 온라인 스토어에 무료 제공/주보 선물
나는 할인 모델을 만들고있다. (이 경우에는 장고를 사용하고 있지만 논리적인 질문이 더 많다.)이 모델은 다양한 플래그와 제품 목록을 가지고있다. 그래서 나는 이렇게 인스턴스를 만들 수 있습니다 :
Discount(
description="Get one free pair of bands when you buy two pairs of shoes.",
valid_products=[BigProductA, BigProductB],
received_products=[FreebieProductA, FreebieProductB],
special_in_intervals=2, # Whenever the user buys 2, give one for free
)
이 논리 종류의 작품. 그런 다음 장바구니에있는 제품을 살펴보고 모델의 기존 할인에 대해 테스트 한 다음 적용 여부를 확인하십시오. 이것에 대한 가장 큰 문제는 특히 여러 스페셜이 있고 너무 잘 작동하는 것을 보지 못한다면 매우 지저분해질 수 있다는 것입니다.
불행히도, 지금 당장은 이것이 내 생각에 가장 좋습니다. 그래서 저는 여러분에게 물어 보게됩니다 : 이것을 위해 최선의 접근법은 무엇이라고 생각합니까? 나는 코드를 찾는 것이 아니라, 논리에 대한 아이디어와이를 수행하는 방법을 찾고있다. :)
미리 감사드립니다.
답해 주셔서 감사합니다. 지금까지 모든 논리를'할인'모델에 담아두고 있으며 그렇게 유지할 계획입니다. 가장 큰 문제는 사용자에게 무료 항목을 제공하여 목록에서 선택하고 다시하지 않도록 알리는 프로세스입니다. 그 데이터를 어디에 저장할 것입니까? 나는 몇 가지 아이디어를 가지고 있지만 모두 좋게 시작한 다음 지저분한 지옥과 너무 많은 단계로 들어갑니다. 아직도 생각하고 있지만 ... – Bartek
카트의 특수/추가 필드에 저장합니다. 할인이 추가 된 추가 항목을 식별 할 수 있어야합니다. 그러면 렌더러가 계속 표시 할 수있는 동안 총 계산기가 해당 값을 무시할 수 있습니다. 필요한 경우 장바구니의 항목에 일시적인 필드를 추가하는 것을 주저하지 마십시오. 다른 필드의 데이터는 수정하지 마십시오. –
고마워, 그게 최선의 경로 인 것 같다. 윌 물론 물론, 오 하나님이 작동하도록 많은 단위 테스트를 작성해야합니다 :) – Bartek