サブスクリプションAPIにおける顧客情報削除のサポート

ShopifyのAdmin GraphQL APIバージョン2024-04では、新たなエラーコード「CUSTOMER_REDACTED」が追加され、顧客情報の削除(redaction)をスケジュールした顧客、または既に削除された顧客に対する新規サブスクリプション契約の作成時にこのエラーコードが返されるようになりました。

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

顧客情報の削除をスケジュールすると、その顧客に対する新規サブスクリプション契約が作成できなくなる問題がありました。これは、個人情報保護の観点から重要な機能であり、これによりデータの不整合や個人情報漏えいのリスクを防ぐことができます。

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

この問題を解決するために、Shopifyは新たなエラーコード「CUSTOMER_REDACTED」を導入しました。subscriptionContractAtomicCreatesubscriptionContractCreateの両mutationでこのエラーコードが利用できます。

実装手順とコード例

新規サブスクリプション契約の作成時には、以下のようにmutationを利用します。

{
  "subscriptionContractCreate": {
    "input": {
      "customerId": "顧客ID",
      "publicationId": "パブリケーションID"
    }
  }
}

このmutationのレスポンスでエラーコード「CUSTOMER_REDACTED」が返された場合、顧客情報の削除がスケジュールされているか、既に削除されていることを意味します。

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

この新機能はAPIのレスポンスに新たなエラーコードを追加するだけであり、パフォーマンスやコストに大きな影響はありません。

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

新規サブスクリプション契約の作成前に、顧客情報が削除スケジュールされていないことを確認することが重要です。また、エラーコードのハンドリングを正しく行うことで、顧客情報の削除が行われている場合でもシステムが適切に動作するようにすることが必要です。

次のステップ・発展案

今後は、顧客情報の削除スケジュールや実行状況をAPIから取得する機能が追加されると、より柔軟な顧客データ管理が可能になるでしょう。

参考記事: Customer Redaction support on Subscriptions APIs