交易系统设计(1)-交易相关基本概念

552 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

1 交易

1.1 概念

交易是一种行为:是buyer在某时间以某价格购买seller的一或多个商品:

  • 现实世界中,这种行为是价值的交换
  • 系统中,这种行为产生的就是订单

订单是一种契约:这种契约要求买卖双方按照订单的内容进行履约。以实物商品交易为例,buyer需要付钱契约才有效,seller需要将商品寄送给buyer。

交易至少涉及以下模型:买家、卖家、订单。

1.2 交易

以实物商品交易为例,交易包括如下环节:

这是个完整交易涉及的业务,但若将以上所有业务都放在一个系统中却很糟糕。

1.3 业务域分析

核心模块:

  • 购物车
  • 下单
  • 付款
  • 库存
  • 优惠
  • 收获地址
  • 订单管理
  • 退款
  • 成交记录
  • 评价

1.3.1 下单

卖家的某个商品卖给买家,所以交易肯定要和商品系统交互。为了让买家掏腰包,卖家、平台会想方设法的使用各种营销手段,吸引并促进交易的达成。

常见营销手段:优惠(单品优惠、跨类目优惠、店铺优惠、平台优惠以及其他的组合方式);优惠券(单品优惠券、跨类目优惠券、店铺优惠券、平台优惠券以及其他组合方式);使用积分、金币等虚拟资产抵扣;多次付款(例如预付款等)。

相关业务模型:交易订单、商品、优惠、优惠券、积分、金币等。

1.3.2 付款

为了方便用户购买,很多时候需要支持多种支付方式,例如:支付宝、微信、银联等。

相关业务模型:支付订单

1.3.3 发货与配送

对于拥有成千上万SKU的大商家而言,他们拥有自己的仓库,这些仓库也可能分布在不同的城市,所以他们需要能够管理所有的货物,直到他们的详细信息,选择一个最为经济、快捷的仓库给买家发货。

对于仅拥有几十上百SKU的小商家而言,他们对自己有多少货物心中有数,不需要仓库,甚至直接从家里发货。

发货是一个复杂的过程,如果用户购买了多件,可能会打包一起发送给买家,也可能将一个大件物品拆成多个物流单发给买家;配送的过程也很复杂,涉及物流订单的集散以及派送过程。不过幸运的是很多情况下这些都不需要我们自己实现,直接用第三方的物流服务,我们尽关心物流信息即可。

相关业务模型:商品、商品SKU、货物

1.3.4 收货

对于用户而言,收货仅仅是点击一个“确认收货”按钮而已。相关业务模型:交易订单。

1.3.4.1 退款退货

常见处理流程:buyer提交退款/退货单,seller确认,若一切顺利,seller同意退款/退货,buyer将货物发回并将相关物流单号等信息备注好即可。若seller不同意产生纠纷,这时可能需要平台来做一个裁决。

相关业务模型:退款/退货单、纠纷信息。

1.3.5 退款退货

常见的处理流程是:buyer提交退款/退货单,seller确认,如果一切顺利,seller同意退款/退货,buyer将货物发回并将相关物流单号等信息备注好即可。

如果seller不同意产生纠纷,这时可能需要平台来做一个裁决。

相关业务模型:退款/退货单、纠纷信息

1.3.6 收货退款

seller收到货物以后,更新退款/退货单信息,系统将钱原路退回即可(绝大多数情况下都是原路退回)。

相关业务模型:交易订单、支付订单。

1.3.7 评价

buyer为此次交易进行评价,为其他买家提供参考。

相关业务模型:评价。

1.3.8 对账结算

对于平台而言,不但为买卖双方提供交易渠道,也承担了担保人的角色,防止违约事情的发生。一般而言都会有一个结算后期,例如过了退款退货期限,才给商家结算款项;或者每个月结算一次等等。

对于自营的平台而言,这个过程可能会稍有不同。

相关业务模型:交易订单、支付订单、结算单