设计思想是,在购物车结算前匹配促销规则计算出最终优惠金额
+-----------------------+ User -> Goods -> Cart -> Delivery -> | Promotions components | -> Checkout +-----------------------+ | Promotion rule 1 | | Promotion rule 2 | | Promotion rule 3 | | Promotion rule 4 | | Promotion rule 5 | +-----------------------+
数据库设计
+--------------+ | goods | +--------------+ | id |o---+ | ... | | | ... | | +--------------+ | +----------------------+ | | goods_promotion_rule | +--------------+ | +----------------------+ | promotion | | | id | +--------------+ +--->| goods_id | | id |o------->| promotion_id | | name | | ... | | plugin | | ... | +--------------+ +----------------------+
goods_promotion_rule 负责将商品与促销规则关系建立起来
promotion 是促销脚本,我方案是使用 lua 编写促销脚本,plugin用于存储lua文件地址
这样做的好处是不用因为促销规则改变而重新修改程序,单独制作 lua脚本即可,
以上仅仅提供一个思路,你还可以建立一个goods_promotion_group将促销商品分组,然后再与goods_promotion_rule建立关系。
另外在购物车中会同时出现多种促销规则,也是要考虑的。
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
时间: 2024-08-02 21:42:09