2026/10/20

【徹底解説】Shopify アプリ「シンプルチェックアウト注文制限|お手軽購入制限ルール」でできること

@ 信条刃

Shopify

シンプルチェックアウト注文制限のメイン画像。チェックアウト画面の上部にブロックのメッセージが出ている

ネットショップを続けていると、「この注文は受けたくない」という場面が必ず出てきます。送料に見合わない少額の注文、転売目的と思われるまとめ買い、配送できない地域からの注文、会員向けに用意した商品を一般のお客様が買ってしまうケース。どれも、注文を受けてから取り消すと、返金の作業とお詫びの連絡が発生します。お客様にとっても「買えたはずの商品が後から取り消された」という体験になり、次の購入につながりません。

そこで必要になるのが、注文が確定する前に止めて、理由を伝える仕組みです。この記事で解説する「シンプルチェックアウト注文制限|お手軽購入制限ルール」は、カートとチェックアウトの段階で、条件に当てはまる注文だけをブロックできる Shopify アプリです。金額・数量・重量・商品・配送先・顧客・B2B・マーケット・言語・通貨・時間帯といった45種類の条件を、管理画面で組み合わせてルールにできます。

この記事では、管理画面の画面をひとつ残らず取り上げ、設定項目の意味・選べる値・初期値・気をつける点まで書いていきます。あわせて、アプリを使わずにテーマのコードで似たことをする場合の書き方と、その限界にも触れます。

シンプルチェックアウト注文制限|お手軽購入制限ルールとは

このアプリは、Shopify の Cart and Checkout Validation という仕組みを使って、カートとチェックアウトで注文の可否を判定します。判定の結果ブロックされた注文は、支払いへ進めなくなり、画面には設定したメッセージが表示されます。

判定はサーバー側で行われるため、Shop Pay・PayPal・Google Pay・Apple Pay のようなエクスプレス決済のボタンから進んだ場合も同じように止まります。テーマのコードを書き換えて購入ボタンを隠す方法と違い、ボタンの見た目をいじる必要がなく、アプリを削除してもテーマに残骸が残りません。

45種類の条件を組み合わせてルールを作成する編集画面の掲載画像

ルールは何本でも作れます。1本のルールの中に入れた条件はすべて満たされたときだけブロックになり(AND)、ルールが複数あるときは、どれか1本でも当てはまればブロックになります(OR)。この2段構えのおかげで、「会員タグが無い、かつ、会員限定コレクションの商品が入っている」といった絞り込みと、「深夜帯の注文」「1回で10個を超える注文」といった別々の制限を、同じストアに同居させられます。

管理画面は日本語を含む20言語に対応しています。日本語で使う場合、条件の名前も選択肢もすべて日本語で表示されるため、英語の管理画面に読み替えながら設定する必要がありません。

シンプルチェックアウト注文制限のメリット

  • キャンセル対応そのものを減らせます。 支払いの手前で止まるため、注文が確定しません。あとから取り消して返金し、お詫びのメールを書くという一連の手間が、最初から生まれません。
  • お客様に理由を伝えられます。 ブロックのメッセージはルールごとに書けるため、「5,000円以上のご注文から承っております」のように、次に何をすれば買えるのかまで伝えられます。
  • エクスプレス決済もまとめて止まります。 カートページのボタンを隠すだけの対策では素通りしてしまう Shop Pay などの決済も、同じルールで止まります。
  • テーマを触りません。 テーマのファイルを書き換えないので、テーマを更新しても設定が消えず、アプリを外したときにコードが残る心配もありません。
  • 条件の取り違えを画面が止めてくれます。 同じルールに入れられない条件の組み合わせは、選んだ時点で理由が表示され、保存できないようになっています。

シンプルチェックアウト注文制限のデメリット

正直に書いておきます。次の点が許容できるかどうかで、このアプリが向いているかが決まります。

  • 商品ページの見た目は変わりません。 購入ボタンを隠したり、数量の選択肢を制限したりする機能はありません。止まるのはカートとチェックアウトの段階です。
  • 割引コードを条件にできません。 Shopify がこの種の判定に割引の情報を渡さないためで、割引コードの使用そのものを条件にしたい場合は別のアプリが必要です。
  • 過去の注文を積み上げた個数では制限できません。 個数の条件は、いま買おうとしているカートの中身だけを見ます。顧客ごとの累計で止めたい場合は、注文回数や累計購入額の条件で近い形にすることになります。
  • 保存できるルールの量に上限があります。 内部では3つのメタフィールドに分けて保存しており、それぞれ約10,000バイトまでです。商品を1つずつ指定したルールを増やしていくと、いずれ保存できなくなります。
  • 無料プランはありません。 7日間の無料体験のあとは月額課金になります。

