当前位置: API文档

stockout_order_push.php(创建其他出库单)

¥标准

1.接口说明

1.1 接口描述:ERP需要减少库存且出库单据没有对应的业务类型,推送其他出库单给ERP,并执行出库操作(扣减库存等),在ERP中属于其他出库,order_type类型记录在单据的remark备注信息中。
1.2 适用版本:客户端 V2.4.1.1及以上版本
1.3 注意事项:该接口不支持创建委外类型仓库的其他出库单,创建委外出库单需要使用vip_wms_stockinout_order_push.php接口创建。

2.调用场景

2.1 线下ERP、SAP等系统对接

3.请求参数说明

   3.1 请求地址

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

名称字段类型长度必须描述
出库单列表stockout_infodata
请求参数的1级数据节点,包含其他出库单所有属性信息的数据节点,节点下数据字段详见下述“stockout_info

   stockout_info

名称字段类型长度必须描述
外部单号outer_novarchar40外部系统的唯一单据编号,避免重复推送数据
仓库编号warehouse_novarchar40代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)
物流编号logistics_codevarchar20代表物流所有属性的唯一编码,用于物流区分,ERP内支持自定义(ERP物流界面设置)
物流单号logistics_novarchar40物流公司的运单号
总售价goods_total_amountdecimal(19,4)总售价
总成本价goods_total_costdecimal(19,4)总成本价
邮费post_costdecimal(19,4)邮费
备注
remarkvarchar255

其他出库单备注
其他出库原因
reasonvarchar255

其他出库原因(需要在客户端维护好该原因,如客户端无该原因或者原因停用,则推送失败,路径:设置—>基本设置—>原因列表)
货品列表节点detail_listdata
请求参数的2级数据节点,包含其他出库单所有货品属性信息的数据节点,节点下数据字段详见下述“ detail_list

  detail_list

名称字段类型长度必须描述
商家编码spec_novarchar40代表单品(sku)所有属性的编码,SKU概念介绍,单击这里
出库数量numdecimal(19,4)出库数量
价格pricedecimal(19,4)价格
货位编号position_novarchar20货位编号
批次号batch_novarchar20指定批次号
备注remarkvarchar255货品明细备注

4.响应参数

   4.1 公共响应参数

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

   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/stockout_order_push.php';
    
    $stockout_info = array (
        'outer_no' => 'ghs_12',
        "warehouse_no" => "001",
        'num' => '1',
        "remark" => "测试新增其他出库单",
        "detail_list" => array (
            array (
                "spec_no" => "test-ptsd-00001",
                   'num' => '1',
                'price' => '12'
             )
        )
    );
    
    $c->putApiParam('stockout_info', json_encode($stockout_info, JSON_UNESCAPED_UNICODE));
    $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 StockoutOrderPush {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WdtClient client = new WdtClient("", "", "", "");
        
        Map<String, Object> stockout_info = new HashMap<String, Object>();
        List<Map<String, Object>> detail_list = new ArrayList<Map<String, Object>>();
        
        Map<String, Object> detail_1 = new HashMap<String, Object>();
        detail_1.put("spec_no", "ghs201812070212123");
        detail_1.put("num", "1");
        detail_1.put("price", 11);
        
        detail_list.add(detail_1);
        
        stockout_info.put("warehouse_no", "ghs2test");
        stockout_info.put("num", "2");
        stockout_info.put("remark", "测试新增其他出库单");
        stockout_info.put("outer_no", "ghs201812101205");
        //stockin_info.put("logistics_code", "ZJS001");
        stockout_info.put("detail_list", detail_list);
        
        String stockout_info_json = JSON.toJSONString(stockout_info);
        //System.out.println(purchase_info_json);
        
        Map<String, String> params = new HashMap<String, String>();
        params.put("stockout_info", stockout_info_json);
        try {
            String response = client.execute("stockout_order_push.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 StockoutOrderPush
{
    class StockoutOrderPush
    {
        static void Main(string[] args)
        {
            WdtClient client = new WdtClient();
            client.sid = "";
            client.appkey = "";
            client.appsecret = "";
            client.gatewayUrl = "http://sandbox.wangdian.cn/openapi2/stockout_order_push.php";

            var stockout_info = new
            {
                outer_no = "dd456789876543",
                warehouse_no = "api_test",
                detail_list = new[]
                {
                    new{
                        spec_no = "test-ptsd-00002",
                        num = "1",
                        price = "10"
                    },
                    new{
                        spec_no = "test-ptsd-00001",
                        num = "1",
                        price = "10"
                    }
                }
            };

            string json = stockout_info.ToJsonString();
            client.putParams("stockout_info", json);

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

6.响应示例

   6.1 正常响应示例 

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

   6.2 异常响应示例

JSON
{
    "code": "13",
    "message": "仓库不存在:xyp2test1"
}



常用工具