调用Google Shopping Content API v2.1新增商品报错如何解决?
问题修复方案
核心错误原因
你遇到的两个报错均由请求体结构不符合接口规范导致:
- 第一次报错提示找不到
price、productWeight等字段,是因为你直接把商品属性放在了请求体顶级,而接口预期所有商品属性都嵌套在product字段下,顶级的这些字段自然无法被识别 - 第二次报错提示需要指定product,是因为你删除了多个必填字段后,接口完全无法识别到合法的商品结构体
具体修复步骤
1. 调整请求体结构
不要直接把$productData作为请求参数发送,外层需要嵌套一层product字段,示例如下:
// 原错误调用逻辑 // postRequest($url, $productData, $accessToken); // 修正后调用逻辑 $requestData = [ 'product' => $productData ]; postRequest($url, $requestData, $accessToken);
2. 修正shipping字段格式
接口要求shipping为数组类型(可配置多条配送规则),你当前传的是单个对象,需要嵌套一层数组:
"shipping" => [ [ "price" => [ "value" => $shippingPrice, "currency" => $this->countriesData["DE"]["currency"] ], "country" => $this->countriesData["DE"]["cldrTerritoryCode"], "region" => $this->countriesData["DE"]["region"], "service" => $shippingTimeName, ] ],
3. 修正availability字段值
库存状态的标准有效值为in stock,你当前填写的on stock会触发后续字段校验错误:
"availability" => "in stock",
补充注意点
检查Authorization头格式,Google OAuth2访问令牌需要携带Bearer 前缀,否则会触发鉴权失败:
$headers = array( 'Accept: application/json', 'Content-Type: application/json', "Authorization: Bearer $accessToken" );
内容的提问来源于stack exchange,提问作者ara
相关产品推荐
相关产品推荐

