当前位置: API文档

sales.RawTrade.pushSelf(原始单推送)

¥标准

1.接口说明

1.1 接口描述:①推送销售订单给ERP ②更新已推送成功的销售订单
1.2 适用版本:客户端 V1.2.3.1及以上版本
1.3注意事项:【权限校验】:店铺权限;上线之前必须在测试环境测试订单推送之后的相关流程!!!

2.调用场景

2.1 举例说明:自研商城、分销系统、全渠道等系统对接

3.请求参数说明

   3.1 请求地址

环境HTTP地址
测试环境http://47.92.239.46/openapi
正式环境http://wdt.wangdian.cn/

   3.2 公共请求参数

名称字段类型长度
必须描述
卖家账号sidString
卖家账号, 由旺店通分配
接口账号keyString
由旺店通分配appkey, 在发送的数据中对应 key 字段
saltString
由旺店通分配appsecret,是由两部分构成, 冒号前面的部分是secret, 冒号后面的部分是salt. 例如一个appsecret是testsecret:testsalt, 那么secret为testsecret, salt为testsalt.
接口名称methodString
调用的接口名称
版本号vString
1.0
秒级时间戳timestampint
秒级时间戳, 当前时间戳减去 2012-01-01 00:00:00(1325347200), 时间与服务器时间差120s内即合法。
签名signString
签名
分页大小page_sizeint
分页大小,分页查询必传
分页编号page_noint
分页编号,分页查询必传
是否计算查询结果的总条数calc_totalint
是否计算查询结果的总条数, 需要计算则1, 否则填0,分页查询必传

   3.3 业务请求参数

名称字段类型长度必须描述

店铺编号

shopNo

String

40

店铺编号

原始单信息

rawTradeList

List<Map<String, Object>>


原始单信息信息集合

原始子单信息

rawTradeOrderList

List<Map<String, Object>>


原始子单信息集合

优惠信息

discountList

List<Map<String, Object>>


不需要优惠明细可不传,优惠明细显示在订单管理界面的优惠明细Tab页

rawTradeList

名称字段类型长度
必须描述
原始单号tidString40指商城、官网等平台的订单编号,ERP称之为原始单号,同一个sid下通过本接口新增订单的tid保证唯一。
处理状态

process_status

Int

4

若为线下门店订单则统一为10。

10: 待递交,20: 已递交,30: 部分发货,

40: 已发货,

60: 已完成,

70: 已取消

平台状态

trade_status

Int

4

10未确认 20待尾款 30待发货 40部分发货 50已发货 60已签收 70已完成 80已退款 90已关闭(付款前取消)

退款状态refund_statusInt40无退款 1申请退款 2部分退款 3全部退款
付款状态pay_statusInt40未付款1部分付款2已付款
子订单个数order_countInt6原始单包含的子订单数
货品总数量goods_countdecimal(19,4)

货品总数量

支付方式pay_methodInt
1在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡
下单时间trade_timeDate
下单时间
支付时间pay_timeDate
支付时间
交易结束时间end_timeDate
交易结束时间,若无则传null
买家账号buyer_nickString100若无则传一个固定值
买家备注buyer_messageString1024若无则传‘’
买家邮箱buyer_emailString
‘’
买家地区buyer_areaString
‘’
收件人姓名receiver_nameString40若无则传‘’
省市区receiver_areaString128省市区空格分隔,若无则传‘’
地址receiver_addressStrinStringg256地址,不包含省市区,若无则传‘’
收件人邮编receiver_zipString20收件人邮编,若无则传‘’
收件人手机receiver_mobileString40
收件人手机,若无则传‘’
收件人电话receiver_telnoString40收件人电话,若无则传‘’
邮费post_amountdecimal(19,4)
邮费
其他费用other_amountdecimal(19,4)
其他费用
优惠金额discountdecimal(19,4)
是 优惠金额
应收金额receivabledecimal(19,4)
 是应收金额,售前退款会变化
平台费用platform_costdecimal(19,4)
0.0000
发票类别invoice_typeInt40 不需要,1普通发票,2增值税发票
发票抬头invoice_titleString255发票抬头,若无则传‘’
发票内容invoice_contentString255发票内容,若无则传‘’
物流类别logistics_typeInt
-1
发货条件delivery_termInt41款到发货 2货到付款(包含部分货到付款) 3分期付款
平台支付订单IDpay_idString
‘’
客服备注remarkString
客服备注
客服备注标记remark_flagint

标旗, 无则填0
货到付款金额cod_amountdecimal(19,4)
若delivery_term=2,则为应付金额,否则则为0
是否是自流转is_auto_wmsBoolean

true自流转,false 非自流转

仓库编号warehouse_noString
自流转情况须填写仓库编号, 非自流转订单传入空字符串即可
买家支付宝帐号pay_accountString
‘’
买家要求的送货日期to_deliver_timeDate
买家要求的送货日期
已从平台收款的金额receiveddecimal(19,4)
 否已从平台收款的金额
淘宝新增,物流到货时效,单位天consign_intervalint
0

rawTradeOrderList



