コンテンツにスキップ
15日間無料で試す
日本語
Claudeで開く このページについて質問するChatGPTで開く このページについて質問する

カスタムLiquid

顧客、カート、商品、ストアフロントの変数を使って、独自のLiquidスニペットでアクセスを判定します。

Custom liquidルールでは、独自のLiquidコードスニペットを記述して、訪問者にアクセスを許可するかどうかを判定できます。このアプリで最も柔軟なルールです。顧客、カート、現在の商品やコレクション、ストアフロント自体に対するLiquidの条件として表現できるものであれば、何でもコンテンツの制限に使えます。ただし、スニペットのミスが実際に影響を及ぼす唯一のルールでもあります。詳細は以下をご覧ください。

Custom liquidはアクション型のルールのため、If/Unlessの切り替えはありません。代わりに、アプリが訪問者ごとにスニペットを実行し、その最終結果を読み取ります。結果はtrueまたはfalseのどちらかである必要があります(前後の空白は無視されます)。trueはルールを通過し、falseは通過しません。true - customer is eligibleのようなその他の出力は、有効な結果ではありません。スニペットでは、Shopifyテーマが現在の訪問者やページについて利用できるのと同じ種類のデータにアクセスできます。

ロックを開き、Unlock rulesタブをクリックして、Condition typeドロップダウンからCustom liquidを選択します。

Custom liquidが選択されたCondition typeドロップダウン

Unlock rulesタブのCondition typeドロップダウンから、Custom liquidを選択します。

このルールの条件タイプを選択すると、シンタックスハイライト、オートコンプリート、リアルタイムの構文検証を備えた専用のLiquidコードエディタが開きます。Liquidのエラーは、入力中、保存する前にエディタ内で直接示されます。

スニペットと構文検証インジケーターが表示されたCustom liquidコードエディタ

コードエディタでLiquidスニペットを記述して検証します。

エディタには、挿入できる変数のライブラリが用意されており、内容ごとにグループ分けされています。

グループ 変数
顧客 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

カテゴリ別にグループ化された利用可能なLiquid変数が表示されたVariables and templatesパネル

Variables and templatesパネルから、利用可能な変数を確認します。

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

出発点として使える既成のLiquidスニペットの一覧が表示されたExample templatesパネル

既成のShopify B2Bテンプレートを含む、スターターテンプレートを選択します。

  1. 保護したいロックを開き、Unlock rulesタブをクリックします。
  2. アクセスルールを追加し、条件タイプをCustom liquidに設定します。
  3. エディタに直接スニペットを記述するか、Variables and templatesを開いて変数をコピーするか、既成のテンプレートから始めます。
  4. スニペットの最終出力が、通過させたい訪問者には必ずtrue、それ以外のすべての訪問者には必ずfalseになるようにしてください。値の前後に説明テキストやHTMLなどの出力を追加しないでください。エディタは基本的な構文の問題を示しますが、ロジックが意図どおりであるかどうかは、ご自身で確認する必要があります。
  5. 必要に応じて、ルールごとのRedirect URLを設定します。この特定のルールが訪問者を拒否した場合にのみ使用されます。
  6. ロックを保存します。

例:VIPタグが付いたログイン済み顧客を許可する

Section titled “例:VIPタグが付いたログイン済み顧客を許可する”

アカウントにvipタグが付いたログイン済みの顧客だけが、非公開ページを利用できるようにする場合を考えます。

  1. 保護するコンテンツとして、VIP collection previewページを選択します。

Lock setupタブ。コンテンツタイプにSpecific Pageが選択され、Restricted pagesの下にVIP collection previewページが表示されています。

VIP顧客限定にしたいページを選択します。

  1. Custom liquidを追加し、スターターのスニペットを次のように置き換えます。
{% if customer and customer.tags contains 'vip' %}true{% else %}false{% endif %}

入力中、エディタの下にLiquid syntax is validと表示され、構文が有効であることが確認できます。

Liquid conditionエディタにVIPタグのスニペットが入力され、その下にLiquid syntax is validの確認が表示されたCustom liquid条件。

エディタはLiquidをハイライトし、保存する前に構文を検証します。

  1. ルールのRedirect URLは空のままにします。
  2. Access denied messageを次のように設定します。

This page is available to VIP customers only.

Messagesカード。Access denied messageにVIP顧客限定の文言が設定され、Previewパネルにその内容が表示されています。

Custom liquidにはメッセージフィールドが1つあり、スニペットが拒否したすべての訪問者に表示されます。

  1. Saveをクリックします。

スニペットは、vipタグが付いたログイン済みの顧客に対してtrueのみを出力するため、ページは通常どおり開きます。ゲストや、そのタグが付いていない顧客にはfalseのみを出力するため、上記のメッセージが表示されます。スニペットの出力で、trueまたはfalseの前後にテキストを追加しないでください。

設定したVIP顧客限定のメッセージが表示されているVIP collection previewページ。

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

このページは役に立ちましたか?