Guzzle调用Magento商品上传API返回500错误且异常日志无新增记录
问题根因
你提交的请求体结构不符合Magento商品创建API的入参规范,核心错误出现在product字段的数组构造逻辑上:
- 原代码中
product对应了5个独立的一维数组,正确格式要求所有商品属性都放在同一个关联数组下作为product的值 - 你传入的sku是数字类型,Magento要求SKU为字符串类型,部分版本会触发类型校验错误
修复后的代码
<?php require_once ('connparams.php'); try { $response = $client->request('post', 'products', [ "headers" => $headers, 'body' => json_encode([ 'product' => [ 'attribute_set_id' => 13, 'sku' => '12548', 'name' => 'widget', 'price' => 1, 'type_id' => 'simple' ] ]) ]); }
日志无记录排查方向
- 优先检查web服务器的错误日志(如Nginx的error.log、Apache的error.log),参数结构异常的错误可能在请求进入Magento核心逻辑前就被抛出,不会写入Magento的exception日志
- 其次检查Magento根目录下
var/log/system.log,部分参数校验错误会记录在这个日志文件中 - 确认
connparams.php中Guzzle客户端初始化时,base_uri已经正确拼接了Magento API前缀(通常为/rest/V1/),认证头已正确写入$headers变量
内容的提问来源于stack exchange,提问作者Dave Hon
相关产品推荐
相关产品推荐

