Magento 2 API关联产品赋值报错:linkType字段缺失求助
解决Magento 2 /V1/products/{sku}/links API的linkType必填错误
你遇到的问题核心是请求体的结构不符合Magento 2 API的要求。虽然你确实传了linkType字段,但items的格式不对——这个字段需要接收一个包含链接对象的数组,而你现在直接把单个链接对象赋值给了items,导致API无法正确解析linkType字段。
修正后的代码
<?php error_reporting(E_ALL); define('mag_apiurl',"http://www.mywebsite.com/rest/V1/"); define('tn_webshopKey',"myshowpkey"); $sku1 = "sku1"; $sku2 = "sku2"; // 关键修改:items是数组包裹的对象,而非单个对象 $productData = array( "items" => array( array( "sku" => $sku1, "linkType" => 'related', "linkedProductSku" => $sku2, "linkedProductType" => "simple", "position" => 0 ) ) ); $headers = array( "Content-Type:application/json", "Authorization: Bearer ".tn_webshopKey ); $requestUrl= mag_apiurl.'products/'.$sku1.'/links'; $ch = curl_init($requestUrl); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($productData)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); echo $returnProductDetails = curl_exec($ch); ?>
额外注意事项
- 确认你的Bearer令牌拥有
Magento_Catalog::products的操作权限,否则可能会触发权限相关错误。 - 检查
sku1和sku2对应的产品是否存在于你的Magento实例中,且状态为启用。 linkType的有效值包括:related、crosssell、upsell、grouped,确保你使用的是正确的类型。- 可以在Magento后台开启API日志(路径:
Stores > Configuration > Advanced > Developer > Log Settings),查看更详细的请求/响应信息,方便排查其他潜在问题。
内容的提问来源于stack exchange,提问作者Vishnu Bhadoriya
相关产品推荐
相关产品推荐

