现象:下单时Extension Attribute里有值,订单也保存成功,但再次通过Repository或REST读取却变成空。字段必须同时打通写入、持久化和读回三条链路。

阶段具体操作
取证 确认extension_attributes.xml声明在Magento\Sales\Api\Data\OrderInterface,并完成setup:di:compile生成接口方法。
定位 在下单或Repository保存前把值落到明确的订单列或独立表;只setExtensionAttributes不会自动持久化。
修复 为OrderRepository的get/getList读回路径补充after插件,批量列表要一次加载映射,避免逐订单N+1查询。
复核 检查数据库列与Service Contract类型一致,分别测试新订单、旧订单空值、REST列表和单条接口。

可执行检查

rg -n 'OrderInterface|extension_attributes|OrderRepository' app/code/VendorSHOW COLUMNS FROM sales_order LIKE 'external_reference';bin/magento setup:di:compilebin/magento cache:clean config

通过标准:保存后Repository get、getList、REST与后台页面读取同一值,未设置的历史订单返回约定的空值。