orderCreate 传了 PAID 但订单没有交易记录
现象#
用 orderCreate 导入历史订单并传 financialStatus: PAID,后台显示已付款,但订单详情没有任何交易流水,后续发起退款时提示没有可用交易。
原因#
financialStatus只是展示状态,不传 transactions 就不会生成支付流水- 状态与交易不一致时能写进去,但后续任一操作会按交易重算,把状态改回去
- 交易需要
kind: SALE与status: SUCCESS,金额还要与订单总额对得上 - options 里的 inventoryBehaviour 默认 BYPASS,历史订单既不扣库存也不校验可售
处理步骤#
- 按实际支付情况填
transactions,字段含 kind、status、gateway 与 amountSet - 已全额付款的再显式传
financialStatus: PAID,让两者保持一致 - 设置
options { sendReceipt: false },避免批量导入给客户发信 - 历史订单补上
processedAt,否则全部落在导入当天,报表会出现虚假峰值 - 回读
displayFinancialStatus与 transactions 条数确认落库
验收标准#
订单详情显示 Paid 且交易列表有一条 SALE/SUCCESS,金额等于 totalPriceSet;补做退款时能正常发起。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。