REST Admin APIによる「order risk」の作成・更新に「order_id」が必要になりました

ShopifyのREST Admin APIで「order risk」の作成や更新を行う際、新たに「order_id」の指定が必須となりました。この変更は、以前は「order_id: null」を用いてOrderRiskモデルを作成できたものの、チェックアウトのオーダーリスクを作成し、チェックアウトをブロックする前に使用されることがありました。しかし、外部アプリではこの機能は利用されていませんでした。

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

REST Admin APIを用いて「order risk」の作成・更新を行う際、以前は「order_id」の指定が不要でした。これにより、「order_id: null」を使ってOrderRiskモデルを作成し、チェックアウトのオーダーリスクを作成し、チェックアウトをブロックすることが可能でした。しかし、この方法は外部アプリでは利用されておらず、また「order_id」が指定されていない状態でのリスク作成は、混乱を招く可能性がありました。

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

上記の問題を解決するため、ShopifyはREST Admin APIでの「order risk」の作成・更新に「order_id」の指定を必須にしました。これにより、オーダーリスクの作成が「order_id」に紐づけられ、より明確に、また混乱を避けた形でリスク管理が行えるようになります。

実装手順とコード例

新たにREST Admin APIを使用して「order risk」を作成・更新する場合、以下のように「order_id」を指定する必要があります。


POST /admin/api/2022-07/orders/{order_id}/risks.json
{
  "risk": {
    "message": "This order was placed from a proxy IP",
    "recommendation": "Investigate the order",
    "score": 0.5,
    "source": "External",
    "cause_cancel": false,
    "display": true
  }
}

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

この変更により、各「order risk」が具体的な「order_id」に紐づくことで、リスクの管理が明確になり、混乱を避けることが可能となります。結果として、システムのパフォーマンスや効率性が向上し、コストも削減されると考えられます。

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

新たに「order_id」の指定が必須となったことを確認し、APIを使用する際は「order_id」を必ず指定するようにしましょう。また、この変更は既存のコードに影響を及ぼさないため、既存のコードの更新は必要ありません。

次のステップ・発展案

この変更を機に、APIを使用したリスク管理の効率化・自動化を目指すことができます。さらに、具体的な「order_id」に紐づくリスクを作成・管理することで、より具体的なリスク分析と対策が可能となります。

参考記事: Creating or updating an order risk with the REST Admin API now requires an `order_id`