问题现象:Credit Memo已完成,商品仍缺货。先区分财务退款和实物入库:只有明确选择Return to Stock并能确定原Source时,库存才应增加。

阶段实际操作
复现检查Credit Memo item的qty、back_to_stock以及订单是否创建过Shipment。未发货订单取消主要通过reservation补偿;已发货订单退货则涉及Source Item。
取证记录Shipment使用的source_code。多Source订单不能把退货一律加回default Source;自定义ERP退款流程若绕过Creditmemo Management,也可能没触发库存回补。
修复核对inventory_source_item当前数量和inventory_reservation累计值。不要同时手工加Source数量又创建reservation补偿,否则会双重增加可售量。
回归对历史异常单,按订单、SKU、Source逐项计算应退数量,通过正式库存API补偿并保留业务备注。修复扩展后再处理批量历史数据。

可直接执行的检查

SELECT item_id,sku,qty,back_to_stock FROM sales_creditmemo_item WHERE parent_id=:creditmemo_id;
SELECT source_code,sku,quantity,status FROM inventory_source_item WHERE sku='SKU-1';
SELECT stock_id,sku,SUM(quantity) FROM inventory_reservation WHERE sku='SKU-1' GROUP BY stock_id,sku;

通过标准:测试未发货取消、已发货全退、部分退且不回库、部分退并回库四种情况,Source quantity与salable quantity都只变化一次。

退款到支付平台成功不代表仓库已收货,业务上需要RMA时应让入库确认驱动回库存。