料金プラン

料金は次のとおりです。金額はアプリストアの掲載ページに表示されているものです。

  • 月額 $9.99 … すべての機能が使えます。プランによる機能差はありません。
  • 年額 $99.99 … 年払いにすると、月あたりの支払いが下がります。
  • 7日間の無料体験 … 体験期間中に解約すれば課金されません。

条件の数や作れるルールの本数でプランが分かれていないため、「上位プランでないと使えない条件」を探す必要がありません。最初から45種類すべてを試せます。

インストール

Shopify App Store のページから、他のアプリと同じ手順で導入できます。

管理画面の「設定」から「アプリと販売チャネル」を開き、アプリストアへ進んで、アプリ名で検索します。公開されてまもないアプリのため、検索結果の上位に出ないことがあります。見つからないときは、掲載ページを直接開いてください。

App Store で正式名称を検索した結果。右下にシンプルチェックアウト注文制限のアプリが出ている

詳細ページで「インストール」を押すと、アプリが必要とする権限の確認画面が出ます。このアプリが求めるのは、チェックアウトルールの読み取りと書き込み、そして商品の読み取りの3つです。承認して進むと、プランの確認画面を経てアプリが開きます。

アプリ詳細ページ。月額$9.99。無料体験あり。の下にインストールボタンがある

初めてアプリを開いたとき、Shopify 側に3つのチェックアウトルールが自動で作られ、有効になります。マーチャントの操作は不要です。

アプリ管理画面の構成

管理画面はとてもシンプルで、左メニューは「購入制限ルール」と「設定」の2つだけです。日本語で表示しているときは、ここに「よくある質問」が加わることがあります。ルールの作成・編集は「購入制限ルール」から、すべてのルールに共通する設定は「設定」から行います。

購入制限ルールの一覧。ルール名・条件・状態・操作の列があり、各行に無効にする・編集・複製・削除のボタンがある

各画面の説明

ここからは、管理画面に出てくる画面を1つずつ見ていきます。条件のカードは種類によって入力欄が変わるので、カテゴリごとに分けて解説します。

購入制限ルール(一覧)

アプリを開いて最初に表示される画面です。登録済みのルールが表形式で並びます。列の意味は次のとおりです。

  • ルール名 … 作成時に付けた管理用の名前です。お客様の画面には出ません。
  • 条件 … そのルールに入っている条件の数が「1個の条件」のように表示されます。
  • 状態 … 緑色の「有効」なら判定に使われています。灰色の「無効」なら判定から外れています。
  • 操作 … 右端に、無効にする(または有効にする)・編集・複製・削除の4つのボタンが並びます。

操作ボタンの挙動には、知っておくと事故を防げる違いがあります。

  • 有効にする / 無効にする … 押した瞬間に保存され、次の注文の判定から反映されます。セール期間だけ上限を外したいときは、ルールを削除せずここで切り替えます。
  • 編集 … そのルールの編集画面へ移動します。
  • 複製 … 同じ条件のルールが「〜のコピー」という名前で追加されます。追加されたルールは無効の状態なので、そのままでは二重にブロックされません。条件を少しずつ変えたルールを何本も作るときに便利です。
  • 削除 … 確認のダイアログは出ず、押した瞬間に消えます。取り消しはできません。

ルールが1本も無いときは、「購入制限ルールがまだありません」という案内と作成ボタンが表示されます。また、問題があるときだけ、一覧の上にお知らせが出ます。Shopify 側でチェックアウトルールが無効にされている場合は赤色のバナー、保存容量が上限に近づいている場合は黄色または赤色のバナーが表示され、使用量が「8,240 / 10,000」のような数字で示されます。

ルールを作成

一覧の右上にある「ルールを作成」から開く画面です。上から「基本情報」と「条件」の2枚のカードが並び、いちばん下に保存とキャンセルのボタンがあります。

ルールを作成の画面。基本情報カードにルール名・このルールを有効にする・違反時メッセージ、条件カードにカテゴリ・条件タイプ・条件を追加がある

基本情報の3項目は次のように使います。

  • ルール名(必須)… 一覧に表示される名前です。空のままだと「ルール名を入力してください」と表示され、保存できません。
  • このルールを有効にする(初期値はオン)… オフにすると、無効の状態で保存されます。条件だけ先に用意しておきたいときに使います。
  • 違反時メッセージ … ブロックしたときにお客様へ表示する文章です。空欄のままにすると、設定画面の共通メッセージが代わりに表示されます。

