当前位置: API文档

stock_sync_by_pd.php(创建盘点单)

¥标准

1.接口说明

1.1 接口描述:ERP库存需要调整时,推送盘点库存单据给ERP,覆盖ERP实物库存。注:ERP盘点成功后,盘点单内的库存值直接覆盖前库存
1.2 适用版本:客户端 V2.4.4.3及以上版本
1.3 客户端配置:客户端配置:系统设置->库存设置页面,勾选“自动审核盘点出库”配置,如未勾选,需要客户端手动审核盘点单才能做库存变更。

1.4 调用建议:

①:本接口调用时占用服务器资源较多,会影响客户端功能执行效率,因此不要频繁调用,且推送时盘点单货品明细控制在500条及以下,如盘点明细过多,分多次推送。

 ②:在客户端不做发货操作时调用本接口,一般在前一天20:00以后至下一天凌晨6:00之前。建议调用间隔10分钟及以上集中调用,如一个请求包含明细过多,分多次请求。

2.调用场景

2.1 线下ERP、SAP等系统对接

3.请求参数说明

   3.1 请求地址

环境HTTP地址
测试环境http://sandbox.wangdian.cn/openapi2/stock_sync_by_pd.php
正式环境http://api.wangdian.cn/openapi2/stock_sync_by_pd.php

   3.2 公共请求参数

名称字段类型长度
必须描述
卖家账号sidString
购买ERP时由旺店通分配给ERP购买方,请从ERP购买方获取。
接口账号appkeyString
本开放平台“自助对接”功能模块内自助申请,申请流程单击这里
时间戳timestampint
北京时间1970-01-01 08:00:00起至现在的总秒数,10位int值,旺店通企业版API服务端允许请求最大时间误差为5min,date.timezone = Asia/Shanghai。
签名signString
API输入参数签名结果,签名算法介绍单击这里

   3.3 业务请求参数

名称字段类型长度必须描述
仓库编号warehouse_novarchar40代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置),用于创建指定仓库单据信息
API单号api_outer_novarchar40外部单号唯一标识
严格模式is_post_errortinyint1盘点明细推送严格模式,可选值:0或1,不传本参数默认输入值为1。0 非严格模式:表示盘点单货品明细允许部分推送成功(盘点单内spec_no在ERP货品档案存在的部分创建成功,不存在的部分创建失败);1严格模式:表示盘点单货品明细不允许部分推送成功(盘点单内所有spec_no,其中一个或多个spec_no在ERP货品档案不存在,整单推送失败)
是否添加库存记录is_create_stocktinyint1可选值:0 或1,不传本参数默认输入值为0。0表示不自动添加库存记录,1表示自动添加库存记录 。
货品明细列表节点goods_listdata[ ]
货品明细列表节点

goods_list

名称字段类型长度必须描述
商家编码spec_novarchar40代表单品(sku)所有属性的编码,SKU概念介绍,单击这里
库存数量stock_numdecimal(19,4)库存数量(盘点推送的库存数量指覆盖数量,不是调整数量)

4.响应参数

   4.1 公共响应参数

名称字段类型长度必须描述
错误码codeint11状态码:0表示成功,其他表示失败
错误信息messagevarchar255错误信息

warningvarchar255请求参数is_post_error =0时返回信息,返回创建失败的商品信息,如果当前仓库中都存在库存记录,返回一个空的字符串。

   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("", "", "", "");
        
        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();
        }
    }
}

6.响应示例

   6.1 正常响应示例 

JSON
{
    "code": 0,
    "message": "OK"
}

   6.2 异常响应示例

JSON
{
    "code": 8201,
    "message": "仓库无效  仓库编号 warehouse_no xyp2test1 在系统中不存在或已停用 "
}



常用工具