Shopify Admin API

orderCreate 传了 PAID 但订单没有交易记录

现象#

用 orderCreate 导入历史订单并传 financialStatus: PAID,后台显示已付款,但订单详情没有任何交易流水,后续发起退款时提示没有可用交易。

原因#

  • financialStatus 只是展示状态,不传 transactions 就不会生成支付流水
  • 状态与交易不一致时能写进去,但后续任一操作会按交易重算,把状态改回去
  • 交易需要 kind: SALE 与 status: SUCCESS,金额还要与订单总额对得上
  • options 里的 inventoryBehaviour 默认 BYPASS,历史订单既不扣库存也不校验可售

处理步骤#

  1. 按实际支付情况填 transactions,字段含 kind、status、gateway 与 amountSet
  2. 已全额付款的再显式传 financialStatus: PAID,让两者保持一致
  3. 设置 options { sendReceipt: false },避免批量导入给客户发信
  4. 历史订单补上 processedAt,否则全部落在导入当天,报表会出现虚假峰值
  5. 回读 displayFinancialStatus 与 transactions 条数确认落库

验收标准#

订单详情显示 Paid 且交易列表有一条 SALE/SUCCESS,金额等于 totalPriceSet;补做退款时能正常发起。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。