条件カードの下には、カテゴリ・条件タイプ・「条件を追加」の3つが横に並んでいます。カテゴリを選ぶと条件タイプの一覧が入れ替わり、追加ボタンを押すと条件カードが1枚増えます。カードの右上にあるゴミ箱のアイコンで、その条件だけを取り消せます。

条件の組み合わせ方(AND と OR)

条件カードの上には、青いお知らせで「すべての条件に当てはまる注文をブロックします」と表示されています。ここがこのアプリの設計の要です。

  • 1本のルールの中 … 条件はすべて満たされたときだけブロックになります。「日本以外への配送」と「5,000円未満」を同じルールに入れると、その両方に当てはまる注文だけが止まります。
  • ルールどうし … 有効なルールのうち、どれか1本でも当てはまればブロックになります。上の例を2本のルールに分けると、「日本以外への配送すべて」と「5,000円未満すべて」が別々に止まることになり、意味が大きく変わります。

条件を1つも入れずに保存したルールは、何もブロックしません。作りかけのルールを保存しても、お客様に影響が出ないようになっています。

同じルールに入れられない条件

条件の組み合わせによっては、同じルールに入れられないものがあります。すでに入っている条件と両立しない条件タイプは選択肢が灰色になり、選ぶと追加ボタンが押せなくなって、次のようなお知らせが出ます。

商品タグの条件が入ったルールで B2B のカテゴリを選んだ画面。条件を追加が灰色になり、同時に指定できないという黄色いお知らせが出ている

これは、判定を3つのチェックアウトルールに分けて行っているためです。Shopify は1つのルールに渡せる情報の量に上限を設けており、45種類すべてを1つにまとめられません。そのため、このアプリは「カート・商品」「顧客・B2B」「地域・配送・時間」の3グループに分けています。同じグループの条件どうしなら、いくつでも組み合わせられます。

  • どのグループとも組み合わせられる条件 … カート小計金額・お支払総額・カート総数量・商品種類数・ログイン状態・日時範囲の6つです。
  • 顧客タグ … 「カート・商品」と「顧客・B2B」の両方に入れられます。商品の条件と組み合わせた会員限定販売が作れるのは、このためです。
  • 配送先の国・配送先の州 / 地域・郵便番号 … 「カート・商品」と「地域・配送・時間」の両方に入れられます。「離島には冷蔵品を送らない」のような組み合わせが作れます。

カート全体の条件

カテゴリ「カート全体」には、カート全体の合計で判断する条件と、配送の種類・カート属性の条件が入っています。

  • カート小計金額 … 商品代金の合計です。送料と税は含みません。最低注文金額の設定で最もよく使う条件です。
  • お支払総額 … お客様が最終的に支払う総額です。送料が確定するまでは値が変わるため、チェックアウトの途中で判定結果が変わることがあります。
  • カート総数量 … カートに入っている商品の個数の合計です。
  • 商品種類数 … カートの明細の数です。同じ商品でもバリエーションが違えば別の種類として数えます。
  • カート総重量 … 商品の重さの合計です。入力は kg 単位で、商品に重量が登録されていない場合は 0 として扱われます。
  • 購入タイプ … 単発購入のみを対象にするか、定期購入のみを対象にするかを選びます。配送先の住所が入るまでは判定されません。
  • カート属性 … ギフト包装の希望のように、カートに付けられた属性の値で判断します。どの属性を見るかは設定画面で決めます。

数値で比べる条件には、演算子と値の欄が出ます。

カート小計金額の条件カード。演算子を範囲内にすると値(下限)と値(上限)の2つの欄が出ている

演算子は、未満・以下・超・以上・等しい・等しくない・範囲内・範囲外の8種類です。範囲内と範囲外を選ぶと、入力欄が「値(下限)」と「値(上限)」の2つに分かれます。範囲内は下限と上限の両方を含む判定です。金額はストアの通貨で入力し、お客様が別の通貨で買っている場合は換算して比べられます。

数量・金額・重量の条件

カテゴリ「数量」「金額」「重量」には、対象の商品を絞り込んでから数える条件があります。まずは個数制限から見ていきます。

