接口已经把数据写进数据库,客户端却收到 500。堆栈最后停在 ServiceOutputProcessor,这通常不是保存失败,而是返回值无法按服务契约转换。
<extension_attributes for="MagentoSalesApiDataOrderInterface">
<attribute code="warehouse_note" type="string" />
</extension_attributes>如果插件实际给 warehouse_note 塞进数组,序列化阶段就会与声明冲突。返回对象列表时,类型应写成完整接口数组,例如 VendorModuleApiDataItemInterface[],不能写实现类的随意缩写。
核对三处
extension_attributes.xml的 for 与 type;- 插件调用的 setter、getter以及真实返回值;
- 生成的 Extension 接口是否来自当前配置。
修正 XML 后重新编译并清理旧生成代码,再分别请求单对象与搜索列表接口。若操作具有写入副作用,还要检查客户端是否因 500 自动重试,避免同一业务被执行两次。

