当前位置: API文档

sales.RawTrade.pushSelf2(原始单推送2)

¥标准

1.接口说明

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

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

单次推送建议单量不超过100单

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货到付款(包含部分货到付款) 3分期付款
平台支付订单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_intervalInt6淘宝新增,物流到货时效,单位小时
已付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

原始订单号

原始子单号
oidString20

原始子单号

唯一编码sn

String

40平台上优惠的唯一标识
优惠名称
name

String

50
优惠名称
优惠详情
detail

String

128
优惠详情
优惠金额amount

Decimal(19,4)


优惠金额

4.响应参数

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

状态码,0表示正常

错误信息messageString255

无错误信息不返回

单据数据data

Map<String, Object>


结果相关数据

data

响应参数说明示例值或者格式、具体含义、使用方法及注意事项

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

更新订单数

chg_count

Int

11

返回的为更新订单的数量

新增订单数

new_count

Int

11

返回的为新增订单的数量

错误信息

error_list

List<Map<String, Object>>



错误信息为空,表示全部创建成功

error_list

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

单号

noString

单号
错误信息errorString

错误信息

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": 2,
        "error_list": [],
        "new_count": 0
    }
}

   6.2 异常响应示例

JSON
{
    "status": 0,
    "data": {
        "chg_count": 0,
        "error_list": [
            {
                "error": "XXXXXXXXX",
                "no": "ceshi20230109002"
            }
        ],
        "new_count": 1
    }
}



常用工具