如何设计一个优雅的价格体系?

一个网站代理多种商品,有多种计价模式,有的商品是一口价的,有的商品是有有效期的(RMB/年RMB/月),有的商品是按量计的(如 10 个以内是一个单价, 超过十个又是另一个单价),有的商品是按折扣的,这种情况下怎么设计一个比较优雅的价格体系或者商品价格表,来管理所有商品的价格?

业精于勤,荒于嬉;行成于思,毁于随;
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

商品的价格是固定属性,不受折扣等的影响。 比如你商品的价格是10元, 买10个打9折,商品的价格依旧是10元,无非是购买的价格发生了变化, 最终影响的应该是订单价格。

4年前 评论
kitty_time (楼主) 4年前

不管是 商品价格有效期,还是 按量计,或是 折扣,都属于促销。

商品价格是固定的,且是通用属性(即每个商品都有一个价格),但不一定会有促销价格。

因此每个商品都有原始价格放在商品表,促销的价格单独放关联表。

4年前 评论
kitty_time (楼主) 4年前

增加 价格模式 表 (price_model),字段有:

  • type:字符型或整型,表示计费类型,例如 一口价、有效期、按量计、按折扣 等等;
  • params:json 类型(mysql 5.7 以上已能很好的支持了),以 type 为基准存放相关的参数,例如 有效期 类型的可以存放表示按年计还是按月计的标志,或者 按量计 类型的可以存放达到什么数量之后价格的变动规律;

商品 表根据需求关联 价格模式 表 ,可以一对一,也可以一对多、多对多,并在关联关系里维护 商品 本身的单价/定价。

4年前 评论

商品还是商品 价格是商品的固有属性
如果是时间期限的商品 那肯定也有固定的单价 如 10元/月 或 100元/年 购买多月或者多年 乘对应的数量及折扣 也是很清晰的方案

4年前 评论
jenkincei

刚好也有类似需求,关注下

4年前 评论

根据楼主需求基本可以推测出价格基本分为三种:普通价格、促销价格、阶梯价(打折属于优惠券范畴,在价格上乘上百分比就可以了)

所以建立三张表:普通价格可直接放在产品表,促销价表存开始时间和结束时间,阶梯价存起订量(即最小产品数量)

取价格的时候按照 促销价 > 阶梯 > 普通价 的优先级 ,如果促销价也涉及到阶梯,那在促销价表也要存起订量(后台设置也需要设置促销价的阶梯)

4年前 评论
minororange (作者) 4年前
我的bug写的太好了 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!