python - 务实地向在线商店添加赠品/免费赠品

标签 python django e-commerce logic

我们的企业目前拥有一家在线商店,最近我们一直在向客户提供免费特价商品。现在,我们只是展示特价商品,并向买家发出通知,说明我们将在他们结账后将额外的免费商品添加到他们的订单中。当然,如果能够自动化整个过程就好了。

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

这种逻辑是可行的。然后,我可以查看他们的购物车中的商品,并根据模型中的现有折扣进行测试,看看它们是否适用于任何商品。最大的问题是它可能会变得非常困惑,特别是如果你有多个特价事件,而我只是不认为它效果很好。

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

提前致谢!

最佳答案

欢迎来到 hell 。停留片刻。 ;) 咳咳。

折扣是一团糟,所以你因不得不与他们合作而感到受到玷污也就不足为奇了。从设计的角度来看,测试应该是Discount的一部分。实例,即应该有一个 appliesTo(cart)方法和apply(cart)方法。第一个告诉您折扣是否适用,第二个则实际应用折扣。我建议apply()方法不会更改购物车的“用户部分”,而是修改额外的字段,因此您可以轻松重置购物车(放弃所有折扣)并再次运行该过程。

这样,您就可以清楚地实现最常出现的两种折扣:“购买 Y 时免费获得 X”和“购买 Y $$$ 时获得 X% 的回扣”。由于您不更改原始数字,因此您可以轻松应用多个折扣和回扣。

我还建议用大量的单元测试来支持这一点,以确保整个事情的行为符合您的预期。否则下一次折扣可能是您的最后一次。 :)

关于python - 务实地向在线商店添加赠品/免费赠品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1701956/

相关文章:

python - Redis 管道和 python 多处理

javascript - 使用 Shopify API 请求在自定义网站上使用 JavaScript 获取所有产品

python - 使用查询数据库的默认字段函数迁移时出现 Django 错误

python - pipenv shell在虚拟环境中启动子shell… 'powershell.exe'无法识别为内部或外部命令,可操作程序或

php - 我们如何在产品页面中显示每个子类别中的一个产品

search - 随机性对搜索结果的影响

python - 如何序列化异常

python - 根据键列表从字典中获取值

python sqlite插入命名参数或null

Python2.7 中的 MySQL 连接池无法按预期工作。连接池的 close() 函数面临问题