故障只发生在一批导入客户:账户中心地址能看到“California”,结账切换到该地址却提示省份无效。请求里同时出现:
{"country_id":"US","region":"California","region_id":999}
文字看起来正确,但 999 并不是 US 下的 California。承运商和税务规则通常更信任 region_id,因此页面能展示不代表数据有效。
查字典与异常地址
SELECT d.region_id, d.country_id, d.code, n.name
FROM directory_country_region d
LEFT JOIN directory_country_region_name n ON n.region_id=d.region_id
WHERE d.country_id='US' AND (d.code='CA' OR n.name='California');
再筛出 country_id 与 region_id 所属国家不一致的客户地址。先导出清单并按客户确认,不能只根据 region 文本模糊匹配后批量写库;不同国家可能存在同名地区。
入口修复
CSV 导入、ERP 接口和自定义地址组件只能选择一种明确策略:有目录地区的国家传正确 ID;自由文本国家传 region 并让 region_id 为空。国家变化时必须清掉旧 ID,不能只更新文字。
历史数据通过受控脚本使用 Region Factory/Repository 映射并保存,保留变更日志。修复后验证账户编辑、默认配送地址、运费估算、税费和下单生成的 order_address 五处一致。

