当前位置: API文档

goods_push.php(创建货品档案)

¥标准

1.接口说明

   1.1 接口描述:①批量推送货品资料给旺店通ERP②批量更新旺店通ERP货品档案资料(支持已经存在的货品(spu),新增单品(sku),good_list中good_no确定sku新增在哪个货品之下,将新增的spec_no以及对应信息放在spec_list,推送成功以后,sku将新增到对应的货品档案(spu)下。)
   1.2 适用版本:客户端 V2.4.5.0及以上版本
   1.3 调用建议:支持批量推送数据,每个请求建议包含50条以下的“goods_list”数据;goods_list下的spec_list条数不要超过500条
   1.4 注意事项:更新货品档案时,good_no确认要更新的spu属性信息,good_no+spec_no确认要更新的sku属性信息。更新货品(spu)数据时,good_list中good_no对应的数据做变更,spec_list要包含至少一个已经存在的单品(sku)数据。更新单品(sku)数据时,good_list中good_no对应的数据不变,spec_list中spec_no对应的数据做变更,重新推送成功后,变更部分将会更新到ERP

2.调用场景

2.1 自研商城、SCM、SRM、财务系统、SAP等系统的对接

3.请求参数说明

   3.1 请求地址

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

名称字段类型长度
必须描述
货品节点goods_listdata[ ]
请求参数的1级数据节点,包含SPU所有属性信息的数据节点,节点下数据字段详见下述“goods_list”

   goods_list

名称字段类型长度
必须描述
货品编号goods_novarchar40代表货品(spu)所有属性的唯一编号,用于系统货品区分,,SPU概念介绍,单击这里
货品类别goods_typetinyint1品类别 1销售商品 2原材料 3包装 4周转材料5虚拟商品6固定资产8虚拟代发货品0其它   不传默认为1
货品名称goods_namevarchar255货品名称
货品简称short_namevarchar255货品简称
货品别名aliasvarchar255别名
拼音名称pinyinvarchar40拼音名称
产地originvarchar64产地
分类class_namevarchar64类别名称
品牌brand_namevarchar64品牌名称
基本单位unit_namevarchar20基本单位
备注remarkvarchar512备注
自定义属性1props1varchar255自定义属性1
自定义属性2props2varchar255自定义属性2
自定义属性3props3varchar255自定义属性3
自定义属性4props4varchar255自定义属性4
自定义属性5props5varchar255自定义属性5
自定义属性6props6varchar255自定义属性6
辅助单位名称aux_unit_namevarchar255辅助单位名称
标记名称flag_namevarchar255标记名称
单品节点spec_listdata[]
请求参数的2级数据节点,包含sku所有属性信息的数据节点,节点下数据字段详见下述"spec_list"

 spec_list

名称字段类型长度
必须描述
商家编码spec_novarchar40代表单品(sku)所有属性的唯一编码,用于系统单品区分,SKU概念介绍单击这里
规格码spec_codevarchar40
规格编码
主条码barcodevarchar50主条码
规格名称spec_namevarchar100
规格名称
允许负库存is_allow_neg_stocktinyint1是否允许负库存1允许,0不允许(默认为0)
是否启用序列号
is_sn_enabletinyint1是否启用序列号,默认不启用,0不启用序列号 1强序列号 2弱序列
是否启用同一批次出库
is_single_batchtinyint1是否启用同一批次出库,默认不启用,0不启用1启用
是否出库不用验货
is_not_need_examinetinyint1是否出库不用验货,默认不开启该配置,0出库不验货未开启  1出库不验货开启
是否允许0成本
is_zero_costtinyint1是否允许0成本,默认允许,0不允许1允许
是否允许低于成本价
is_lower_costtinyint1是否允许低于成本价,默认不允许,0不允许1允许
是否航空禁运
is_not_use_airtinyint1是否航空禁运,默认不开启,0不开启1开启
是否畅销品
is_populartinyint1是否畅销品,默认非畅销,0非畅销 1畅销
补货
replenish_typetinyint1补货,默认低于警戒库存补货,0持续补货1不补货2低于警戒库存补货
拆分
large_typetinyint1默认普通件,-1非单发件(需和其他类型货品一起发) 0普通件 1普通大件(可与非大件一起发) 2独立大件(必须单独发)
基本单位spec_unit_namevarchar20基本单位名称
最低价lowest_pricedecimal19,4最低价
图片url地址img_urlvarchar1024图片url地址
零售价retail_pricedecimal19,4商品标价,系统内手工建单时使用,传值时需谨慎
批发价wholesale_pricedecimal19,4批发价
会员价member_pricedecimal19,4会员价
市场价market_pricedecimal19,4市场价
销售积分sale_scoredecimal19,4销售积分
打包积分pack_scoredecimal19,4打包积分
拣货积分pick_scoredecimal19,4拣货积分
有效期天数validity_daysint11保质期,天数(不能超过32767天)
重量weightdecimal19,4ERP默认重量单位:kg
lengthdecimal19,4长(CM)
widthdecimal19,4宽(CM)
heightdecimal19,4高(CM)
税率tax_ratedecimal19,4税率
自定义1prop1varchar255自定义属性1
自定义2prop2varchar255自定义属性2
自定义3prop3varchar255自定义属性3
自定义4prop4varchar255自定义属性4
自定义5prop5varchar255自定义属性5
自定义6prop6varchar255自定义属性6
自定义价格1custom_price1
decimal19,4自定义价格1
自定义价格2custom_price2decimal19,4自定义价格2
单品辅助单位名称spec_aux_unit_namevarchar255单品辅助单位名称
税务编码tax_codevarchar32
税务编码
备注spec_remarkvarchar512备注
是否同步供销is_sync_spectinyint1  0: 不同步, 1: 同步  不传默认为0