名称字段类型长度必须描述
原始订单号tidString40原始订单号
原始子单号oidString40平台订单货品表主键,子订单唯一标识,同一个sid下通过本接口新增订单的oid(子订单编号)要保证唯一;如果oid重复,ERP生成系统单(递交)时会提示“订单货品数量不一致xxxxxx”
平台的状态statusint410未确认 20待尾款 30待发货 40部分发货 50已发货 60已签收 70已完成 80已退款 90已关闭
退款标记refund_statusint40无退款1取消退款,2已申请退款,3等待退货,4等待收货,5退款成功,6未付款关闭
平台货品IDgoods_idString40平台货品ID
平台规格IDspec_idString40平台规格ID
货品编号goods_noString40货品编号
规格编码spec_noString40规格编码
货品名称goods_nameString255货品名称
规格名称spec_nameString100规格名称
子单类型order_typeint40正常货品 1虚拟货品 2服务
平台类目cidString40平台类目
数量numdecimal(19,4)
数量
单价pricedecimal(19,4)
单价
平台折扣discountdecimal(19,4)

平台折扣, 不包含手工调整和分摊优惠

分摊折扣share_discountdecimal(19,4)
分摊折扣,退款不变
总价格

total_amount

decimal(19,4)
总价格
手工调整的优惠金额adjust_amountdecimal(19,4)
手工调整的优惠金额
退款金额refund_amountdecimal(19,4)
退款金额
备注remarkString255备注
json串jsonString255json串,若无可传“”


discountList (平台,tid,oid,sn,type 联合组成唯一)

名称字段类型长度
必须描述
原始订单号tidString40

原始订单号

原始子单号
oidString40

原始子单号

唯一编码sn

String


平台上优惠的唯一标识
类型
type

String


类型
优惠名称
name

String


优惠名称
是否优惠券
is_bonus

byte


是否优惠券
优惠详情
detail

String


优惠详情
优惠金额amount

Decima(19,4)


优惠金额


4.响应参数

名称字段类型长度
必须描述
状态码statusint

状态码,0表示正常

错误信息messageString

无错误信息不返回

单据数据data

Map<String, Object>


结果相关数据

data