個数制限の条件カード。対象スコープ・集計単位・演算子・個数・倍数(任意)の欄が並んでいる

  • 対象スコープ … すべての商品・特定の商品・コレクション・商品タグの4つから選びます。特定の商品を選ぶと Shopify の商品選択画面が開き、選んだ商品は商品名ではなく ID で一覧に並びます。
  • 集計単位 … 「対象商品の合計個数」は対象の商品をすべて足した数で判断し、「各商品ごとの個数」は明細1行ずつで判断します。「どの商品も2個まで」にしたいときは後者を選びます。
  • 演算子と個数 … 初期値は「超・0」です。この値のまま保存すると、対象の商品が1個でも入った注文が止まります。必ず値を入れ直してください。
  • 倍数(任意) … 数字を入れると、その倍数でない個数をブロックします。3 を入れれば 3個・6個・9個以外が止まります。個数の欄と両方を入れた場合は、どちらかに当てはまればブロックです。倍数だけで運用したいときは、個数の欄を空にします。

金額制限(基準価格)は、対象の商品の代金の合計で判断します。入力欄は対象スコープ・演算子・金額の3つで、基準になるのは販売価格です。重量制限は、対象の商品の重さの合計で判断します。こちらの初期値も「超・0kg」なので、重さが登録されている商品はすべて当たってしまいます。値の入れ直しを忘れないでください。

商品の条件

カテゴリ「商品」には、カートに何が入っているかで判断する条件が6つあります。代表的なのが商品の有無です。

商品の有無の条件カード。条件・対象商品・対象コレクション・対象商品タグの欄がある

  • 商品の有無 … 「対象商品を含む場合にブロック」と「対象商品を含まない場合にブロック」から選びます。後者は、対象以外の商品が混ざっていたら止める、という意味になります。対象は商品・コレクション・商品タグの3つの欄で指定し、どれかに当てはまる商品が対象です。3つとも空なら何も起きません。
  • 同梱制限 … 「対象商品は単独購入のみ可」を選ぶと、対象の商品と他の商品が一緒に入っている注文を止めます。冷凍品と常温品を分けて注文してほしいときに使います。「対象商品のみのカートは不可」を選ぶと、対象の商品だけの注文を止めます。おまけや付属品だけを買われるのを防げます。
  • 商品タグ … 商品に付いているタグで判断します。登録されているとおりに入力する必要があり、大文字と小文字も区別されます。
  • 商品タイプ … 商品タイプで判断します。
  • ベンダー … 販売元で判断します。特定メーカーの商品だけ別扱いにしたいときに使います。
  • ギフトカード … ギフトカードを含む場合と含まない場合のどちらでブロックするかを選びます。ギフトカードは他の商品と分けて購入してほしい、という運用に向いています。

配送先の条件

カテゴリ「配送先」には、お届け先の住所や配送方法で判断する条件が9つあります。国・州・郵便番号・市区町村・会社名・宛名・電話番号・配送方法・配送オプション名です。

国の条件では、欄に名前を入力すると候補が出ます。

配送先の国の条件カード。国の欄に日本と入れると候補に日本 (JP) が出ている

候補を選ぶとチップになり、選択済みであることが分かります。複数の国をまとめて指定することもできます。

日本 (JP) を選んで、国の欄の下にチップとして表示されている状態

リストで指定する条件には、必ず「リスト方向」の欄があります。「リスト該当をブロック(拒否リスト)」はリストに載っているものを止め、「リスト以外をブロック(許可リスト)」はリストに載っていないものを止めます。日本にだけ配送するなら、許可リストにして日本を1件だけ登録します。なお、リストが空のときはどちらの方向でも何も止まりません。

住所の細かい項目は、文字の一致方法を選べます。完全一致・前方一致・部分一致の3つで、大文字と小文字は区別しません。郵便番号だけは完全一致と前方一致の2つです。離島を郵便番号の頭で指定したいときは前方一致が向いています。

配送方法の条件は、SHIPPING(配送)・PICK_UP(店舗受取)・LOCAL(ローカルデリバリー)のような英語のコードを大文字で入力します。「ゲストには店舗受取を使わせない」といった制限が作れますが、配送方法の選択肢そのものを隠すことはできません。選んだ時点で止まる形になります。

配送先の条件は、住所が入力されるまで判定されません。カートの段階では素通りし、チェックアウトで住所を入れた時点でブロックされることがあります。これは仕様なので、テストするときは住所まで入力して確かめてください。

顧客の条件

カテゴリ「顧客」には、お客様のアカウントや連絡先で判断する条件が8つあります。

