Admin UI拡張機能におけるカートとチェックアウトバリデーション設定のプリロード

ShopifyのAPI更新により、Validationレコードとそのメタフィールドをプリロードすることで、fetchコールなしでアクセスできるようになりました。この記事では、この新たな機能をどのように利用し、適用するかについて詳しく解説します。

技術的課題と現状分析

これまで、Validationレコードとそのメタフィールドへのアクセスにはfetchコールが必要であり、これがパフォーマンスに影響を及ぼしていました。また、近い将来、Validation APIは新たなread_validationsアクセススコープによって制限される予定であり、これに対応しないとfetchコールが失敗する可能性があります。

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

この問題を解決するため、Validationレコードとそのメタフィールドをプリロードする新たな形式を導入することを提案します。これにより、fetchコールなしでこれらのデータにアクセスでき、パフォーマンスが向上します。

実装手順とコード例

新たな形式に移行するためには、次の手順で更新を行います。

  1. Admin UI拡張機能の設定を開きます。
  2. 新しいread_validationsアクセススコープを有効にします。
  3. プリロードの設定を有効にします。

この設定後、Validationレコードとそのメタフィールドを次のようにプリロードできます。


const validationRecord = preload.validationRecord;
const metafields = preload.metafields;

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

この更新により、Validationレコードとそのメタフィールドへのアクセス時間が大幅に短縮され、結果的に全体のパフォーマンスが向上します。また、fetchコールを減らすことで、APIリクエストのコスト削減にも繋がります。

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

新形式への移行は、早ければ早いほどよいと言えます。なぜなら、近い将来、fetchコールが失敗する可能性が出てくるからです。そのため、すぐにでも新しいread_validationsアクセススコープを有効にし、プリロードの設定を行いましょう。

次のステップ・発展案

このプリロード機能は、現在カートとチェックアウトバリデーション設定に限定されていますが、今後他の機能にも拡張される可能性があります。その際には、同様の手順で新しい形式にすぐに対応できるよう、新たなAPIの変更に常に注視しましょう。

参考記事: Preloaded Cart and Checkout Validation configuration in Admin UI extensions