api设计B2B电商开放平台API接口设计指南
笔者所负责的产品是一个医药电商平台,撮合采购商和供应商在平台上进行线上交易,其中采购商主要是药店、诊所、医院;供应商主要是各大医药公司经销商;本文主要先讲解电商与商家之间信息同步及API接口设计的规范及需要注意的问题。
B2B电商开放平台的设计需要从以下几面去思考:
开放平台API接口的设计,主要是从功能需求的角度,设计满足业务需求的接口及对应的字段;
平台与商家之间信息的对接,对接的方法有哪些?对接过程中需要可能会遇到什么问题;
同步开关及权限的设计,处理信息自动同步和手动设置之间的矛盾。
一、开放平台API接口的设计
1. 商品
商品方面的同步,主要是考虑到:
商品的上传;
商品价格同步;
商品批号同步;
商品上下架同步。
1.1.1 商品的上传
商品上传同步的目的在于把商家需要出售的商品同步到平台,平台把商家上传的商品显示在前端页面,下单成功之后,商品明细信息跟着订单信息一起传给商家。
商品上传过程中需要处理的问题:
商品上传的信息需要包含“ERP商品ID”作为该商品的唯一标识;很多平台都会存在基础商品,例如药品,食品,水果等;如果出售的标的是可以明确定义的,商家只是作为一个经销商存在的情况下,平台可以统一定义基础商品;
在存在基础商品的情况下,商家的上传的商品信息需要与平台的基础商品匹配生成出售的SKU。
匹配的方法可以分为两种:
可以根据商品的条码,批准文号,规格,厂家等进行匹配,但是要求根据这些条件能完全确定这个商品和基础商品是同一个商品;
对于一些商品来说,没有确定的规格供程序完成商品的匹配的时候,需要人工介入进行判断,然后在上传的时候直接附加上“基础商品ID”,通过“基础商品ID”直接进行关联。
正常情况下,商品上传之后不能马上上架并出售,而是先要同步库存之后通过调取批量上下架接口上架或手动点击上架。
如果商品上传之后如果需要直接可以上架出售,接口必须还包含商品销售信息如:价格和库存,所以商品上传的接口必须包含默认单价和库存,其中默认单价必填,库存可以为空并默认为0(同时可以设置规则:库存为0的商品不自动上架销售而库存不为0的商品自动上架销售)。
平台不存在基础商品的时候,不提倡商品直接上架,而是需要审核,因为可能商家上传的商品是平台不允许销售的。
1.1.2 修改商品价格
商家在平台出售的商品的价格并不是固定的,对于SKU比较多的商家而言,商品的价格往往是在ERP直接进行修改,然后同步到各个第三方平台,所以价格同步是不可或缺而且对于实时性,准确性的要求比
较高。
另一方面,商品的销售价格往往由于成本的因素或市场的侧重点不同,往往需要针对不同的地区,客户类型设置不同的价格,而这些设置同样往往是在ERP中设定好的,同样需要同步到平台。
商品价格同步需要处理的问题:
接口需要能满足商品需要同时修改多种类型的价格,包括默认单价,建议零售价,地区价/客户等级价的需求;
对于地区价或客户等级价,需要在平台中定义好规范的地区组或客户组,同步价格的时候,接口中存在字段“地区组”或“客户组”的ID 来与平台的商品价格进行匹配。
地区组的概念:由于行政区划的单位比较多,所以不可能为每一个行政区设置一个价格,通常由于不同商品对于地区价的定义都是一样的,如在A,B两个商品在广东,广西的定价一样而不同于其他地区,那么就可以将广东和广西设置为一个地区组;商品就可以针对每个地区定义价格了
1.1.3 商品批号同步
同一个商品可能由于生产批次不同会存在不同批号的货品,尤其是对于存在有效期的商品,商品的有效
期是和批号是直接挂钩的;商品的批号上传至平台之后,可以直接展示在商品详情中,客户能知道其购买商品有效期的情况,在生成订单之后可以跟着订单信息一起传至商家ERP系统中,作为商家发货的依据。
商品批号同步需要处理的问题:
接口需要传的字段主要包括批号,生产日期和有效期;
每次通过接口同步批号的时候,应当只同步正在出售的批号(可以根据库存是否为0判断),且每次全量更新,数据库里面不能存在冗余批号数据;
批号同步除了每次都全量更新之外,也可以选择每次只更新最新的或
库存最大的批号。
1.1.4 商品上下架同步
商品上下架同步接口主要用来进行批量的商品下架或下架的操作,尤其是新商品刚刚上传的时候,商品处于待上架的状态,需要进行批量的上下架;此外,如需同时上下架多个商品,通过接口操作会比在界面上一个个点击的效率更高。
2. 库存
库存同步
库存同步是使用最频繁且实时性,准确性要求最高的接口;库存同步的不及时或不准确可能会造成商品负卖或客户无法下单购买。
库存同步需要处理的问题:
同步时间间隔必须尽可能短且准确;
有些ERP系统库存是和批号关联的,需要汇总求和该商品相关批号的库存。
3. 客户
商户ERP客户同步
正常来说,商户的ERP系统中保存的客户是不需要传给平台,只需要订单存在收货人,收货电话和送货地址及客户在下单时留的发票信息,即可完成发货的操作。