Api-批量获取库存与价格

该api为通过接口批量获取产品基本信息(库存、价格、上下架状态)
库存更新的原则是 库存为3以下的产品尽量不上架,请每6个小时去从Quarkscm.com抓取库存数据,当前不支持Quarkscm有库存更新就会推送数据去贵公司ERP这边
备注:skus数量限制在100个以下。超过将报错

准备工作

登录获取access-token,并将access-token设置为请求头参数,如何获取access-token,请参考“获取token文档

API说明:

URL: https://dpapi.quarkscm.com/v1/myproduct/multi-get

格式:JSON
方式:POST

请求参数说明:

请求头参数:

参数名称 是否必须 类型 描述
access-token 必须 string 登录后获取的token,此接口access-token必填

Body Form-Data:

参数名称 是否必须 类型 描述
skus 必须 Array sku数组,不超过100个
warehouse_name 必须 String 仓库名称

请求参数示例如下:

{
    "skus":[
            "H13589",
            "WW13853",
            "G2341"
        ],
    "warehouse_name":"CN"
}

返回参数说明 :

格式:json

参数名称 是否必须 类型 描述
code 必须 integer 状态码
data 不必须 array 请求成功为data数组数据,请求失败则无此参数
message 不必须 string 请求失败返回错误信息,请求成功则无此参数

返回数据data数组参数说明:

参数名称 类型 描述
sku string sku
quantity int 产品库存
price int 产品价格
status int 1为上架 2为下架

返回参数示例:

返回参数详细:

1.成功:返回参数

{
	"code": 200,
	"data": [{
			"sku": "D3381-2",
			"price": "64.58",
			"status": 1,
			"quantity": 17
		}, {
			"sku": "Y5534-47",
			"price": "14.16",
			"status": 1,
			"quantity": 21
		}, {
			"sku": "Y7021PU",
			"price": "9.75",
			"status": 1,
			"quantity": 23
		}
	]
}

2.失败:返回参数

2.1 参数不完整

{
    "code": 401,
    "message": "Parameter missing",
}

2.2 skus长度超过限制

{
    "code": 403,
    "message": "limit skus",
}

php 代码示例:

<?php
function getCurlData($url,$type="get",$data=array(),$timeout = 10) {
    //对空格进行转义
    $http_header = array();
    if(isset($data['access-token'])){
        $http_header[] = 'access-token: ' . $data['access-token'];
        unset($data['access-token']);
    }
    $url = str_replace(' ','+',$url);
    if (strtolower($type) == "get") {
        if (!empty($data) && is_array($data)) {
            $arr = [];
            foreach ($data as $k=>$v) {
                $arr[] = $k."=".$v;
            }
            $str = implode("&",$arr);
            if (strstr($url,"?")) {
                $url .= "&".$str;
            } else {
                $url .= "?".$str;
            }
        }
    }
    
    $ch   = curl_init();
    curl_setopt($ch, CURLOPT_URL, "$url");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);  //定义超时3秒钟
    if(strtolower($type) == "post"){
        $data = json_encode($data);
        // POST数据
        curl_setopt($ch, CURLOPT_POST, 1);
        $http_header[] = 'Accept: application/json';
        $http_header[] = 'Content-Type: application/json';
        $http_header[] = 'Content-Length: ' . strlen($data);

        // 把post的变量加上
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($ch, CURLOPT_HTTPHEADER,$http_header);
    //执行并获取url地址的内容
    $output = curl_exec($ch);
    //echo $output ;
    //释放curl句柄
    curl_close($ch);
    //var_dump($output);exit;
    return $output;
}
$url = 'https://dpapi.quarkscm.com/v1/myproduct/multi-get';
$data['access-token'] = "c_xyXeQgyKcWHM9kS0yukwlC5bgMVJST";
$data['skus'] = ["H10513","WW13853","G2341"];
$data['warehouse_name'] = "CN";
$res = getCurlData($url,'post',$data);
echo $res;
?>

返回json结果:

{
	"code": 200,
	"data": [{
			"sku": "D3381-2",
			"price": "64.58",
			"status": 1,
			"quantity": 17
		}, {
			"sku": "Y5534-47",
			"price": "14.16",
			"status": 1,
			"quantity": 21
		}, {
			"sku": "Y7021PU",
			"price": "9.75",
			"status": 1,
			"quantity": 23
		}
	]
}