発送時に支払いを行う予約注文の支払条件が利用可能に

1. 技術的課題の定義と現状分析

ShopifyのAPIでは、予約注文の支払いを管理する方法が限定的でした。これまでは、予約注文の支払いは注文時に一括で行われていました。しかし、商品の発送が遅れた場合や、商品が発送されるまでの間に顧客がキャンセルを希望した場合など、さまざまな事情により、一括支払いの方法が最善の選択肢でない場合があります。

2. 具体的な技術的ソリューションの提案

APIの新バージョン「2026-01」では、 SellingPlanRemainingBalanceChargeTrigger enumに新しい値 ON_FULFILLMENTが追加されました。この値を使用すると、予約注文の支払いを発送時に行う設定が可能になり、遅延支払いを柔軟に管理することができます。

3. 実装手順とコード例

APIを利用して、予約注文の支払いを発送時に行う設定を行うには、次の手順を踏みます。

  1. SellingPlan APIを使用して新しいSellingPlanを作成します。
  2. 作成したSellingPlanに対して、SellingPlanRemainingBalanceChargeTriggerの値をON_FULFILLMENTに設定します。

以下に具体的なコード例を示します。


mutation {
  sellingPlanCreate(
    input: {
      name: "Pre-order with payment upon fulfillment"
      options: ["Size", "Color"]
      sellingPlanGroups: [{
        name: "Pre-order group"
        merchandise: {
          productsToAdd: ["gid://shopify/Product/1234567890"]
        }
      }]
      sellingPlanTemplates: [{
        name: "30 days"
        intervals: [{ interval: MONTH, length: 1 }]
        deliveryPolicy: {
          zones: [{
            name: "Domestic"
            countries: ["US"]
          }]
          value: {
            percentage: 100
            chargeType: ON_FULFILLMENT
          }
        }
      }]
    }
  ) {
    sellingPlan {
      id
    }
    userErrors {
      field
      message
    }
  }
}

4. パフォーマンス・コスト分析

この機能を利用することで、予約注文の支払いを顧客にとっても事業者にとっても柔軟に管理することができます。これにより、商品の発送が遅れた場合などでも、顧客への返金処理をスムーズに行うことができます。また、この機能はAPIの一部であり、追加のコストを発生させることなく利用することができます。

5. 実装時の注意点・ベストプラクティス

この機能を利用する際は、予約注文の支払いが発送時に行われることを顧客に明示的に伝えることが重要です。また、APIのバージョンが「2026-01」以上であることを確認してください。バージョンが古い場合、この機能を利用することはできません。

6. 次のステップ・発展案

今後、さらに多様な支払い条件を設定できるように、APIの更新が予定されています。特に、定期的な支払いを行うサブスクリプション型の商品に対する支払い管理についても、より柔軟な設定が可能となる予定です。

参考記事: Due on Fulfillment payment term available for pre-orders