メールアドレスの条件カード。一致方法を部分一致にし、@example.com を入れて Enter で確定したチップが出ている

  • ログイン状態 … 「ログイン必須(ゲストをブロック)」でゲスト購入を止められます。逆に「ゲストのみ可」を選ぶこともできます。
  • 顧客タグ … 顧客に付けたタグで判断します。許可リストにすると、そのタグを持たない人に加えて、ログインしていない人も止まります。会員限定販売はこの形で作ります。
  • 注文回数 … これまでの注文回数で判断します。ログインしていないお客様は判定されません。
  • メールアドレス … 迷惑な注文を繰り返すアドレスを拒否リストに入れる、といった使い方ができます。チェックアウトでメールアドレスを入力した時点で判定されるため、ゲストにも効きます。
  • 電話番号 … チェックアウトで入力された電話番号で判断します。
  • 顧客メタフィールド … 顧客に登録されたメタフィールドの値で判断します。会員ランクを管理するアプリと組み合わせると、ランク別の制限が作れます。参照するメタフィールドは設定画面で指定します。
  • 累計購入額 … これまでの購入金額の合計で判断します。
  • メールドメイン … メールアドレスの @ より後ろで判断します。@ は付けずに入力します。特定の企業ドメインだけを許可する、といった運用に使えます。

値を入力する欄では、文字を入れたあとに Enter キーを押すと確定してチップになります。入力しただけで確定していない状態はチップが出ないので、保存する前に見た目で確認できます。

B2B の条件

カテゴリ「B2B」は、Shopify の B2B 機能で会社として購入しているお客様向けの条件です。7つとも同じグループなので、自由に組み合わせられます。

  • B2B 購入かどうか … 会社注文だけを受け付けるか、逆に個人注文だけを受け付けるかを選びます。卸売専用のストアで使います。
  • 会社 … 会社を指定して判断します。値には会社の ID・外部 ID・会社名のいずれかを、登録されているとおりに入力します。
  • 企業メタフィールド … 会社に登録したメタフィールドの値で判断します。与信ランクによる制限などに使えます。参照先は設定画面で指定します。
  • 会社の拠点 … 拠点を指定して判断します。値は拠点の ID・外部 ID・拠点名のいずれかです。
  • 拠点名 … 拠点の名前そのもので判断します。
  • 拠点の累計購入額 … 拠点単位の購入金額の合計です。
  • 拠点の注文回数 … 拠点単位の注文回数です。

会社として購入していないお客様には、会社や拠点の情報がありません。その場合、これらの条件は「当てはまらない」と判断され、注文は止まりません。個人注文を止めたいときは、B2B 購入かどうかの条件を使います。

マーケット・言語・通貨の条件

海外向けに販売しているストア向けの条件です。

  • マーケット … Shopify のマーケットで判断します。値には管理画面のマーケット設定で確認できるハンドルを入力します。
  • 言語 … お客様がストアを見ている言語で判断します。候補から選ぶ形式です。
  • 通貨 … カートの通貨で判断します。特定通貨での注文を受け付けたくないときに使います。

時間帯の条件

カテゴリ「時間帯」には、1日の中の時刻で判断する「時刻帯」と、日付で判断する「日時範囲」があります。

時刻帯の条件カード(時刻枠・判定)と日時範囲の条件カード(期間モード・開始日・終了日)

時刻帯では、設定画面で登録した4つの枠から1つを選び、その枠の内側を止めるか外側を止めるかを決めます。営業時間外の注文を受け付けたくない場合は、営業時間を枠にして外側を選びます。設定画面で時間を入れていない枠を選んだ場合、その条件は判定されません。

日時範囲では、期間モードを4つから選びます。指定日より前をブロック・指定日より後をブロック・期間内をブロック・期間外をブロックです。期間内は開始日と終了日の両方を含みます。前後を指定するモードでは開始日の欄だけが表示され、当日は止まりません。日付の欄はカレンダーから選ぶほか、直接入力もできます。

どちらの条件も、判定に使われるのはストアのタイムゾーンです。管理画面を操作している人の居場所ではないので、海外から運営している場合は特に注意してください。

ルールを編集

一覧の「編集」から開く画面です。作成画面と同じ内容に加えて、いちばん下に削除ボタンが増えています。

ルールを編集の画面の下部。保存する・キャンセルのボタンの下に、赤いこのルールを削除するボタンがある

「このルールを削除する」を押すと、確認のダイアログが表示されます。一覧の削除ボタンとは違い、ここでは一度確認が入ります。

ルールを削除しますか? という確認ダイアログ。キャンセルと赤い削除するボタンがある

保存できなかったときは、画面の下にお知らせが出ます。数値の欄が空のままなら入力内容の誤りとして、同じルールに入れられない条件が混ざっていればその旨が、容量が上限に達していればその案内が表示されます。容量の案内が出たときは、商品を1つずつ指定している箇所をコレクションやタグにまとめると軽くなります。

