Algorithm 购物车和各种折扣。在DB中存储折扣并将其应用于订单计算
目前,我正在寻找对购物车/订单“应用折扣”的最佳实践。 所以,我计划实施这样的折扣Algorithm 购物车和各种折扣。在DB中存储折扣并将其应用于订单计算,algorithm,data-structures,data-modeling,shopping-cart,Algorithm,Data Structures,Data Modeling,Shopping Cart,目前,我正在寻找对购物车/订单“应用折扣”的最佳实践。 所以,我计划实施这样的折扣 固定用户折扣(例如,我想给我最喜欢的客户打10%的折扣) 商品数量折扣(例如,您购买10支不同颜色的钢笔,将获得1.5%的折扣) 优惠券折扣(例如,在促销活动期间,我们制作了100张优惠券,每张都有10%的折扣。优惠券仅适用于一个订单,并于yyyy-mm-dd到期) 购买物品或物品组的礼品(例如,您正在购买笔、纸张清单和商店赠送给您的卷笔刀) 订单总价的折扣(例如,您购买了10支钢笔,但没有折扣,然后您又增加了
- 固定用户折扣(例如,我想给我最喜欢的客户打10%的折扣)
- 商品数量折扣(例如,您购买10支不同颜色的钢笔,将获得1.5%的折扣)
- 优惠券折扣(例如,在促销活动期间,我们制作了100张优惠券,每张都有10%的折扣。优惠券仅适用于一个订单,并于yyyy-mm-dd到期)
- 购买物品或物品组的礼品(例如,您正在购买笔、纸张清单和商店赠送给您的卷笔刀)
- 订单总价的折扣(例如,您购买了10支钢笔,但没有折扣,然后您又增加了5支钢笔,并获得5%的折扣)
- 固定用户折扣它只是用户表中包含折扣信息的字段。它通过控制面板手动设置,或由cron自动设置,用于总订单总和超过N的用途
- 项目数量折扣我将创建额外的表来存储此类折扣的项目组。另外,我还需要一个表来连接这些组和商店中的物品
- 优惠券折扣只有一个包含优惠券的表,其中包含过期日期、优惠券状态、优惠券折扣以及可能的用户id(优惠券所有者)字段。可能我也会为不同类别的物品提供优惠券
- 购买物品或一组物品时赠送礼物这真是让人头疼,我完全不知道如何实施。请帮忙
- 总订单价格的折扣非常简单,imho
谢谢。目前购买物品或物品组需求的基本解决方案是有一个bundle和一个bundleItem表
bundle table.
id int primary key
giftproductId int foreign key - product table
bundleitem table.
id int primary key
bundleid int foreign key - bundle table
requiredproductid int foreign key - product table
bundle表包含礼品项目id,bundleitem表包含与用户必须订购才能获得礼品的bundle相关联的所有项目
您的“Bundle”类将包含这些必需产品项的数组、礼品项和一个方法,该方法接受一个购物车对象并检查购物车是否包含此特定Bundle提供的每个必需产品-类似于foreach循环中的简单foreach
这是一个简单的解决方案,根据这些礼品的规则,事情可能会变得复杂,例如,如果我订购了2支钢笔和2张纸,我会得到2个卷笔刀吗?-祝你好运 假设你有20种钢笔。您需要多少个包来指定某个人可能拥有的所有不同类型的笔组合?假设可以应用多个bundle,但它们不能同时应用所有bundle。如何选择利润最高的捆绑包?“角案可能会变得复杂。”B我同意。上面的解决方案只是一种机制,能够识别购物车何时包含符合am报价的合格产品-您可以明显地扩展它,以容纳大量的标志和参数,以覆盖您的完全有效的上述假设,或者您可以执行我所做的操作-使用参数将规则硬编码到客户端规范,以打开或关闭规则关您可以有一个抽象规则类,该类在运行时注入特定于客户端的具体实现,以保持代码库和客户端规则干净地分开。rules类基本上有一个要实现的“applyRules”方法。