商家接入业务上线后,线上交易会产生交易订单,包括正向交易和逆向交易,erp需要及时拉取到本地并进行相应处理,记账交易金额,并保证库存及时进行扣减或回补。
对于线上产生的订单,erp需要及时拉取并处理,涉及接口有:
拉取正向交易接口:alibaba.wdk.order.list
拉取逆向交易接口:alibaba.wdk.order.refund.list
(1)正向交易场景说明:
a.正常拣货并配送完成:商家ERP按订单购买量和订单金额正常扣减库存和资金增加。
b.部分商品拣货缺货/少出(散称商品斤两不足):这种情况妥投时会生成补差退款单,对于此种情况的补差退款单的处理逻辑跟逆向交易中用户申请退款的处理逻辑一样,在逆向交易中说明。
c.散称商品的多出:这种情况客户不会额外付款,但是商家的货物会多出,商家需要针对这部分多出的数量进行处理;
(2)业务字段说明
a.订单状态是PAID状态,则不处理此条数据,只处理PACKAGED和SUCCESS状态的数据;
这里要注意一下,当收到PACKAGED或SUCCESS状态的正向订单时,需要回查是否有对应的退款单,有场景下是会先产生退款单,正向订单后变更状态为PACKAGED的,比如,门店拣货过程中用户发起取消,此时正向订单为PAID状态,拣货完成时变为PACKAGED,目前系统的模式为拣打一体,用户取消无法中断拣货打包任务,当配送揽收时才能发现该笔订单已取消。
b.数量:
(1)购买量>=拣货量时
销售量=购买量,用购买量扣减库存,销售单价不变,销售金额不变。
(2)购买量<拣货量时
方案1(推荐):销售量=拣货量,销售单价不变,销售金额=拣货量*单价。
差异金额=(拣货量-购买量)*单价,按折让金额接入,实收金额=销售金额-折让金额
方案2:销售量=拣货量,销售金额不变,销售单价需重算=销售金额/拣货数量(可能存在小数精度问题)。
c.资金:
对于资金有一下几块信息:一块是支付维度的金额,一块是商品维度的金额,一块是主订单维度的汇总信息
pay_amount是付款金额
pmt_alipay_promotion_amt支付宝优惠金额
pmt_alipay_reduce_amt支付宝随机立减金额
pmt_koubei_coupon_amt口碑券优惠金额
对于口碑券的商品分摊明细在koubei_coupon_info这个字段中。
顾客实际付款金额是pay_amount减去支付宝优惠金额,支付宝随机立减金额,口碑优惠券金额。
original_amt是该商品对应的子单的总金额
promotion_discount_amt是子单维度的优惠总金额
member_discount_amt是会员优惠的金额
share_discount_amt是其他优惠对应的金额。
所以对于每个子单的实付金额是:original_amt - promotion_discount_amt。txd_pmt_amt是该子单ReX平台出资金额。
举个例子:子单的总金额是10块钱,总优惠是5块钱,ReX平台出资2两块。那么original_amt=10,promotion_discount_amt=5,txd_pmt_amt=2,该商品的实付金额是10-5=5。
优惠总金额已经包含了会员金额,其他优惠金额,以及ReX平台出资金额。
original_amt是优惠前总金额
discount_amt是优惠总金额
post_fee是运费。
与支付维度的关系是:
pay_amount=original_amt(优惠前总金额)- discount_amt(优惠总金额)+ post_fee(运费)。
d.商品优惠信息:
商品优惠分为两类:一类是营销活动,一类是券。
对应的信息都在promotion_info字段中。是一个数组,数组中的每一项代表该商品参与的一种活动,关键的属性有:
outActiveId外部活动id(营销接口中传递的外部活动id)
discountFee是此活动折扣金额
type活动类型,枚举值有:
itemCoupon-商品券、shopbonus-店铺券、wdkItemTJ-特价、调价、 wdkDiscountCode-折扣码
wdkShopMJ-满减、加价购、满额换购、wdkShopMS-全场满额换购、 wdkShopNMS-新人满额换购、wdkmjzp-买赠活动
a)淘鲜达平台:代表ReX中台出资
b)淘鲜达合作: 代表ReX中台与商家分摊
c)平台:盒马系商家专用
d)商家:商家出资
e)供应商:供应商出资。
对应的type是itemCoupon,shopbonus。
如果是ReX平台和商家按照比例分摊的情况,所有子单的txd_pmt_amt加起来是平台出资金额,所有子单里面type是itemCoupon, shopbonus券的discountFee加起来是这张券的面额。
e.子订单的类型:
order_type:COMMON普通订单,GIFT是赠品订单,对于赠品订单场景是买赠的赠品,赠品对应的商品价格和营销折扣的价格都是0
(3)逆向交易场景说明
这里需要注意的是逆向对应的ReX系统中的销售库存不会自动增加回去,比如:顾客购买了5瓶水,ReX系统会销售库存扣减5瓶,顾客要退4瓶,ReX系统销售库存不会自动把退的4瓶加回来,需要商家处理之后调用销售库存的增量接口加回来。
之所以这么做是因为逆向取回来的货物需要门店人工二次确认之后还有多少货物能进行线上销售,把能线上销售的库存数量加回来。如果ReX系统直接加回来的话会导致库存虚高,发生超卖。尤其对于生鲜品,可能不会在二次在线上销售,而是采用线下打折的方式卖掉。
a) 补差退款单,散称商品斤两不足的情况,比如:鱼是按照一条一条卖,但是鱼的库存里面是按照重量来保存的。前台显示一条鱼500g,顾客购买一条,但是这条鱼是300g,那么有200g的钱需要退还给顾客。此时系统会自动生成一笔逆向单。该场景下的系统处理逻辑以及需要的字段如下:
补差退款时不需要处理运费字段。
b) 用户发起退款(可能整单退,可能某一个子单退)/用户拒收,对应的逆向单。该场景下的系统处理逻辑以及需要的字段如下:
refund_amount是对应的退款金额,refund_post_fee是退款的快递费用,其中最后一笔子单的refund_amount包含运费,对于快递费用,只有当该笔子订单是最后一笔退款单的时候才会返回。
比如:顾客购买了A,B两个商品,顾客退A商品的时候refund_post_fee是不会有值的,只有当顾客退B也就是最后一个商品的时候才会返回
c)关于买赠商品的逆向单
示例:买A赠B
整体来讲,是一种渠道支付域红包,这种红包可以是商家和平台共同出资。
主子单扩展属性扩展字段如下:
淘鲜达购物金-平台承担膨胀金(txd_expand_discount_platform_fee)
淘鲜达购物金-商家承担膨胀金(txd_expand_discount_merchant_fee)
淘鲜达购物金-平台承担购后权益(txd_benefit_discount_platform_fee)
淘鲜达购物金-商家承担购后权益(txd_benefit_discount_merchant_fee)
涉及变更的接口清单如下
接口名称 |
接口名称 |
接口类型 |
接口特别说明 |
实时拉取交易列表 |
TopAPI |
扩展字段trade_sub_attributes,sub_trade_attributes新增购物金相关字段 |
|
交易订单详情查询 |
TopAPI |
||
退款单详情查询 |
TopAPI |
||
实时拉取退款列表 |
TopAPI |
接口业务含义:对接商家ERP或者业务中台,回流商家全渠道的订单信息,包含营销、计费和交易等,用于商家财务对账和结算,不可以作为仓作业的数据依赖。
主订单扩展属性说明(trade_attributes):
名称 |
参数类型 |
描述 |
示例值 |
└trade_attributes |
Json |
主订单扩展属性 |
{key1: value1,key2: value2,...} |
└orderCreateTime |
String |
订单创建时间 |
2020/1/1 1:00 |
└successTime |
String |
订单完成时间 |
2020/1/1 1:30 |
└storeName |
String |
经营店名称 |
大润发台州XX店 |
└arriveType |
String |
用户期望送达类型 |
用户期望送达类型 |
└expectArriveTime |
String |
用户期望送达时间 |
2020-01-01 |
└discount_platform_fee |
String |
整单平台优惠分摊 |
|
└discount_merchant_fee |
String |
整单商家优惠分摊 |
|
└expand_discount_platform_fee |
String |
购物金-平台承担膨胀金 |
|
└expand_discount_merchant_fee |
String |
购物金-商家承担膨胀金 |
|
└benefit_discount_platform_fee |
String |
购物金-平台承担购后权益 |
|
└benefit_discount_merchant_fee |
String |
购物金-商家承担购后权益 |
|
子订单扩展属性说明(trade_sub_attributes):
名称 |
参数类型 |
描述 |
示例值 |
└trade_sub_attributes |
Json |
子单扩展属性 |
|
└isStandardItem |
String |
是否标品(1/0) |
|
└discount_merchant_fee |
String |
子单商家优惠分摊 |
|
└discount_platform_fee |
String |
子单平台优惠分摊 |
|
└tpSubOrderStatus |
String |
子单是否完成 |
SUCCESS |
└zpRelatedOrderId |
String |
子单关联赠品单id |
|
└expand_discount_platform_fee |
String |
购物金-平台承担膨胀金 |
|
└expand_discount_merchant_fee |
String |
购物金-商家承担膨胀金 |
|
└benefit_discount_platform_fee |
String |
购物金-平台承担购后权益 |
|
└benefit_discount_merchant_fee |
String |
购物金-商家承担购后权益 |
|
正向订单查询:路径为总部视角--客服中心--生鲜客服--订单查询与管理,可按门店,销售终端,订单状态,下单时间(一天内)批量查询,也可按照销售订单号单独查询
逆向订单查询:路径为总部视角--客服中心--生鲜客服--退款单查询与管理,可按门店,退款时间(一天内)批量查询,也可按照销售订单号单独查询