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