Magento Rest API更新运单号及承运商代码不生效问题咨询
问题1:多商品场景下quantity、weight参数传值规则
该接口中qty和weight参数对应当前跟踪记录绑定的包裹的总数量、总重量:
- 如果一个运单仅对应一个包裹,直接传整个运单所有商品的总发货数量、总重量即可
- 如果一个运单拆分为多个包裹发货,每条跟踪记录对应一个包裹,传对应包裹内商品的总数量、总重量即可
问题2:接口返回200但UI不显示物流信息的排查方案
核心常见原因
carrier_code参数传值错误
你当前Payload里传的carrier_code为United Parcel Service,属于承运商的前端显示标题,不是系统要求的承运商编码,UPS的标准编码为ups。所有承运商编码必须和Magento后台「配送方法」配置里的标识完全一致,传错会导致系统已存储数据但UI无法匹配承运商,因此不显示。- 接口类型误用
POST /V1/shipment/track是新增物流跟踪记录的接口,不是更新接口。你之前已通过UI生成过发货记录的情况下,调用这个接口只会新增一条跟踪记录,不会覆盖原有记录。如果需要修改已有的跟踪记录,需要调用PUT /V1/shipment/track/{跟踪记录entity_id}接口,在路径中传入要修改的跟踪记录ID。
已完成订单的更新限制说明
Magento原生默认没有限制已完成(Complete)状态的订单修改物流信息,出现修改不生效的情况优先排查两个方向:
- 后台是否安装了自定义订单管控插件,限制了已完成状态订单的编辑权限
- 当前调用API的用户角色,是否有已完成订单的编辑、发货信息修改权限
补充排查步骤
- 调用接口后先清理Magento的页面缓存、块缓存,后台订单详情页存在缓存机制,未清缓存可能不会显示最新数据
- 直接查询数据库
sales_shipment_track表,确认接口调用后是否生成了对应记录:- 若表中存在对应记录但UI不显示,基本可确定为
carrier_code错误或缓存问题 - 若表中无对应记录,需检查
parent_id是否对应正确的运单ID、order_id和运单是否匹配
- 若表中存在对应记录但UI不显示,基本可确定为
内容的提问来源于stack exchange,提问作者user3497702
相关产品推荐
相关产品推荐

