スクリプトの要件と制限
スクリプトを作成するには、Shopify PlusプランとScript Editorが必要です。また、Rubyプログラミング言語の知識、またはRubyの知識がある開発者またはShopify Expertの利用が必要です。 Shopify Expertの採用について詳しくは、こちらをご覧ください。
セキュリティを強化し、どんなときでも、ストアにいるお客様が何人であってもスクリプトを実行できるようにするために、スクリプトの制限が存在します。Shopifyストアのスクリプトを開発する場合、以下の制限事項に留意してください。
目次
オンラインストアとストアフロントAPI
スクリプトを作成または編集するときは、オンラインストアでのみ実行するのか、オンラインストアと以下のアプリで実行するのかを選択します。
- ストアフロントAPI、JavaScript Buy SDK、Mobile Buy SDK (AndroidおよびiOS) で構築されたカスタムアプリ
- チェックアウトを生成するカスタムアプリ
- TapcartおよびPlobalアプリモバイルアプリビルダー
スクリプトを利用するには、ショッピングカート機能が組み込まれたウェブサイトが必要です。そのため、スクリプトを購入ボタン、Facebook、または卸売販売チャネルとともに利用できません。
公開されたスクリプト
1つのスクリプトタイプにつき一度に1つのスクリプトのみ公開できます。たとえば、項目のスクリプトと配送料のスクリプトを公開することはできますが、同時に2つの項目スクリプトを公開することはできません。
Shopify スクリプトの最大数
最大200個のShopify スクリプトを作成することができます。
下書き注文
下書き注文、あるいは下書き注文のチェックアウトでは、項目のスクリプト、配送のスクリプト、決済のスクリプトは機能しません。
メタフィールド
Shopify スクリプトはメタフィールドにアクセスできません。
カートおよびチェックアウトの属性
Shopify スクリプトはShopify Liquidカートの属性にアクセスできません。これらの属性をカートページに追加してお客様から追加情報を収集することができますが、その属性を使用するスクリプトを作成することはできません。
クーポンコード
クーポンコード適用の有無、ディスカウント金額、およびディスカウントの種類 (定額、割引率、または配送) にスクリプトを実行することはできますが、ディスカウントの適用方法 (カートまたは特定の項目) に関してはスクリプトを実行することはできません。ディスカウント後の合計額や自動ディスカウントなどにはスクリプトを実行することはできません。
カートに適用されるディスカウントを使用する項目スクリプトと配送スクリプトは、ディスカウントの組み合わせと互換性がありません。この.discount_codeは、1つのクーポンコードのみを返します。ディスカウントの組み合わせを使用した複数のクーポンコードを含むカートはサポートされていません。
項目
アイテムをカートに追加したり、アイテムの価格を上げたりすることにスクリプトを実行することはできません。
配送料
配送料を上げることにスクリプトを実行することはできません。
正規表現
正規表現のマッチングには、対応していません。項目スクリプトを作成する場合、ワークアラウンドとして以下のいずれかのメソッドを使用できます。
- splitメソッド
- start_withメソッドとend_withメソッド
- includeメソッド
テーマ
スクリプトをサポートし、お客様を混乱させないために、Liquidテーマを更新することが必要になる場合があります。たとえば、項目のディスカウントはすべてのテーマでカートに表示されるわけではありません。この場合、テーマを編集してカート内の項目のディスカウントを表示する必要があります。Liquidテーマに加えることが可能な変更のタイプに関する詳細をご覧ください。
リソース
スクリプトに使用できるCPUとメモリの量は限られています。スクリプト用に予約されたリソースは、カートのサイズとスクリプトに必要な計算量によって異なります。Shopifyではこれらのリソース制限を慎重に追跡して、スクリプトが意図したとおりに動作できるようにします。
スクリプトをテストする場合、スクリプトの使用に割り当てられたリソースの割合をScript Editorコンソールで印刷できます。
入力および出力
いくつかの例外を除き、Shopify スクリプトは入力および出力できません。これにより、スクリプトでウェブ要求やデータベース呼び出しを実行できず、ユーザーからの入力も取得できません。
ただし、puts
メソッドは、Script Editorアプリでコンソールにテキストを印刷するために使用できます。
時間とランダム性
スクリプトは、ランダム、または時間ベースの計算を含むことができません。Shopify スクリプトでTime
オブジェクトとrand
メソッドにアクセスすることはできません。
カートの合計が再計算されるたびにスクリプトが実行されるため、お客様がカートを頻繁に変更すると、時間ベースまたはランダムな数字の生成に基づくスクリプトが、予測できない結果または混乱する結果を招く可能性があります。ただし、Launchpadアプリを使用して、イベント中にスクリプトを実行するようにスケジュールすることができます。
スクリプトの文字制限
最大24,576文字のスクリプトを作成できます。
サブスクリプション注文
Lineitemスクリプトと配送スクリプトがサブスクリプション商品をディスカウントする場合、ディスカウントは以下の決済に適用されます。
- スケジュール済みの注文には適用されず、後払い決済の初回決済のみ
- プリペイドサブスクリプションの注文の全額
サブスクリプションとスクリプトについて詳しくはこちらをご覧ください。
簡単なチェックアウト
簡単なチェックアウトでShopify スクリプトを使用する場合、お客様が簡単な決済方法を選択した後に、配送ディスカウントが適用されます。そのため、注文価格への変更は、お客様のデバイスやブラウザには反映されません。お客様には、簡単なチェックアウトで元の価格が表示されますが、正しいディスカウント価格が請求されます。
Shopify Point of Sale(Point of Sale)
Shopify スクリプトは、Shopify POSでは機能しません。
決済ゲートウェイサービスの名前を変更する
ロゴを表示している決済ゲートウェイサービスの名前を変更することはできません。