响应参数说明示例值或者格式、具体含义、使用方法及注意事项(如隐私数据淘系平台不返回,其他平台正常返回

名称字段类型长度
必须描述

更新订单数

chg_count

int


返回的为更新订单的数量

新增订单数

new_count

int



返回的为新增订单的数量

5.请求示例

JSON

["test", [{
"is_auto_wms": false,
"post_amount": 2,
"other_amount": 5.2,
"discount": 1,
"platform_cost": 0,
"cod_amount": "",
"received": "",
"tid": "tid-aqyYHjEldp",
"process_status": 10,
"trade_status": 30,
"refund_status": 0,
"pay_status": 2,
"order_count": 2,
"pay_method": 2,
"trade_time": "2020-03-20 18:24:37",
"pay_time": "2020-03-20 18:24:37",
"end_time": "2020-03-20 18:24:37",
"buyer_nick": "test_openapi",
"buyer_message": "test_openapi",
"buyer_email": "test_openapi@gmail.com",
"buyer_area": "test_area",
"receiver_province": "3",
"receiver_name": "receiver_name",
"receiver_area": "85 West Lancaster Court Paramus, NJ 07652",
"receiver_address": "ABCDEFG",
"receiver_zip": "014500",
"receiver_mobile": "15612340987",
"receiver_telno": "",
"invoice_type": 0,
"invoice_title": "",
"invoice_content": "",
"logistics_type": -1,
"consign_interval": 0,
"delivery_term": 1,
"to_deliver_time": "",
"pay_id": "",
"pay_account": "",
"remark": "",
"remark_flag": 0,
"goods_count": 6,
"receivable": 17.6
}],
[{
"tid": "tid-aqyYHjEldp",
"oid": "tid-aqyYHjEldp-0",
"order_type": 0,
"status": 30,
"refund_status": 0,
"goods_id": "openapi_gid-0",
"spec_id": "openapi_sid-0",
"goods_no": "api_gno-0",
"spec_no": "api_sno-0",
"goods_name": "api_gname-0",
"spec_name": "api_sname-0",
"num": 3,
"price": 2.5,
"adjust_amount": 2,
"refund_amount": "",
"discount": 0.5,
"share_discount": 0.2,
"total_amount": 9,
"share_amount": 8.8,
"cid": "",
"remark": "",
"json": ""
}, {
"tid": "tid-aqyYHjEldp",
"oid": "tid-aqyYHjEldp-1",
"order_type": 0,
"status": 30,
"refund_status": 0,
"goods_id": "openapi_gid-1",
"spec_id": "openapi_sid-1",
"goods_no": "api_gno-1",
"spec_no": "api_sno-1",
"goods_name": "api_gname-1",
"spec_name": "api_sname-1",
"num": 3,
"price": 2.5,
"adjust_amount": 2,
"refund_amount": "",
"discount": 0.5,
"share_discount": 0.2,
"total_amount": 9,
"share_amount": 8.8,
"cid": "",
"remark": "",
"json": ""
}]
]
PHP
<?php
header("Content-Type: text/html; charset=UTF-8");
date_default_timezone_set("Asia/Shanghai");
require_once('wdtsdk.php');
 
function str_rand($length = 10, $char = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') {
    if(!is_int($length) || $length < 0) {
        return false;
    }
 
    $string = '';
    for($i = $length; $i > 0; $i--) {
        $string .= $char[mt_rand(0, strlen($char) - 1)];
    }
 
    return $string;
}
 
$client = new WdtErpClient("url", "wdtapi3", "appkey", "secret"); 
 
$rawTrade = new stdClass();
$rawTrade->is_auto_wms=false;
// $rawTrade->warehouse_no='pos_inner'; // 非自流转订单不需要设置此字段.
 
$rawTrade->post_amount=2.0000;
$rawTrade->other_amount=5.2000;
$rawTrade->discount=1.0000;
// $rawTrade->receivable='';
$rawTrade->platform_cost=0.0000;
$rawTrade->cod_amount='';
$rawTrade->received='';
$rawTrade->goods_amount = $rawTrade->receivable - $rawTrade->post_amount + $rawTrade->discount;
 
$rawTrade->tid='tid-'.str_rand();
$rawTrade->process_status=10;
$rawTrade->trade_status=30;
$rawTrade->refund_status=0;
$rawTrade->pay_status=2;
 
// !!
$rawTrade->order_count=2;
// $rawTrade->goods_count='';
$rawTrade->pay_method=2; //1在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡
$rawTrade->trade_time=date('Y-m-d H:i:s');
$rawTrade->pay_time=date('Y-m-d H:i:s');
$rawTrade->end_time=date('Y-m-d H:i:s');
 
$rawTrade->buyer_nick='test_openapi';
$rawTrade->buyer_message='test_openapi';
$rawTrade->buyer_email='test_openapi@gmail.com';
$rawTrade->buyer_area='test_area';
 
$rawTrade->receiver_province='3';
$rawTrade->receiver_name='receiver_name';
$rawTrade->receiver_area='85 West Lancaster Court Paramus, NJ 07652';
$rawTrade->receiver_address='ABCDEFG';
$rawTrade->receiver_zip='014500';
$rawTrade->receiver_mobile='15612340987';
$rawTrade->receiver_telno='';
 
$rawTrade->invoice_type=0;
$rawTrade->invoice_title='';
$rawTrade->invoice_content='';
 
$rawTrade->logistics_type=-1; 
$rawTrade->consign_interval=0;
$rawTrade->delivery_term=1;
$rawTrade->to_deliver_time='';
$rawTrade->pay_id='';
$rawTrade->pay_account='';
$rawTrade->remark='';
$rawTrade->remark_flag=0;
 
$tradeOderList = array();
for ($j=0; $j < $rawTrade->order_count; $j++)
{ 
$tradeOrder = new stdClass();
 
$tradeOrder->tid = $rawTrade->tid;
$tradeOrder->oid = $tradeOrder->tid.'-'.$j;
$tradeOrder->order_type = 0;
 
$tradeOrder->status = 30;
$tradeOrder->refund_status = 0;
 
$tradeOrder->goods_id = 'openapi_gid'.'-'.$j;
$tradeOrder->spec_id = 'openapi_sid'.'-'.$j;
$tradeOrder->goods_no = 'api_gno'.'-'.$j;
$tradeOrder->spec_no = 'api_sno'.'-'.$j;
$tradeOrder->goods_name = 'api_gname'.'-'.$j;
$tradeOrder->spec_name = 'api_sname'.'-'.$j;

$tradeOrder->num = 3.0000;
$tradeOrder->price = 2.5000;
$tradeOrder->adjust_amount = 2.0000;
$tradeOrder->refund_amount = '';
$tradeOrder->discount = 0.5000; // 优惠金额
$tradeOrder->share_discount = 0.2000; //分摊优惠金额
$tradeOrder->total_amount = $tradeOrder->price * $tradeOrder->num + $tradeOrder->adjust_amount - $tradeOrder->discount;
// 页面的分摊优惠 = total_amount - 分摊优惠金额, 此参数不需要传入
$tradeOrder->share_amount = $tradeOrder->total_amount - $tradeOrder->share_discount ;
 
$tradeOrder->cid = '';
$tradeOrder->remark = '';
$tradeOrder->json = '';
 
 
// 处理主单部分数据
$rawTrade->goods_count += $tradeOrder->num;
$rawTrade->receivable += $tradeOrder->share_amount;
$tradeOderList[$j] = $tradeOrder;
}
 
 
$shopNo= "test"; 
$data = $client->call("sales.RawTrade.pushSelf", $shopNo, [$rawTrade], $tradeOderList);
 
var_dump($data);
?>
JAVA

C#

6.响应示

  6.1 正常响应示例 

JSON

{
"status": 0,
"data": {
"chg_count": 0,
"new_count": 1
}
}

   6.2 异常响应示例

JSON
{
"status": 100,
"message": "店铺编号不存在或已停用"
}


常用工具