You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Magento 2 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:07:15