目前,我正在寻找“购物折扣”的最佳做法。 所以,我打算实施这样的折扣......
固定用户的折扣(例如,我想给我最喜欢的客户提供10%的折扣)
商品数量折扣(例如,您购买10支不同颜色的笔,您将获得1.5%的折扣)
优惠券折扣(例如,在促销活动期间,我们制作了100张优惠券,每张优惠10%。优惠券仅适用于一个订单,并在yyyy-mm-dd到期)
目前购买物品或物品组(例如,您正在购买笔,纸张清单和商店为您提供磨刀器)
总订单价格折扣(例如,您购买10支笔并且没有折扣,那么您将再增加5支笔并获得5%的折扣)
只有一个折扣可以应用于特定商品。我们总是申请最大折扣。用户最赚钱的折扣。
除此之外,管理员应该能够按特定顺序修改商品价格并按此顺序取消折扣。
坦率地说,这是我的第一个电子商务应用程序,在我看来很难实现所有这些类型的解决方案。
好的,现在让我告诉你我将如何实施......
固定用户的折扣这只是用户表中的一个字段,其中包含有关折扣的信息。它通过控制面板手动设置或由cron自动设置,用于总订单总和超过N的用途。
项目数量的折扣我将创建额外的表存储项目的此类折扣组。此外,我还需要一张表来将这些组与商店中的商品联系起来。
优惠券折扣只是一张包含优惠券的表格,其中包含过期日期,优惠券状态,优惠券折扣以及user_id(优惠券所有者)。也许我还会为物品类别实施优惠券。
目前购买物品或物品组这是屁股的真正痛苦,我完全不知道如何实施。请帮忙!
总订单价格折扣非常简单,imho。
好的,现在我正在寻找在数据库中存储此类折扣的最佳做法。另外,我正在寻找将此折扣应用于购物车的OOP做法。任何帮助表示赞赏!
PS:很抱歉这么长的帖子,但我认为这不仅对我有用。
谢谢。
答案 0 :(得分:1)
目前购买物品或物品组要求的基本解决方案是使用捆绑包和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
您的捆绑表包含礼品项目ID,而捆绑项目表包含与捆绑包相关联的所有项目,用户必须订购这些项目才有资格获得礼品。
您的“捆绑”类将包含这些必需产品项目的数组,礼品和购买购物车对象的方法,并检查购物车是否包含此特定捆绑产品的所有必需产品 - 类似于在foreach循环中简单的foreach ...
这是一个简单的解决方案,根据这些礼品的规则,事情会变得复杂,例如如果我订购2笔和2张纸,我会得到2个磨刀器吗? - 祝你好运!