注文編集APIに新たな変異を用いて配送ラインを追加・削除する

Shopifyのストア運営において、注文の編集は重要なプロセスです。特に、配送ラインの追加や削除は商品の配送手段を柔軟に管理するために必要不可欠です。しかし、現行のシステムでは、注文編集時に配送ラインの追加や削除が容易に行えない問題がありました。

GraphQL Admin APIバージョン2024-04の新機能

GraphQL Admin APIのバージョン2024-04では、注文の編集時に新しい配送ラインを追加したり、既存の配送ラインを削除したりすることが可能となります。さらに、削除された配送ラインを引き続き問い合わせることも可能です。

具体的には、以下の新たな変異を利用することができます。

  • orderEditAddShippingLine: 既存の注文に新しいカスタム配送ラインを追加します。
  • orderEditRemoveShippingLine: 注文から既存の配送ラインを削除します。
  • orderEditUpdateShippingLine: 注文編集をコミットする前に新しく追加した配送ラインの属性を更新します。

また、新フィールドshippingLine.isRemovedを使うことで、配送ラインが削除されたかどうかを判断することができます。さらに、新パラメータincludeRemovalsをコネクションorder.shippingLinesに使用することで、削除された配送ラインを問い合わせることが可能です。このパラメータのデフォルト値はfalseであり、削除された配送ラインはデフォルトでは返されません。

REST APIユーザーとOrder Webhooksの利用者向けの改善

REST APIの利用者に対しては、削除された配送ラインは引き続きOrderリソースのペイロードで返されます。APIバージョン2024-04からは、新属性is_removedの値を確認することで、配送ラインが削除されたかどうかを判断することができます。

また、Order webhooksの利用者に対しても、削除された配送ラインは引き続きペイロードで返されます。APIバージョン2024-04からは、配送ラインのペイロードに新しいキーis_removedが追加されます。これにより、注文から配送ラインが追加または削除されたときに通知を受け取ることが可能となります。

実装時の注意点

これらの新機能の導入にあたり、以下の点に注意してください。

  • 新たな変異を用いるためには、GraphQL Admin APIのバージョン2024-04以上が必要です。
  • includeRemovalsパラメータのデフォルト値はfalseです。削除された配送ラインを問い合わせるためには、この値をtrueに設定してください。
  • REST APIやOrder webhooksを用いる場合でも、新属性is_removedをチェックして配送ラインの削除を確認するようにしてください。

詳細な情報については、Admin APIを用いた既存注文の編集のチュートリアルを参照してください。

参考記事: Add and remove shipping lines with new mutations on the order editing API