下单时报sequence_order_某ID不存在,不能把请求改去使用另一个Store的序列表。每个Store可能有独立订单、发票、发货和退款序列。
按顺序解决
- 从异常表名确定store_id,再查store是否存在,以及sales_sequence_meta中order实体是否有该Store映射。
- 比较一个正常Store的meta、profile和实际sequence表结构。若只迁了业务表没迁序列表,应从同版本结构恢复,而不是手工创建只有一列但缺少自增设置的表。
- 若Store是后台新建后出现问题,检查创建Store时setup/observer异常。修复模块后通过Magento的Sequence建表逻辑补齐order、invoice、shipment、creditmemo,不只补当前报错表。
- 设置起始值前查询该Store现有最大increment_id,确保新序列不会与历史订单重复。操作前备份所有sales_sequence相关表。
检查命令
SELECT store_id,code,website_id FROM store ORDER BY store_id;
SELECT meta_id,entity_type,store_id,sequence_table FROM sales_sequence_meta ORDER BY store_id,entity_type;
SELECT MAX(increment_id) FROM sales_order WHERE store_id=:store_id;
SHOW CREATE TABLE sequence_order_1;验证结果
在目标Store依次创建订单、Invoice、Shipment和Credit Memo,编号前缀、步长与唯一性正确;另一个Store序列不受影响。
注意:不要复制生产订单号到测试后再反向覆盖生产序列,迁移必须明确每个环境的编号边界。

