Shopify Functionsにおける`functionHandle`の導入
Shopify APIのバージョン2025-10
から、GraphQLのmutationsでShopify Functionsの識別子としてユーザー定義のハンドルがサポートされるようになります。関数の所有者を作成または管理するmutationsで、グローバルに一意のfunctionId
を渡す代わりに、shopify.extension.toml
で定義した安定したアプリスコープのハンドルを渡すことが可能になります。
技術的課題の定義と現状分析
これまでShopify Functionsでは、機能を識別するためにfunctionId
を使用してきました。しかし、functionId
は各環境へのデプロイメントごとに変更され、開発者は関数のオーナーを作成または更新する前に最新のIDを問い合わせる必要がありました。
具体的な技術的ソリューションの提案
functionHandle
の導入により、環境間で安定し、アプリにスコープされた識別子を使用できるようになります。これにより、関数のオーナーを作成する前にshopifyFunction
を問い合わせる必要がなくなります。
注意点
各呼び出しに対してfunctionId
またはfunctionHandle
のどちらか一方を提供する必要があります。両方を提供するとユーザーエラーが発生します。
実装手順とコード例
以下にfunctionHandle
の導入に伴うコードの更新手順と例を示します。
関数の
shopify.extension.toml
からfunctionHandle
を取得します:toml [[extensions]] name = "Payment Customization Function" handle = "YOUR_FUNCTION_HANDLE" type = "function"
使用する
functionHandle
を使って支払いカスタマイズを作成します:graphql mutation { paymentCustomizationCreate(paymentCustomization: { title: "Payment Customization Title", enabled: true, functionHandle: "YOUR_FUNCTION_HANDLE", }) { paymentCustomization { id } userErrors { message } } }
パフォーマンス・コスト分析
今回の変更により、関数のオーナーを作成または更新する前にshopifyFunction
を問い合わせる必要がなくなります。これにより、APIの呼び出し回数が減少し、パフォーマンスの向上とコストの削減が見込まれます。
実装時の注意点・ベストプラクティス
既存の統合は影響を受けませんが、functionId
の代わりにfunctionHandle
を使用するようコードを更新することをお勧めします。また、functionId
の非推奨と削除のタイムラインは別途発表される予定です。
次のステップ・発展案
今後、functionId
からfunctionHandle
への移行を推進していくため、開発者は新たな変更に対応する準備を進めておくことが求められます。
AUTHOR
Share:
Shopify向けに構築されたアンインストールとアプリ埋め込み要件の猶予期間に関する更新
GraphQLのProductTaxonomyNodesクエリフィールドの非推奨化について