我们的企业目前有一个在线商店,最近我们已经提供免费特价给我们的客户。现在,我们只需展示特价商品,并向买家发出通知,说明我们将在他们结账后向他们的订单中添加额外的免费商品。当然,自动化整个过程也不错。你知道吗
我一直在考虑一些想法,主要是创建一个折扣模型(本例中我使用的是Django,但这更像是一个逻辑问题),并让该模型具有各种标志和产品列表,以便我可以创建这样的实例:
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
)
这种逻辑是有效的。然后我可以看看他们的购物车里有什么,然后对照模型中现有的折扣进行测试,看看他们是否申请了什么。最大的问题是它可能会变得非常混乱,特别是如果你有多个特价正在进行,我只是不认为它工作得太好。你知道吗
不幸的是,这是我现在最好的主意。所以,我来问你们:你们认为最好的方法是什么?我不是在寻找代码,只是一些逻辑的想法和方法来做到这一点。:)
提前谢谢!你知道吗
我不明白这个问题,但是如果你选择了DISTINCT(我在用SQL写“伪逻辑”)所有与汽车中的项目匹配的免费项目,然后如果你只想给出其中的一个或n个- 选择顶部(n)与tblFREE where freebeid in不同(从tbl itemsfreebe where items in中选择freebdid(从购物车中选择商品,其中****Freebe givaway LOGIC***))
freebe giveaway logic是一个通用占位符,它应该始终计算true或false:
如where(从购物车中选择count(*)>;2) 因此,如果逻辑有效-你会得到列表中的项目,如果没有-你将一无所获。你知道吗
您可以将此逻辑移到代码中,并只运行数据库中“查询”的第一部分。。。你知道吗
逻辑可与AND或or或其他逻辑一起使用。。。。你知道吗
一旦用户接受了优惠-您将列表添加到购物车,并且应该升起一个标记,表明已应用折扣/免费-这样就不会发生两次。。。你知道吗
我想知道,用SQL写它比说它容易是什么意思:-)
我希望这是针对你的问题。。。你知道吗
欢迎来到地狱。呆一会儿。;)啊哼。
折扣是一团乱麻,所以你会因为不得不和他们合作而感到污点也就不足为奇了。从设计的角度来看,测试应该是
Discount
实例的一部分,即应该有appliesTo(cart)
方法和apply(cart)
方法。第一个告诉你是否有折扣,第二个告诉你是否有折扣。我建议apply()
方法不会更改购物车的“用户部分”,而是修改额外的字段,这样您就可以轻松地重置购物车(删除所有折扣)并再次运行该过程。你知道吗通过这种方式,您可以干净地实现两种最常见的折扣:“购买Y时免费获得X”和“购买Y$$时获得X%的折扣”。因为你不改变原来的数字,你可以很容易地申请多重折扣和回扣。你知道吗
我还建议用大量的单元测试来支持这一点,以确保整个过程按照您的预期运行。否则下一个折扣可能是你的最后一个了。:)
相关问题 更多 >
编程相关推荐