订单明明更靠近华东仓,创建Shipment时Magento却推荐默认仓。先确认使用的是Priority还是Distance算法,二者需要的配置完全不同。

定位与修复记录

1. 固定复现范围

记录订单Website、stock_id、收货地址、SKU和推荐source_code。确认订单所属Website只绑定到预期Stock。

2. 确认真实原因

Priority算法按Stock配置中的Source顺序选择,不按Source名称或后台列表排序。重新拖动优先级并保存;禁用或无货Source会被跳过。

3. 执行修复

Distance Priority算法需要正确的经纬度、国家地区数据和距离提供者。地址缺邮编或Source坐标为空时可能回退。检查下载的geonames数据与API凭证。

4. 恢复后处理

如果ERP创建Shipment时自己传source_code,Magento推荐不会生效;修复ERP映射或在调用Source Deduction前使用正式Source Selection接口。

SELECT stock_id,website_id FROM inventory_stock_sales_channel WHERE website_id=:website_id;
SELECT source_code,sku,quantity,status FROM inventory_source_item WHERE sku='SKU-1';
SELECT source_code,name,latitude,longitude,enabled FROM inventory_source;

验收清单

  • 用两个仓都有货、首选仓缺货、部分数量不足三种订单测试;推荐、实际扣减和Shipment中的source_code必须一致。
  • 不要通过直接改inventory_source_item数量来强迫选仓,这会破坏ERP库存事实。