api接口平台的开发。本书以visualc++6.0为基础,介绍了数据库系统的设计方法和实现技术。
笔者所负责的产品是一个医药电商平台,撮合采购商和供应商在平台上进行线上交易,其中采购商主要是药店、诊所、医院;供应商主要是各大医药公司经销商;本文主要先讲解电商与商家之间信息同步及API接口设计的规范及需要注意的问题。
B2B电商开放平台的设计需要从以下几面去思考:
商品方面的同步,主要是考虑到:
1.1.1 商品的上传
商品上传同步的目的在于把商家需要出售的商品同步到平台,平台把商家上传的商品显示在前端页面,下单成功之后,商品明细信息跟着订单信息一起传给商家。
商品上传过程中需要处理的问题:
匹配的方法可以分为两种:
正常情况下,商品上传之后不能马上上架并出售,而是先要同步库存之后通过调取批量上下架接口上架或手动点击上架。
如果商品上传之后如果需要直接可以上架出售,接口必须还包含商品销售信息如:价格和库存,所以商品上传的接口必须包含默认单价和库存,其中默认单价必填,库存可以为空并默认为0(同时可以设置规则:库存为0的商品不自动上架销售而库存不为0的商品自动上架销售)。
平台不存在基础商品的时候,不提倡商品直接上架,而是需要审核,因为可能商家上传的商品是平台不允许销售的。
1.1.2 修改商品价格
商家在平台出售的商品的价格并不是固定的,对于SKU比较多的商家而言,商品的价格往往是在ERP直接进行修改,然后同步到各个第三方平台,所以价格同步是不可或缺而且对于实时性,准确性的要求比较高。
另一方面,商品的销售价格往往由于成本的因素或市场的侧重点不同,往往需要针对不同的地区,客户类型设置不同的价格,而这些设置同样往往是在ERP中设定好的,同样需要同步到平台。
商品价格同步需要处理的问题:
地区组的概念:由于行政区划的单位比较多,所以不可能为每一个行政区设置一个价格,通常由于不同商品对于地区价的定义都是一样的,如在A,B两个商品在广东,广西的定价一样而不同于其他地区,那么就可以将广东和广西设置为一个地区组;商品就可以针对每个地区定义价格了
1.1.3 商品批号同步
同一个商品可能由于生产批次不同会存在不同批号的货品,尤其是对于存在有效期的商品,商品的有效期是和批号是直接挂钩的;商品的批号上传至平台之后,可以直接展示在商品详情中,客户能知道其购买商品有效期的情况,在生成订单之后可以跟着订单信息一起传至商家ERP系统中,作为商家发货的依据。
商品批号同步需要处理的问题:
1.1.4 商品上下架同步
商品上下架同步接口主要用来进行批量的商品下架或下架的操作,尤其是新商品刚刚上传的时候,商品处于待上架的状态,需要进行批量的上下架;此外,如需同时上下架多个商品,通过接口操作会比在界面上一个个点击的效率更高。
库存同步
库存同步是使用最频繁且实时性,准确性要求最高的接口;库存同步的不及时或不准确可能会造成商品负卖或客户无法下单购买。
库存同步需要处理的问题:
商户ERP客户同步
正常来说,商户的ERP系统中保存的客户是不需要传给平台,只需要订单存在收货人,收货电话和送货地址及客户在下单时留的发票信息,即可完成发货的操作。
但对于一些特殊产品和特殊行业来说,由于商业原因或行业规则需要(如医药B2B采购要求采购商有相关资质证件),ERP系统中生成订单时需要先存在ERP客户信息,那么ERP客户编号必须先给到平台,然后与平台的客户进行匹配映射,在同步订单需要同时把ERP客户信息一起传输给ERP,商户ERP根据ERP客户信息生成新的ERP订单。
商户ERP客户同步需要处理的问题:
ERP客户同步至平台有多种方案:
方案1可以更好地保护商户的客户资料,保证不外泄;方案2会比较方便,需要手动操作的比较少。
订单方面的同步,包含以下几个方面:
1.4.1 查询订单列表
该接口用于商家ERP系统请求同步平台已付款的订单,查询订单列表接口需要处理的问题:
1.4.2 物流信息同步
订单在商户ERP系统发货后,需传递对应的物流信息给平台,用于展示给客户查看,物流信息同步接口需要处理的问题:
1.4.3 发货信息同步
对于B2B电商来说,在平台产生的订单传到ERP系统的时候,可能产生以下问题:
发货信息同步接口主要是在ERP系统订单出库之后,将出库的商品明细传至平台,需要传递的字段包括:ERP商品编号、发货数量、批号、生产日期、有效期。
1.4.4 同步ERP订单状态
ERP订单状态主要指订单在ERP中处理环节的各个状态,订单传至ERP系统之后,可能需要进行提单、分拣、出库、配送等环节,在客户收到货之后,物流公司也会反馈回签收信息。
ERP订单状态同步至平台后有以下两方面作用:
按照商家的技术能力,可以为商家提供多种对接方案:
商家存在技术开发能力的情况下,按照平台提供的接口调用说明文档,进行业务系统的设计与修改,通过直接请求调用API接口并获取返回数据,实现商家与平台之间的信息流通。
主要的实现方式为:平台技术人员对商家ERP系统业务逻辑进行修改,并在商家的ERP系统上单独创建符合平台接口功能的视图,存储过程或中间表,调用平台的接口传递视图,存储过程中的信息给平台,并将平台接口的响应数据存储在中间表中。
由于不同的ERP系统的数据库结构,业务逻辑会有一定的差异,所以平台需要研究不同客户的ERP系统,进行统一的设计。
商家后台手动操作不仅仅适用无法进行系统对接的客户,同时也是作为接口同步出故障时的临时替代办法,所以手动操作的功能需要满足系统对接的所有需求。
手动操作的功能包括:创建新商品(批量上传),商品的上下架,商品价格修改,商品库存修改,ERP客户编码上传,订单批量下载,订单状态更改等。
由于商家的商品、客户、价格、库存、订单等信息都有手动同步和自动同步两种模式,当两种模式同时存在并进行的同时,可能会导致数据比较乱,而且不方便,如:由于库存不足,页面无法进行下单的操作。而此时商家需要进行负卖,那边这个时候需要手动修改库存,但是修改完之后,库存很快会被同步系统传过来的新库存数据给覆盖。
为了解决以上的问题,我们需要根据不同的功能模块分别做一个开关,即针对某个功能设置是否开启自动同步。如刚刚那个例子,如果此时该商品需要临时修改库存并维持一段时间(保证客户有足够的时间下单付款),可以暂时关闭库存同步服务。
此外,权限的设计可以设计得更细,即针对某个商品设置是否自动同步库存,这样的话,在关闭该商品库存同步功能的时候,不会影响其他商品库存的同步。
本文由 @ 不桡 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。