电商系统
电商系统主要有两个类别:
一是平台电商,就是说平台上有很多卖货的商家和购物的消费者,典型的就是淘宝。平台电商系统需要有承载多商家的能力,大概如下:
- 多组织功能:每个商家都有独立的商品管理、订单管理、客服接入、会员体系等等;
- 交易保障体系:由于入驻商家的交易和行为不可控,需要有商品审核、投诉处理、交易争端、押金保障、信用管理等等;
- 分类排序系统:多商家同样也带来更多商品,无法手动处理分类排序,要引入推荐系统、分类系统、排名系统、广告系统、防作弊等等;
- 精细化的权限:由于引入商家端,所以不仅需要自身的平台管理系统,也要有商家端的权限系统,而商家的组织权限有时候也分的很细,处理客服的,处理订单的,处理商品的等等,都需要做处理;
- 复杂的交易系统:不同于独立电商直接支付给自己企业,平台电商需要处理多商家的资金,要有保障,有层级,有风险管控等等;
- 当然还有很多诸如流量分成、分销体系、反作弊刷单、搜索引擎、抢购秒杀、社交团购等等功能不必多提,魔鬼全在细节。
二是独立电商,即自己卖货给消费者,比如小米商城,交易额常年位列前五。这里要注意,自己卖货不仅仅是卖自己生产的,也可以卖渠道商供应链的,比如唯品会这种统一采购统一售卖。有些也可以将商品物流等交给供应链,自身只将订单信息同步过去。基本上独立电商也是现在的企业首选,毕竟平台型的投入极大,不是随便就能做的。对于有品牌有产品或者有供应链能力的企业,都建议搭建独立电商:
- 品牌:有自身商城的企业在品牌形象上肯定比没有的好,能轻易赢得消费者的信心,很多时候哪怕自身商城销量很少,但单一个展示的效果都大于广告百万投放;
- 可控:数据可控、展示可控、用户可控、成本可控、风险可控;
- 国际化:出海必备不用多说;
- 利润:自营的边际成本肯定比平台电商抽成低(以前初始成本高,但现在清林云 BaaS 解决了这个问题),另外也可以自身作为渠道商售卖供应链商品,将流量变现。
总之平台电商是一个及其复杂的系统,需要考虑很多点,也要根据不同的需求来裁剪定制各部分功能,这里就暂时不演示了,我们会在后续更新一个平台电商系统应用,敬请期待。而本章节我们为了演示清林云 BaaS 自定义应用能力,将设计一个基础的独立电商系统。该版本能满足大部分独立电商的基础需求,但是每家组织的电商流系统需求都不相同,所以你也可以在这个基础上再自行添加更多高级的个性化功能。
需求
首先我们看需求,其实很简单:企业有一些商品,能将它们展示给消费者,然后消费者可以购买就行。
企业能在控制台或者利用 API 处理订单。
为了保障消费者的体验,用户侧还需要能查看订单、查看物流、进行售后。
功能分析
分析独立电商的基础功能,并将他们拆分成不同的功能,类似于微服务的概念:
- 商品系统:处理商品的创建、更新、查询、下架、分类、搜索、排序等;
- 用户系统:参考用户系统章节,处理用户注册登录等;
- 支付系统:便于用户安全便捷地使用支付功能购买商品;
- 订单系统:为支付系统提供基础,并能通过订单状态来打通购买、物流、售后等;
注意:该版本是 mvp 最小实现,能满足独立电商的基本需求,如果你想要更多功能比如客服、评价、购物车、多 SKU、抢购、物流、限购、秒杀、拼团、分销等,后续可以自行在应用市场中查找相关应用组合实现。
数据库结构
Goods 商品
不带 SKU 的商品比较简单,直接把价格和库存放在上面即可。另外,设置一些用来分类和搜索的字段。
Order 订单
订单在很多时候是企业的核心系统,连接对外对内各部门环节,你可以在这个基础上添加符合你公司业务的其他需求,这样就能灵活且落地。
其中 goodsList
是一个数组,在有购物车功能的情况下,一个订单可以包含很多商品,当然在这里我们放一个即可,根据实际情况判断。
Apply 售后申请
如果发生售后情况,则用户填写售后申请,然后组织成员在控制台查看后进行确认,之后再对接退款 API。
API
商品系统
createGoods
updateGoods
deleteGoods
getGoods
searchGoods
订单系统
createOrder
用户在下单时,会判断金额是否大于 0,如果不为 0,则根据传入的支付渠道参数调用不同的支付方,此处为演示,只有微信的 native 支付和支付宝的网页支付。你可以根据自己的业务自行完成一个下单 API,然后调用符合自身要求的支付方式。
updateOrder
deleteOrder
getOrder
searchOrder
confirmReceived
wxpayCallback
这个 API 用于支付渠道的回调,当用户支付成功时,只有设置回调地址为:https://cn-east-1.baasapi.com/webhook/环境ID/密匙ID/应用ID/应用API/API版本/
即可将请求以转发至该 API,完成支付确认。
转发给该 API 的参数为 headers path data
对应调用该 webhook 地址的 headers path body
。
另外,这个回调是给没有自身服务器的客户所设,如果你方有自己的回调处理服务,则可以在支付系统中配置回调地址为自身的服务地址。
注意:使用回调时需要在微信、支付宝等控制台配置回调域名为
https://环境地域.baasapi.com/
alipayCallback
作用同上。
售后系统
createApply
updateApply
deleteApply
getApply
支付系统
这里的支付系统主要是对接第三方,比如微信、支付宝等(后续更新银联云闪付、京东、美团、百度等)。通过配置相关密匙连接他们的 API,从而在网页端或手机端调起支付能力。
支付系统必须有相应的订单系统,这是第三方支付渠道通用的要求,因为需要自己有一个简单的订单系统能够对应到第三方的支付记录。可以是上面的那个订单系统,也可以自行设计一个符合自身需求的。
由于人手问题,此处我们仅实现了微信和支付宝的一些功能,用于展示部分场景,如有更多需求请联系客服,当然如果足够了解也可以自行设计。
相关配置
由于支付渠道的要求,你需要提前在应用配置中设置一些参数,如下所示。
wxNativePay
wxPayQuery
aliPagePay
aliPayQuery
此处封装了 alipay-sdk 为自定义函数,data 为调用该库的参数。
refund
退款功能暂时可以前往支付渠道控制台操作,再在订单数据页修改订单状态即可。后面清林云将推出完整的电商系统 SaaS 版,提供完整功能。
物流系统
物流的查询、订阅 API 暂未上线,如有需求可以自行设计或联系客服开通。
界面
清林云的环境 RU 充值页面就使用了该系统,和用户系统、组织系统同样开源在一个仓库。