订单明明更靠近华东仓,创建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库存事实。

