- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们的企业目前拥有一家在线商店,最近我们一直在向客户提供免费特价商品。现在,我们只是展示特价商品,并向买家发出通知,说明我们将在他们结账后将额外的免费商品添加到他们的订单中。当然,如果能够自动化整个过程就好了。
我一直在考虑一些想法,主要是创建一个折扣模型(在本例中我使用的是 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/
我是一名优秀的程序员,十分优秀!