stock_sync_by_pd.php(创建盘点单)
¥标准
1.接口说明
1.1 接口描述:旺店通ERP库存需要调整时,推送盘点库存单据给旺店通ERP,覆盖旺店通ERP实物库存。注:旺店通ERP盘点成功后,盘点单内的库存值直接覆盖前库存 |
1.2 适用版本:客户端 V2.4.8.4及以上版本 |
1.3 客户端配置:客户端配置:系统设置->库存设置页面,勾选“自动审核盘点出库”配置,如未勾选,需要客户端手动审核盘点单才能做库存变更。 如需盘点旺店通委外仓系统库存请联系实施同事进行配置后调用 |
1.4 调用建议:
①:本接口调用时占用服务器资源较多,会影响客户端功能执行效率,因此不要频繁调用,且推送时盘点单货品明细控制在500条及以下,如盘点明细过多,分多次推送。 ②:在客户端不做发货操作时调用本接口,一般在前一天20:00以后至下一天凌晨6:00之前。如一个请求包含明细过多,分多次请求。 ③:该接口调用日上限2000次。 |
2.调用场景
3.请求参数说明
3.1 请求地址
环境 | HTTP地址 |
---|
测试环境 | https://sandbox.wangdian.cn/openapi2/stock_sync_by_pd.php |
正式环境 | https://api.wangdian.cn/openapi2/stock_sync_by_pd.php |
3.2 公共请求参数
名称 | 字段 | 类型 | 长度
| 必须 | 描述 |
---|
卖家账号 | sid | String |
| 是 | 购买ERP时由旺店通分配给ERP购买方,请从ERP购买方获取。 |
接口账号 | appkey | String |
| 是 | 本开放平台“自助对接”功能模块内自助申请,获取方式点击这里
|
时间戳 | timestamp | int |
| 是 | 北京时间1970-01-01 08:00:00起至现在的总秒数,10位int值,旺店通企业版API服务端允许请求最大时间误差为5min,date.timezone = Asia/Shanghai。 |
签名 | sign | String |
| 是 | API输入参数签名结果,签名算法介绍单击这里
|
3.3 业务请求参数
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|
仓库编号 | warehouse_no | varchar | 40 | 是 | 代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于创建指定仓库单据信息 |
盘点方式 | mode | tinyint | 4 | 否 | 0表示单品盘点,1表示货位盘点,2表示明细盘点, 如果mode没有传参或数值无效 默认为0单品盘点 |
API单号 | api_outer_no | varchar | 40 | 否 | 外部单号唯一标识 |
是否审核 | is_check | tinyint | 1
| 否 | 1:审核盘点单 0:仅提交保存盘点单 默认0 (该配置仅限盘点单处理,盘点单产生的盘盈入库/盘亏出库单需自动审核,到旺店通系统 设置--系统设置--库存--自动处理中勾选自动审核盘点入库和盘点出库后生效) |
严格模式 | is_post_error | tinyint | 1 | 否 | 盘点明细推送严格模式,可选值:0或1,不传本参数默认输入值为1。0 非严格模式:表示盘点单货品明细允许部分推送成功(盘点单内spec_no在ERP货品档案存在的部分创建成功,不存在的部分创建失败);1严格模式:表示盘点单货品明细不允许部分推送成功(盘点单内所有spec_no,其中一个或多个spec_no在ERP货品档案不存在,整单推送失败) |
是否添加库存记录 | is_create_stock | tinyint | 1 | 否 | 可选值:0 或1,不传本参数默认输入值为0。0表示不自动添加库存记录,1表示自动添加库存记录 。注意:明细盘点不自动添加库存 |
货品明细列表节点 | goods_list | data[ ] |
| 是 | 货品明细列表节点 |
goods_list
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|
商家编码 | spec_no | varchar | 40 | 是 | 代表单品(sku)所有属性的编码,SKU概念介绍,单击这里 |
盘点数量 | stock_num | decimal | (19,4) | 是 | 盘点数量(盘点推送的库存数量指覆盖数量,不是调整数量) |
货位 | position_no | varchar | 20 | 否 | 货位(当mode为1或2时,必传) |
批次
| batch_no
| varchar
|
| 否
| 批次编号 不传默认为空;注:明细盘点(mode=2)使用; |
有效期
| expire_date
| varchar
|
| 否
| 有效期 不传默认为0000-00-00 00:00:00;注:明细盘点使用;
|
4.响应参数
4.1 公共响应参数
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|
错误码 | code | int | 11 | 是 | 状态码:0表示成功,其他表示失败 |
错误信息 | message | varchar | 255 | 是 | 错误信息 |
盘点单号 | pd_no | varchar | 20
| 是 | 系统盘点单号 |
| warning | data[ ] | 255 | 否 | 返回创建失败的商品信息。创建成功,返回一个空的数组。 |
warning
名称 | 字段 | 类型 | 长度 | 必须 | 描述 |
---|
商家编码 | spec_no | varchar | 40 | 否
| 代表单品(sku)所有属性的编码,SKU概念介绍,单击这里 |
| error_msg | varchar |
| 否 | 错误信息
|
4.2 业务响应参数
5.请求示例
PHP | <?php
require_once ('../WdtClient.php');
$c = new WdtClient();
$c->sid = '';
$c->appkey = '';
$c->appsecret = '';
$c->gatewayUrl = 'http://sandbox.wangdian.cn/openapi2/stock_sync_by_pd.php';
$goods_list = array (
array (
"spec_no" => "99075",
"stock_num" => 1
)
);
$c->putApiParam('warehouse_no', '001');
$c->putApiParam('goods_list', json_encode($goods_list));
$json = $c->wdtOpenApi();
var_dump($json);
?> |
JAVA | package com.wangdian.api.stock;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.wangdian.api.WdtClient;
public class StockSyncByPD {
public static void main(String[] args) {
// TODO Auto-generated method stub
WdtClient client = new WdtClient("传入sid", "传入appkey", "传入appsecret", "传入url");
//测试环境sid、appkey、密钥请到旺店通开放平台-自助对接-申请测试环境内查看,测试环境url=https://sandbox.wangdian.cn/openapi2/
//调用正式环境时请将sid、appkey、appsecret切换为实际参数,参数在旺店通开放平台-自助对接-应用管理内应用状态为已上线的应用中查看,调用正式环境注意切换正式环境url=https://api.wangdian.cn/openapi2/
List<Map<String, Object>> goods_list = new ArrayList<Map<String, Object>>();
Map<String, Object> goods_1 = new HashMap<String, Object>();
goods_1.put("spec_no", "ghs2018120701123");
goods_1.put("stock_num", "1000");
goods_list.add(goods_1);
String goods_list_json = JSON.toJSONString(goods_list);
//System.out.println(purchase_info_json);
Map<String, String> params = new HashMap<String, String>();
params.put("warehouse_no", "ghs2test");
params.put("outer_no", "ghs201812101203");
params.put("goods_list", goods_list_json);
try {
String response = client.execute("stock_sync_by_pd.php", params);
System.out.println(response);
} catch (IOException e) {
e.printStackTrace();
}
}
} |
C# | using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WdtSdk;
namespace StockSyncByPd
{
class StockSyncByPd
{
static void Main(string[] args)
{
WdtClient client = new WdtClient();
client.sid = "";
client.appkey = "";
client.appsecret = "";
client.gatewayUrl = "http://sandbox.wangdian.cn/openapi2/stock_sync_by_pd.php";
var goods_list = new[]
{
new{
spec_no = "test-ptsd-00002",
stock_num = "9999"
},
new{
spec_no = "test-ptsd-00001",
stock_num = "9999"
}
};
string json = goods_list.ToJsonString();
client.putParams("warehouse_no", "api_test");
client.putParams("goods_list", json);
string result = client.wdtOpenapi();
Console.WriteLine(result);
Console.ReadKey();
}
}
} |
python
| import WdtClient
import json
t = WdtClient.WdtClient('appkey', 'appsecret', 'sid', 'http://sandbox.wangdian.cn/openapi2/')
goods_list = []
goods_1 = {}
goods_1.update({"spec_no": 'spec_001'})
goods_1.update({"stockin_num": '10'})
goods_1.update({"stockin_price": '1'})
goods_list.append(goods_1)
# del(purchase_info[0])
jsonArr = json.dumps(goods_list, ensure_ascii=False)
params = {}
params.update({"warehouse_no": 'test2'})
params.update({"mode": '0'})
params.update({"api_outer_no": '12345678'})
params.update({"is_check": '0'})
params.update({"is_post_error": '1'})
params.update({"is_create_stock": '0'})
params.update({"goods_list": jsonArr})
response = t.execute("stock_sync_by_pd.php", params)
print(response) |
6.响应示例
6.1 正常响应示例
JSON
| {
"code": 0,
"message": "OK",
"pd_no":"PD2203100044",
"warning":[]
} |
6.2 异常响应示例
JSON
| {
"code": 8201,
"message": "仓库无效 仓库编号 warehouse_no xyp2test1 在系统中不存在或已停用 "
} |