Open1
📝 Shopify Functions
Shopify Functions もさわり始める。
Functions の有効化
Functionsといっても About Shopify Function APIs のいろんな API があるようで APIに応じて有効化(実際にチェックアウトに適応するまで)に微妙に違いがあるようだ。
Cart and Checkout Validation Function API
2024-06 時点だと shopify app generate extension
コマンドのオプションがちょっとかわってたりするんだけど、以下で紹介されているような流れでいける。
-
shopify app generate extension --template cart_checkout_validation --name [任意のFunction名]
でテンプレつくってカスタマイズ - 上記にも書いてあるけどアプリをインストールしたストア側の設定で「チェックアウト」->「チェックアウトルール」で実装したチェックアウトをオンにする必要がある
Payment Customization Function API
こちらも Create the payments function 通りではあるのだけど..要点抜き出しておくと、
-
shopify app generate extension --template payment_customization --name [任意のFunction名]
でテンプレつくってカスタマイズ - アプリの
shopify.app.toml
内のaccess_scopes
にread_payment_customizations
,write_payment_customizations
が必要 - デプロイ後の有効化はストア側の設定でこちらは「決済」-> 「決済のカスタマイズ」でできると思いきや、上の通り GraphQL アプリから
paymentCustomizationCreate
叩いて有効化する必要があった- で、GraphQLアプリじゃなくて 任意のGraphQLクライアントからはできなかった。そちらでは
Could not find Function with id
といわれてしまう。上記URLの通り Shopifyの GraphQLアプリ経由ならいけた。 ref. [Bug]: Shopify app GraphQl client can't find paymentCustomizations of shopify function · Issue #3107 · Shopify/cli
- で、GraphQLアプリじゃなくて 任意のGraphQLクライアントからはできなかった。そちらでは
Functions のデバッグ方法
有効化したらストア側のアプリの設定で開発ログを提供しておくと Partenerダッシュボードの対象アプリの「関数」ページでログの確認ができる。
ただ、コードを js で書いている場合は console.error()
で出力するっぽい。
ref. Test and debug Shopify Functions
参考
-
チェックアウト時の決済方法と配達オプションをカスタマイズする · Shopify ヘルプセンター
- ストア管理画面の決済、配送、チェックアウトそれぞれFunctionsを有効化していく