Php 将库存更新为Shopify API不起作用

Php 将库存更新为Shopify API不起作用,php,json,api,curl,shopify,Php,Json,Api,Curl,Shopify,请查看我的cURL测试代码,如果您看到执行它不会更新我的产品变体清单的任何原因,请告诉我。只有一种产品有其变体数据,该产品没有单独的变体。所以这应该是非常直接的,对吗 cURL已经安装并在我的机器上正常工作,并且API密钥/令牌也已验证 这是我的密码 //设置访问权限 $apiKey=“[my api key]”; $pwd=“[my pwd]”; $baseUrl=$apiKey$pwd.“@sensible香草.myshopify.com/admin/”; //设置测试数据 $varian

请查看我的cURL测试代码,如果您看到执行它不会更新我的产品变体清单的任何原因,请告诉我。只有一种产品有其变体数据,该产品没有单独的变体。所以这应该是非常直接的,对吗

cURL已经安装并在我的机器上正常工作,并且API密钥/令牌也已验证

这是我的密码


//设置访问权限
$apiKey=“[my api key]”;
$pwd=“[my pwd]”;
$baseUrl=$apiKey$pwd.“@sensible香草.myshopify.com/admin/”;
//设置测试数据
$variantId='3744859331';
$inventoryQty='50';
//设置JSON负载
$payload=阵列(
“variant”=>数组(“id”=>variantId美元,
“库存数量”=>$inventoryQty
)               
);  
$payload=json_encode($payload,json_NUMERIC_CHECK);
回显“JSON有效负载:”.$payload.“”;
$putUrl=$baseUrl.“变体/”$variantId.“.json”;
回显“url:”.$putUrl.“
”; $session=curl_init(); curl_setopt($session,CURLOPT_URL,$putUrl); curl_setopt($session,CURLOPT_CONNECTTIMEOUT,30)//允许连接的秒数 curl_setopt($session,CURLOPT_TIMEOUT,30)//允许使用cURL命令的秒数 curl_setopt($session,CURLOPT_头,true)//是否在返回值中包含标题信息? curl_setopt($session,CURLOPT_RETURNTRANSFER,true)//以字符串形式返回响应 curl_setopt($session,CURLOPT_PUT,1); curl_setopt($session,CURLOPT_POSTFIELDS,$payload); curl_setopt($session,CURLOPT_HTTPHEADER,array('Accept:application/json','Content Type:application/json'); $data=curl\u exec($session); 打印(curl_getinfo($session)); 会议结束($会议); echo$data;//会话数据

我得到的答复是:

数组([url]=>[content\u type]=>[http\u code]=>0[头大小]=>0[请求大小]=>0[文件时间]=>-1[ssl\u验证结果]=>0[重定向计数]=>0[总时间]=>0.156[名称查找时间]=>0.078[连接时间]=>0.156[预传输时间]=>0[大小上传]=>0[大小下载]=>0[速度下载]=>0[速度上传]=>0][下载内容长度]=>-1[上传内容长度]=>-1[开始传输时间]=>0[重定向时间]=>0[认证信息]=>数组()[主ip]=>23.227.38.71[主端口]=>443[本地ip]=>192.168.0.10[本地端口]=>50573[重定向url]=>)

所以它看起来像是在连接,但要么是负载没有被放入…要么就是我不明白API/URL的要求是什么…或者可能有一些隐藏的或丢失的开关或权限,我需要设置,而不是APIKey生成…我希望我知道

提前感谢,谢谢


Kailas

看起来你的有效载荷数组中有一个拼写错误,
库存数量
不是
库存数量

$payload = array (            
   "variant" => array(
       "id" => $variantId,
       "inventory_quantity" => $inventoryQty
   )               
); 

echo curl\u error($session);
返回了什么?感谢您的调试建议。我不确定检索有用信息的最佳方法。它说:SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3\u GET\u SERVER\u证书:证书验证失败添加:curl\u setopt($session,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($session,CURLOPT_SSL_VERIFYHOST,false);SSL错误被消除。我可以执行GET并获取我的产品变量数据。但是PUT不会更改我的产品变量库存数量。我还获得:{“错误”:{“变量”:“必需参数缺失或无效”}
$payload = array (            
   "variant" => array(
       "id" => $variantId,
       "inventory_quantity" => $inventoryQty
   )               
);