設定(全体設定)

左メニューの「設定」を開くと、すべてのルールに共通する設定がまとまっています。

設定画面の全体設定カード。共通の違反メッセージ、関数の実行に失敗した場合は購入をブロックする、条件で使う参照先の入力欄が並んでいる

  • 共通の違反メッセージ … 各ルールのメッセージが空のときに使われる文章です。初期値は「この組み合わせではご注文いただけません。」です。ここも空にして、ルール側も空にすると、そのルールに当てはまっても注文は止まりません。どちらかには必ず文章を入れてください。
  • 関数の実行に失敗した場合は購入をブロックする … 初期値はオフです。オフのままなら、判定そのものが失敗したときは注文を通します。制限を確実に守るためなら売上を止めてもよい、という運用のときだけオンにします。

設定(条件で使う参照先)

一部の条件は、どのデータを見るかをストア全体で1組だけ決める必要があります。ルールごとに別々のメタフィールドを見ることはできません。

  • 顧客メタフィールドの名前空間 と 顧客メタフィールドのキー … 顧客メタフィールドの条件が参照します。2つとも入力したときだけ有効になります。
  • 会社メタフィールドの名前空間 と 会社メタフィールドのキー … B2B の企業メタフィールドの条件が参照します。こちらも2つとも必要です。
  • カート属性のキー … カート属性の条件が参照します。ギフト包装のフラグなど、テーマ側で付けている属性の名前を入れます。

ここが空のままだと、対応する条件は判定されません。条件は作れてしまい、画面にも警告は出ないので、これらの条件を使うときは設定画面を先に埋めてください。

設定(時刻枠)

時刻帯の条件が使う時間帯を、4つまで登録できます。

時刻枠 1〜4 の開始と終了の入力欄。時刻枠 2 に 02:30:00 と 09:05:00 が入っている

欄を押すと30分刻みの一覧が開き、末尾には1日の終わりを指定するための 23:59:59 が入っています。直接入力もでき、22:00 のように短く打っても、欄を離れると秒まで補われます。終了は開始より後でなければ保存できません。22:00 から翌朝6時までのように日をまたぐ時間帯は、Shopify の判定が日付をまたがないため成立しません。この場合は、22:00:00 から 23:59:59 までと、00:00:00 から 06:00:00 までの2つの枠に分け、それぞれを参照するルールを2本作ります。

全体設定・参照先・時刻枠は、カードの下にある1つの保存ボタンでまとめて保存されます。

設定(言語設定)

管理画面の表示言語を切り替えるカードです。

言語設定のカード。言語を選択のプルダウンに日本語、変更するボタン。その下におすすめアプリのカード

20言語から選んで「変更する」を押すと、表示が切り替わります。ここで変わるのは管理画面だけで、お客様に表示されるメッセージは、ルールに入力した文章がそのまま使われます。多言語で販売しているストアでは、どの国のお客様にも伝わる書き方にしておくと安心です。

カードの下には、同じ開発元の他アプリを紹介するカードが並びます。不要であれば右上の閉じるボタンで消せます。

よくある質問

日本語で表示しているときは、左メニューに「よくある質問」が加わることがあります。アプリの使い方についての質問と回答がまとまっている画面で、サポートに問い合わせる前に確認できます。

Shopify 側のチェックアウトルール

このアプリの判定は、Shopify の「設定」から「チェックアウト」を開いた先にある、チェックアウトルールの欄で動いています。アプリを初めて開いたときに、購入制限ルール(カート・商品)、購入制限ルール(顧客・B2B)、購入制限ルール(地域・配送・時間)の3つが作られ、有効になります。

Shopify の設定 > チェックアウトのチェックアウトルール欄。3つの購入制限ルールが有効で並んでいる

ここで無効にされていると、アプリ側でルールを有効にしていても注文は止まりません。アプリの一覧には赤いバナーが出るので気づけますが、この3つは消さないでください。なお、判定が失敗したことがある場合、Shopify がこの欄に警告を表示することがあります。

カートとチェックアウトでのお客様の見え方

ルールに当てはまったとき、お客様の画面には設定したメッセージが表示されます。チェックアウトでは画面の上部に出て、注文を確定できなくなります。

チェックアウト画面の上部にブロックのメッセージが表示され注文が確定できない状態の掲載画像

カートページからチェックアウトへ進もうとした場合は、テーマによってダイアログや画面内の表示でメッセージが出ます。どちらの場合も、理由と次にしてほしいことを1文で書いておくと、問い合わせが減ります。

