カスタムLiquid
顧客、カート、商品、ストアフロントの変数を使って、独自のLiquidスニペットでアクセスを判定します。
Custom liquidルールでは、独自のLiquidコードスニペットを記述して、訪問者にアクセスを許可するかどうかを判定できます。このアプリで最も柔軟なルールです。顧客、カート、現在の商品やコレクション、ストアフロント自体に対するLiquidの条件として表現できるものであれば、何でもコンテンツの制限に使えます。ただし、スニペットのミスが実際に影響を及ぼす唯一のルールでもあります。詳細は以下をご覧ください。
Custom liquidはアクション型のルールのため、If/Unlessの切り替えはありません。代わりに、アプリが訪問者ごとにスニペットを実行し、その最終結果を読み取ります。結果はtrueまたはfalseのどちらかである必要があります(前後の空白は無視されます)。trueはルールを通過し、falseは通過しません。true - customer is eligibleのようなその他の出力は、有効な結果ではありません。スニペットでは、Shopifyテーマが現在の訪問者やページについて利用できるのと同じ種類のデータにアクセスできます。
ルールを追加する
Section titled “ルールを追加する”ロックを開き、Unlock rulesタブをクリックして、Condition typeドロップダウンからCustom liquidを選択します。

Unlock rulesタブのCondition typeドロップダウンから、Custom liquidを選択します。
コードエディタ
Section titled “コードエディタ”このルールの条件タイプを選択すると、シンタックスハイライト、オートコンプリート、リアルタイムの構文検証を備えた専用のLiquidコードエディタが開きます。Liquidのエラーは、入力中、保存する前にエディタ内で直接示されます。

コードエディタでLiquidスニペットを記述して検証します。
利用可能な変数
Section titled “利用可能な変数”エディタには、挿入できる変数のライブラリが用意されており、内容ごとにグループ分けされています。
| グループ | 変数 |
|---|---|
| 顧客 | customer, customer.tags, customer.orders_count, customer.total_spent, customer.b2b? |
| カート | cart.item_count, cart.total_price, cart.items |
| 商品とコレクション | product.tags, product.vendor, product.metafields, collection.handle |
| ストアフロント | request.path, request.page_type, localization.country.iso_code, localization.language.iso_code |

Variables and templatesパネルから、利用可能な変数を確認します。
スターターテンプレート
Section titled “スターターテンプレート”空のエディタからではなく、動作するものから始めたい場合は、同じパネルにある既成のテンプレートを挿入して調整できます。ログイン済み顧客のチェック、顧客タグのチェック、カートの数量または合計金額の下限、商品タグのチェック、訪問者の国のチェック、URLパスのチェックに加えて、customer.b2b?を直接チェックする既成のShopify B2B customerテンプレートが含まれています。

既成のShopify B2Bテンプレートを含む、スターターテンプレートを選択します。
- 保護したいロックを開き、Unlock rulesタブをクリックします。
- アクセスルールを追加し、条件タイプをCustom liquidに設定します。
- エディタに直接スニペットを記述するか、Variables and templatesを開いて変数をコピーするか、既成のテンプレートから始めます。
- スニペットの最終出力が、通過させたい訪問者には必ず
true、それ以外のすべての訪問者には必ずfalseになるようにしてください。値の前後に説明テキストやHTMLなどの出力を追加しないでください。エディタは基本的な構文の問題を示しますが、ロジックが意図どおりであるかどうかは、ご自身で確認する必要があります。 - 必要に応じて、ルールごとのRedirect URLを設定します。この特定のルールが訪問者を拒否した場合にのみ使用されます。
- ロックを保存します。
フェイルオープンの動作
Section titled “フェイルオープンの動作”例:VIPタグが付いたログイン済み顧客を許可する
Section titled “例:VIPタグが付いたログイン済み顧客を許可する”アカウントにvipタグが付いたログイン済みの顧客だけが、非公開ページを利用できるようにする場合を考えます。
- 保護するコンテンツとして、VIP collection previewページを選択します。

VIP顧客限定にしたいページを選択します。
- Custom liquidを追加し、スターターのスニペットを次のように置き換えます。
{% if customer and customer.tags contains 'vip' %}true{% else %}false{% endif %}入力中、エディタの下にLiquid syntax is validと表示され、構文が有効であることが確認できます。

エディタはLiquidをハイライトし、保存する前に構文を検証します。
- ルールのRedirect URLは空のままにします。
- Access denied messageを次のように設定します。
This page is available to VIP customers only.

Custom liquidにはメッセージフィールドが1つあり、スニペットが拒否したすべての訪問者に表示されます。
- Saveをクリックします。
ストアフロントでの結果
Section titled “ストアフロントでの結果”スニペットは、vipタグが付いたログイン済みの顧客に対してtrueのみを出力するため、ページは通常どおり開きます。ゲストや、そのタグが付いていない顧客にはfalseのみを出力するため、上記のメッセージが表示されます。スニペットの出力で、trueまたはfalseの前後にテキストを追加しないでください。

Liquidスニペットがfalseを返すと、訪問者にはこの例のAccess denied messageが表示されます。