跨境订单导入两遍,是否重复发货取决于系统如何识别订单,而不是文件名是否相同。订单号用于识别业务对象,处理状态用于说明已经走到哪里。两者混在一起,重复同步就可能被误当成新的发货指令。
订单身份应包含足够范围。不同平台或店铺可能出现相似编号,因此仅用订单号做全局去重未必可靠。可以按来源平台、店铺和订单标识建立组合键,并保留原始值。一个订单有多行商品时,还需要区分订单与明细,不能把第二行商品误判为重复订单而删除。
导入动作首先应决定新增还是更新。已经存在的订单,再次同步时可能带来付款、取消或地址状态变化,不应简单全部丢弃。系统需要比较允许更新的字段,同时保留履约阶段的约束。订单已经交仓后,地址变化是否还能直接覆盖,就需要按照业务流程处理,不能让晚到的数据自动改写已执行信息。

发货任务应具有自己的身份和状态。订单读取成功、待审核、已下发仓库、已出库,是不同阶段。只有满足付款和其他必要条件、且没有有效发货任务的订单,才进入相应动作。若仅判断“这一行刚被导入”,就会把数据同步与业务执行绑定得过紧,重复文件很容易触发重复履约。
并发也需要考虑。两个导入进程可能同时发现订单不存在,再各自创建一条记录。仅靠前端查询无法完全避免这种情况,系统实现应使用适当的唯一约束、事务或幂等机制,具体方案由所用系统能力决定。对于表格流程,至少应集中导入入口并保留批次记录,避免多人同时追加而没有核对。

补发和换货不能仅靠删除旧发货状态实现。它们是与原订单相关的新业务动作,应有原因、授权和独立任务标识。否则系统可能把合法补发拦成重复,也可能把误操作当成正常更新。可以在规则中区分首次履约与后续处理,并让仓库看到用途。这样去重保护不会妨碍真实售后,记录也能解释同一订单为何出现多个包裹。
向仓库发送任务后,如果响应超时,应先查询仓库是否已接收。再次发送新任务可能造成重复出库。接口支持稳定请求标识时,应按其约定使用;不支持时,则需要明确人工核查路径。订单状态不能因为没有收到成功提示就直接退回“未处理”,否则下一轮同步可能再次触发。

日常检查可以找出同一订单对应多个有效发货任务、同一包裹对应多次下发,以及状态逆向变化等异常。处理时不要直接删除记录,应确认是否存在拆单、补发或换货等真实原因。合法的多次履约需要关联原订单并说明用途,才能与误重复区分。
上线前用重复文件、状态更新和中途失败样本测试完整流程。验收结果应是订单信息正确更新,发货动作只按业务需要发生,并且每次异常都能追溯。重复导入可以是正常的数据同步行为,重复发货则必须由独立的履约控制防止。