ルールの違反時メッセージの入力欄と、カートページでメッセージが表示されている掲載画像

複数のルールに当てはまった場合は、それぞれのメッセージが並んで表示されます。また、判定に必要な情報がまだ無い条件(住所が未入力、ログインしていないなど)は「当てはまらない」として扱われ、注文は止まりません。例外はログイン必須と顧客タグの許可リストの2つで、こちらはログインしていないお客様を止めます。

コードで自作する場合

アプリを使わずに、テーマのコードで似たことをする方法もあります。よくあるのは、カートページで合計金額を見て、条件を満たさないときにチェックアウトのボタンを押せなくする書き方です。Dawn などのテーマでは、カートのテンプレートに次のような Liquid を足します。

{%- assign minimum_total = 500000 -%}
{%- if cart.total_price < minimum_total -%}
  <p class="cart__minimum-note">
    {{ minimum_total | money }} 以上のご注文から承っております。
    あと {{ minimum_total | minus: cart.total_price | money }} 分の商品を追加してください。
  </p>
  <style>
    .cart__checkout-button { pointer-events: none; opacity: 0.4; }
  </style>
{%- endif -%}

この例では、カートの合計金額(cart.total_price)が 5,000 円(Liquid では最小単位なので 500000)に届かないときだけ、案内文を出してチェックアウトのボタンを押せなくしています。金額の表示は money フィルタに任せているので、通貨の書式はストアの設定に従います。

ただし、この方法には穴があります。ボタンを押せなくしているだけなので、/checkout を直接開かれると素通りしますし、Shop Pay や Apple Pay のように、カートページのボタンを経由しない決済も止まりません。JavaScript で補強することもできますが、こちらも同じ理由で確実ではありません。

document.addEventListener("submit", (event) => {
  const form = event.target.closest("form[action*='/cart']");
  if (!form) return;
  const total = window.__cartTotal ?? 0;
  if (total < 500000) {
    event.preventDefault();
    alert("5,000円以上のご注文から承っております。");
  }
});

こちらは、カートのフォームが送信されたときに合計金額を見て、足りなければ送信を取り消す書き方です。画面上の操作は止められますが、ブラウザの外から注文を作られた場合や、エクスプレス決済のボタンから進んだ場合には効きません。加えて、テーマを更新したときに書き足した部分が消えることがあり、テーマを乗り換えるたびに移植が必要になります。条件が増えるほど分岐も増え、保守する人が読めなくなっていきます。

注文そのものを確実に止めたい場合は、Shopify のサーバー側で判定する仕組みを使うことになります。これを自分で作るにはアプリの開発が必要で、Shopify Functions で動く関数を書き、ストアに配布する形になります。今回のアプリは、その仕組みを管理画面の操作だけで使えるようにしたものです。テーマを触らずに済み、条件を増やしてもテーマの保守に影響しないという点が、コードで自作する場合との大きな違いです。

競合アプリとの比較

同じように購入制限をかけられるアプリを4本、実際に開発用ストアへインストールして触りました。それぞれの特徴を簡単にまとめます。

Cart Lock:Block Checkout Rules(KlinKode)

Cart Lock の既成ルール一覧。顧客・割引・商品などのグループにひな形が並んでいる

ひな形(既成ルール)を選んでから中身を調整する作りです。割引の重ねがけの禁止や割引総額の上限など、割引まわりの条件を持っているのが特徴でした。顧客名や SKU、日時スケジュールなど一部の条件は上位プラン向けの印が付いています。

Cart Lock のルール編集画面。条件を追加と代替ルールを追加、エラーメッセージの入力欄がある

編集画面では、条件を AND でつなぐボタンと、OR にあたる代替ルールを足すボタンが分かれていました。アプリストアの対応言語は英語だけと書かれていますが、実際の管理画面は日本語で表示されました。ただし、ひな形の名前とエラーメッセージの初期値は英語のままです。月額は $6.99 からです。

Avada 注文制限(Avada)

Avada のダッシュボード。Theme store app embed が Off で、クイックガイドが表示されている

インストール直後の管理画面は英語で、右上の切り替えから Japanese を選べます。商品ページやカートで「あと何個買えるか」を知らせる表示に強く、通知を出すにはテーマに専用のブロックを追加する必要があります。

Avada の制限の種類を選ぶ画面。Product limit・Collection limit・Customer limit などが並んでいる

制限の種類は、商品・コレクション・顧客タグ・注文・特定商品の有無の5つに分かれています。

Avada の注文制限フォーム。条件の種類と最小数量・最大数量・再購入の制限の欄がある

