当前位置: API文档

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

¥标准

1.接口说明

1.1 接口描述:①推送销售订单给ERP ②更新已推送成功的销售订单
1.2 适用版本:客户端 V1.3.8.3及以上版本

1.3注意事项:【权限校验】:店铺权限(仅支持自有平台推送)上线之前必须在测试环境测试订单推送之后的相关流程!!!


接口已过时, 请使用   sales.RawTrade.pushSelf2

2.调用场景

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

3.请求参数说明

   3.1 请求地址

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

   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
签名

   3.3 业务请求参数

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

店铺编号

shop_no

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: 待递交,

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原始单包含的子订单数,rawTradeOrderList节点下所有子单数之和
货品总数量goods_countDecimal(19,4)

货品总数量,rawTradeOrderList节点下所有“num”数量之和

支付方式pay_methodInt41在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡 7支付宝 8微信支付
下单时间trade_timeString40
下单时间
支付时间pay_timeString40支付时间
交易结束时间end_timeString40交易结束时间,若无则传null
买家昵称/客户网名buyer_nickString100若无则传一个固定值
买家备注buyer_messageString1024若无则传‘’
买家邮箱buyer_emailString40‘’
买家地区buyer_areaString255‘’
收件人姓名receiver_nameString100收件人姓名
省市区receiver_areaString128省市区空格分隔,示例【北京 北京市 朝阳区】,省市区推送旺店通地址库,点击查看
地址receiver_addressString256收件人详细地址,不包含省市区,示例【xx街道xx小区xx号楼101】
收件人邮编receiver_zipString20收件人邮编,若无则传‘’
收件人手机receiver_mobileString40
该字段必传,收件人手机号,为11位手机号码,示例【13888888888】
收件人电话receiver_telnoString40收件人固话号,为11位固话号码,示例【02288888888】
邮费post_amountDecimal(19,4)
邮费
其他费用other_amountDecimal(19,4)
其他费用
优惠金额discountDecimal(19,4)
是 优惠金额
应收金额receivableDecimal(19,4)
 是应收金额,售前退款会变化,“详细金额逻辑点击查看
平台费用platform_costDecimal(19,4)
0.0000
发票类别invoice_typeInt40:不需要
1:普通发票
2:增值税普通发票
3:增值税专用发票
发票抬头invoice_titleString255发票抬头,若无则传‘’
发票内容invoice_contentString255发票内容,若无则传‘’
物流类别logistics_typeInt6-1
物流编号cust_dataString
系统物流编号(设置--基本设置--物流)
发货条件delivery_termInt41款到发货 2货到付款(包含部分货到付款) 
平台支付订单IDpay_idString40‘’
客服备注remarkString1024客服备注
客服备注标记remark_flagInt
11
标旗(1 红、2 黄、3 绿、4 蓝、5 紫 无则填0)
货到付款金额cod_amountDecimal(19,4)
若delivery_term=2,则为应付金额,否则则为0
是否是自流转is_auto_wmsBoolean

true自流转,false 非自流转

仓库编号warehouse_noString40仅自流转订单填写该仓库编号, 非自流转订单传入空字符串即可
买家支付宝帐号pay_accountString128‘’
买家要求的送货日期to_deliver_timeString20买家要求的送货日期
已从平台收款的金额receivedDecimal(19,4)
 否已从平台收款的金额
淘宝新增,物流到货时效,单位天consign_intervalInt60
已支付金额paidDecimal(19,4)
已支付金额

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平台系统货品(SPU)的唯一标识。SPU和SKU概念介绍单击这里
平台规格IDspec_idString40平台系统单品(SKU)的的唯一标识。SPU和SKU概念介绍单击这里
货品编号goods_noString40货品编号
规格编码spec_noString40规格编码
货品名称goods_nameString255货品名称
规格名称spec_nameString100规格名称
子单类型order_typeInt40正常货品 1虚拟货品 2服务(不传默认为0)
平台类目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

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

String

60类型
优惠名称
name

String

50
优惠名称
是否优惠券
is_bonus

Byte

4是否优惠券
优惠详情
detail

String

128
优惠详情
优惠金额amount

Decimal(19,4)


优惠金额

4.响应参数

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

状态码,0表示正常

错误信息messageString255

无错误信息不返回

单据数据data

Map<String, Object>


结果相关数据

data

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

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

更新订单数

chg_count

Int

11

返回的为更新订单的数量

新增订单数

new_count

Int

11

返回的为新增订单的数量

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_name": "receiver_name",
"receiver_area": "北京 北京市 朝阳区",
"receiver_address": "春天街道春天花园小区1号楼1单元101",
"receiver_zip": "014500",
"receiver_mobile": "15612340987",
"receiver_telno": "02288888888",
"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,
"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->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": "店铺编号不存在或已停用"
}


常用工具