当前位置: 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 公共请求参数
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
卖家账号 | sid | String | 是 | 卖家账号, 由旺店通分配 | |
接口账号 | key | String | 是 | 由旺店通分配appkey, 在发送的数据中对应 key 字段,获取方式点击这里 | |
盐 | salt | String | 是 | 由旺店通分配appsecret,是由两部分构成, 冒号前面的部分是secret, 冒号后面的部分是salt. 例如一个appsecret是testsecret:testsalt, 那么secret为testsecret, salt为testsalt. | |
接口名称 | method | String | 是 | 调用的接口名称 | |
版本号 | v | String | 是 | 1.0 | |
秒级时间戳 | timestamp | Int | 是 | 秒级时间戳, 当前时间戳减去 2012-01-01 00:00:00(1325347200), 时间与服务器时间差120s内即合法。 | |
签名 | sign | String | 是 | 签名 |
3.3 业务请求参数
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
店铺编号 | shop_no | String | 40 | 是 | 店铺编号 |
原始单信息 | rawTradeList | List<Map<String, Object>> | 是 | 原始单信息信息集合 | |
原始子单信息 | rawTradeOrderList | List<Map<String, Object>> | 是 | 原始子单信息集合 | |
优惠信息 | discountList | List<Map<String, Object>> | 否 | 不需要优惠明细可不传,优惠明细显示在订单管理界面的优惠明细Tab页 |
rawTradeList
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
原始单号 | tid | String | 40 | 是 | 指商城、官网等平台的订单编号,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_status | Int | 4 | 是 | 0无退款 1申请退款 2部分退款 3全部退款,单据状态变更点击文档查看 |
付款状态 | pay_status | Int | 4 | 是 | 0未付款1部分付款2已付款 |
子订单个数 | order_count | Int | 6 | 是 | 原始单包含的子订单数,rawTradeOrderList节点下所有子单数之和 |
货品总数量 | goods_count | Decimal(19,4) | 是 | 货品总数量,rawTradeOrderList节点下所有“num”数量之和 | |
支付方式 | pay_method | Int | 4 | 是 | 1在线转帐 2现金,3银行转账,4邮局汇款 5预付款 6刷卡 7支付宝 8微信支付 |
下单时间 | trade_time | String | 40 | 是 | 下单时间 |
支付时间 | pay_time | String | 40 | 否 | 支付时间 |
交易结束时间 | end_time | String | 40 | 是 | 交易结束时间,若无则传null |
买家昵称/客户网名 | buyer_nick | String | 100 | 是 | 若无则传一个固定值 |
买家备注 | buyer_message | String | 1024 | 否 | 若无则传‘’ |
买家邮箱 | buyer_email | String | 40 | 否 | ‘’ |
买家地区 | buyer_area | String | 255 | 否 | ‘’ |
收件人姓名 | receiver_name | String | 100 | 是 | 收件人姓名 |
省市区 | receiver_area | String | 128 | 是 | 省市区空格分隔,示例【北京 北京市 朝阳区】,省市区推送旺店通地址库,点击查看 |
地址 | receiver_address | String | 256 | 是 | 收件人详细地址,不包含省市区,示例【xx街道xx小区xx号楼101】 |
收件人邮编 | receiver_zip | String | 20 | 否 | 收件人邮编,若无则传‘’ |
收件人手机 | receiver_mobile | String | 40 | 是 | 该字段必传,收件人手机号,为11位手机号码,示例【13888888888】 |
收件人电话 | receiver_telno | String | 40 | 否 | 收件人固话号,为11位固话号码,示例【02288888888】 |
邮费 | post_amount | Decimal(19,4) | 是 | 邮费 | |
其他费用 | other_amount | Decimal(19,4) | 否 | 其他费用 | |
优惠金额 | discount | Decimal(19,4) | 是 | 优惠金额 | |
应收金额 | receivable | Decimal(19,4) | 是 | 应收金额,售前退款会变化,“详细金额逻辑点击查看” | |
平台费用 | platform_cost | Decimal(19,4) | 否 | 0.0000 | |
发票类别 | invoice_type | Int | 4 | 否 | 0:不需要 1:普通发票 2:增值税普通发票 3:增值税专用发票 |
发票抬头 | invoice_title | String | 255 | 否 | 发票抬头,若无则传‘’ |
发票内容 | invoice_content | String | 255 | 否 | 发票内容,格式:纳税人识别号:*******;地址:*******;开户银行:*******;银行账号:******;联系电话:*****,电子邮箱***** 若无则传‘"" |
物流类别 | logistics_type | Int | 6 | 否 | -1 |
物流编号 | cust_data | String | 否 | 系统物流编号(设置--基本设置--物流) | |
发货条件 | delivery_term | Int | 4 | 是 | 1款到发货 2货到付款(包含部分货到付款) 3分期付款 |
平台支付订单ID | pay_id | String | 40 | 否 | ‘’ |
客服备注 | remark | String | 1024 | 否 | 客服备注 |
客服备注标记 | remark_flag | Int | 11 | 否 | 标旗(1 红、2 黄、3 绿、4 蓝、5 紫 无则填0) |
货到付款金额 | cod_amount | Decimal(19,4) | 否 | 若delivery_term=2,则为应付金额,否则为0 | |
是否是自流转 | is_auto_wms | Boolean | 是 | true自流转,false 非自流转 自动流转模式处理办法详解 单击这里 | |
仓库编号 | warehouse_no | String | 40 | 是 | 仅自流转订单填写该仓库编号, 非自流转订单传入空字符串即可 |
买家支付宝帐号 | pay_account | String | 128 | 否 | ‘’ |
买家要求的送货日期 | to_deliver_time | String | 20 | 否 | 买家要求的送货日期 |
已收 | received | Decimal(19,4) | 否 | 已从平台收款的金额 | |
淘宝新增,物流到货时效,单位小时 | consign_interval | Int | 6 | 否 | 淘宝新增,物流到货时效,单位小时 |
已付 | paid | Decimal(19,4) | 否 | 已支付金额 |
rawTradeOrderList
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
原始订单号 | tid | String | 40 | 是 | 原始订单号 |
原始子单号 | oid | String | 40 | 是 | 平台订单货品表主键,子订单唯一标识,同一个sid下通过本接口新增订单的oid(子订单编号)要保证唯一;如果oid重复,ERP生成系统单(递交)时会提示“订单货品数量不一致xxxxxx” |
平台的状态 | status | Int | 4 | 是 | 10未确认 20待尾款 30待发货 40部分发货 50已发货 60已签收 70已完成 80已退款 90已关闭,单据状态变更点击文档查看 |
退款标记 | refund_status | Int | 4 | 是 | 0无退款1取消退款,2已申请退款,3等待退货,4等待收货,5退款成功,6未付款关闭,单据状态变更点击文档查看 |
平台货品ID | goods_id | String | 40 | 是 | 平台系统货品(SPU)的唯一标识。SPU和SKU概念介绍,单击这里 |
平台规格ID | spec_id | String | 40 | 是 | 平台系统单品(SKU)的的唯一标识。SPU和SKU概念介绍,单击这里 |
货品编号 | goods_no | String | 40 | 是 | 货品编号 |
规格编码 | spec_no | String | 40 | 是 | 规格编码 |
货品名称 | goods_name | String | 255 | 是 | 货品名称 |
规格名称 | spec_name | String | 100 | 否 | 规格名称 |
子单类型 | order_type | Int | 4 | 否 | 0正常货品 1虚拟货品 2服务(不传默认为0) |
平台类目 | cid | String | 40 | 否 | 平台类目 |
数量 | num | Decimal(19,4) | 是 | 数量 | |
单价 | price | Decimal(19,4) | 是 | 单价 | |
优惠 | discount | Decimal(19,4) | 是 | 优惠,平台折扣, 不包含手工调整和分摊优惠 | |
分摊优惠 | share_discount | Decimal(19,4) | 是 | 分摊优惠,退款不变 | |
总价格 | total_amount | Decimal(19,4) | 是 | 总价格,“详细金额逻辑点击查看” | |
手工调整的优惠金额 | adjust_amount | Decimal(19,4) | 是 | 手工调整的优惠金额,“详细金额逻辑点击查看” | |
退款金额 | refund_amount | Decimal(19,4) | 是 | 退款金额 | |
备注 | remark | String | 255 | 是 | 备注 |
json串 | json | String | 255 | 是 | json串,若无可传“” |
discountList (平台,tid,oid,sn,type 联合组成唯一)
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
原始订单号 | tid | String | 40 | 是 | 原始订单号 |
原始子单号 | oid | String | 20 | 是 | 原始子单号 |
唯一编码 | sn | String | 40 | 否 | 平台上优惠的唯一标识 |
优惠名称 | name | String | 50 | 否 | 优惠名称 |
优惠详情 | detail | String | 128 | 否 | 优惠详情 |
优惠金额 | amount | Decimal(19,4) | 否 | 优惠金额 |
4.响应参数
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
状态码 | status | Int | 11 | 是 | 状态码,0表示正常 |
错误信息 | message | String | 255 | 是 | 无错误信息不返回 |
单据数据 | data | Map<String, Object> | 是 | 结果相关数据 |
data
响应参数说明示例值或者格式、具体含义、使用方法及注意事项
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
更新订单数 | chg_count | Int | 11 | 是 | 返回的为更新订单的数量 |
新增订单数 | new_count | Int | 11 | 是 | 返回的为新增订单的数量 |
错误信息 | error_list | List<Map<String, Object>> | 是 | 错误信息为空,表示全部创建成功 |
error_list
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|---|---|---|---|---|
单号 | no | String | 是 | 单号 | |
错误信息 | error | String | 是 | 错误信息 |
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 } } |