当前位置: API文档

api_goods_stock_change_query.php(查询库存同步)

¥标准

1.接口说明

1.1 接口描述:获取变化后的ERP可销库存,并同步至平台店铺,注:”查询同步库存”与“库存同步回写”两个接口配合使用,完成“库存同步”
1.2 适用版本:客户端 V2.4.0.5及以上版本
1.3 调用建议:建议间隔时间3~5分钟查询一次,集中获取待同步数据,注意上一次回写完成以后,再从数据池获取待同步的数据。

1.4 注意事项:“查询同步库存与“库存同步回写””配合使用,要在平台的库存同步成功后再回写同步成功状态给OMS,如果平台没有成功却回传成功,会导致后续无法再次获取到库存信息。

1.5 ERP配置:(接口调试前需要提前配置好)

店铺授权,如果店铺授权状态是非授权,设置→基本设置→店铺界面,点击授权按钮(如授权时提示“自有类型平台不支持”,请将系统升级至V2.3.9.8及以上版本)

②开启库存同步开关,ERP需要勾选系统设置“启用库存同步”,路径:设置→系统设置→基本设置→启用库存同步。

③需设置库存同步策略,路径:设置-策略设置-库存同步。

④ERP必须存在对应的平台货品才能查到平台库存,平台货品可以在订单推送到ERP中时自动创建,也可通过接口提前推送。

如果没有产生订单需要将ERP库存同步至平台可通过”创建平台货品接口“,创建ERP平台货品,然后再设置库存同步策略,这样库存变化后就会生成库存待同步记录。

2.调用场景

 2.1 自研商城、分销系统、全渠道等系统对接

3.请求参数说明

   3.1 请求地址

环境HTTP地址
测试环境http://sandbox.wangdian.cn/openapi2/api_goods_stock_change_query.php
正式环境http://api.wangdian.cn/openapi2/api_goods_stock_change_query.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 业务请求参数

名称字段类型长度必须描述
店铺编码shop_novarchar20代表店铺所有属性的唯一编码,用于店铺区分,ERP内支持自定义(ERP店铺界面设置),用于获取指定店铺货品待同步库存信息(必须是自有类型的店铺)
获取数据条数limitint11

取值范围:limit大于等于100,小于等于2000,获取的数据通过“库存同步回写”接口响应同步结果后,才可再次获取数据。

注:库存数据获取同步给商城系统后,一定要通过api_goods_stock_change_ack.php回写结果,否则会出现ERP发货状态不能同步到商城的情况。

4.响应参数

   4.1 公共响应参数

名称字段类型长度必须描述
错误码codeint11状态码:0表示成功,其他表示失败
错误描述messagevarchar255错误描述
库存信息列表stock_change_listdata[ ]
响应参数的1级数据节点,包含需要同步库存信息的数据节点,节点下数据字段详见下述“stock_change_list”
获得当前同步记录的条数current_countint
记录当前获得的记录条数

   4.2 业务响应参数

   stock_change_list

名称字段类型长度必须描述
Erp内平台货品表主键idrec_idint11Erp内平台货品表主键id,用于状态回传接口使用
店铺idshop_idsmallint6店铺id
货品IDgoods_idvarchar40外部系统货品主键,外部系统推送订单时使用的,erp只是保存了下外部系统的值
规格IDspec_idvarchar40外部系统货品规格id
Erp内库存sync_stockint11该库存是通过配置计算出来的,使用该接口注意配置库存同步策略(在erp中可以做试算:货品->平台货品->试算库存同步量(选中货品右键)来核对数量。)
货品编码goods_novarchar40代表货品(spu)所有属性的唯一编号,SPU概念介绍,单击这里
规格编码
spec_novarchar40代表单品(sku)所有属性的唯一编码,SKU概念介绍,单击这里
erp中货品类型erp_spec_typetinyint41:单品,2:组合装
erp中规格IDerp_spec_idint11规格id
库存变化时自增stock_change_countint11库存变化时自增用于状态回传接口使用,状态回传时把该值一并回传即可,不用深究其含义

5.请求示例

PHP
<?php
    require_once("../WdtClient.php");
    $c = new WdtClient;
    $c->sid = '';
    $c->appkey = '';
    $c->appsecret = '';
    $c->gatewayUrl = 'http://sandbox.wangdian.cn/openapi2/api_goods_stock_change_query.php';

    //添加查询参数
    $c->putApiParam('shop_no','api_test');
    $c->putApiParam('limit',100);
    $json = $c->wdtOpenApi();
    var_dump($json);
?>
JAVA
package com.wangdian.api.trade;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.wangdian.api.WdtClient;

public class ApiGoodsStockChangeQuery {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WdtClient client = new WdtClient("", "", "", "");
        Map<String, String> params = new HashMap<String, String>();
        params.put("shop_no", "ghs2test");
        params.put("limit", "100");
        try {
            String response = client.execute("api_goods_stock_change_query.php", params);
            System.out.println(response);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WdtSdk;

namespace ApiGoodsStockChangeQuery
{
    class ApiGoodsStockChangeQuery
    {
        static void Main(string[] args)
        {
            WdtClient client = new WdtClient();
            client.sid = "";
            client.appkey = "";
            client.appsecret = "";
            client.gatewayUrl = "http://sandbox.wangdian.cn/openapi2/api_goods_stock_change_query.php";

            client.putParams("shop_no", "api_test");
            client.putParams("limit", "100");

            string result = client.wdtOpenapi();
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

6.响应示例

   6.1 正常响应示例 

JSON
{
    "code": 0,
    "message": "OK",
    "stock_change_list": [{
        "rec_id": "87745773",
        "shop_id": "66",
        "goods_id": "KRA010",
        "spec_id": "",
        "sync_stock": 2180,
        "goods_no": "",
        "spec_no": "KRA010",
        "erp_spec_type": "1",
        "erp_spec_id": "8860",
        "stock_change_count": "4538"
    }],
    "current_count": 1
}

   6.2 异常响应示例

JSON
{
    "code": 1007,
    "message": "接口appkey已停用【解决办法:联系商务人员,重新开启接口appkey】 "
}



常用工具