4.响应参数

   4.1 公共响应参数

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

   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/goods_push.php';
    
    $goods_list[] =  array
    (
        "goods_no" => "test001",
        "goods_type" => 1,
        "goods_name" => "test",
        "spec_list" => array ( array(
            "spec_no" => "ghs_123",
            "spec_code" => "test001_01",
            "barcode" => "test001",
            "spec_name" => "test",
            "lowest_price" => 1,
            "img_url" => 'http://baidu.com',
            "retail_price" => 1,
            "wholesale_price" => 1,
            "member_price" => 1,
            "market_price" => 1,
            "sale_score" => 1,
            "pack_score" => 1,
            "pick_score" => 1,
            "validity_days" => 30,
            )
        )
    );
    $c->putApiParam('goods_list', json_encode($goods_list), JSON_UNESCAPED_UNICODE);
    $json = $c->wdtOpenApi();
    var_dump($json);
?>
JAVA
package com.wangdian.api.goods;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;

import com.wangdian.api.WdtClient;

public class GoodsPush {
    
    @SuppressWarnings("unchecked")
    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/

        Map<String, Object>[] goods_list = new Map[1];
        Map<String, Object>[] spec_list = new Map[2];

        
        spec_list[0] = new HashMap<String, Object>();
        spec_list[0].put("spec_no", "ghs2018120503");
        spec_list[0].put("spec_code", "test001_01132");
        spec_list[0].put("spec_name", "test001_01132");
        
        spec_list[1] = new HashMap<String, Object>();
        spec_list[1].put("spec_no", "ghs2018120505");
        spec_list[1].put("spec_code", "test001_01134");
        spec_list[1].put("spec_name", "test001_01133");
        
        goods_list[0] = new HashMap<String,Object>();
        goods_list[0].put("goods_no", "ghs1207");
        goods_list[0].put("goods_type","1");
        goods_list[0].put("goods_name", "stest");
        goods_list[0].put("spec_list", spec_list);
        
        //通过第三方json解析工具类fastjson将map解析成json
        String goods_list_json = JSON.toJSONString(goods_list);
        //System.out.println(goods_list_json);
        
        Map<String, String> params = new HashMap<String, String>(); 
        params.put("goods_list", goods_list_json);
        try {
            String response = client.execute("goods_push.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 GoodsPush
{
    class GoodsPush
    {
        static void Main(string[] args)
        {
            WdtClient client = new WdtClient();
            client.sid = "";
            client.appkey = "";
            client.appsecret = "";
            client.gatewayUrl = "https://sandbox.wangdian.cn/openapi2/goods_push.php";

            var goods_list = new[]
            {
                new
                {
                    goods_no="llxxtest",
                    goods_type=1,
                    goods_name="测试测试ceshi",
                    spec_list=new[]
                    {
                        new
                        {
                            spec_no="myxx",
                            spec_code = "myxx",
                            spec_name = "满夜雪啸"
                        },
                        new
                        {
                            spec_no="dshg",
                            spec_code = "dshg",
                            spec_name = "凋松鹤骨"
                        },
                        new
                        {
                            spec_no="mhgs",
                            spec_code = "mhgs",
                            spec_name = "梦回姑苏"
                        }

                    }
                }
            };
            
            string json = goods_list.ToJsonString();
            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 = []
spec_list = []
spec_1 = {}
spec_1.update({"spec_no": 'spec_001'})
spec_1.update({"spec_code": '12345'})
spec_1.update({"barcode": '12345678'})
spec_1.update({"spec_name": '规格名称'})
spec_1.update({"spec_unit_name": '基本单位'})
spec_1.update({"lowest_price": '最低价'})
spec_1.update({"retail_price": '零售价'})
spec_1.update({"wholesale_price": '批发价'})
spec_1.update({"member_price": '会员价'})
spec_1.update({"market_price": '市场价'})
spec_1.update({"spec_remark": '备注'})
spec_list.append(spec_1)
goods_1 = {}
goods_1.update({"goods_no": 'goods_001'})
goods_1.update({"goods_type": 1})
goods_1.update({"goods_name": '货品名称'})
goods_1.update({"short_name": '货品简称'})
goods_1.update({"alias": '货品别名'})
goods_1.update({"origin": '产地'})
goods_1.update({"class_name": '分类'})
goods_1.update({"brand_name": '品牌'})
goods_1.update({"unit_name": '基本单位'})
goods_1.update({"remark": '备注'})
goods_1.update({"props1": '自定义属性1'})
goods_1.update({"props2": '自定义属性2'})
goods_1.update({"props3": '自定义属性3'})
goods_1.update({"props4": '自定义属性4'})
goods_1.update({"props5": '自定义属性5'})
goods_1.update({"props6": '自定义属性6'})
goods_1.update({"aux_unit_name": '辅助单位名称'})
goods_1.update({"flag_name": '标记名称'})
goods_1.update({"spec_list": spec_list})
goods_list.append(goods_1)
# del(goods_list[0])
jsonArr = json.dumps(goods_list, ensure_ascii=False)
params = {}
params.update({"goods_list": jsonArr})
response = t.execute("goods_push.php", params)
print(response)

6.响应示例

   6.1 正常响应示例 

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

   6.2 异常响应示例

JSON
{
    "code": "16",
    "message": "商品信息异常![\"goods_info goods_no= \字\段\完\整\但\部\分\或\全\部\无\效\,\无\效\值\对\为\:{\\\"goods_no\\\":\\\"\\\"}\"]"
}



常用工具