注文の制限では、数量・金額・重量から条件を選びます。有料プランでは、一生に1回・年に1回・月に1回といった再購入の制限も設定できました。過去の購入をもとに制限できる点は、今回触った中では Avada だけの特徴です。有効期間の時刻が協定世界時を基準にしている点は、日本のストアでは注意が必要です。月額は $9.99 からです。

Blockify Checkout Customizer(Blockify)

Blockify のダッシュボード。App Embed の状態やルールの稼働数が表示されている

購入制限だけでなく、チェックアウトの見た目や購入後のページまで扱う総合的なアプリです。管理画面は英語が初期表示で、切り替えると日本語を含む26言語から選べました。

Blockify のルール作成画面。IF と THEN の構成で、条件を選ぶダイアログが開いている

ルールは条件と動作を組み合わせる形で、動作には「ブロックする」だけでなく「止めずに警告だけ出す」も選べます。本番に影響させずに試せるテストモードもありました。無料の範囲ではエラーメッセージを編集できないため、本格的に使うなら有料プランが前提になります。価格は月額 $9.99 のプランから始まります。

BoomGate: Checkout Validation(Code57)

BoomGate のダッシュボード。AIでルールを作成の入力欄と、チェックアウト検証・決済カスタマイズ・配送カスタマイズのタブがある

日本語の管理画面で、やりたいことを文章で説明すると人工知能がルールを組み立てる機能がありました。ルールはチェックアウトの検証だけでなく、決済方法や配送方法を隠す種類も選べます。

BoomGate のチェックアウト検証タイプを選ぶダイアログ。一般・配送先住所・請求先住所・商品などが並んでいる

カスタムルールを作るときは、先に検証タイプを選び、その種類で使える条件から組み立てます。条件の数は多い一方、目的の条件がどの種類に入っているかを最初に探す必要があります。クーポンコードを扱う種類は Shopify Plus が必要と表示されていました。月額は $4.99 からです。

4本と比べたときの位置づけ

決済方法や配送方法を選択肢から隠したい場合は BoomGate や Blockify、割引コードの使い方まで制限したい場合は Cart Lock や Blockify、過去の購入回数をもとに制限したい場合は Avada、というように、目的によって向き不向きがあります。今回紹介しているアプリは、日本語の管理画面で条件を組み合わせて注文を止めることに絞ったアプリです。条件ごとの初期値や、同時に指定できない組み合わせの案内まで日本語で出るので、設定の途中で迷いにくい点が特徴です。

まとめ

購入制限は、入れた直後から売上に影響する設定です。だからこそ、条件の意味と初期値を理解したうえで、テスト注文で確かめてから本番に出すことが欠かせません。この記事では、管理画面のすべての画面と45種類の条件、そして画面には出てこない制約まで見てきました。

もう一度、押さえておきたい点を挙げておきます。

  • 1本のルールの中は AND、ルールどうしは OR です。条件を別々のルールに分けると、止まる範囲が大きく広がります。
  • 個数制限・カート総重量・重量制限・ギフトカード・ログイン状態・B2B 購入かどうか・購入タイプは、追加した直後の値のままでも注文を止めます。
  • 顧客メタフィールド・企業メタフィールド・カート属性・時刻帯は、設定画面の参照先や枠を埋めるまで判定されません。
  • 時刻の判定はストアのタイムゾーンで行われ、日をまたぐ時間帯は2つの枠に分けて登録します。

カートとチェックアウトで確実に止めたい、けれどテーマは触りたくない。その条件に当てはまるなら、このアプリは手早く導入できる選択肢です。7日間の無料体験があるので、実際のストアでテスト注文まで通してから判断できます。

購入制限ルールの一覧画面を紹介する掲載画像

おすすめの Shopify アプリ

同じ開発元では、ストア運営の細かな困りごとを1つずつ解決する「シンプル」シリーズのアプリを公開しています。購入制限とあわせて検討しやすいものを挙げておきます。

  • シンプル店舗受け取り|お手軽ローカルピックアップ … お客様がカートページで受け取る店舗と日時を指定できるようになります。店頭受け取りの運用を始めるときに向いています。
  • シンプル購入後アップセル|お手軽サンクスページでクロスセル … 購入後のサンクスページでおすすめ商品を案内し、追加購入のきっかけを作ります。
  • シンプルログインバナー|会員限定バナー表示アプリ … 会員限定の案内をバナーで見せられます。会員限定販売の制限とあわせて使うと、購入前に案内を届けられます。

いずれも管理画面は日本語で、設定はノーコードで完結します。

© 2021 powerd by UnReact