实用主义地将赠品/赠品添加到在线购物网站

2024-04-29 01:04:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的企业目前有一个在线商店,最近我们已经提供免费特价给我们的客户。现在,我们只需展示特价商品,并向买家发出通知,说明我们将在他们结账后向他们的订单中添加额外的免费商品。当然,自动化整个过程也不错。你知道吗

我一直在考虑一些想法,主要是创建一个折扣模型(本例中我使用的是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
       )

这种逻辑是有效的。然后我可以看看他们的购物车里有什么,然后对照模型中现有的折扣进行测试,看看他们是否申请了什么。最大的问题是它可能会变得非常混乱,特别是如果你有多个特价正在进行,我只是不认为它工作得太好。你知道吗

不幸的是,这是我现在最好的主意。所以,我来问你们:你们认为最好的方法是什么?我不是在寻找代码,只是一些逻辑的想法和方法来做到这一点。:)

提前谢谢!你知道吗


Tags: of方法订单模型free客户逻辑one
2条回答

我不明白这个问题,但是如果你选择了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%的折扣”。因为你不改变原来的数字,你可以很容易地申请多重折扣和回扣。你知道吗

我还建议用大量的单元测试来支持这一点,以确保整个过程按照您的预期运行。否则下一个折扣可能是你的最后一个了。:)

相关问题 更多 >