# Getting started

## 🚀 Get Started with Product Labels & Badges - Samita

Welcome to **Product Labels & Badges by Samita** – the ultimate solution to visually enhance your Shopify store, increase product visibility, and boost customer trust through customizable labels, trust badges, highlights, and promotional banners.

***

### 🛠 What This App Can Do

This app helps you showcase your products more effectively by displaying dynamic visuals directly on product images, listings, and promotional areas. Here's what you can do:

#### **🏷️ Labels & Badges**

Create eye-catching **badges or labels** such as “New Arrival”, “Best Seller”, “50% OFF”, etc., to highlight key product features and promotions.

#### 📦 **Label Groups**

Group multiple labels together and display them under specific conditions (e.g., by product tag, collection, inventory level, customer type).

#### 🏅 **Trust Badges**

Build customer trust by adding **payment security badges**, **guarantee seals**, and **free shipping indicators** that help reinforce your store’s credibility.

#### ✨ **Highlights**

Display small but impactful **info boxes** to communicate key selling points, such as “Eco-friendly”, “Limited Stock”, or “Fast Shipping”.

#### 📣 **Banner**

Show **custom banners** like "Online Only", "Cyber Monday Deals", or countdown timers to create urgency and drive conversions.

#### 📊 **Analytics**

Track how your badges and labels perform with a KPI dashboard covering add‑to‑cart, orders, and revenue impact.

***

### ⚡️ Quick Start Guide

Getting up and running is quick and easy:

#### Step 1: Install the App

Visit the [Shopify App Store](https://apps.shopify.com/product-labels-badges-samita) and install the **Product Labels & Badges – Samita** app. During the first-run setup you'll be guided through creating your first badge and enabling the app on your theme, with a 7-day free trial and no credit card required.

#### Step 2: Create Your First Label

1. From the app **Dashboard**, go to **Badges & Labels**
2. Choose a **label type** (image or text)
3. Pick a pre-designed template or start from scratch
4. Customize the style, position, and animation in the **Design** tab

#### Step 3: Apply Conditions

In the **Display Conditions** tab, choose whether the badge shows on **all products**, **specific products**, or **products matching conditions**, based on:

* Product tags, type, vendor, price, inventory, metafields
* Collections
* Customer tags, order count, total spent, company name
* Language and country
* Page context (home, product, collection, cart, search, etc.)

#### Step 4: Preview & Save

Use the live preview tool to see how your label looks, then click **Save & Enable**.

#### Step 5: Enable the App on Your Theme

Go to **Theme Integration** and activate the app embed from the Shopify Theme Editor so your labels, badges, and banners render on the storefront.

#### Step 6: Explore Other Features

* Add **Trust Badges** to your product pages
* Create **Label Groups** for targeted campaigns
* Highlight product USPs with **Highlights**
* Launch eye-catching **Promotional Banners**
* Generate label artwork instantly with the built-in **AI image generator**
* Track results in **Analytics**

***

### 📚 Useful Resources

* [Label Conditions Guide](/badges-and-labels/create-a-label-or-badge)
* [Trust Badge Setup](/trustbadge-plus/create-a-trust-badge)
* [Highlight Setup](/trustbadge-plus/create-a-highlight)
* [Banner Setup](/banners/create-a-new-banner)
* [Label Groups](/label-groups/set-up-a-label-groups)
* [Theme Integration](/theme-integration/integrate-the-app-into-theme)


# What's new

## August 3, 2026

**Version 4.3.7**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **Badge groups:** Combine multiple badges into one group and display them together outside the product image. Choose a horizontal or vertical layout, adjust badge size and spacing, align the group, and place it below key product elements or at a custom position in your theme. [Learn how to set up a badge group](/label-groups/set-up-a-badge-group).

<figure><img src="/files/qTNKOVFp3l22PLdSGSlW" alt="Badge group design settings and product preview"><figcaption><p>Design and preview a badge group.</p></figcaption></figure>

## May, 2026

**Version 4.3.0**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **Analytics:** A new **Analytics** dashboard tracks how your badges and labels perform on the front store — Total Add to Cart, Total Orders, and Total Revenue, filterable per badge/label with period-over-period comparison. See [Analytics overview](/analytics/analytics-overview).

## March, 2026

**Version 4.1.5**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **AI-Translate Text label:** The app now provides a quicker way to translates label using AI-generator tool. Instead of manually selecting language and switching between each language tab and edit the corresponding text. This process is now much faster, as the app provides an **AI translation tool** directly in the settings. Click on the **Auto Translate** button in the app's Setting to generate the translation for each language.

<figure><img src="/files/rqLyYuQ1K9RRrqbivO3r" alt=""><figcaption></figcaption></figure>

**🛠️&#x20;**<mark style="color:blue;">**IMPROVEMENTS**</mark>

* **Improving & Optimize performance and Feature:** Light UI updates across the dashboard to make navigation clearer and everyday tasks feel smooth

## December, 2025

**Version 4.1.0**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **AI Image Generator:** Effortlessly create high-quality label images using AI, helping you save valuable time while enhancing visual creativity and ensuring consistent, professional designs across your products.

  <figure><img src="/files/Zlx5lUtagTppQre41RbV" alt=""><figcaption></figcaption></figure>

**🛠️&#x20;**<mark style="color:blue;">**IMPROVEMENTS**</mark>

* **Improving & Optimize performance and Feature:** Light UI updates across the dashboard to make navigation clearer and everyday tasks feel smooth

## November, 2025

**Version 4.0.6**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **Show Label Content Based on Product or Variant Metafields:** Dynamically display label content based on product or variant metafields, allowing full control over messaging, badges, and labels without modifying theme code.

  <figure><img src="/files/TUt0gLE3hzaUn9B29CDP" alt=""><figcaption></figcaption></figure>

## October, 2025

**Version 4.0.5**

**🛠️&#x20;**<mark style="color:blue;">**IMPROVEMENTS**</mark>

* **Improving & Optimize performance and Feature:** Refined UI elements for a cleaner and more intuitive workflow, ensuring every action feels seamless and efficient.
* ⚡️ **Frontstore Speed Boost**: Frontstore speed has been improved using the new Frontstore API — enjoy faster response times and better browsing experiences for your customers.

## July, 2025

**Version 4.0.4**

**🎉&#x20;**<mark style="color:purple;">**NEW FEATURES**</mark>

* **Label Groups:** Frontstore speed has been improved using the new Frontstore API — enjoy faster response times and better browsing experiences for your customers.

  <figure><img src="/files/ygoeJE5Ul9slC6uUJxXD" alt=""><figcaption></figcaption></figure>
* **Priority condition:** Set priority rules to automatically highlight the right products to the right customers at the right time, increasing conversion and sales efficiency.

**🛠️&#x20;**<mark style="color:blue;">**IMPROVEMENTS**</mark>

* **Improving & Optimize performance and Feature:** Experience a faster, cleaner interface on mobile with an improved button layout that makes every tap quicker and more intuitive.


# Integrate the app into theme

{% hint style="info" %}
**Samita tip:** To show the badge/labels on the front store, firstly please enable app embeds on your theme.
{% endhint %}

1. From the **App Dashboard page**, navigate the Setup guide section > Enable online store > Click on Go to Integrate theme:

<figure><img src="/files/a2p7ODVD1M28U1Pko7Pk" alt=""><figcaption></figcaption></figure>

2. Then you will be redirected to the **Theme customize page > App embeds** section:<br>

<figure><img src="/files/aUz71ft26voOHuevouo2" alt=""><figcaption></figcaption></figure>

3. The app is already turned on there > Click **Save** to integrate the app to your theme.

<figure><img src="/files/9Fp9bcoLDi8vo3BHNtZt" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/pfQvlUwUkWx2nEgOEWhi" alt=""><figcaption></figcaption></figure>

### Tutorial video

## <sub>How to embed Sami Product Labels app to your theme?</sub>

{% embed url="<https://www.youtube.com/watch?v=5NWqCK0HMtI>" %}


# Disable app in your theme

To uninstall the app from the theme, you just need to **disable the app embeds on your theme.**

**Step to manage:**

1. From the admin app, go to **Theme Customize page**
2. Click the **App embeds** section.
3. Disable this setting:

<figure><img src="/files/HGn9ozAHGLMW0rJ5wNOn" alt=""><figcaption></figcaption></figure>

4. Click **Save** to finish.<br>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create a Label or Badge

The labels/badges are different slightly in how they appear in a product. To be specific, a label will show up inside the product image, while a badge will appear outside the product image.<br>

* **A label:**

<figure><img src="/files/Hvma2pMtmu7pWhZU77TM" alt=""><figcaption></figcaption></figure>

<figure><img src="https://help.samita.io/wp-content/uploads/2025/01/1-1024x468.png" alt=""><figcaption></figcaption></figure>

* **A badge:**

<figure><img src="/files/vmpa2lacXcbNiPkaDQnK" alt=""><figcaption></figcaption></figure>

<figure><img src="https://help.samita.io/wp-content/uploads/2025/01/2-1-1024x432.png" alt=""><figcaption></figcaption></figure>

### **Create a label/badge** <a href="#create-an-image-label-badge" id="create-an-image-label-badge"></a>

1. From the app admin page, click **Badges and Labels.**
2. Click on the **Create badge** button.

<figure><img src="/files/vKBRxOAP9t5EnFjhdT0A" alt=""><figcaption></figcaption></figure>

3. Select the badge type you want to have: **Text** or **Image**

<figure><img src="/files/VrjZRnKDLknbr1MT6JMf" alt=""><figcaption></figcaption></figure>

***

### **Design the Badge**

1. In the **Design** tab, set up content for the badge and style it with color and font settings you like.

<figure><img src="/files/P3etInEOtHGC1K6jvoOy" alt=""><figcaption></figcaption></figure>

2. Choose shape for the badge and adjust size for it.

For **Size** setting, you can **manually adjust size** for the badge in different devices (**desktop or mobile**):

<figure><img src="/files/u25EIfYEfGXGyBPydjte" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/79Qn7cbUXpsd2a4vsMmE" alt=""><figcaption></figcaption></figure>

3. Set up **Position** for the badge in the product page or any other pages in the front store.

<figure><img src="/files/LBMSq4D3flY0erj8pkVj" alt=""><figcaption></figcaption></figure>

*If you want a "Label" which shows inside the product image, please use: **Inside product image** setting.*

*If you want a "Badge" which shows outside the product image, please use: **Outside product image** setting.*

4. Use other settings for further styling:

<figure><img src="/files/cnFIDm7HHIzjGBloP9qY" alt=""><figcaption></figcaption></figure>

***

### **Assign products to show this label on**

In the **Products** tab, select products to show the label. It can be:

* All products
* Specific products
* Products that match conditions

<figure><img src="/files/YYFo0hNofqS2SRB14Ogw" alt=""><figcaption></figcaption></figure>

### **Manage how the badge shows in the storefront**

In the **Display** tab, select more conditions to show this label.

You can set up **which type of customers** can be able to see the label.\
Or **which page the label should be shown** on (product page/collection page or any specific pages).

<figure><img src="/files/KiIxvXu5JRHxdsDLe0JP" alt=""><figcaption></figcaption></figure>

***

### **Complete the Badge**

Once everything is configured as how you wanted to, click **Save** to complete the badge creation.

<figure><img src="/files/97rof4PhN1tEr837j2ht" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create Image label with AI-generator

This feature is available only on Diamond plan.

{% hint style="warning" %}
**Note**

Creating images with AI generation is available on the **DIAMOND** plan.
{% endhint %}

If you want to display a label or badge with specific content but haven’t decided on a design yet, the **AI Label generator** setting is here to help.

Simply enter a few short and clear requirements, and the app will automatically generate a label that matches your description.

<figure><img src="/files/nQMQk89hQu8jp1vOspvV" alt=""><figcaption></figcaption></figure>

**Step to manage:**

1. Go to our app > Click on **Badges and Labels** > **Create badge** > Select **Image** type:

<figure><img src="/files/QoI91jm4ogLT8VVJRWHI" alt=""><figcaption></figcaption></figure>

2. Since you select the **Image** type, the app will immediately show the Image library setting modal shown as below > Click on the **Edit image with AI** setting:

<figure><img src="/files/kq7DekgvoHTVKVW9lvKV" alt=""><figcaption></figcaption></figure>

3. Write down a **prompt** for the image you want for the label to the input field > Click **Generate**:

For example: *A premium badge with the text “BEST SELLER”, modern style, crown icons, gold accent*

<figure><img src="/files/oben9wOT9fDmU2FE2u14" alt=""><figcaption></figcaption></figure>

![](/files/2Cho5VHBQtpL1VUGDP39)

4. Click on the generated label > You just finished creating a label by AI:

<figure><img src="/files/Kdnhg2pzDmDPiQPktTyx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/mi1RPu4guLSfgbgoEWkA" alt=""><figcaption></figcaption></figure>

***

To get the best results from the AI Label & Badge generator, writing a **clear and detailed prompt** is essential. So how do you write a prompt that’s concise, easy to understand, and still detailed enough for the AI to generate exactly what you need?

Below, we’ll share a few examples to guide you through the process.

#### 1. Elements should be used in a prompt:

* **Shape** (e.g., round, square, ribbon, shield)
* **Text content** (like “SALE”, “NEW”, “50% OFF”)
* **Colors** (e.g., red, gold, blue, or specific hex codes)
* **Text style** (bold, serif, script, modern minimalist)
* **Visual style** (flat, 3D, vintage, glossy)
* **Decorative details** (borders, icons, shadows)
* **Context or purpose** (e.g., holiday sale, premium brand)

#### 2. Prompt structure:

* **Detailed version:** Describe exact specifics like shape, colors, typography, style, and decorative elements. It will give you precise control over the output.

Formula:

> Create a *\[Shape]* label displaying “*\[Text content]*”. Use *\[Color]* as the main color palette, apply *\[Text style]* typography, and design it in a *\[Style]* style. Add *\[Decorative details]* so it works well for *\[Context]*.

e.g: Create a **round** label with the text **“SALE 30% OFF”**. Use **red and white** as the primary colors and apply **bold sans-serif** typography. Style it as **modern and eye-catching**, then add **a thin white border and subtle shadow**. The design should be suitable for a **storewide promotion**.

![](/files/rPf38jUfBQz32qImMsSr)

* **Short version:** A brief description with the most important details - good for quick experimentation and creative diversity.

Formula:

> A *\[Color] \[Shape]* label with “*\[Text content]*”, *\[Style]* design, and *\[Decorative details]*.

e.g: A **red round** label with the text "**Sale 30% off**", **modern** design and **a thin white border**.

![](/files/rPf38jUfBQz32qImMsSr)

#### 3. Tips to have a good prompt:

* Use specific and descriptive wording instead of generic terms such as “beautiful label” or “good badge”
* Stick to one visual style at a time and avoid mixing incompatible styles (for example, don't add flat and 3D designs together).
* Keep your prompts short and to the point, focusing on the most important visual details.
* Clearly specify the exact text that should appear on the label or badge.
* In some cases, simpler prompts can give the AI more creative freedom and produce better results.

If the first generated result does not match what you want, refine the prompt and try again. Small changes to the shape, color, text style, or decorative details can quickly improve the output and help you get a label that fits your campaign better.

***

### Extra AI tools in the image editor

* **Enhance prompt:** Not sure how to phrase your idea? Click the prompt enhancer to have AI expand a short idea into a more detailed prompt before generating.
* **Edit image with AI:** Already have an image (uploaded or previously generated)? Open it in the AI editor and describe the change you want (e.g. "change the background to gold", "add a snowflake icon") instead of generating a brand-new image from scratch.

{% hint style="warning" %}
AI image generations/edits are limited to a monthly quota per store, depending on your plan. If you hit the limit, upgrade your plan or wait for the next billing cycle to reset it.
{% endhint %}


# How to upload image as label to the app?

In order to upload your own image as a label to **Sami Label app**, there are two ways for you to do it.

1. **Upload image from your device**
2. **Upload image by using an image URL**

Kindly follow the guidelines to know how.

### **Upload image using the Import URL setting**

1. Create Badge > Choose Image type.
2. In the Design tab, click on the box Upload from URL:

<figure><img src="/files/9EYCFJCVQN97cmNO2AqT" alt=""><figcaption></figcaption></figure>

4\. Add file URL to the input field.

<figure><img src="/files/bJ0t18uWnH2nXuZ0Ay9g" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
NOTE: The image size must be less than 1MB. The format must be JPEG, SVG, JPG or PNG.
{% endhint %}

5\. Click **Save** to update the changes.

### **Upload image from your device**

1. In the **Design** tab, click **“Change Image”**
2. Click on this setting box:

<figure><img src="/files/dzb1rm7gKTkalCBNpZRW" alt=""><figcaption></figcaption></figure>

3. Choose an image from your computer/device:

<figure><img src="/files/O9kKMVDXv3KSGwmqJ0RI" alt=""><figcaption></figcaption></figure>

4. Click **Save** to finish the uploading

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Select products to show bagdes or labels

## Select products to show badges or labels

1. From the app admin page, click **Badges and Labels** > open the badge or label you want to edit
2. Click the **Products** tab > Select one of the options below:

* **All products**
* **Choose specific products**
* **Products matching conditions**

<figure><img src="/files/fiuKcGai7EKSsjbUsAAX" alt=""><figcaption></figcaption></figure>

***

### Apply badge/label to all products

Select option: **All product**s in the Products condition section > **Save**

<figure><img src="/files/vfGqzBML4PQeP6azbKZ4" alt=""><figcaption></figcaption></figure>

***

### Apply badge/label to specific products

Select option: **Choose specific products** and manually browse the products from the list that you want the label to be displayed on:

<figure><img src="/files/3jX4L4ouxrDYGh213amt" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/CMefvfBtjIXJ0Sg15H7h" alt=""><figcaption></figcaption></figure>

* If you want to remove a product from the list, click on the Delete icon.
* If you want to add more products to the list, click on the **Browse** button > select more products:

<figure><img src="/files/mLOSbqOm9Wwm6CLrDpC7" alt=""><figcaption></figcaption></figure>

***

### Apply badge/label to selected collections

{% hint style="warning" %}
**Note**

Selecting products by **Collections** or **Product tags** in conditions requires the **GOLD** plan and above.
{% endhint %}

1. Select option: **Products matching conditions**
2. **Add another condition** > Choose **Collections** > Select the collections you want the label to be displayed on
3. Click **Save** to update the changes

<figure><img src="/files/ZiVqVhIh27lXMOu1CzTx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/UC4DzLaXHbwkvmBYrklk" alt=""><figcaption></figcaption></figure>

### Apply badge/label to products with a specific tag

The example case is that you want to display the label on the products with the tag “***Bestseller***“. Please follow the steps below to set it up.

1. Choose options: **Products matching conditions**
2. **Add another condition** > Choose **Product tags** option > Set up the product tag to the input field.

*The app already takes product data from **Shopify Products**. You just need to select the tag and it's possible to select many tags in one condition.*

3. **Save** the change.

<figure><img src="/files/HXABgi94rvJqYs9r2lXG" alt=""><figcaption></figcaption></figure>

*If you set multiple conditions, consider selecting **Any condition** or **All conditions***

<figure><img src="/files/BuBgDSWNez1AWgZVUcnB" alt=""><figcaption></figcaption></figure>


# Hide label/badge on a specific page in your store

#### **Steps to manage**

1. Open the app > click **Badges and Labels** > open to the badge/label you want to edit
2. In the **Display** tab, navigate to the **Page display conditions** section > **Add another condition**

*This condition not only helps you hide the label on a specific page in your store, but also still displays the label in other pages (Product page, Collection page, Homepage, Cart page or any specific page you want)*

3. Please set up the condition like this:

***Page > is not equal to > choose a page in the dropdown list that you want to hide the label***

<figure><img src="/files/h8yzETZWpTS9WOOL3FVj" alt=""><figcaption></figcaption></figure>

3. Click **Save**
4. Check the result on the front store

{% hint style="info" %}
If the page you want to hide the label is not listed in the dropdown setting, please use the “**Specific page**” option and paste the page URL into the input field as belows:
{% endhint %}

<figure><img src="/files/KrTN0kQuXBsi9PX1jCps" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Show label or badge on a specific page only

{% hint style="info" %}
The badge/label will show up on 1 specific page only.
{% endhint %}

#### **Steps to manage**

1. Open the app > click **Badges and Labels** > open to the badge/label you want to edit
2. In the **Display** tab, navigate to the **Page display conditions** section > **Add another condition**

*This condition helps you show the label on a specific page in your store only, not anywhere else (Product page, Collection page, Homepage, Cart page or any specific page you want)*

3. Set up a condition like this:

***Page > is equal to > choose a page in the dropdown list that you want to specially show the label only on it***

<figure><img src="/files/Rh5qmFVz1cAKOgvftmng" alt=""><figcaption></figcaption></figure>

3. Click **Save**
4. Check the result on the front store

[<br>](https://help.samita.io/wp-content/uploads/2025/03/Screenshot2.png)

> ### **Note**
>
> If the page you want to show the label is not listed in the dropdown setting, please use the “specific page” option and paste the page URL into the input field as belows:\ <br>

<figure><img src="/files/MJu7VGgLZAtZtGCawoMF" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Use ID/class to change the position of badge/label on front store

#### **Steps to manage**

1. Open the app > click **Badges and Labels** > open the badge/label you want to edit.
2. In the **Designs** tab, scroll down to **Position** setting > Select **Outside product image >** select **Custom** option.
3. Enter the **ID/class** into the field to change the position of the badge on the page you want

<figure><img src="/files/MBScQeQSvY80AZm6fT6x" alt=""><figcaption></figcaption></figure>

* You add a HTML tag > add a class: *.product\_\_text* in the product page to the **Position in the product page** field in the app as screenshot above.
* The badge will show up right in the position you just added.

4\. Click **Save** to update the changes.

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Hide the labels from a specific position in the front store.

#### **Step to manage**

1. Locate the position you want to hide the label.

   *In our below example, I do not want the label to show on the item in my cart drawer.*
2. Go to the app > **Badges and Labels** > open the label or badge you want to manage this.
3. In the **Display** tab, scroll down to the Other display conditions > **Do not show Labels on,** paste the class in the box.
4. Click **Save** to update the changes

<figure><img src="/files/dwGzvP8YFnhlC5eUWiyr" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Translate Text label (AI generator supported)

This feature is available only on Diamond plan.

**Sami Product Labels app** supports translating text labels into different languages.

**Normal way:**

1. Go to **Sami Product Labels** app > **Badges and Labels** section > Create badge or Open the existing badge you have created.
2. In the **Design** tab, navigate the **Content** field where you put text for the label.

By default, the app will show texts in default language of your store (normally it will be English).

If you want to add another language for the label, please check this **Default language setting** and select the language > Add proper texts to the language you have selected:

<figure><img src="/files/Af9qwskCYQtV06jA8aF1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ktX7Hek3Fm5308VRV6Yp" alt=""><figcaption></figcaption></figure>

***

The app now provides a quicker way to **translates label using AI-generator tool.**

**Step to manage:**

1. Go to **Sami Product Labels** app > **Badges and Labels** section > **Create a text label or text badge**:
2. In the Settings page, choose **Text option** and set up the content for your label:

<figure><img src="/files/BcMFjrMPlojizC9KaXDz" alt=""><figcaption></figcaption></figure>

3. After finishing the label content, click on the **Add language** setting > Choose the language you want to set translation for the text label:

<figure><img src="/files/mAoof4OYvUVrHZWIp9IS" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/KPQsEUgNErIhYNESHHlt" alt=""><figcaption></figcaption></figure>

4. Normally, you would need to manually switch between each language tab and edit the corresponding text. However, this process is now much faster, as the app provides an **AI translation tool** directly in the settings.

Click on the **Auto Translate** button (Next to the **Add Language** setting), the texts in each Language tab will be auto-generated:

<figure><img src="/files/Bu9rSfKvH43kXw83uprV" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fhkV0nFGLIs6FEXrMU5s" alt=""><figcaption></figcaption></figure>

5. Finish other settings and conditions for the label and click **Save**:

<figure><img src="/files/YWjijSBAt459JkttJA3Z" alt=""><figcaption></figcaption></figure>

6. You can now check the result in the front store:

Default language:

<figure><img src="/files/ySyu9ffeowTYbjFRBUoW" alt=""><figcaption></figcaption></figure>

Chinese language:

<figure><img src="/files/3syP7MZ6RtiAWxmgPxhz" alt=""><figcaption></figcaption></figure>

Spanish language:

<figure><img src="/files/uOL5kPx6jgOtwQHV5OHO" alt=""><figcaption></figcaption></figure>


# Change the position of badges/labels on the front store

#### **Steps to manage**

1. From the app admin page, go to **Badges and Labels** > click on the label detail you want to edit.
2. In the **Design** tab > scroll down to **Position** sectio&#x6E;**.**

### Change Label position in the front store

* Choose **Inside product image** options and select the position you want the label to be displayed in product image.

<figure><img src="/files/0Grj6HlI27SN9vtnRlKu" alt=""><figcaption></figcaption></figure>

* Click “**Use Custom Position**” to customize the position on the front store based on your desire (out of the options the app provides in the setting):

{% hint style="info" %}
**Use Custom Position** is available on the **DIAMOND** plan.
{% endhint %}

Drag the slide bar to adjust the position of the label. Click the exchange icon to change to top or bottom alignment

<figure><img src="/files/WZRhXPHzoT3iehioR464" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Note**

Don’t drag the slide bar to 100 left side or top side.
{% endhint %}

***

### Change the position of the badge on the front store

* Choose **Outside product image** option and select the position you want the badge to be at product page (in **Predefined position**):

<figure><img src="/files/KElC4fh0598RGKOiRVfO" alt=""><figcaption></figcaption></figure>

At this moment, there are 7 available positions for you to choose from:

<figure><img src="/files/76JlQPoqig00dAvUvG0C" alt=""><figcaption></figcaption></figure>

* Below the product image
* Below the product title
* Below the product price
* Below the product quantity
* Below the add to cart button
* Below the buy now button
* **Custom** position: Click **Custom** and customize the position of the badge based on your need&#x73;**.** [Learn more](https://docs.samita.io/~/revisions/utkeEGTkd1XD1XZRzyUz/badges-and-labels/use-id-class-to-change-the-position-of-badge-label-on-front-store)

3. Lastly, click **Save** to update the changes.\
   \
   \ <br>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Change the color of the badge/label

> The color setting is only available for badge/label in **Text** format.

#### **Steps to manage**

1. From the app admin page, go to **Badges and Labels** > open the label/badge detail you want to edit
2. In **Design** tab, navigate the **Content** section and **Style** section, the color settings for **badge text** and **badge background** are there:

<figure><img src="/files/8T6A1JYFN08p7AMwDnHj" alt=""><figcaption></figcaption></figure>

3. Click **Save** to update the changes
4. Go to the front store to check the result

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Change the font of badge/label

#### **Steps to manage**

1. From the app admin page, go to **Badges and Labels** > open the label/badge detail you want to edit
2. In **Design** tab, navigate the **Content** section > click on the Font setting and select a font in the library:

<figure><img src="/files/xHBxoTkDGaT8zdb9JoMa" alt=""><figcaption></figcaption></figure>

3. Tick the checkbox **Use Custom Font Style** to customize your own font

<figure><img src="/files/mXpuKBG4pme87NAXbx35" alt=""><figcaption></figcaption></figure>

4. Click **Save**

Check the result on the front store

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Change the size of badge/label

### **Steps to manage**

1. From the app admin page, go to **Badges and Labels** > open the label/badge detail you want to edit
2. In **Design** tab, scroll down to the Size section.

* If you want both desktop and mobile to have the size label size, please use the setting: **Use same size on desktop and mobile**

<figure><img src="/files/v11AQFsxtls7IPE1E3l3" alt=""><figcaption></figcaption></figure>

* If you want different size on different devices (desktop and mobile), please use the setting: **Customize desktop and mobile separately**

***

### For Desktop

* Click on the **Desktop** tab > Adjust the label Width and Height sizes manually. You also can adjust the Text size of the label.

<figure><img src="/files/K3CkhugjFr4S2aUbCTOs" alt=""><figcaption></figcaption></figure>

* Switching between product page interface and collection page interface to adjust the size better:

<figure><img src="/files/iu14uVWCayw2nHZWHuyq" alt=""><figcaption></figcaption></figure>

### For Mobile

* Click on the **Mobile** tab > Manually adjust the Width and Height size of the label. You also can change the Text size as well:

<figure><img src="/files/qlCflgThx625KQeOKgXP" alt=""><figcaption></figcaption></figure>

* Switching between product page interface and collection page interface to adjust the size better.

3. Click **Save** to update the changes

Then go to the front store to check the result\ <br>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Change the date to show badges/labels

#### **Steps to manage**

1. From the app admin page, go to **Badges and Labels** > open the label/badge detail you want to edit
2. In the **Display** tab, scroll down to the **Visibility Date and Countdown**
3. Enter the **Start** date-hour and **End** date-hour
4. Click **Save**

**Note**: If you set the **Start date** as a future date, the label will show up on the date you configured. It can not be visible right away.

<figure><img src="/files/243ZReSB55oKTPgnx2AK" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create Dynamic text Label

#### **Steps to manage**

Currently, the app is having the available variables for the text badges or labels:

```html
{product_vendor}
{product_type}
{product_sku}
{inventory}
{sale}
{sale_amount}
{countdown}
{countdown_2}
{product_variant_count}
{customer_order_total}
{customer_spent_total}
{product_metafield}
{variant_metafield}
```

These variables are used to create a dynamic badge/label which auto shows correct value of the product stock/sale price in the label/badge.

{% hint style="info" %}
For **{product\_metafield}** and **{variant\_metafield}**, after inserting the variable you'll need to fill in the metafield's **namespace.key** so the app knows which metafield value to pull in — see [Display label/badge based on product/variant metafields](/badges-and-labels/display-label-badge-based-on-product-variant-metafields).
{% endhint %}

Step to manage

1. From the app admin page, click **Badges and Labels.**
2. Click on the **Create badge** button > Select badge type: **Text**

<figure><img src="/files/Bb4CPzvDYdGNRjWpwYyY" alt=""><figcaption></figcaption></figure>

3. In the **Design** tab, navigate the **Content** section > Click on the **Insert Dynamic Text** button.

<figure><img src="/files/pwFDZ9wQvHDAM7iI21zp" alt=""><figcaption></figcaption></figure>

> Example: Create a Label showing sale percentage value of your products

There is a list of variables shows up as below.

Since we need to create a sale label, we will use the variable: **{sale}** or **{sale\_amount}**

{% hint style="info" %}
{sale} = sale percentage off

{sale\_amount} = sale amount off
{% endhint %}

Click **Copy** to copy the variable and paste it to the **Badge content field**:

<figure><img src="/files/1rCFQ73DBk2L7whvMVHv" alt=""><figcaption></figcaption></figure>

4. Freely add more texts to make the badge content meaningful:

<figure><img src="/files/VApVLl3uKx9NI8czUtBU" alt=""><figcaption></figcaption></figure>

5. Finish the design for the label and assign it to products.

<figure><img src="/files/LikU1fZj6V6DND9moGmM" alt=""><figcaption></figcaption></figure>

6. Click **Save** to complete the label and check the result in the front store.

{% hint style="info" %}
If you set the condition to All products, but not all products have the sale price, enable this setting to auto-hide the label from non-sale products:
{% endhint %}

<figure><img src="/files/b3lrvulPgfcZtfLQptHd" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display label/badge based on country

This feature is available on the GOLD plan and above.

Not only show the label due to the product data in the theme, **Sami Product Labels** can also show the label due to the location (country) of the customers who access your store site.

{% hint style="warning" %}
**Note**

The Country display condition is available on the **GOLD** plan and above.
{% endhint %}

To find the setting, please go to the app:

* **Badges and Labels** > Set up a label or badge first:

<figure><img src="/files/fEkfrv1qgOwheTsDbffg" alt=""><figcaption></figcaption></figure>

* Assign products to the Label
* In the **Display** tab, navigate to the **Country display condition** section > Turn on the setting:

<figure><img src="/files/1cUO3uxuSdxSRYr5Ckq2" alt=""><figcaption></figcaption></figure>

* If you want the label to be displayed on which specific country, please use **Operator** setting: **Equals** and select the countries you want the label to show:

<figure><img src="/files/BJQpZYOj8XIGDj8W9zG0" alt=""><figcaption></figcaption></figure>

* If you want the label not to be displayed on any countries, please use **Operator** setting: **Not equals** and select the countries you want to hide the label from:

<figure><img src="/files/iQkw9oHmN4utYebsJuVE" alt=""><figcaption></figcaption></figure>

* Click **Save** and check the result in your front store.

{% hint style="info" %}
The Country condition works based on **real customer's IP addresses**, not by the **Market operator in Shopify**. So the label will show (not show) if the customers are really in the countries selected in the app.
{% endhint %}

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display badges and labels based on the selected language

{% hint style="warning" %}
**Note**

This feature is only available in **DIAMOND** plan of the app.
{% endhint %}

It is possible for users to show the label based on the language of the site.

> Example:
>
> Your store has 2 languages which are English and Chinese.
>
> The label should be displayed on the Chinese language only.

Please follow the steps below to create a label based on a specific language. You can do the same with a badge.

## **Step to manage**

1. From the app admin page, click **Badges and Labels** > Set up a label or badge first:

<figure><img src="/files/fEkfrv1qgOwheTsDbffg" alt=""><figcaption></figcaption></figure>

2. Assign products to the Label
3. In the **Display** tab, navigate to the **Language display condition** section > Turn on the setting:

<figure><img src="/files/tZ2X8ayOjE7x1zNsgzzy" alt=""><figcaption></figcaption></figure>

* If you want the label to be displayed on Chinese language only, please use **Operator** setting: **Equals** and select the Chinese as language you want to show the label:

<figure><img src="/files/sxZl39pjX2PngO5crY63" alt=""><figcaption></figcaption></figure>

* On the other hand, if you want the label not to be displayed on any countries, please use **Operator** setting: **Not equals** and select the countries you want to hide the label from:

<figure><img src="/files/79VxjGU2jttl09BK6qV4" alt=""><figcaption></figcaption></figure>

4. Click **Save** and check the result in your front store.

<figure><img src="/files/NkxSTBlTgjcHs0pCro6N" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/gGxRKm1NRwSYHVnGGUWJ" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display label/badge based on product/variant metafields

This feature is available only on Diamond plan.

You can show a label or badge on different products containing same product / variant metafields.

{% hint style="warning" %}
**Note**

Product/variant metafield conditions are available on the **DIAMOND** plan.
{% endhint %}

1. Create your product or variant metafields from your **Shopify Settings > Metafields and metaobjects > Add definition**:

<figure><img src="/files/Y6B5la6EU0CxI5iL26Di" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fBRrv2DKd4oesZhmELnt" alt=""><figcaption></figcaption></figure>

Then you click on the Copy to clipboard button to paste it inside the **namespace.key** input at the **Step three** below :

<figure><img src="/files/UovcNuhkDKaAK6jStLg7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Jre0diaVNIy9tdAplwrp" alt=""><figcaption></figcaption></figure>

2. Add values for each **Product metafield** or **Vairant metafield** from your **Shopify Products** tab, then you paste the values inside the corresonding value inputs at the below:<br>

<figure><img src="/files/5YWGqJTkzVHhWMz9Tu7u" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jMbHqliVKe6H9Vx1SqIM" alt=""><figcaption></figcaption></figure>

3. Go back to **Sami Label** app > **Create badge**
4. Navigate to the **Products** tab > Choose Products matching conditions > add the **Product metafield** or **Variant metafield** conditions with your recently created **namespace.key** fields and their **values** :

<figure><img src="/files/cnlSoi2US3aNxI8yDZlD" alt=""><figcaption></figcaption></figure>

> :warning: Ensure the Storefront API access is enabled from **Metafields and metaobjects** setting.<br>

<figure><img src="/files/wRCEY36AhOUudSubZV20" alt=""><figcaption></figcaption></figure>

Click **Save** then check your label or badge on your website.

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display labels/badges on PageFly

We need to add custom code to the pages from PageFly to show the Samita badge/labels. Please follow the steps below to implement it.

## **Steps to manage**

1\. In PageFly app, open the page you want to display the Samita badges/labels

2\. Click (**+**) icon on the ledt navigation to add element to the page > select a **HTML/Liquid** element

3\. Drag and drop the **HTML/Liquid** element to the position you want to place the badges/labels on the page

4\. In the **HTML/Liquid** element, click **Open code editor button**<br>

<figure><img src="/files/1xOpG6u1NzfKvAQmaESH" alt=""><figcaption></figcaption></figure>

5\. Paste below code to the code editor:

```
<a href="/products/{{product.handle}}" style="display: none;"></a>
```

<figure><img src="/files/zc4iLun12q4SuA6PeNQ7" alt=""><figcaption></figcaption></figure>

6\. Click **Save and close button**

7\. Click **Save** to update the page

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Delete a Badge/Label

#### **Steps to manage**

1. From the app admin page, click **Badges and Labels**
2. Tick on checkbox before the badge/label you want to delete > Choose **Delete selected badge(s)/label(s)**

<figure><img src="/files/20Q8psl28feYNK4Yeu2p" alt=""><figcaption></figcaption></figure>

Or you can simply click on the **Delete** icon in the label row:

<figure><img src="/files/1B6cNDzehmY26yJgJhYL" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Done**

Then the selected badge(s)/labels are removed from the list and disappear from your website.
{% endhint %}


# Duplicate a badge/label

#### **Steps to manage**

1. From the app admin page, click **Badges and Labels**
2. Tick on checkbox before the badge/label you want to duplicate > Click **Duplicate**

<figure><img src="/files/ghRzW5V7PGpVteShEU5H" alt=""><figcaption></figcaption></figure>

3\. Go to the new badge/label detail and configure it

4\. Click **Save** to update the changes


# Add search file to display label/badge on the front store

In order to display the label/badge you have created on the front store, you need to add some codes to enable the app data. Kindly follow the below instructions to better know how to do it:

1. From the Shopify admin page, choose the **Online Store** folder > **Themes**
2. In **Themes** > choose the **More actions** button > **Edit code**

<figure><img src="/files/fWZwC2L9wkeD6eDGh7Vu" alt=""><figcaption></figcaption></figure>

3. For the **Old theme code version**, the UI will be as below:

On the code page, click on **“Add a new template”** > choose Template type: **search** > **liquid** > Fill in the file name as: **samitaLabelsProductsJson** > **Done**

<figure><img src="/files/sCzByCNj2ZSXRQ8ap3Zg" alt=""><figcaption></figcaption></figure>

For **New theme code version**, the UI will be as below:

On the code page, right-click on the **Template** tab > Choose **New file** to create this search file.

<figure><img src="/files/gcgf53QOXaGYI5jl0TpM" alt=""><figcaption></figcaption></figure>

Then set up name for this file like this: **search.samitaLabelsProductsJson.liquid**

<figure><img src="/files/N25devUDr8gkSrZhbiLe" alt=""><figcaption></figcaption></figure>

4. Add the below codes to the file:

```
{%- layout none -%}
{%- paginate search.results by 1000 -%}
    [{%- for product in search.results -%}
        {%- unless forloop.first -%},{%- endunless -%}
        {
            "id":{{-product.id-}},
            "title":{{-product.title | json-}},
            "handle":{{-product.handle | json-}},
            "price":"{{-product.price-}}",
            "price_max":"{{-product.price_max}}",
            "price_min":"{{-product.price_min}}",
            "type":{{-product.type | json-}},
            "created_at":"{{-product.created_at | date: "%Y-%m-%d %H:%M" -}}",
            "published_at":"{{-product.published_at | date: "%Y-%m-%d %H:%M" -}}",
            "tags": {{-product.tags | json-}},
            "vendor": {{-product.vendor | json-}},
            "featured_image":"{{-product.featured_image-}}",
            "url":"{{-product.url-}}",
            "collections":{{-product.collections | map: 'id' | json-}},
            "compare_at_price":"{{-product.compare_at_price-}}",
            "compare_at_price_max": "{{-product.compare_at_price_max-}}",
            "compare_at_price_min": "{{-product.compare_at_price_min-}}",
            "price_varies": "{{-product.price_varies-}}",
            "compare_at_price_varies": "{{-product.compare_at_price_varies-}}",
            "images":[
            {%- for image in product.images -%}{%- unless forloop.first -%},
            {%- endunless -%}{"id":{{-image.id-}},
            "src":{{-image.src | json-}}}{%- endfor -%}],
            "first_available_variant":{"id":{{-product.selected_or_first_available_variant.id | times: 1 -}}},
            "available":{{-product.available | json-}},
            "options": {{-product.options | json-}},
            "variants":[
                {%- for variant in product.variants -%}{%- unless forloop.first -%},
                    {%- endunless -%}
                    {
                    "id":{{-variant.id-}},
                    "title":{{-variant.title | json}},
                    "name":{{-variant.name | json}},
                    "price":{{-variant.price-}},
                    "compare_at_price":{{-variant.compare_at_price | times: 1-}},
                    "available":{{-variant.available-}},
                    "sku":{{-variant.sku | json -}},
                    "weight":"{{-variant.weight-}}",
                    "weight_unit": "{{-variant.weight_unit-}}",
                    "inventory_quantity":{{-variant.inventory_quantity-}},
                    "option1":  {{-variant.option1| json-}},
                    "option2":  {{-variant.option2| json-}},
                    "option3":  {{-variant.option3| json-}},
                    "options":  {{-variant.options| json-}},
                    "selected": {%- if variant.selected -%}  {{-variant.selected-}} {%- elsif product.selected_or_first_available_variant.id == variant.id -%} true  {%- else -%} false {%- endif -%}
                    }
                {%- endfor -%}
            ]
        }
    {%- endfor -%}]
{%- endpaginate -%}
```

<figure><img src="/files/KgJT5Ykd2IBzJtaXfvo6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/6qq7OFUZySFYhlg7FhqO" alt=""><figcaption></figcaption></figure>

5. Click **Save** to finish creating this new file.

* **IMPORTANT step**: Go back to the Sami Product Label app, on the app dashboard page, you will see a note as below, please click on the button “Refresh status”

<figure><img src="/files/CW7fUVYEybVwZQzvTSmO" alt=""><figcaption></figcaption></figure>

To update the status that you have added the search file correctly in your theme

<figure><img src="/files/JsytVlBA0wE9mRXiocGK" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=PCQHoIskJfw>" %}

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Setup a trending label/badge from the app’s recommendation

To help you decorate your store site, Sami Product Labels app has a section which has all the trending label style due to month. You can use the recommended labels to set up one for your store.

Kindly review the below instruction to find the setting and configure.

1. Go to the app > Choose **Badges and Labels** section > There is a section below the list of created labels and badges:

<figure><img src="/files/0MYBi48vNBX5XkvG0IsG" alt=""><figcaption></figcaption></figure>

2\. Click on the design you like and set up a label or badge from it:<br>

<figure><img src="/files/8UnCq01FBQYiosFpX2HH" alt=""><figcaption></figcaption></figure>

3\. Then start configuring as usual

If you want to design your own image label, you can use this setting:\ <br>

<figure><img src="/files/7J2I3LnDqn4Q1s7gepMb" alt=""><figcaption></figcaption></figure>

* Set up name for your label<br>

<figure><img src="/files/smDNOVSrVZ1kjxqQAHaC" alt=""><figcaption></figcaption></figure>

* Upload an image for the label or you can choose one from the app’s library<br>

<figure><img src="/files/fnhynOUhMTVcCy0ML7Qv" alt=""><figcaption></figcaption></figure>

* Set up content for the label and style the font text

<figure><img src="/files/BGI11uN1nZwJwlSAwWik" alt=""><figcaption></figcaption></figure>

* After finishing the customization, click “Save and create label” to save your custom label and continue configuring it as a label or badge with more settings inside the app

<br>

<figure><img src="/files/dJ2N1QORwQIS0o5OVftZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/HCT0WWnmWu2spIdDdm9U" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Set up a label groups

**Label Group feature** allows you to group multiple existing labels/badges together and align them in a vertical/horizontal way on a product. You pick which labels belong to the group, then set one shared layout, position, and condition for the whole group. To better understand how to do it, kindly follow this document:

**Step to manage:**

#### Create a group of labels

1\. From the app dashboard page, go to **Label groups** section > **Create a label group**:<br>

<figure><img src="/files/y76FTwGm4bbcn2Vc7hs2" alt=""><figcaption></figcaption></figure>

2\. In the **Design** page> **Label Selection** > **Add labels to group**:<br>

<figure><img src="/files/XMKl2dVZGZzwCqbY17yz" alt=""><figcaption></figcaption></figure>

***Please make sure that you already created labels in the Badges & Labels section before going to this label group step.***

[***How to create label/badge?***](https://help.samita.io/docs/product-label/badge-and-labels/create-a-label/)

3\. Select labels you want to add into a group:<br>

<figure><img src="/files/LcSikiJ3SoW5tkYjwgCC" alt=""><figcaption></figcaption></figure>

4\. Click **Select** and that’s how a label group is set.

#### **Design label group**

1\. Move to the **Design** section, choose the **layouts** for the label group: Horizontal or Vertical style.

Set up **label size** and **gap** between the labels:<br>

<figure><img src="/files/dQHRqLPKY0TD4RlVrZdb" alt=""><figcaption></figcaption></figure>

2\. Use the **Position** setting to choose where the group is displayed on the product (same fixed positions used for individual badges/labels: top left, top center, top right, left center, center, right center, bottom left, bottom center, bottom right), and use **Margin** to fine-tune the spacing on each side (px, with a unit selector per side).

#### **Show the label group**

1\. Click on the **Display** setting to set up where the label group should be displayed in your front store. This uses the same condition engine as individual Badges & Labels: **Manual** conditions (device, on-pages, priority, etc.) and **Automate** conditions (All products / Specific products / Products matching conditions). For further understanding, [**please review this document.**](https://help.samita.io/docs/product-label/label-group/label-group-condition/)

2\. Set up condition for this label group:

<figure><img src="/files/VqVYN4eoVVLC7rqtnmrL" alt=""><figcaption></figcaption></figure>

3\. After finishing, click **Save** and check the result in the front store:

<figure><img src="/files/2zOX9lKyiD97DcAmwXap" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/zQT8SOmhXFBJ6dYLj8ap" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
**Friendly reminder!**

If you do encounter any difficulty while proceeding with these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)

We are always willing to help with all sincerity!
{% endhint %}


# Set up a badge group

A **badge group** lets you combine multiple badges and display them together **outside the product image**. You can control their order, layout, size, spacing, alignment, and placement on the storefront.

Before you begin, create and activate the badges you want to use in **Badges & Labels**. If you want the group to appear inside the product image instead, follow [Set up a label groups](/label-groups/set-up-a-label-groups).

{% hint style="warning" %}
Choose **Inside product image** or **Outside product image** before adding items. Switching between these two options clears the current selection.
{% endhint %}

## Create a badge group

1. From Shopify admin, open **Sami Product Labels** > **Badge groups**.
2. Click **Create badge group**.

<figure><img src="/files/Pv409EmJlYoIHsrY8RGL" alt="Badge groups page with the Create badge group button"><figcaption><p>Open Badge groups and click Create badge group.</p></figcaption></figure>

3. On the **Design** tab, select **Outside product image**.
4. In **Label Selection**, click **Add badges to group**.
5. Select the badges you want to include, then click **Select**.

<figure><img src="/files/Q4BS9avV924ykksTXNHm" alt="Select badges to add to a badge group"><figcaption><p>Select the badges to include in the group.</p></figcaption></figure>

After adding badges, you can drag them to change their display order.

## Design the badge group

Configure the group in the **Design** section:

* **Select layout:** Display badges horizontally or vertically.
* **Item size:** Set the size in `%` or `px`.
* **Label gap:** Set the space between badges.
* **Badge group replacement:** Choose where the group appears outside the product image.
* **Predefined position:** Align the group to the left, center, or right.
* **Margin:** Adjust the top, bottom, left, and right spacing.

The preview updates as you change these settings.

<figure><img src="/files/nUM43lsO4JToHpG27mnf" alt="Badge group design settings and product preview"><figcaption><p>Configure the layout, size, gap, placement, alignment, and margin.</p></figcaption></figure>

### Choose the storefront placement

In **Badge group replacement**, choose one of these positions:

* Below the product image
* Below the product title
* Below the product price
* Below the product quantity
* Below the Add to cart button
* Below the Buy now button
* Custom

If you choose **Custom**, enter a valid CSS selector (for example, an ID or class) for each page where the group should appear. Leave a page field empty if you do not want to use a custom selector on that page.

<figure><img src="/files/ksyyuEbbSJzoABYGCV8x" alt="Custom badge group position fields for product, home, collection, and other pages"><figcaption><p>Use Custom to configure a different CSS selector for each page type.</p></figcaption></figure>

{% hint style="info" %}
Need help finding an ID or class in your theme? See [Use ID/class to change the position of a badge/label on the front store](/badges-and-labels/use-id-class-to-change-the-position-of-badge-label-on-front-store).
{% endhint %}

## Set the display conditions

1. Open the **Placement** tab.
2. Choose one of the following condition types:
   * **Keep individual label conditions:** Each badge is shown or hidden according to its own condition.
   * **Set a custom group condition:** The group condition overrides the individual badge conditions.
3. If you select a custom group condition, configure the products, collections, pages, customers, or other rules where the badge group should appear.

<figure><img src="/files/IjI07zWNZCCtIcg1PEVg" alt="Badge group condition type settings"><figcaption><p>Keep the individual conditions or set one condition for the whole group.</p></figcaption></figure>

For a detailed explanation and examples, see [Label groups condition](/label-groups/label-groups-condition).

## Save and check the result

1. Enter a name for the badge group.
2. Set the group to **Active** or **Draft**.
3. Click **Save**.
4. Open a matching product on your storefront and confirm that the badge group appears in the selected position.

{% hint style="success" %}
**Friendly reminder!**

If you do encounter any difficulty while proceeding with these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)

We are always willing to help with all sincerity!
{% endhint %}


# Label groups condition

**Label group condition** helps you manage where the label group can be displayed in the front store. A label group is a container for the labels/badges you add to it: you configure **one shared condition for the whole group**, using the same condition engine as individual Badges & Labels. That condition has **two parts** — Manual and Automate — that work together.

**1. Manual conditions:** control the general display rules for the group:

* **Device**: show on all devices, desktop only, or mobile only.
* **On pages**: choose which pages the group can appear on (product page, collection page, or other specific pages).
* **Show on all images / first image only**: available on certain plans, this controls whether the group displays on every product image or just the first one.
* **Exclude on custom block**: enter a CSS selector to hide the group from a specific block/section.
* **Priority**: set a value from 0–100 to control which group takes precedence when more than one could display on the same product.

<figure><img src="/files/Lzw7Z9nOqHms6qDYcMkp" alt=""><figcaption></figcaption></figure>

**2. Automate conditions:** control which products the group shows on. Choose one of 3 modes:

* **All products** – the label group shows on every product.
* **Specific products** – manually pick the products to show the label group on.
* **Products matching conditions** – build rule-based conditions using fields such as:
  * **Product**: title, type, vendor, variant price, compare price, sale price, option, tag, weight, created date, published date, inventory, metafield
  * **Variant**: variant, variant inventory, variant metafield
  * **Collection**
  * **Customer**: customer, customer tag, order count, total spent, purchase, company name
  * **Page**: index, collection, product, article, blog, cart, search, or multiple URLs
  * **Language**
  * **Country**

<figure><img src="/files/MWvg4F4ETP43FHYU6Zra" alt=""><figcaption></figcaption></figure>

Since the group uses one shared condition, all labels/badges you added to the group will display together whenever that condition is met — there is no separate condition per individual label inside the group.<br>

<figure><img src="/files/VqVYN4eoVVLC7rqtnmrL" alt=""><figcaption></figcaption></figure>

***Choose “any condition” if you have more than 1 condition under Products matching conditions:***

<figure><img src="/files/a3qohnLn4MsaCuGjQwYC" alt=""><figcaption></figcaption></figure>

This is the result in the front store when using this condition:

<figure><img src="/files/i4QOCjGRgsaGkPn5cTVo" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Import, export, duplicate, and bulk-update actions are also available for label groups, the same as for individual badges/labels.
{% endhint %}

{% hint style="success" %}
**Friendly reminder!**

If you do encounter any difficulty while proceeding with these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)

We are always willing to help with all sincerity!
{% endhint %}


# Trust badge Overview

### What is a Trust Badge?

Trust badges are symbols displayed on a website to demonstrate to visitors that the business is legitimate and concerned about data security.

Because the trust seal company has agreed to place their badge on your website, customers will know that all the processes taking place are safe and secure.

<figure><img src="/files/TPkbFGDvdqXjNI1QkyZF" alt=""><figcaption></figcaption></figure>

### Some typical types of trust badge on online store

Generally, trust badges used on website can be classified into five types:

1. **Security Trust Badges** validate that the checkout process on an e-commerce site is secure and that customer credit card information is protected.
2. **Payment Trust Badges** certify that a business accepts widely used forms of payment, such as Visa, Mastercard, American Express, and PayPal, increasing consumer trust and embodying anti-fraud principles.
3. **Guarantee Trust Badges** like a “30-day money-back guarantee” icon can be used to allay potential customers’ fears regarding the purchase by providing reassurance and making it easier to turn doubtful visitors into happy customers.
4. **Shipping Trust Badges** like “Free Shipping” or “Free Returns” showcase your store policy and excellent customer service and can help you build customer trust, taking away some perceived risks of shopping online.
5. **Endorsement trust badges** that provide third-party validation, case studies, online reviews, professional certifications, and B2B customer logos.

### Where to Add Trust Badges on a Website?

Listed below are the most effective parts for adding trust badges to your website:

* **Homepage**: Displaying a trust badge like third-party validation on your homepage gives a positive first impression to visitors.
* **Product Page**: Adding a guarantee or shipping trust badges to your product page can be a good motivator and the final push for users to finalize their purchase decisions.

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create a trust badge

### **Steps to create a new trust badge**

1. From the app admin page, go to **Trustbadge Plus** section > Choose **Trust Badges** tab > Click the **Create new trust badges** button

<figure><img src="/files/EaNU6QqXQxnfN7CMzsRy" alt=""><figcaption></figcaption></figure>

2. In the Design tab, navigate to the **Content and Badges** section, set up **Title** and **Description** \[optional]
3. Move to **Badges** sections, click **Add badge** > **Select badge image**

You can select the available badge the app provides or upload images or add image URL to create your custom trust badges

<figure><img src="/files/zr75wZzswxvqNa5HZ976" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/o5iAi5sGKPVWhGcqPVOL" alt=""><figcaption></figcaption></figure>

4. Click on the badge you have selected > Setting and configure the inside (Badge color, add tooltip, description) \[optional]

<figure><img src="/files/Sj72g0QfVzFOoycphZx9" alt=""><figcaption></figcaption></figure>

5. Continue to click **Add badge** to add as many as badges as you want

<figure><img src="/files/ZHQdBHgzJd2LO38y4WT6" alt=""><figcaption></figcaption></figure>

***

### Design trust badges

After choosing badges and adding content for the trust badges, kindly scroll down to the **Design** setting.

There are **3 sections** for you to style the trust badges, click on each section to see more settings:

<figure><img src="/files/dfDEemf6hdDGunvEI11C" alt=""><figcaption></figcaption></figure>

You also can set up size for the trust badges in other devices like mobile or tablet:

<figure><img src="/files/vzoE9y9txS0roIL9Y86k" alt=""><figcaption></figcaption></figure>

***

### Display trust badges in your front store

#### 1. Display trust badges on product page

**Step to manage**

1. Click the **Placement** tab on the left > Navigate the **Product page** section > **Turn on the setting**
2. Click **Save**

Now the Trust badge automatically shows up on the product page. Please go to the front store to check the result.

<figure><img src="/files/Tl199fzSQyhEXzoNyLW3" alt=""><figcaption></figcaption></figure>

> **Note:**
>
> With this setting, the trust badge will automatically show up on all product pages below the add to cart button.
>
> You don’t need to customize more.

#### 2. Display Trust badge at a specific position

Our app provides you the short code of the trust badge that allows you place it at any position you want.

Note: Only use the badge short code when you want to place it in a specific position.

**Steps to manage**

1. After finishing the Badge design, click **Save**.
2. Move to the **Placement** tab on the left > Navigate the **Shortcode** section > **Copy the code showing here:**

<figure><img src="/files/rHU4URSI3RSfrhuL3STR" alt=""><figcaption></figcaption></figure>

3. Go back to the Shopify admin page > **Online stores** > **Themes** > **Customize** (the theme you want) > open the page template you want
4. Click **Add section** > find the app block of the **Samita Trust badge** app > click **Add**

<figure><img src="/files/r9YADqQfvbQKXnehYZ4u" alt=""><figcaption></figcaption></figure>

4. In the block content, paste the shortcode of the trust badge

<figure><img src="/files/sQuKMHQeZ7qr4IPV8zkz" alt=""><figcaption></figcaption></figure>

5. Drag and drop the block the change the position of the badge on the product
6. Click **Save** to update the changes in the theme editor

***

## New feature! <a href="#new-feature" id="new-feature"></a>

* Sami Product Labels newly releases this “Featured templates” in order to help you quickly customize a trending trustbadge
* Click on one trustbadges model you like and start configuring further inside

<figure><img src="/files/hm0Q4UKGzErCOVJqP1HX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/IEkfAxC3y6NQVgaccDhY" alt=""><figcaption></figcaption></figure>


# Display Trust badge at a specific position

Our app provides you the shortcode of the trust badge that allows you to place it at any position you want.

Note: Only use the badge short code when you want to place it in a specific position.

## **Steps to manage**

1. From the app admin page, go to **Trustbadge Plus** > Choose **Trust Badges** tab and open the trust badge you want.
2. In the **Design** tab > **Shortcode** section > Copy the Shortcode of the badge
3. Go back to the Shopify admin page > **Online stores** > **Themes** > **Customize** (the theme you want) > open the page template you want
4. Click **Add block** > find the app block of the **Samita Trust badge** app > click **Add**
5. In the block content, paste the shortcode of the trust badge
6. Drag and drop the block of the change the position of the badge on the product
7. Click **Save** to update the changes in the theme editor

<figure><img src="/files/3a3d5Blk1i5xYJPCjz9H" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=Nfj5ZaLdgrI>" %}

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Delete/Duplicate Trust badge(s)

### **Delete Trust badge(s)**

**Step to manage:**

1. Open the app > click **TrustBadge Plus** > Choose **Trust Badges** tab
2. Tick the checkbox of the Trust badge(s) you want > Choose **Delete**

Then the selected Trust badges are removed completely from the list

<figure><img src="/files/Y2DiTMCEm3d9dxIafXgY" alt=""><figcaption></figcaption></figure>

Or you can simply click on this **Delete** icon showing in the trust badge row:

<figure><img src="/files/WnCTAO4LLAHULwGJDVr7" alt=""><figcaption></figcaption></figure>

***

### **Duplicate Trust badge(s)**

**Step to manage**

1. Open the app > click **TrustBadge Plus** > Choose **Trust Badges** tab
2. Tick the checkbox of the Trust badge(s) you want > Click on the **Duplicate** button

The copy badge(s) are created immediately in the badge list in the app.

<figure><img src="/files/ALLqI7hPDcvyOoumHBiZ" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Disable/Enable Trust Badge on front store

You can activate or deactivate on the front store via this setting in the app.

1. Open the app > click **TrustBadge Plus** > Choose **Trust Badges** tab
2. Tick on the checkbox of the trust badge(s) > Select status **Set as draft** or **Set as Active** (depending on your choice)

<figure><img src="/files/EEA0DJgN2c03rTe7kS6k" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Highlight overview

* Highlights provide short bulleted lists of the most relevant highlights of your products.
* The highlights you submit should provide customers with easily consumable, quick-to-scan sentence fragments that answer the most common consumer questions or that focus on the most important attributes of the product.

For example, offering **additional services** like free shipping or extended warranties on certain products will set you apart from other businesses in the same industry.

<figure><img src="/files/Htn5fxdv3f1rHjBmFmWJ" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create a highlight

## **Create a new Highlight**

**Steps to manage**

1. From the app admin page, go to **Trustbadge Plus** section > Choose **Highlights** tab > Click the **Create Highlight** button

<figure><img src="/files/iRhhDX4ICggC8iwGSvpe" alt=""><figcaption></figcaption></figure>

2. In the Design tab, navigate to the **Content and Badges** section, set up **Title** and **Description** \[optional]
3. Move to **Badges** sections, click **Add highlight** > **Select badge image**

<figure><img src="/files/MdQdq6wjU4lfyb2YX6Bw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/U5KhL0QnHvzbmyEoef3s" alt=""><figcaption></figcaption></figure>

You can add more badges for your Highlight by continue clicking on **Add Highlight** button:

<figure><img src="/files/GHgW1uxjhDh3VCMQmK9C" alt=""><figcaption></figcaption></figure>

4. Click on the badge you have selected > Setting and configure the inside (set title and description) \[optional]

<figure><img src="/files/sPmM5a9WLKDMULoMWbYg" alt=""><figcaption></figcaption></figure>

***

### Design Highlights on front store

After selecting the badge you want and set up proper text for the highlight, move to the **Design** step.

5. In the same Design tab, scroll down to the Design settings, there are 3 options:

* **Design Main Section** (optional)
* **Design Title and Design Description** (optional)
* **Design Badge**

Click on each section and adjust the highlight size and style

<figure><img src="/files/Es7dffI3jLvFhk4wX4Qs" alt=""><figcaption></figcaption></figure>

You also can set up size for the highlight badges in other devices like mobile or tablet:

<figure><img src="/files/Y7NfyntZCjcugktBYlDx" alt=""><figcaption></figcaption></figure>

***

### Display Highlight in the front store

6. Move to the **Placement** tab > **Configure the Product display condition** - which product you want to show the highlight
7. Turn on the setting to show the highlight on **Product page**.

<figure><img src="/files/CgjYQk6LsXzpzAKpGYGb" alt=""><figcaption></figcaption></figure>

For further details, [**learn more**](https://docs.samita.io/~/revisions/0BsOW6edQ2c3AVEigZcB/trustbadge-plus/display-highlight-on-front-store) here.

8. Click **Save** and check the result in the front store.

***

### New feature!

* Sami Product Labels newly releases this “Recommendation Highlights” in order to help you quickly customize a trending highlight for your store
* Click on one highlight you like and start configuring further inside

<figure><img src="/files/LNVSAGCZglkZrf9TCeKu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/jF789S7IlhD6k9bPdgL9" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display Highlight on front store

### Display Highlights on all product pages

**Step to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Scroll down to the **Product page** section > Turn on the setting there
3. Click **Save**

Now the Highlight automatically shows up on the product page. Please go to the front store to check the result.

<figure><img src="/files/tvM3CEXJxdQNwr3bkRCQ" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note**

With this setting, the highlight will automatically show up on all product pages below the add to cart button.

You don’t need to customize more.
{% endhint %}

***

### Apply Highlight to selected products

This setting allows you to display the highlight on a specific product on the product page that you want.

**Step to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Navigate to the **Product condition** section > **Add a condition** as below:

<figure><img src="/files/aUxb0HP9pXroSjp2rLtB" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/oCAvRJxnVRP28DmPSrjj" alt=""><figcaption></figcaption></figure>

3. Scroll down to the **Product page** section > Turn on the setting there

<figure><img src="/files/VMheBs08jOMJZ0rjCPkL" alt=""><figcaption></figcaption></figure>

4. Click **Save**

***

### Display Highlights at a specific position

Our app provides you the shortcode of the Highlight that allows you to place it at any position you want.

Note: Only use the shortcode when you want to place it in a specific position.

**Steps to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Navigate to the **Shortcode** section > **Copy** the code showing there:

<figure><img src="/files/fmF2HP41kjMyxz4glM2D" alt=""><figcaption></figcaption></figure>

3. Go back to the Shopify admin page > **Online stores** > **Themes** > **Customize** (the theme you want) > open the page template you want
4. Click **Add section** > find the app block of **Samita Highlights** > click **Add**

<figure><img src="/files/Qq4kCKCqg5Th7Fa9BdJO" alt=""><figcaption></figcaption></figure>

5. In the block content, paste the **shortcode** of the Highlight

<figure><img src="/files/knLyrf86z5AYBbf5FNH6" alt=""><figcaption></figcaption></figure>

6. Drag and drop the block the change the position of the badge on the product
7. Click **Save** to update the changes in the theme editor<br>

***

### Display Highlights for logged-in customers

**Step to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Navigate to the **Customer display condition** section > **Add another condition** > Set up the condition as below: ***Customers – Is Logged In***

<figure><img src="/files/hPOZP6KpdVyxv3wArGmI" alt=""><figcaption></figcaption></figure>

3. Scroll down to the **Product page** section > Turn on the setting there

<figure><img src="/files/s1zJxqz8TPlSamW9VIZZ" alt=""><figcaption></figcaption></figure>

4. Click **Save** to update the changes

On the front store, only customers who logged into the customer account can see the highlight on the product page.

***

### Display Highlights for tagged customers

This setting allows you show the Highlight on the front store and only customers with specific tag can see it.

**Steps to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Navigate to the **Customer display condition** section > **Add another condition** > Set up the condition as below: ***Customer tag – is equal to > set up the tag you want customers to login with***

<figure><img src="/files/Tv25YJOVlLc82qmWsJJZ" alt=""><figcaption></figcaption></figure>

3. Scroll down to the **Product page** section > Turn on the setting there.
4. Click **Save** to update the changes

{% hint style="info" %}
Note: The condition is case-sensitive. Make sure you enter the correct
{% endhint %}

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display Highlights at a specific position

Our app provides you the shortcode of the Highlight that allows you to place it at any position you want.

{% hint style="warning" %}
Note: Only use the short code when you want to place it in a specific position.
{% endhint %}

**Steps to manage**

1. From the app admin page, click **Trustbadge Plus** > **Highlight** tab > Open the Highlight you want to edit.
2. In the **Placement** tab > Navigate to the **Shortcode** section > **Copy** the code showing there:

<figure><img src="/files/fmF2HP41kjMyxz4glM2D" alt=""><figcaption></figcaption></figure>

3. Go back to the Shopify admin page > **Online stores** > **Themes** > **Customize** (the theme you want) > open the page template you want
4. Click **Add section** > find the app block of **Samita Highlights** > click **Add**

<figure><img src="/files/Qq4kCKCqg5Th7Fa9BdJO" alt=""><figcaption></figcaption></figure>

5. In the block content, paste the **shortcode** of the Highlight

<figure><img src="/files/knLyrf86z5AYBbf5FNH6" alt=""><figcaption></figcaption></figure>

6. Drag and drop the block the change the position of the badge on the product
7. Click **Save** to update the changes in the theme editor

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Disable/enable Hightlight(s) on front store

You can activate or deactivate the highlight on the front store via this setting in the app.

### **Step to manage**

1. Go to the app > **Trustbadges Plus** > **Highlight** tab
2. Tick on the Highlight you need > Select one of 2 options **Set as draft** or **Set as active** (depending on your choice)

<figure><img src="/files/9wvyvMKvXf12duWGywxc" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Delete/Duplicate Highlight(s)

## **Delete Highlight(s)**

**Step to manage:**

1. Go to the app > **Trustbadges Plus** > **Highlight** tab
2. Tick on the Highlight you want to delete > Click on the **Delete** button

Then the selected Highlights are removed completely from the list

<figure><img src="/files/BIwQJGKNWQ8Qghr3FmhS" alt=""><figcaption></figcaption></figure>

Or you simply just need to click on this **Delete** icon:

<figure><img src="/files/QqxaYFXHyHnVgX6z6Zgq" alt=""><figcaption></figcaption></figure>

***

## **Duplicate Highlight(s)**

**Step to manage**

1. Go to the app > **Trustbadges Plus** > **Highlight** tab
2. Tick on the Highlight you want to delete > Click on the **Duplicate** button

The copied Highlight(s) are created immediately in the Highlight list in the app.

<figure><img src="/files/kaaLffraWBRVsepFxm2F" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Display Highlights for logged-in customers

## **Step to manage**

1. From the app admin page, click **Highlights** > open the Highlight you want
2. In the **Placement** tab > Navigate to the **Customer display condition** section > Click **Add another condition**
3. Set up the condition as below: ***Customer – Is Logged In***
4. Click **Save** to update the changes

On the front store, only customers who logged into the customer account can see the highlight on the product page.

<figure><img src="/files/dSdwZiFDCQPxB43eXT0h" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create a new banner

#### **Create a new banner**

**Steps to manage**

1\. Open the app > Choose **Banners** > Click the Create banners button > Choose **Banner Type** > start setting up

<figure><img src="/files/f32aNGBkGc5NBV8M97ke" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/NKcl41PG7kMDjD3ZJBbc" alt=""><figcaption></figcaption></figure>

2\. In the **Design** sections, click on **Section 1** of the banner > click **Add element** > select one of the content types: **Line break, Message, Button, Image, Countdown**<br>

{% hint style="info" %}
You can add more than one section (click **Add Group**) to build a banner that rotates through multiple groups of content. See [Create a dynamic banner](/banners/create-a-dynamic-banner) for details.
{% endhint %}

<figure><img src="/files/4Ir6dnTdaxJlstrxe4hW" alt=""><figcaption></figcaption></figure>

3\. For each element type, you can configure the text and color. For example, click on **Message** to add text to the banner

<figure><img src="/files/DHMVIe7WPMz8d0WmeEA8" alt=""><figcaption></figcaption></figure>

4\. In **Banner configuration** sections, tick on the checkbox **Bar Clickable** and **Include Close Button** \[optional]

<figure><img src="/files/vDmobtiX5sWgAgIBXjoh" alt=""><figcaption></figcaption></figure>

5\. In the **Design** section, configure the design of the color of the banner bar, text, padding, and the Interval Between Bar Display

<figure><img src="/files/l7VRVg1p0IyklYANeeHG" alt=""><figcaption></figcaption></figure>

6\. Customize the effects and animations of the banner

<figure><img src="/files/sUWmtrqgzdDtDpXmju8e" alt=""><figcaption></figcaption></figure>

7\. Select A Display Position for banner

<figure><img src="/files/hcl1LKzYZdoLjxbPVpHc" alt=""><figcaption></figcaption></figure>

8\. Configure banner display conditions

<figure><img src="/files/NBDAL1SNKPiwB2V45GKr" alt=""><figcaption></figcaption></figure>

9\. Click **Save**

***

## Display the banner on front store

Please view [this guide](https://help.samita.io/docs/product-label/banners/display-the-banner-on-the-front-store/) to know more

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Create a dynamic banner

## **What makes a banner dynamic**

A dynamic banner doesn't have to show just one static message. You can:

* Add **multiple rotating groups (sections)** of content that cycle automatically, timed with **Interval Between**, **Time per group**, and **Fade in**
* Turn on **Infinite Scroll** to make the banner content scroll continuously, like a marquee
* Add a **Countdown** element with its own styling and an action that runs automatically when the countdown ends

## **Steps to manage**

1\. Open the app > click **Banners** > click the **Create banner** button. If you want the banner content to scroll continuously (marquee style), in **Infinite Scroll** choose **Select**. Leave it deselected if you'd rather rotate through multiple groups of content (see step 4).

<figure><img src="/files/sNhCNsQA7SVdZJpgZKe5" alt=""><figcaption></figcaption></figure>

2\. In the **Elements** sections, click on **Section** **1** of the banner > click **Add Element** > Select one of the content types: **Line break, Message, Button, Image, Countdown.** For example, click Message to create Message for the banner

<figure><img src="/files/3daEK8crSqVxBrMidAQg" alt=""><figcaption></figcaption></figure>

3\. For each element type, you can configure the text and color. For example, click on **Message** to add text to the banner

{% hint style="info" %}
**Countdown** is a first-class element type of its own (it's different from a `{countdown}` text variable used in badges/labels). It has independent font/color styling for the label text and for the digits, per-digit border/background/padding, its own **Start**/**End** date, and a **When countdown timer end** action — **Do nothing** or **Hide countdown block**.
{% endhint %}

<figure><img src="/files/huPn7ylSOOyC0hPg8aAa" alt=""><figcaption></figcaption></figure>

4\. To rotate through more than one group of content, click **Add Group** to create additional sections (Section 2, Section 3, ...), then adjust the timing:

* **Interval Between Bar Display** – time between rotating groups
* **Time Per Group** (shown as **Scroll speed** when Infinite Scroll is selected) – how long each group is shown. For example, if it's set to 4 seconds, each group has 4 seconds on screen before the next one shows
* **Time For The Bar To Fade In** – the fade-in transition used between groups

<figure><img src="/files/Kot3Z4c81vBYJJfDHty5" alt=""><figcaption></figcaption></figure>

5\. Select A Display Position for banner

<figure><img src="/files/8dvDOMci1PESovBxEDCB" alt=""><figcaption></figcaption></figure>

6\. Configure banner display conditions

<figure><img src="/files/BF0yZFFgCxaI89I940bX" alt=""><figcaption></figcaption></figure>

7\. Click **Save**

## **Tutorial video**

{% embed url="<https://www.youtube.com/watch?v=BqWVMzGvEsk>" %}


# Display banner at specific position

## **Step to manage**

**In the Samita app:**

1. Open the app > click **Banners** > open the banner or create a new one
2. Click the P**lacement,** in **Select A Display Position >** select **Custom**
3. In P**lacement, scroll down** > **Shortcode** > **Copy** shortcode. With **shortcode**, you can display banners anywhere on your website.
4. Click the **Display** icon on the left sidebar > Copy the Shortcode of the banner

<figure><img src="/files/EFAYAUvoxQVBJkjKeEKJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TEEsQDu5M6pd90unlqVA" alt=""><figcaption></figcaption></figure>

**On the Shopify admin page:**

1. From the Shopify admin page, click **Online store** > **Themes** > click **Customize** button of the theme you want to work on
2. Open the page template (Ex.**Homepage**)
3. On the left, click **Add section** > **Apps** > select **Samita banner**
4. Paste the shortcode of the banner to the section
5. Drag/drop the app section to change the position of the banner on the page
6. **Save**

<figure><img src="/files/g62c3nMnDN5XXot183hn" alt=""><figcaption></figcaption></figure>


# Configure banner display conditions

With the banner feature in Sami AI Product Labels & Badge, you can combine multiple display conditions to create highly targeted campaigns that match your business strategy. Show different banners bas

## Display the banners on all pages on the site

### **Steps to manage**

1. Open the app > click **Banners** > open the banner or create a new one
2. Click the **Placement**
3. In the **Conditions** parts, skip this part and the banner will automatically display on all pages
4. In the field under the **Conditions** field > Select **Display on both desktop and mobile browsers**. The banner will always show up on all pages of the site
5. Click **Save**

<figure><img src="/files/tVk5nEAgJ38wd41s2Oyo" alt=""><figcaption></figcaption></figure>

***

#### Set up conditions to display the banners on specific pages

Currently, the app allows you to set up conditions to show a banner on the front store.

We can show banners with selected pages, languages, countries, products, product tags, collections, customers, or customer tags.

### **Step to manage**

1. Open the app > click **Banners** > open the banner or create a new one
2. Click the **Placement**
3. Click **Add another condition** button > Set the condition with pages, customers, or products based on your needs. For example: ***Page – is equal to – Collection page***
4. If you add multiple conditions, please check the if **Products must match:** **all conditions** or **Any condition**.
5. Select **where to display**
6. Click **Save**
7. Check the result on the front store

<figure><img src="/files/aAbJ2ZXEF11NJujTuqa7" alt=""><figcaption></figcaption></figure>

> **Products must match all conditions or any condition.**\
> – If you select "all conditions", products must match all the conditions added\
> – If you select "any condition", products must match at least one of the conditions

***

## Display a banner at a customized position on the front store

You can use the shortcode to display the banner at a specific position.

### **Step to manage**

**In the Samita app:**

1. Open the app > click **Banners** > open the banner or create a new one
2. Click the P**lacement,** in **Select A Display Position >** select **Custom**
3. In P**lacement, scroll down** > **Shortcode** > **Copy** shortcode. With **shortcode**, you can display banners anywhere on your website.
4. Click the **Display** icon on the left sidebar > Copy the Shortcode of the banner

<figure><img src="/files/EFAYAUvoxQVBJkjKeEKJ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TEEsQDu5M6pd90unlqVA" alt=""><figcaption></figcaption></figure>

**On the Shopify admin page:**

1. From the Shopify admin page, open the page/template you want to add to the banner
2. Paste the Shortcode of the banner
3. Save the changes
4. Check the result on the front store

<figure><img src="/files/bdQoVG8Nwm2l6F19KVZQ" alt=""><figcaption></figcaption></figure>

**On the Shopify admin page:**

1. From the Shopify admin page, click **Online store** > **Themes** > click **Customize** button of the theme you want to work on
2. Open the page template (Ex.**Homepage**)
3. On the left, click **Add section** > **Apps** > select **Samita banner**
4. Paste the shortcode of the banner to the section
5. Drag/drop the app section to change the position of the banner on the page
6. **Save**

<figure><img src="/files/g62c3nMnDN5XXot183hn" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xc8MsGbsU8MfAcRkipdq" alt=""><figcaption></figcaption></figure>


# Display banners based on market (language, country, customer, etc.).

Target the right audience by displaying banners based on market-specific conditions such as language, country, customer segments, and other custom criteria. Deliver personalized messages that improve.

Banners use the same full matching-conditions engine as Badges/Labels and Highlights, so you can combine any of the conditions below (Page, Language, Country, Products/Product tag, Collections, Customer/Customer tag) to target the right audience — this isn't limited to the simpler Trust Badge conditions.

#### Page display conditions

Show banners only on specific pages of your store, such as the homepage, collection pages, product pages, or cart page.

#### Product & product tag display conditions

Display banners for specific products, or for any product carrying a chosen product tag, so promotions only show where they're relevant.

#### Collections display conditions

Show banners on products that belong to specific collections.

#### Customer display conditions

Show banners only to specific customer groups based on account status, tags, customer segments, and other customer-related conditions.

<figure><img src="/files/UigqnTdZkax8AVsbuCLd" alt=""><figcaption></figcaption></figure>

#### Language Display Conditions

Display banners based on the visitor's selected language. Show localized content, promotions, and announcements to ensure customers see the most relevant message in their preferred language.

<figure><img src="/files/2Bu4eTHHn871vJoIBdWJ" alt=""><figcaption></figcaption></figure>

#### Country Display Conditions

Display banners based on the visitor’s country or region. Show location-specific promotions, announcements, and content to deliver a more relevant shopping experience for customers in different markets.

<figure><img src="/files/Igon7ppsaKJ6jOj5DNXe" alt=""><figcaption></figcaption></figure>


# Activate/Deactivate banner on the front store

You can activate or deactivate the banner on the front store via this setting in the app.

**Solution 1:**

1. Open the app > click **Banners**
2. Tick on the checkbox of the banner(s)
3. Click Set as active to activate the banner on the front store. Click **Set as draft** to deactivate the banner on the front store.

<figure><img src="/files/wxbNQrMyHCjUw7MZytGr" alt=""><figcaption></figcaption></figure>

**Solution 2:**

1. Open the app > click **Banners**
2. Click on the banner you want to disable.
3. In the banner setting, click on the **More options** button of the **Save** button, and choose **Set as draft.**

<figure><img src="/files/DMhRcnjsvKfczQgzEtD9" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Duplicate banner(s)

This helps you create a copy of the current banner quickly.

1. Open the app > click **Banners**
2. Tick on the checkbox of the banner(s)
3. Click **Duplicate selected banner(s)**
4. A new banner will be created that is the same as the current one. Now you can edit the new banner quickly to complete a new banner

<figure><img src="/files/XgaoYHqxzwxXoYcpuI9O" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Delete banner(s)

**Steps to manage**

1. Open the app > click **Banners**
2. Tick on the checkbox of the banner(s)
3. Click on the **Delete**

<figure><img src="/files/dwHaOu4bBnQaJGdieedF" alt=""><figcaption></figcaption></figure>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Analytics overview

This feature is available only on Diamond plan.

{% hint style="info" %}
Analytics tracks how your badges and labels influence shopper behavior on the front store — add to carts, orders, and revenue.
{% endhint %}

<figure><img src="/files/FKHwVg6iadVkEn6zS6dM" alt=""><figcaption></figcaption></figure>

## Where to find it

A quick snapshot of the same 3 metrics (Total Add to Cart, Total Orders, Total Revenue) is also shown at the top of the app **Dashboard**. For the full breakdown, filters, and period comparison, click **Analytics** in the left navigation.

## What you can see

The Analytics dashboard shows 3 core metrics for the period you select:

* **Total Add to Cart** — how many times a product displaying one of your badges/labels was added to cart.
* **Total Orders** — how many orders included at least one product displaying a badge/label.
* **Total Revenue** — the revenue generated from those orders.

Each metric card includes a trend chart so you can see how the numbers move day by day within the selected period.

## Filter by badge/label

By default, the dashboard shows combined data for **All badges & labels**. Use the filter dropdown to switch to a single badge/label and see its individual performance — useful for comparing which badge design or promotion drives the most add-to-carts, orders, or revenue.

## Compare periods

Use the date range picker to choose the period you want to analyze, and set a **compare-to** period (e.g. this month vs last month). The dashboard will show both periods side by side along with the percentage of growth or decline for each metric.

{% hint style="warning" %}
Analytics only counts activity that happens **after** the app embed is enabled on your theme — see [Integrate the app into theme](/theme-integration/integrate-the-app-into-theme). Data won't be available for periods before the app was tracking on your storefront.
{% endhint %}

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Why my Badges or Labels doesn’t show on the product page?

After you create badges/labels and select products to show but there is none of them appears on the front store with products, please follow the steps below to solve the situation.

**Solution 1: Make sure that the app embeds is enabled on your theme.**

To show the badge/labels on the front store, firstly please enable app embeds on your theme.

Learn more about App embeds [here](https://help.shopify.com/en/manual/online-store/themes/theme-structure/extend/apps#app-embeds).

1\. From the admin app, go to **Theme Integration**

2\. Select a theme to install the app and then click on the Go to Theme editor button<br>

<figure><img src="/files/L5MNqzULiwEM0czvqjfr" alt=""><figcaption></figcaption></figure>

3\. In the theme editor, enable the app embed.<br>

<figure><img src="/files/LBLdcEc8ppGlbaN8reTS" alt=""><figcaption></figcaption></figure>

4\. Click **Save** to update the changes

5\. Reload the page and check again.

**Solution 2: Check the product selected to show the badges/label**

Please make sure the products you want to show the badge/label match the conditions in the app.

* If you select **all conditions**, products must match all the conditions added
* If you select **any condition**, product must match at least one if the conditions

<figure><img src="/files/a4VbwSmJiYgHCK1TwdDp" alt=""><figcaption></figcaption></figure>

* The data entered in the condition field is case-sensitive.

For example: The condition *Product title contains **D**ress but the product you check has title “Modern Kimono **d**ress”*

-> The product doesn’t match the conditions -> the badge/label doesn’t show up on the product image in the front store.

<figure><img src="/files/y3NR3dQsclKp1w84dN9M" alt=""><figcaption></figcaption></figure>

**Solution 3: Check the visibility date of the label/badge**

1. From the app admin page, click **Badges and Labels**
2. Open the label/badge detail you want to edit
3. Click **the Settings** icon on the left > scroll down to the **Visibility date**
4. Enter the **Start** date-hour and **End** date-hour
5. Click **Save**

<figure><img src="/files/i6nzoUM9fSos8G2q7cna" alt=""><figcaption></figcaption></figure>

**Solution 4: If the 2 above solutions don’t help, please don’t hesitate to contact us at** [**support@samita.io**](https://help.samita.io/support@samita.io)**.**

We appreciate your patience and we will try our best to help you solve the issue.\ <br>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# What to do if Badges or Labels doesn’t show on the position I want?

You can change the position of the product badge/label on the front store based on your need.

Please follow this guide: [Change the position of badges/labels on the front store](/badges-and-labels/change-the-position-of-badges-labels-on-the-front-store)

Specifically, there is a **Custom** position option that helps you customize the position of the badge/label.

* Click **Use Custom Position** to customize the position on the front store based on your desire

– Drag the slide bar to adjust the position of the label/badge

– Click the exchange icon to change to top or bottom alignment

<figure><img src="/files/CL30boC10XrGacfBidMp" alt=""><figcaption></figcaption></figure>

If you also want to anchor the badge/label to a specific element on the page, see [Use ID/class to change the position of badge/label on front store](/badges-and-labels/use-id-class-to-change-the-position-of-badge-label-on-front-store).

But after the changes the badge/label is not placed at the position you want, or maybe it looks good on the product page but not beautiful on other pages, please don't hesitate to contact us at [support@samita.io](https://help.samita.io/support@samita.io).

Our team will help you adjust it ASAP to make it look nice on your store.


# How to add a new image?

1. From the app admin page, click “Change” in the image of the Label/Badge<br>

   <figure><img src="/files/VdwtSYJv4gRf1lD2bNHp" alt=""><figcaption></figcaption></figure>
2. Choose “Select Image” to change the Label/Badge<br>

   <figure><img src="/files/8oH5F5gxEKnWCvMeYY90" alt=""><figcaption></figcaption></figure>
3. Click here to Select the image<br>

   <figure><img src="/files/xrTOKIqIUXaSvuxrTLEp" alt=""><figcaption></figcaption></figure>
4. Click Save to update the changes

**Then go to the front store to check the result**<br>

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# Where to find Shopify’s collaborator request code for access?

In many cases, the developers will need to get access to your admin page to support you better with the issues you are dealing with. Some stores are set with code so that someone can send the access request. In case you are confused in finding the code, this article will help you.

**What is the Collaborator Request Code?**

As a store owner, you can share access to your store with another person – a collaborator. There are 2 ways to grant permission to your store:

* Anyone can send you an access request via email where you can approve for.
* Only people who knows your **4-digit code** (collaborator access code). We recommend enabling this option as it provides more security to your store.

<figure><img src="/files/x8YtS9UDqdDUiqKt10YA" alt=""><figcaption></figcaption></figure>

**Where to find Collaborator Request Code?**

To find the 4-digit access code, please follow the steps below:

1. Navigate to your **Shopify store admin > Settings > Users and permissions.**
2. Scroll down to the section **Collaborators**, and there’s your code.
3. Copy the 4-digit code in Collaborator Request Code field.

<figure><img src="/files/Oy1kqWPAidhaPwf0cU9x" alt=""><figcaption></figcaption></figure>

Sharing this code does not mean automatically grant someone permission to your store. This is only used for someone you allow to send the **Collaborator request.**

If you cannot figure it out, please do not hesitate to contact us via email <Support@samita.io>. We are happy to help!

> ### **Need support?**
>
> If you do encounter any difficulty while proceeding these steps, don’t show any hesitation to contact us promptly via the email address [support@samita.io](https://help.samita.io/support@samita.io)


# How custom CSS ?

## GUIDE: HOW TO FIND CSS CLASSES AND ADD CUSTOM CSS

This document is written for **end users and beginners**. It explains how to:

* Find (inspect) **CSS classes** on a website
* Add **custom CSS code** to change the website appearance

It applies to most modern websites such as **Shopify, WordPress, and custom-built websites**.

***

### 1. What is CSS?

**CSS (Cascading Style Sheets)** controls how a website looks, including:

* Colors
* Font sizes and styles
* Spacing (margin, padding)
* Alignment and layout

CSS works by targeting **HTML elements using selectors** such as class names, IDs, or tags.

Example:

.title {color: red;font-size: 20px;}

***

### 2. How to find a CSS class on a website

#### Step 1: Open the page you want to edit

Go to the page that contains the element you want to modify (text, button, product title, etc.).

***

#### Step 2: Open Inspect / Developer Tools

You can do this in one of the following ways:

* **Right-click** on the element → select **Inspect**
* Or use keyboard shortcuts:
  * **Mac:** `Command (⌘) + Option + I`
  * **Windows:** `Ctrl + Shift + I`

***

#### Step 3: Identify the CSS class

After inspecting, you will see HTML code similar to this:

\<div class="product-title text-bold">Men's T-Shirt\</div>

👉 In this example:

* `product-title` is a **CSS class**
* `text-bold` is another **CSS class**

<figure><img src="/files/M3tnTs7UZujxwg0UmYAF" alt=""><figcaption></figcaption></figure>

⚠️ Notes:

* One element can have **multiple classes**
* Classes are separated by **spaces**

***

#### Step 4: Check which CSS rules apply

On the right side (in the **Styles** panel), you will see the CSS rules currently applied:

.product-title {font-size: 18px;color: black;}

👉 Prefer using **clear and meaningful class names** that are less likely to change.

***

### 3. How to write CSS using a class

#### Basic syntax

.class-name {property: value;}

Example:

for this label id 74936:

<figure><img src="/files/r3kHVXupA0kQUWKy9mOg" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2PdcbBeYOFHnTZdokp7a" alt=""><figcaption></figcaption></figure>

***

### 4. Common CSS properties

#### Text & color

color: #000;font-size: 16px;font-weight: bold;text-transform: uppercase;

#### Spacing

margin: 10px;padding: 20px;

#### Size

width: 100%;max-width: 1200px;height: auto;

#### Alignment

text-align: center;margin: 0 auto;


# Getting started

Start protecting Shopify storefront content with Sami B2B Lock, Password Protect.

**Sami B2B Lock, Password Protect** lets you control who can view content and purchase products in your Shopify store. Use a Lock to protect a whole website, selected products, collections, pages, blogs, custom URLs, the cart page, or checkout—then decide which visitors can continue and what everyone else sees.

The app is designed for stores that need experiences such as wholesale-only pricing, members-only pages, private product launches, password-protected collections, customer-specific content, or checkout restrictions.

## What you can do

With Sami B2B Lock, Password Protect, you can:

* Protect your whole website or a specific part of your storefront.
* Lock all products, selected products, variants, product tags, vendors, collections, pages, blogs, articles, URLs, the cart page, or checkout.
* Grant access with customer login, customer tags, B2B customer status, selected customers, passcodes, secret links, subscriptions, confirmation prompts, and other conditions.
* Limit access by date, weekly schedule, country, IP address, storefront language, order history, cart contents, cart quantity, or cart total.
* Hide price, Add to cart, product listings, navigation links, or search-engine visibility for blocked visitors.
* Send visitors to another page after access is granted, or add tags to an eligible Shopify customer account.
* Let visitors request a passcode or secret link, then review and send access from the app.
* Customize the Lock's messages, colors, templates, and translations for each storefront language.

## How a Lock works

Every Lock has three parts:

| Part                | What it decides                  | Example                                              |
| ------------------- | -------------------------------- | ---------------------------------------------------- |
| **Content to lock** | What needs protection            | A wholesale collection or one product variant        |
| **Access rules**    | Who is allowed through           | A signed-in customer with the `wholesale` tag        |
| **Lock behavior**   | What blocked visitors experience | Hide price and Add to cart, then show a login prompt |

When a visitor opens protected content, Sami Lock checks the configured conditions. If all required conditions are satisfied, the visitor can continue. If not, the Lock applies the selected behavior, such as showing a message, hiding product information, displaying a passcode field, or redirecting the visitor.

{% hint style="info" %}
For Checkout Locks, conditions work differently: they decide when the checkout error message should appear and checkout should be blocked. See [Checkout](/b2b-lock-password-protect/content-to-lock/checkout) for the complete flow.
{% endhint %}

## Before you begin

Before creating a Lock, make sure you have:

1. Installed the app in the Shopify store where the Lock will be used.
2. Enabled the **Sami Lock** app embed on the Shopify theme you want to protect.
3. Identified the storefront content to protect and the customer audience that should be allowed through.
4. Prepared any Shopify data required for the rule, such as customer tags, products, collections, or test customer accounts.

{% hint style="warning" %}
Creating a Lock in the app does not affect the storefront until the Sami Lock app embed is enabled on the relevant theme.
{% endhint %}

## Start here

Follow these guides in order when setting up the app for the first time:

1. [Install the app](/b2b-lock-password-protect/quick-start/installation) from the Shopify App Store and approve its permissions.
2. [Enable the app embed](/b2b-lock-password-protect/quick-start/enable-app-embed) from the app Dashboard so Sami Lock can run on the storefront.
3. [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart) with a simple product and logged-in-customer example.
4. [Learn how locks work](/b2b-lock-password-protect/quick-start/how-locks-work) before creating more advanced rules.

## Choose the right guide

After the initial setup, use the guide that matches your goal:

| Your goal                                                                | Start with                                                                                         |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| Protect products, variants, collections, pages, blogs, URLs, or checkout | [Content to lock](/b2b-lock-password-protect/locks/overview#content-types-you-can-lock)            |
| Decide which customers can access protected content                      | [Access rules overview](/b2b-lock-password-protect/access-rules/overview)                          |
| Hide prices, menus, product links, or configure redirects                | [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)                        |
| Send passcodes or secret links after a visitor asks for access           | [Request access overview](/b2b-lock-password-protect/request-access/overview)                      |
| Change colors, templates, messages, or translations                      | [Design & customization](/b2b-lock-password-protect/design-and-customization/colors-and-templates) |
| Check an issue with the Lock or app embed                                | [FAQ](/b2b-lock-password-protect/help/faq)                                                         |

## Need help?

If you encounter an issue while setting up a Lock, start with [Troubleshooting & FAQ](/b2b-lock-password-protect/help/faq). You can also contact <support@samita.io> with your store URL, Lock name, affected page, expected result, actual result, and a screenshot.


# What's new

Latest Sami B2B Lock product updates.

This page summarizes the latest product changes that affect Lock setup and daily use. New releases are added at the top, so the most recent changes are always shown first.

## Version 4.0.0

Released June–July 2026.

* New Lock Details interface with support for multiple conditions.
* Improved Checkout Lock behavior and condition handling.
* Weekly schedule conditions.
* Subscribe to unlock with Shopify, Klaviyo, and Mailchimp.
* Confirmation prompt access.
* IP address and shop domain conditions.
* Purchased items and order quantity conditions.
* Additional customer and order access controls.

{% hint style="info" %}
Some features may depend on your app plan or Shopify store capabilities. Open the relevant feature in the app to see whether it is available for your store.
{% endhint %}

## Related docs

* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Weekly schedule](/b2b-lock-password-protect/access-rules/weekly-schedule)
* [Subscribe to unlock](/b2b-lock-password-protect/access-rules/subscribe)
* [Checkout](/b2b-lock-password-protect/content-to-lock/checkout)


# Installation

Install Sami B2B Lock, Password Protect from the Shopify App Store and open it for the first time.

Sami B2B Lock, Password Protect installs like any other Shopify app, directly from the Shopify App Store.

1. Open the app's listing page: [Sami B2B Lock, Password Protect](https://apps.shopify.com/b2b-wholesale-lock-hide-price).
2. Click **Add app** (or **Install app**) and sign in to your Shopify admin if prompted.
3. Review the permissions the app requests — these let it read the products, collections, pages, and customers you'll use to build locks, and let it update your theme to deliver the lock screen on your storefront. Click **Install app** to approve them.
4. Shopify redirects you back into the app, which opens on the **Locks** page inside your Shopify admin.

{% hint style="info" %}
For a plain-language summary of exactly what each permission is used for, see [Permissions and data](/b2b-lock-password-protect/reference/permissions-and-data).
{% endhint %}

The app isn't protecting your storefront yet at this point — one more setup step is required before any lock can take effect.

## Next steps

Continue to [Enable the app embed](/b2b-lock-password-protect/quick-start/enable-app-embed) to turn on storefront protection.


# Enable the app embed

Turn on the theme app embed so Sami B2B Lock, Password Protect can actually enforce locks on your storefront.

Sami B2B Lock, Password Protect protects your storefront through a Shopify theme app extension embed. In your theme editor's App embeds list, you'll see it listed as **Sami Lock**. Turning this embed on is what lets the app run on every storefront page and actually enforce your locks.

{% hint style="warning" %}
Locks you create in the app won't take effect on your storefront until this embed is turned on. Everything else in the app will work — you can still build and save locks — but shoppers won't see them enforced until you complete this step.
{% endhint %}

## Turn on the embed

1. Open the app. On the dashboard, find the **Setup guide** card and its step 2, **Integrate with theme** — it spells out that "The app will not work on the online store until you enable it on your theme."

   <figure><img src="/files/aqEe7tZR6OhhBQOl1v22" alt="Step 2 of the app&#x27;s Setup guide, Integrate with theme, with its Intergrate theme button"><figcaption><p>Step 2 of the dashboard's Setup guide takes you straight to the right place.</p></figcaption></figure>
2. Click **Intergrate theme**. This opens your theme editor in a new tab, already scrolled to the **App embeds** panel with the app's embed filtered in — you don't have to hunt for it.
3. Find **Sami Lock** in the App embeds panel and switch its toggle on.

   <figure><img src="/files/fSDQ626lbVoBUvdDaSlC" alt="Shopify theme editor App embeds panel with the Sami Lock embed and its toggle"><figcaption><p>Turn on the Sami Lock embed in the theme editor's App embeds panel.</p></figcaption></figure>
4. Click **Save** in the theme editor to apply the change.

{% hint style="info" %}
The embed has no settings of its own — the panel says "This app embed doesn't have customizable settings." Everything about how your locks look and behave is configured inside the app, not here. All you do in the theme editor is switch the embed on.
{% endhint %}

## Enabling it on another theme

The button in step 2 targets the theme you're currently working with. If you run more than one theme — say a live theme plus a draft you're preparing — open the theme editor for each theme you want protected and turn the **Sami Lock** embed on there too.

{% hint style="info" %}
Themes you create after installing the app are covered automatically — you don't need to repeat this setup for every new theme, only for themes that existed before you enabled the embed on them (or if you want to double-check a newly published theme).
{% endhint %}

## Next steps

* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)
* [How locks work](/b2b-lock-password-protect/quick-start/how-locks-work)


# Create your first lock

Build and verify your first lock in a few minutes, using a real example — hiding a product's price from guests.

This walkthrough builds one simple, common lock: hide the price and **Add to cart** button on a single product so only logged-in customers can see them. It's a good first lock because it uses the three pieces every lock is built from — content to lock, an access rule, and a lock behavior — without any extra complexity.

Make sure you've already [enabled the app embed](/b2b-lock-password-protect/quick-start/enable-app-embed) on your theme, or the lock you create here won't take effect on your storefront yet.

{% stepper %}
{% step %}

### Open Locks and start a new lock

Open the app and go to the **Locks** page, then click **Create Lock**.

<figure><img src="/files/Aaz1PJ2IRkwJ4qbyC7fI" alt="Locks page with the Create Lock button highlighted"><figcaption><p>Start a new lock from the Locks page.</p></figcaption></figure>
{% endstep %}

{% step %}

### Name your lock

Give the lock a name you'll recognize later, for example "Members-only pricing." This name is only for your own reference in the admin — shoppers never see it.
{% endstep %}

{% step %}

### Choose Products as the content to lock

Set **Content to lock** to **Products**, then pick the single product you want to protect from the product picker.

<figure><img src="/files/Qr8dcvbFSeFvyRzXwomb" alt="Content to lock picker with Products selected and one product chosen"><figcaption><p>Pick Products as the content type, then choose the specific product to protect.</p></figcaption></figure>
{% endstep %}

{% step %}

### Add the Logged-in customers access rule

Add an access rule and choose **Logged-in customers**. Leave it set to match **If** the visitor is signed in — this is the default and the setting this example needs.

<figure><img src="/files/tZu8Vjxptiz5GmRqSioK" alt="Access rule picker with Logged-in customers selected"><figcaption><p>Add the Logged-in customers access rule to the lock.</p></figcaption></figure>
{% endstep %}

{% step %}

### Turn on Hide price and Add to cart

In the lock's behavior settings, turn on both **Hide price** and **Hide Add to cart**. Guests who don't pass the access rule will see the product page with the price and button replaced, instead of being blocked entirely.
{% endstep %}

{% step %}

### Save the lock

Review the summary of what you've configured — content, access rule, and behavior — then click **Save**.

<figure><img src="/files/QnyrZphDmzJlDVflAVnI" alt="Lock summary screen before saving, showing content, access rule, and behavior"><figcaption><p>Review the lock summary before saving.</p></figcaption></figure>
{% endstep %}

{% step %}

### Verify it on your live storefront

Open an incognito or private browser window and visit the product page on your live storefront. You should see the price and **Add to cart** button replaced with a "Login to see price" / "Login to Add to cart" prompt instead of the normal buy box.

Now log in with a customer account (in that same window, or any browser where you're signed in) and reload the product page. The price and **Add to cart** button should reappear normally, since you now pass the Logged-in customers rule.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
If the price and Add to cart button stayed hidden for the signed-out visitor and reappeared once you logged in, your first lock is working correctly on both sides — denied and allowed.
{% endhint %}

## Next steps

* [How locks work](/b2b-lock-password-protect/quick-start/how-locks-work)
* [Locks overview](/b2b-lock-password-protect/locks/overview)


# How locks work

The three building blocks behind every lock in Sami B2B Lock, Password Protect — content, access rules, and behavior.

Every lock you create in Sami B2B Lock, Password Protect is made of the same three pieces. Once these three concepts click, every other page in these docs is just a variation on one of them.

## 1. Content to lock

This is *what* you're protecting: your whole website, specific products or variants, collections, pages, blogs and articles, a specific URL, or checkout. A lock always protects exactly one content type, and you can carve out exceptions with an exclude list (specific URLs or products that stay open even though the rest of that content type is locked).

See [Locks overview](/b2b-lock-password-protect/locks/overview) for the full list of content types and how to combine them across multiple locks.

## 2. Access rules

This is *who or what* must be true about the visitor before the content unlocks. Access rules check things like whether the visitor is logged in, has a specific customer tag, knows a passcode, is browsing from a particular country, or has a certain product in their cart.

Rules are grouped into **access keys**:

* Rules inside the **same** access key are combined with **AND** — the visitor must satisfy every rule in that key. Use this to build something like "must be logged in AND tagged wholesale."

Most rules also have an **If / Unless** setting: **If** means the rule is satisfied when the visitor matches the condition, and **Unless** inverts that — satisfied when the visitor does *not* match. This doesn't apply to the action-based rules (Passcode, Secret link, Subscribe to unlock, Confirmation prompt, Custom liquid), since those work through their own verification step rather than a simple yes/no match.

See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of rules, and [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules) for more on how multiple conditions are evaluated.

## 3. Lock behavior

This is *what actually happens* to a visitor who doesn't pass your access rules. Depending on the content type, that can mean:

* The price and/or **Add to cart** button are hidden, with a message or styled button shown in their place.
* A lock screen or message appears asking the visitor to sign in, enter a passcode, subscribe, confirm a statement, or otherwise verify themselves.
* The visitor is redirected to a different page or URL.
* The item is hidden from storefront menus and/or from on-site search and sitemaps, so it's not just blocked but not discoverable either.

You can combine several behaviors on the same lock — for example, hiding a product's price and Add to cart button while also removing it from your navigation menu.

See [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the full list of behaviors and how they interact.

{% hint style="info" %}
Put together, a lock reads like a sentence: "On \[content to lock], require \[access rules], and if the visitor doesn't pass, do \[lock behavior]." The quickstart example builds "On this product, require the visitor to be logged in, and if they're not, hide the price and Add to cart button."
{% endhint %}

## Related docs

* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)


# Locks overview

What a lock is in Sami B2B Lock, Password Protect, and where to go next to build one.

A **lock** is the core building block of Sami B2B Lock, Password Protect. Every lock combines three things:

1. **Content to lock** — what part of your storefront the lock protects (the whole site, specific products, a collection, a page, blog content, a custom URL, the cart page, or checkout).
2. **Access rules** — the conditions a visitor must meet to get through (logged in, tagged, has a passcode, arrived via a secret link, and many more). When you add multiple conditions to an access key, the visitor must satisfy all of them.
3. **Lock behavior** — what happens to the protected content and to blocked visitors (hide price and Add to cart, hide from menus and search engines, redirect, tag the customer, or set how long access is remembered).

The lock editor is two tabs: **Lock setup**, where you name the lock and choose its content type, and **Unlock rules**, where you add access rules and — right alongside them, in the same tab — configure the lock's blocked-visitor behavior. Fill in both tabs, then save. All of your locks live on the [Manage locks](/b2b-lock-password-protect/locks/manage-locks) list, where you can enable, disable, duplicate, preview, or delete them.

{% hint style="info" %}
New to the app? [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart) walks through building one from scratch, and [How locks work](/b2b-lock-password-protect/quick-start/how-locks-work) explains the underlying logic in more detail.
{% endhint %}

## Content types you can lock

Each content type has its own guide with the full setup, including the options specific to that type. Some content types may require a paid plan.

| Content type          | What it protects                                                                                                  | Guide                                                                           |
| --------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Whole Website         | Your entire storefront, with an option to still allow the home page                                               | [Whole website](/b2b-lock-password-protect/content-to-lock/whole-website)       |
| Products and variants | All products, manually selected products, specific variants, or (from the create picker) by product tag or vendor | [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)    |
| Collections           | One or more specific collections                                                                                  | [Collections](/b2b-lock-password-protect/content-to-lock/collections)           |
| Pages                 | Specific storefront pages                                                                                         | [Pages](/b2b-lock-password-protect/content-to-lock/pages)                       |
| Blogs and articles    | An entire blog or specific articles within it                                                                     | [Blogs and articles](/b2b-lock-password-protect/content-to-lock/blogs-articles) |
| Specific URL          | Any custom URL or path on your store                                                                              | [Specific URL](/b2b-lock-password-protect/content-to-lock/specific-url)         |
| Cart page             | The storefront cart page itself                                                                                   | [Cart page](/b2b-lock-password-protect/content-to-lock/cart-page)               |
| Checkout              | Checkout itself, using its own condition builder                                                                  | [Checkout](/b2b-lock-password-protect/content-to-lock/checkout)                 |

## The other two pieces of every lock

Once you've picked what to lock, every lock needs:

* **Access rules** — the conditions that decide who gets through. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue and how multiple conditions are evaluated together.
* **Lock behavior** — what a blocked visitor sees and what happens after someone passes. See [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview).

## Managing your locks

Once you have one or more locks, head to [Manage locks](/b2b-lock-password-protect/locks/manage-locks) to view, enable/disable, duplicate, preview, or delete them, and to use the Quick Setup templates if you're starting from scratch.

## Related docs

* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)


# Manage locks

View, enable, disable, duplicate, preview, and delete your locks from the Locks list.

The **Locks** page is where every lock you create lives. It's the first screen you land on when you open the app, and the place to come back to whenever you need to check on, adjust, or clean up your locks.

<figure><img src="/files/GWU4YoDBpzO4zIwytweE" alt="The Locks list showing several locks with their status, content type, and action icons."><figcaption><p>The Locks list shows every lock you've created, with its status and quick actions.</p></figcaption></figure>

## Viewing your locks

Each row in the list shows a lock's name, its status (**Active** or **Disable**), and the content type it protects. Click anywhere on a row to open that lock's editor and review or change its content, access rules, or behavior. You can filter the list (all, active, disabled) and search to find a specific lock quickly.

## Enabling and disabling a lock

Every lock has a quick toggle to turn it on or off without opening it. An active lock enforces its rules on the storefront immediately; a disabled lock stops protecting its content until you turn it back on, but keeps its full configuration so you can re-enable it later.

<figure><img src="/files/LdnBJ1P81mL82vARBfCi" alt="The enable and disable action icon on a lock row in the Locks list."><figcaption><p>Use the status icon on a lock row to enable or disable it without opening the editor.</p></figcaption></figure>

## Previewing a lock

Each lock row has a **Preview** action that opens the locked page on your live storefront in a new tab, so you can see exactly what a blocked visitor sees before you rely on it.

## Duplicating a lock

Use the **Duplicate** action on a lock row to create a copy of that lock with the same content selection, access rules, and behavior. This is useful when you want to reuse most of a lock's setup but change one detail, like the content it targets or a single access rule, without rebuilding it from scratch.

## Deleting locks

Select one or more locks using the checkboxes, then use the bulk **Delete** action to remove them. Deleting a lock is permanent — the content it protected becomes publicly visible again as soon as it's removed, so review what a lock covers before deleting it.

## Getting started: the first-install setup guide

The first time you open the app, a 3-step setup guide walks you through getting protection live:

1. **Create lock** — build your first lock.
2. **Integrate with theme** — turn on the app embed in your theme so the lock can actually run on your storefront (see [Enable the app embed](/b2b-lock-password-protect/quick-start/enable-app-embed)).
3. **View in storefront** — confirm the lock is working by visiting the protected page.

A progress indicator tracks which of these steps you've completed (for example "1 / 3 Completed").

<figure><img src="/files/PDb1HbSP5uIPNWg1WyL7" alt="The app dashboard&#x27;s Setup guide card showing the three steps and a completion progress bar"><figcaption><p>The Setup guide on the dashboard tracks your progress through the three setup steps.</p></figcaption></figure>

## Quick Setup templates

If you don't have any locks yet, the Locks page shows an empty state with a **Quick Setup** carousel of ready-made templates. Each one pre-fills a working lock that you can review, adjust, and save — a faster starting point than building a lock from a blank editor.

<figure><img src="/files/Qximm0d6WzgGawIKU51r" alt="The Quick Setup carousel on the empty Locks page, showing several template cards."><figcaption><p>The Quick Setup carousel offers ready-made lock templates when you don't have any locks yet.</p></figcaption></figure>

The available templates are:

* **Hide all product price and Add to cart**
* **Lock content with passcode**
* **Use request access**
* **Wholesale-only products** — pre-fills a customer-tag rule for a "wholesale" tag applied to price and Add to cart
* **Selected customers can view page**
* **Lock checkout**

{% hint style="info" %}
Some content types and access rules used by these templates may require a paid plan. If a template needs a feature your current plan doesn't include, the app will prompt you to upgrade before applying it.
{% endhint %}

## Related docs

* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)


# Whole website

Lock your entire storefront behind access rules, with an option to still allow the home page.

The **Whole Website** content type locks every page of your storefront behind the access rules you set, with one exception you control: whether the home page stays open. This is the right choice when you're building a store that should be invite-only, wholesale-only, or gated behind a single login screen across the board.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a clear, descriptive name — you'll see this name in the Locks list, so make it something you'll recognize later (for example, "Whole store login required").

## Choose Whole Website as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Whole Website**.

<figure><img src="/files/511mYgxV8hZkfDuWqCWi" alt="The content picker with Whole Website selected as the content type to lock."><figcaption><p>Select Whole Website in the content picker to protect your entire storefront.</p></figcaption></figure>

5. Optionally tick **Exclude url** and list any paths that should stay public even though the rest of the site is locked — a contact page or a landing page you're running ads to, for example.

{% hint style="info" %}
**Exclude url** is specific to the Whole Website content type. It's the only content type with a URL-level carve-out, which is what makes "lock everything except a few pages" possible in a single lock.
{% endhint %}

{% hint style="warning" %}
Whole Website locks may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule that decides who gets through. For a whole-site lock, **Logged-in customers** or **Passcode** are common starting points — for example, requiring every visitor to sign in with a customer account before browsing anything.
8. Configure the rule's specific settings (see [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of available rules).
9. If you need more than one condition to be true at once, add every required rule to the access key. All configured conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules) for details.

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel. For a Whole Website lock, that panel has a single field:

10. Turn on **Allow access to the home page** if you want visitors to still be able to browse your storefront's home page without meeting any access rule — useful if you want the home page to work as a public landing page while everything else stays locked. Leave it off to lock the home page along with the rest of the site.

<figure><img src="/files/YZjMzFsOd68f6ZeLOAnR" alt="The Allow access to the home page toggle for a Whole Website lock."><figcaption><p>Turn on Allow access to the home page to keep your home page public while locking the rest of the site.</p></figcaption></figure>

11. Decide what else blocked visitors see and what happens once they pass — for a whole-site lock this is usually a full lock screen rather than a hidden price or button. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the available options, such as redirecting visitors after they gain access or tagging their customer account once verified.

## Save

12. Click **Save**. Once the app embed is enabled in your theme, the lock takes effect on your storefront immediately.

{% hint style="success" %}
Your whole storefront is now protected by the rules you configured, with the home page handled according to the toggle you set.
{% endhint %}

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Products

Choose how you want to target products — all of them, specific picks, variants, a tag, or a vendor.

The **Products** content type locks selected products or variants instead of your whole store — the right choice for gating a wholesale catalog, an unreleased product, or any subset of your catalog behind a login, tag, or passcode while the rest of your store stays open.

The content picker breaks products into five targeting methods. Pick the page that matches how you want to select products — each one is a complete guide from creating the lock through saving it:

| Targeting method                                                                           | Best for                                                                         |
| ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| [All products](/b2b-lock-password-protect/content-to-lock/overview/all-products)           | Locking your entire catalog in one go, optionally with exceptions                |
| [Specific products](/b2b-lock-password-protect/content-to-lock/overview/specific-products) | A hand-picked list of individual products                                        |
| [Variants](/b2b-lock-password-protect/content-to-lock/overview/variants)                   | Locking down to one size/color/option instead of the whole product               |
| [Product tags](/b2b-lock-password-protect/content-to-lock/overview/product-tags)           | A catalog that grows over time — newly tagged products are covered automatically |
| [Vendor](/b2b-lock-password-protect/content-to-lock/overview/vendor)                       | Everything from one supplier or brand                                            |

{% hint style="info" %}
Only one targeting method applies per lock. If you need different rules for different subsets of products, create separate locks — for example one lock for a `wholesale`-tagged catalog and a second lock for a specific unreleased product.
{% endhint %}

## Related docs

* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# All products

Lock your entire product catalog in one lock, with optional exceptions.

Choose **All products** when you want a single lock to cover your entire catalog at once — for example, hiding every price and Add to cart button until a visitor logs in, rather than building the same rule product by product.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "All products — login required."
4. On the **Lock setup** tab, in the content picker, choose **Products**, then select **All products**.

<figure><img src="/files/LgCZEaHSu4deO9YmPkmC" alt="The content picker with Products selected and the All products option chosen."><figcaption><p>Choose All products to cover your entire catalog with one lock.</p></figcaption></figure>

## Exclude specific products (optional)

5. Still on the **Lock setup** tab, turn on the exclude option and select any products that should stay unlocked even though the rest of your catalog is locked. This is useful when almost everything should be gated except a handful of always-public items.

<figure><img src="/files/r6CNvLFnAZ3HYRr11wT2" alt="The Exclude specific products toggle and product picker for a Products lock set to all products."><figcaption><p>Turn on the exclude option to keep specific products unlocked when the rest of your catalog is locked.</p></figcaption></figure>

{% hint style="warning" %}
Locking all products may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule — **Logged-in customers** is a common choice for an all-products lock. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
8. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

9. [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) is the most common behavior for a whole-catalog lock — it lets you hide just the price, just the Add to cart button, or both, and show a message or styled button in their place. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for all the available options.

## Save

10. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Specific products](/b2b-lock-password-protect/content-to-lock/overview/specific-products)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Specific products

Lock a hand-picked list of individual products.

Choose **Specific products** when you want to lock a hand-picked set of individual products rather than your whole catalog — for example, a small batch of pre-release items or a handful of products reserved for a particular customer group.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Pre-release drop — passcode required."
4. On the **Lock setup** tab, in the content picker, choose **Products**, then select **Specific products**.

<figure><img src="/files/GQHwL1x2ubc9xjEgg057" alt="The content picker with Products selected and the Specific products option chosen."><figcaption><p>Choose Specific products to lock a hand-picked list of items.</p></figcaption></figure>

5. Use the picker to search and select the individual products you want to lock. Add as many as you need.

<figure><img src="/files/XbjauGKSy4hUkrZgQmYg" alt="The product picker for manually selecting specific products to lock."><figcaption><p>Search and select the specific products you want to lock.</p></figcaption></figure>

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
8. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

9. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) — [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) is a common choice, or you can fully hide the product from listings and search.

## Save

10. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Variants](/b2b-lock-password-protect/content-to-lock/overview/variants)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Variants

Lock down to specific variants — one size or color — instead of the whole product.

Choose **Variants** when only some options of a product should be locked — for example, a limited-edition color, or a size reserved for wholesale customers — while the rest of the product stays open to everyone.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Reserved size — wholesale only."
4. On the **Lock setup** tab, in the **Content to lock** dropdown, choose **Product variants**.

<figure><img src="/files/0DWc2bCvirIAUiL1Bu0a" alt="The Content to lock dropdown with Product variants selected."><figcaption><p>Choose Product variants to lock down to individual product options.</p></figcaption></figure>

5. Use the picker to search for the product, then select the specific variant or variants you want to lock. You can select variants across multiple products in the same lock.

<figure><img src="/files/ZuErs46q0qbx4VUiUPU3" alt="The variant picker showing individual product variants selected for locking."><figcaption><p>Search for a product, then select the specific variants to lock.</p></figcaption></figure>

{% hint style="info" %}
Locking specific variants may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
8. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

9. [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) is the natural fit here — the rest of the product stays fully visible while only the locked variant's price or Add to cart control is affected. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for all the available options.

## Save

10. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Specific products](/b2b-lock-password-protect/content-to-lock/overview/specific-products)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Product tags

Lock every product carrying a specific tag, including ones you add later.

Choose **Product tags** when you want a lock to cover a catalog that changes over time — every product carrying a specific tag is locked automatically, including products you tag after the lock is already saved. This is the common choice for an ongoing wholesale catalog.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Wholesale catalog — tag-based."
4. On the **Lock setup** tab, in the content picker, choose **Products**, then select **Product tags**.

<figure><img src="/files/rqB8iiwkv21f63CAH0El" alt="The content picker with Products selected and the Product tags option chosen."><figcaption><p>Choose Product tags to lock every product carrying a specific tag.</p></figcaption></figure>

5. Enter or select the product tag to lock. Every product carrying that tag — now and in the future — is covered by this lock.

<figure><img src="/files/zxrIU1Ivyrmll0Poq5vC" alt="The product tag picker for a Products lock targeting a specific tag."><figcaption><p>Enter the product tag you want this lock to cover.</p></figcaption></figure>

{% hint style="info" %}
Targeting by product tag may require a paid plan depending on your current plan.
{% endhint %}

{% hint style="info" %}
This locks products by their **product** tag, which is different from a **customer** tag used in the [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags) access rule. A common wholesale setup pairs this content type with a Customer tags or B2B customer access rule, so only tagged customers can see the tagged products.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule — **Customer tags** or **B2B customer** are common pairings for a wholesale product-tag lock. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
8. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

9. [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) is the most common behavior for a wholesale-style tag lock. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for all the available options.

## Save

10. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)
* [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Vendor

Lock every product from a specific vendor.

Choose **Vendor** when you want to lock every product from a specific supplier or brand in one lock — for example, a brand you only sell to approved retail partners, without having to tag or select each product individually.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Brand X — approved retailers only."
4. On the **Lock setup** tab, in the content picker, choose **Products**, then select **Vendor**.

<figure><img src="/files/g2xWkzbK5yL0NaOosvqR" alt="The content picker with Products selected and the Vendor option chosen."><figcaption><p>Choose Vendor to lock every product from a specific supplier or brand.</p></figcaption></figure>

5. Select the vendor you want this lock to cover. Every product assigned to that vendor — now and in the future — is covered by this lock.

<figure><img src="/files/JmvAW83Z0iUeSdyKMfaI" alt="The vendor picker for a Products lock targeting a specific vendor."><figcaption><p>Select the vendor whose products this lock should cover.</p></figcaption></figure>

{% hint style="info" %}
Targeting by vendor may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
8. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

9. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) — [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) is a common choice, or you can fully hide the vendor's products from listings and search.

## Save

10. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Product tags](/b2b-lock-password-protect/content-to-lock/overview/product-tags)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Collections

Lock specific collections behind access rules while the rest of your store stays public.

The **Collections** content type locks one or more specific collections — useful for gating an entire category of products (a wholesale line, a members-only range, a seasonal drop) without having to select every product inside it individually.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "B2B collection — login required."

## Choose Collections as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Collections**.

<figure><img src="/files/jremeRv9xMwCvmzdbKBG" alt="The content picker with Collections selected as the content type to lock."><figcaption><p>Select Collections in the content picker to lock one or more specific collections.</p></figcaption></figure>

5. Use the collection picker to search and select the collections you want to lock. You can select more than one collection for the same lock.

<figure><img src="/files/3LagJwX9EKEtA5TbolMS" alt="The collection picker showing a search field and a list of selectable collections."><figcaption><p>Search and select the specific collections you want to lock.</p></figcaption></figure>

{% hint style="warning" %}
Locking collections may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule — for example, **Selected customers** if only a hand-picked list of accounts should see this collection.
8. Configure the rule's settings. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of available rules.
9. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

10. For a locked collection you can hide the price and Add to cart button on every product inside it, or fully hide the collection from listings, menus, and search so it doesn't appear at all to visitors who don't qualify. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the full set of options, including [Hide from menus](/b2b-lock-password-protect/lock-behavior/hide-from-menus) and [Hide from search engines](/b2b-lock-password-protect/lock-behavior/hide-from-search-engines).

## Save

11. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Pages

Lock specific storefront pages behind access rules while the rest of your store stays public.

The **Pages** content type locks one or more specific storefront pages — for example an FAQ page reserved for logged-in customers, a wholesale application page, or a members-only resources page.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Wholesale application page."

## Choose Pages as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Page**.

<figure><img src="/files/4CrUjWwEzyJlnw2LLnpY" alt="The content picker with Page selected as the content type to lock."><figcaption><p>Select Page in the content picker to lock one or more specific storefront pages.</p></figcaption></figure>

5. Use the page picker to search and select the pages you want to lock. You can select more than one page for the same lock.

<figure><img src="/files/hLiJYupmRRVKnVaA9qBE" alt="The page picker showing a search field and a list of selectable storefront pages."><figcaption><p>Search and select the specific storefront pages you want to lock.</p></figcaption></figure>

{% hint style="warning" %}
Locking pages may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule — for example, **Logged-in customers** so only signed-in shoppers can view the page.
8. Configure the rule's settings. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of available rules.
9. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

10. A locked page typically shows a full lock screen instead of its normal content until the visitor passes. You can also redirect visitors elsewhere after they gain access, or hide the page's link from your storefront menus so it isn't discoverable by visitors who don't qualify. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the full set of options.

## Save

11. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Blogs and articles

Lock an entire blog or specific articles within it behind access rules.

The **Blogs** content type locks blog content — either an entire blog, so every post inside it is protected, or specific individual articles, so the rest of that blog stays public.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Members-only blog posts."

## Choose Blogs as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Blogs**.

<figure><img src="/files/HAmMwUNNAL7gQAPC7FAn" alt="The content picker with Blogs selected as the content type to lock."><figcaption><p>Select Blogs in the content picker to protect blog content.</p></figcaption></figure>

5. Choose whether to lock the whole blog or specific articles:

* **Blog** — locks every existing and future article inside the blog you select.
* **Articles** — locks only the specific articles you choose, leaving the rest of the blog public.

<figure><img src="/files/JIGpVFPFxb9jbSW0c9an" alt="The picker showing the choice between locking a whole blog or specific articles within it."><figcaption><p>Choose between locking a whole blog or selecting specific articles inside it.</p></figcaption></figure>

6. Depending on your choice, select the blog or the individual articles you want to lock.

{% hint style="warning" %}
Locking blogs and articles may require a paid plan depending on your current plan.
{% endhint %}

7. Click the **Unlock rules** tab to continue.

## Add an access rule

8. Add at least one rule — for example, **Subscribe to unlock**, so visitors must subscribe with their email before reading a locked article.
9. Configure the rule's settings. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of available rules.
10. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

11. A locked blog post typically shows a full lock screen in place of the article content until the visitor passes. You can also hide locked articles from your storefront's on-site search and sitemap. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the full set of options.

## Save

12. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Specific URL

Lock any custom URL or path on your store behind access rules, with an option to exclude specific URLs.

The **Specific URL** content type locks any custom path on your storefront that isn't covered by the other content types — a landing page built outside the standard page/collection structure, a search results path, or any URL pattern you want to gate.

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Landing page — passcode required."

## Choose Specific URL as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Specific URL**.

<figure><img src="/files/X6jo7stygoO92p9xI9OY" alt="The content picker with Specific URL selected as the content type to lock."><figcaption><p>Select Specific URL in the content picker to lock a custom URL or path.</p></figcaption></figure>

5. In the **Restricted URLs** card, type the path you want to lock — the field shows the expected format, for example `/contact-us` — then click the add button beside it. Repeat to add more paths to the same lock.

<figure><img src="/files/ZvPS6A4sMo1pZ1Wp6I5p" alt="The Restricted URLs field showing the /contact-us example format, with the add button beside it."><figcaption><p>Enter each path you want to lock, then click add.</p></figcaption></figure>

{% hint style="info" %}
Enter the path only (starting with `/`), not the full domain. If you need to keep certain paths public inside a much broader lock, use the [Whole website](/b2b-lock-password-protect/content-to-lock/whole-website) content type instead — it has an **Exclude url** option, which Specific URL doesn't.
{% endhint %}

{% hint style="warning" %}
Locking a custom URL may require a paid plan depending on your current plan.
{% endhint %}

6. Click the **Unlock rules** tab to continue.

## Add an access rule

7. Add at least one rule — for example, **Secret link**, so the URL only unlocks for visitors who arrive with a valid secret link token.
8. Configure the rule's settings. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue of available rules.
9. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Choose a lock behavior

On the same **Unlock rules** tab, the right-hand sidebar has a **Blocked visitor behavior** panel — configure it alongside your rule:

10. A locked URL typically shows a full lock screen until the visitor passes. Review [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview) for the full set of options, including redirecting visitors after they gain access.

## Save

11. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Cart page

Lock the storefront cart page itself, separate from conditions about what's inside the cart.

The **Cart page** content type locks your storefront's cart page as a whole — for example, requiring a visitor to sign in or subscribe before they can view their cart and proceed toward checkout.

{% hint style="info" %}
Don't confuse this with [Cart conditions](/b2b-lock-password-protect/access-rules/cart-conditions). Cart page is *what you're locking* (the cart page itself, on any other lock). Cart conditions are an *access rule* you can add to a lock on other content (like a product) that checks whether specific items, or a quantity or subtotal, are already in the visitor's cart.
{% endhint %}

## Create the lock

1. Open **Locks** in the app's navigation and click **Create lock**.
2. Give the lock a descriptive name, for example "Cart — sign-in required."
3. On the **Lock setup** tab, open **Content to lock** and choose **Cart page**.

<figure><img src="/files/QlbF1kiW7crt88MK7WjJ" alt="The content picker with Cart page selected as the content type."><figcaption><p>Choose Cart page to lock the entire storefront cart page.</p></figcaption></figure>

{% hint style="warning" %}
Locking the cart page may require a paid plan depending on your current plan.
{% endhint %}

Cart page has no extra targeting options — selecting it locks the whole `/cart` page, so there's nothing else to configure on this tab besides the lock's name.

## Add an access rule

4. Switch to the **Unlock rules** tab and add at least one rule. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for the full catalogue.
5. Add every required condition to the access key. All conditions must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

{% hint style="info" %}
A Cart page lock doesn't have its own "Blocked visitor behavior" panel — there's no price or Add to cart to hide on the cart page itself. Use the rule's messages and, if needed, a redirect to control what a blocked visitor sees. See [Redirect after access](/b2b-lock-password-protect/lock-behavior/redirect-after-access).
{% endhint %}

## Save

6. Click **Save**. The lock takes effect on your storefront as soon as the app embed is enabled.

## Related docs

* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Cart conditions](/b2b-lock-password-protect/access-rules/cart-conditions)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Checkout

Block checkout for specific customers or products using a dedicated condition builder enforced by Shopify itself.

The **Checkout lock** content type blocks checkout itself, rather than a page or product. It's the right choice when you need to stop specific customers from completing a purchase — for example, guests without an account, customers missing a required tag, or customers whose email or phone matches a pattern you want to exclude.

{% hint style="info" %}
Checkout lock uses its own condition builder, separate from the access rules used by every other content type. Rules like Passcode, Secret link, or Date range don't apply here — checkout has its own set of customer conditions, described below.
{% endhint %}

## Create the lock

1. Open **Locks** in the app's navigation.
2. Click **Create lock**.
3. Give the lock a descriptive name, for example "Block checkout for guests."

## Choose Checkout as the content to lock

4. On the **Lock setup** tab, in the content picker, select **Checkout lock**.

<figure><img src="/files/r03DN4bZqhdkzT9feitW" alt="The content picker with Checkout lock selected as the content type to lock."><figcaption><p>Select Checkout lock in the content picker to build a checkout condition.</p></figcaption></figure>

## Choose the product scope

5. Still on the **Lock setup** tab, a card below the content picker shows which products the lock covers. It starts at **All products** — "Checkout lock applies to all products." Click **Change** to narrow it to specific products instead.

<figure><img src="/files/RtYZxTA5g2RnRDiL6ie2" alt="The product scope card for a Checkout lock, set to All products, with a Change action."><figcaption><p>Checkout lock starts covering all products; use Change to narrow the scope.</p></figcaption></figure>

6. Click the **Unlock rules** tab to continue.

## Build the condition

{% hint style="warning" %}
**Checkout conditions read the opposite way to other locks.** For every other content type, an access rule describes who gets *through*. Here, the panel is called **Lock conditions** and it describes when the lock *applies* — in other words, who gets **blocked**. A condition of "Customer is not logged in" means guests are blocked from checking out.
{% endhint %}

7. On the **Unlock rules** tab, the **Lock conditions** card replaces the standard rule builder. Add a customer condition — each has a type and a rule:

| Condition type | Rules available                          |
| -------------- | ---------------------------------------- |
| Customer login | Is logged in / Is not logged in          |
| Customer tag   | Has tag / Does not have tag              |
| Customer phone | Is equal to / Is not equal to            |
| Customer email | Is equal to / Is not equal to / Contains |

Each condition row has a pencil icon to edit it and a bin icon to remove it.

<figure><img src="/files/6emQz4PKsA7Z0FPskjwd" alt="The Lock conditions card for a Checkout lock, showing one condition with edit and delete icons and an Add another condition button."><figcaption><p>The Lock conditions card sets when the checkout lock applies.</p></figcaption></figure>

8. Click **Add another condition** to add more. Conditions are always combined with **AND** — as the card says, "All added conditions must be met for this lock to apply." Adding conditions makes the lock narrower because every condition must match.

## Set the error message

9. Below the conditions, edit the **Error message** a blocked customer sees at checkout. The default is `Sorry, this item can't be purchased`. Use the language selector on that card to set the message per storefront language.

<figure><img src="/files/1cy1XAaOV8DgbNg692bK" alt="The Error message field for a Checkout lock with its per-language selector."><figcaption><p>The Error message is what a blocked customer sees at checkout.</p></figcaption></figure>

The **Preview** panel on the right shows a real checkout with your error message in place, so you can see how it reads before saving.

## Save

10. Click **Save**.

{% hint style="success" %}
Checkout lock is enforced by Shopify itself at checkout — there's nothing extra to configure in your theme or the app embed. Once saved, the condition applies the moment a matching customer reaches checkout.
{% endhint %}

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)


# Access rules overview

What an access rule is, how If/Unless matching works, and where to find every rule type the app supports.

An access rule is the condition a visitor has to meet before they're allowed to see or use whatever you're locking — a product, a collection, a page, your whole storefront, or checkout. Every lock needs at least one access rule; without one, the app has no way to tell an approved visitor from anyone else.

You add access rules from a lock's **Unlock rules** tab. Each rule checks one specific thing about the visitor — are they logged in, do they have a certain tag, did they enter the right passcode — and the lock only opens once all configured conditions are satisfied.

<figure><img src="/files/72aKoGcqm5HKimIPj4Hh" alt="Access rule picker showing the full list of available condition types"><figcaption><p>Choosing an access rule from the condition type picker inside a lock's editor.</p></figcaption></figure>

## If and Unless

Most access rules can be set to match one of two ways:

* **If** — the rule is satisfied when the visitor *does* meet the condition (for example, If Logged-in customers: the visitor must be signed in).
* **Unless** — the rule is inverted, and is satisfied when the visitor does *not* meet the condition (for example, Unless Logged-in customers: the visitor must not be signed in).

You'll find this as the **Rule logic** switch beside each rule's condition type.

<figure><img src="/files/e0B1fBesEUJdGMVvDx7B" alt="The Rule logic switch next to a rule&#x27;s condition type, set to If with Unless as the alternative"><figcaption><p>Use the Rule logic switch to flip a rule between If and Unless.</p></figcaption></figure>

{% hint style="info" %}
Five rules work differently and don't have an If/Unless toggle at all: **Passcode**, **Secret link**, **Subscribe to unlock**, **Confirmation prompt**, and **Custom liquid**. These are action-based rules — instead of matching a yes/no fact about the visitor, they ask the visitor to do something (enter a code, subscribe, confirm a statement) or run a snippet of code, and that action's own result decides whether the rule passes.
{% endhint %}

## Combining more than one rule

A lock can use more than one access rule at once. How those conditions interact — including a worked example — is covered in its own page:

* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)

## Every access rule

The rules below are grouped by what they check. Click through to any rule's own page for the full setup steps.

**Identity & customer rules** — who the visitor is

* [Logged-in customers](/b2b-lock-password-protect/access-rules/logged-in-customers) — is the visitor signed in to a customer account
* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags) — does the customer's account have a specific tag
* [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer) — is the customer part of a Shopify B2B company account
* [Email contains](/b2b-lock-password-protect/access-rules/email-contains) — does the logged-in customer's email contain a given string
* [Selected customers](/b2b-lock-password-protect/access-rules/selected-customers) — is the customer on a hand-picked list you choose

**Unlock actions** — something the visitor does to unlock

* [Passcode](/b2b-lock-password-protect/access-rules/passcode) — the visitor enters a shared code
* [Secret link](/b2b-lock-password-protect/access-rules/secret-link) — the visitor arrives via a link containing a valid token
* [Subscribe to unlock](/b2b-lock-password-protect/access-rules/subscribe) — the visitor subscribes with their email
* [Confirmation prompt](/b2b-lock-password-protect/access-rules/confirmation-prompt) — the visitor self-certifies by clicking Confirm
* [Custom liquid](/b2b-lock-password-protect/access-rules/custom-liquid) — your own Liquid snippet decides

**Time & schedule** — when the lock is active

* [Date range](/b2b-lock-password-protect/access-rules/date-range) — a fixed start and end date
* [Weekly schedule](/b2b-lock-password-protect/access-rules/weekly-schedule) — recurring days and time windows
* [Storefront language](/b2b-lock-password-protect/access-rules/storefront-language) — which storefront language the visitor is browsing in

**Location & device** — where the visitor is browsing from

* [Location](/b2b-lock-password-protect/access-rules/location) — the visitor's detected country
* [Certain IP addresses](/b2b-lock-password-protect/access-rules/certain-ip-addresses) — the visitor's exact public IP address
* [Shop domain](/b2b-lock-password-protect/access-rules/shop-domain) — the exact domain the visitor is currently browsing on

**Purchase history** — what the customer has already bought

* [Purchased items](/b2b-lock-password-protect/access-rules/purchased-items) — the customer previously bought specific products or variants
* [Order quantity](/b2b-lock-password-protect/access-rules/order-quantity) — the customer's total order count meets a minimum

**Cart** — what's currently in the visitor's cart

* [Cart conditions](/b2b-lock-password-protect/access-rules/cart-conditions) — cart products, cart variants, cart quantity, and cart total

{% hint style="info" %}
Some rules and content types are only available on paid plans. If a rule is greyed out in the picker, that's why — the picker will point you to the plan comparison.
{% endhint %}

## What a blocked visitor sees

When a rule denies someone on a page, collection, or blog, the app replaces the content with a lock card. **Access denied message** is the default text on that card, and most rules always use it:

<figure><img src="/files/EcZB8CcLH88GjRbvOjBG" alt="A locked storefront page showing the Content locked card with the message Visitors need an approved access key to access this content and a Back button."><figcaption><p>The Access denied message — the card most rules show.</p></figcaption></figure>

### For signed-out visitors

Five rules check who the customer *is*, so for those a signed-out visitor might only need to sign in. Those rules swap in a second message — **Guest message content** — which includes a sign-in link:

<figure><img src="/files/y08EaTv94paTmzzugwwF" alt="A locked storefront page showing the Content locked card asking the visitor to sign in with their customer account."><figcaption><p>The Guest message — shown only by the five customer-identity rules, and only to signed-out visitors.</p></figcaption></figure>

The guest message appears only when **all three** of these are true:

1. The failing rule is one of [Logged-in customers](/b2b-lock-password-protect/access-rules/logged-in-customers), [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags), [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer), [Email contains](/b2b-lock-password-protect/access-rules/email-contains), or [Selected customers](/b2b-lock-password-protect/access-rules/selected-customers).
2. That rule is set to **If**, not **Unless**.
3. The visitor is **not** signed in.

Otherwise the card shows the Access denied message. So a signed-in customer who fails a Customer tags rule gets Access denied, and so does *every* visitor — signed in or not — blocked by a rule like Date range, Location, or Cart conditions.

| Message field             | When it's used                                                |
| ------------------------- | ------------------------------------------------------------- |
| **Guest message content** | Only the five rules above, set to If, for signed-out visitors |
| **Access denied message** | Everything else                                               |

{% hint style="info" %}
Edit both fields per lock, and per storefront language, from the lock's **Messages** section. The default Access denied wording ("Visitors need an approved access key…") doesn't tell a shopper what to do next — replacing it with something actionable, like how to apply for a wholesale account, is usually worth the minute. See [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).
{% endhint %}

The action-based rules (Passcode, Secret link, Subscribe to unlock, Confirmation prompt) replace this card with their own prompt, since the visitor can unlock the content themselves on the spot.

## Related docs

* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)


# Combining rules

How multiple conditions inside one access key are evaluated together.

A single access rule is often all you need, but a lock can hold several conditions inside one **access key**. Understanding how those conditions combine helps you describe an audience that requires more than one requirement.

## How conditions combine

**Conditions inside an access key combine with AND.** A visitor must satisfy every condition in the key before it opens. Adding a condition therefore makes a lock *stricter*, never looser.

| You want                                   | How to build it                                                                                     |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| Must be logged in **AND** tagged wholesale | One access key, with a Logged-in customers condition and a Customer tags condition both added to it |
| Must hold two different tags               | One access key, with a separate Customer tags condition for each required tag                       |

{% hint style="info" %}
Inside the lock editor, the helper text reminds you: "Customers must match all conditions in this key to unlock the content." Treat every condition added to the key as required.
{% endhint %}

## Worked example: logged-in wholesale customers

Say you want a members-style lock where only signed-in wholesale customers can get in. That audience needs two conditions in the same access key.

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. In the access key, set **Condition type** to **Customer tags** and enter your wholesale tag (for example `wholesale`). Leave **Rule logic** set to **If**. Condition 1 now reads: *If the customer is tagged with wholesale*.
3. Click **Add key condition** to add a second condition to the *same* key, and set its **Condition type** to **Logged-in customers**. Condition 2 reads: *If the customer is signed in*. It needs no further setup — the app notes "No extra setup needed. Customers only need to be signed in."

<figure><img src="/files/k0dhVt9N3PJOfmcZC0rm" alt="One access key containing two numbered conditions: Customer tags matching the wholesale tag, and Logged-in customers, with the note that a customer must meet all of the key&#x27;s conditions."><figcaption><p>Both conditions live inside the same access key, so a visitor has to satisfy both.</p></figcaption></figure>

4. Save the lock. The **Summary** panel confirms the shape of what you built: one access key holding two conditions.

<figure><img src="/files/fgMIFAWhauLeI4pThm0T" alt="The Summary panel showing chips for Specific products, 1 access keys, and 2 condition."><figcaption><p>The Summary panel counts the access keys and conditions on the lock.</p></figcaption></figure>

With this setup, the visitor must be signed in **and** have the `wholesale` customer tag. A visitor who satisfies only one of the conditions remains blocked.

{% hint style="warning" %}
Don't add unrelated rules to the same key. Every condition in that key is required, so adding a condition makes the access requirement more restrictive.
{% endhint %}

## Adding, editing, and removing access keys

* To add a rule to the key you're currently editing, use the add-rule control inside that key — this adds another AND condition to the same key.
* Add conditions to the access key when every requirement must be met together.
* Configure the key's **Redirect URL** and optional **Customer auto tags** when those post-access actions are needed.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Passcode](/b2b-lock-password-protect/access-rules/passcode)
* [Secret link](/b2b-lock-password-protect/access-rules/secret-link)
* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)


# Logged-in customers

Restrict a lock to signed-in customers, or the reverse — require visitors to be signed out.

The Logged-in customers rule checks one simple fact about the visitor: are they currently signed in to a customer account on your store. It's the most common access rule in the app, and it's usually the first one merchants reach for when they want to hide pricing or content from guests.

## How it works

The rule looks at whether the storefront visitor has an active customer session. It doesn't check anything about *who* they are — no tags, no order history, nothing — just whether they're logged in at all. If you need to also check something about the account itself, add [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags), [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer), or another identity rule alongside it in the same access key.

## Adding the rule

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and choose **Logged-in customers** from the **Condition type** dropdown.

   <figure><img src="/files/oUcDEPwxrirTM9V9qlDQ" alt="Access rule picker with Logged-in customers selected as the condition type"><figcaption><p>Adding the Logged-in customers rule to an access key.</p></figcaption></figure>
3. Choose whether the rule should match **If** or **Unless**.
4. Save the lock.

## If vs Unless for this rule

This is one of the clearest rules to reason about with If/Unless:

* **If** the visitor is signed in — the content unlocks only for customers who are logged in. Guests are blocked. This is the default, and what you want for most "members only" or "wholesale accounts only" locks.
* **Unless** the visitor is signed in — inverted: the content unlocks only for visitors who are **not** logged in. Use this when you want a page or offer aimed specifically at guests (for example, a new-visitor promotion that should disappear once someone logs in).

## Common example: hide price for guests

A frequent way to use this rule is paired with [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) rather than a full block:

1. On the **Lock setup** tab, set the content to lock to the product or collection you want to gate.
2. Click the **Unlock rules** tab to continue.
3. Add the Logged-in customers rule, matching **If**. There's nothing else to configure — the app confirms this with "No extra setup needed. Customers only need to be signed in."

<figure><img src="/files/7FDTmA65eqVZVDnMbLv5" alt="The Logged-in customers condition with Rule logic set to If and a note that no extra setup is needed."><figcaption><p>The Logged-in customers condition has no settings of its own beyond If or Unless.</p></figcaption></figure>

4. In the same tab's right-hand sidebar, under **Blocked visitor behavior**, turn on Hide price, Hide Add to cart, or both.
5. Save.

## Result on the storefront

With the example above, guests can still browse the product page, but the price and **Add to cart** button are replaced with a login message. Signed-in customers who satisfy the Lock's other conditions see the normal price and buy box.

<figure><img src="/files/tejfsJ9Xmw3AZUg5Gvif" alt="A live storefront product page seen by a signed-out visitor: the product image and title are visible, and a Login to see price link sits where the price would be, with no Add to cart or Buy it now button."><figcaption><p>The result of the example: guests can browse the product, but the price and buy buttons are replaced.</p></figcaption></figure>

## Related docs

* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart)
* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)
* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)


# Customer tags

Restrict a lock to customers whose account carries one or more specific tags.

The Customer tags rule checks whether the visitor's signed-in customer account has a specific tag applied to it. It's the rule behind most wholesale and VIP-tier locks, since Shopify tags are the easiest way to segment customer accounts without building anything custom.

## How it works

This rule only evaluates tags on the account of a customer who is currently logged in. If you add more than one tag to the rule, satisfying **any one** of the listed tags is enough — you don't need all of them at once. If you specifically need a customer to hold every one of several tags, add a separate Customer tags rule for each required tag inside the same access key (since rules in one key combine with AND).

## Adding the rule

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and choose **Customer tags** from the **Condition type** dropdown.

   <figure><img src="/files/TtRwxJDgDlglGvi6vtNx" alt="Access rule picker with Customer tags selected and a tag search field"><figcaption><p>Adding the Customer tags rule and searching for a tag to match.</p></figcaption></figure>
3. Search for and select one or more tags. Tags you type that don't already exist on any customer can typically still be entered — they'll simply never match until you apply that tag to an account.
4. Choose whether the rule should match **If** (the customer has one of the listed tags) or **Unless** (the customer does not have any of them).
5. Optionally set a per-rule **Redirect URL**, used only if this specific rule denies the visitor.
6. Save the lock.

## Common example: wholesale tag

A typical setup: tag your wholesale accounts with `wholesale` in Shopify, then:

1. On the **Lock setup** tab, set the content to lock to your wholesale-priced products or collection.

<figure><img src="/files/pycWoyQcMVwGaxl7KgCo" alt="The Lock setup tab with Specific products chosen as the content type and three products listed under Restricted products."><figcaption><p>Pick the wholesale-priced products this lock should cover.</p></figcaption></figure>

2. Click the **Unlock rules** tab to continue.
3. Add the Customer tags rule, enter `wholesale`, and leave it matching **If**.

<figure><img src="/files/TpOgnLD11PNCrMRQfRoH" alt="The Customer tags condition with Rule logic set to If and a wholesale tag chip below the Tags field."><figcaption><p>The condition heading confirms what you built: If the customer is tagged with wholesale.</p></figcaption></figure>

4. In the same tab's right-hand sidebar, under **Blocked visitor behavior**, turn on [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) so untagged visitors see the page but not the price, instead of a full block.

<figure><img src="/files/sYP2psFAT0hpEGRDqvaJ" alt="The Blocked visitor behavior panel with Hide product price and atc selected in its dropdown."><figcaption><p>Choose Hide product price and atc so untagged visitors still see the product page.</p></figcaption></figure>

5. Save.

{% hint style="info" %}
The app's Quick Setup list on the Locks page includes a ready-made **Wholesale-only products** template that pre-fills exactly this pattern — a customer-tag rule against price and Add to cart — so you can start from it instead of building it from scratch.
{% endhint %}

## Result on the storefront

With the wholesale example above, customers whose account has the `wholesale` tag see the normal price and buy box. Guests and signed-in customers without that tag can still browse the product page, but the price and buy buttons are replaced with the configured lock message.

<figure><img src="/files/J9lnga6cpwdE71iRfbxw" alt="A live storefront product page seen by an untagged visitor: product image, title, and colour options are all visible, with a Login to see price link where the price would be and no Add to cart or Buy it now button."><figcaption><p>The result of the example: visitors without the wholesale tag can browse the product, but the price and buy buttons are replaced.</p></figcaption></figure>

The default replacement text may say **"Login to see price"**. Because a signed-in customer can still be missing the required tag, consider changing it to something more specific, such as **"Wholesale access required"**. See [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart).

## Related docs

* [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer)
* [Selected customers](/b2b-lock-password-protect/access-rules/selected-customers)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Add customer tags after access](/b2b-lock-password-protect/lock-behavior/customer-auto-tags)


# B2B customer

Restrict a lock to customers who belong to a Shopify B2B company account.

The B2B customer rule checks Shopify's own native company-account status for the visitor — it's a genuine platform check against Shopify's B2B customer flag, not something the app tracks on its own. If a customer is associated with a company account in your store's B2B setup, this rule recognizes them as a B2B customer automatically.

## How it works

The rule reads whether the currently logged-in customer is linked to a Shopify B2B company account. There's nothing to configure beyond adding the rule and choosing If/Unless — no tag to type, no list to maintain. That also means the rule is only as accurate as your store's own B2B setup in Shopify: if a wholesale buyer hasn't been added to a company account in Shopify admin, this rule won't recognize them as B2B, no matter how you configure it here.

## Adding the rule

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and choose **B2B customer** from the **Condition type** dropdown.

   <figure><img src="/files/Ghtffma2c8i2jJUd5LCI" alt="Access rule picker with B2B customer selected as the condition type"><figcaption><p>Adding the B2B customer rule — no extra setup needed beyond If/Unless.</p></figcaption></figure>
3. Choose whether the rule should match **If** (the customer belongs to a B2B company account) or **Unless** (the customer does not).
4. Optionally set a per-rule **Redirect URL**.
5. Save the lock.

## Common use: hide retail pricing from non-B2B visitors

A typical setup pairs this rule with [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart):

1. On the **Lock setup** tab, set the content to lock to the products or collection with B2B-only pricing.

<figure><img src="/files/ckh93vPn2YaLyPR6ShP1" alt="The Lock setup tab with Specific products chosen as the content type and two products listed under Restricted products."><figcaption><p>Pick the products whose pricing should stay B2B-only.</p></figcaption></figure>

2. Click the **Unlock rules** tab to continue.
3. Add the B2B customer rule, matching **If**. There's nothing more to fill in — the app notes "No extra setup needed. This condition uses Shopify B2B customer status."

<figure><img src="/files/4PX2CqrZhIwOMZPrJc6B" alt="The B2B customer condition with Rule logic set to If and a note that the condition uses Shopify B2B customer status."><figcaption><p>The condition heading confirms what you built: If the customer is a B2B customer.</p></figcaption></figure>

4. In the same tab's right-hand sidebar, under **Blocked visitor behavior**, leave **Hide products from storefront** off and pick a hide option from the dropdown instead — so non-B2B visitors see the page without the retail price or buy button, rather than a hard block.

<figure><img src="/files/hcTM39C0JSClMK01j9fd" alt="The Blocked visitor behavior panel with Hide products from storefront unchecked and Hide product price and atc selected in the dropdown."><figcaption><p>Hide product price and atc keeps the page visible while the pricing stays private.</p></figcaption></figure>

5. Save.

{% hint style="info" %}
If you're segmenting purely by a customer tag rather than genuine Shopify B2B company status, the [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags) rule and the built-in Quick Setup **Wholesale-only products** template on the Locks page are a faster shortcut. Reach for this B2B customer rule specifically when you want the check tied to real B2B company accounts in Shopify, not a tag you maintain yourself.
{% endhint %}

## Result on the storefront

With the example above, customers linked to a Shopify B2B company account see the normal price and buy box. Guests and signed-in retail customers can still browse the product page, but the price and buy buttons are replaced with the configured lock message.

<figure><img src="/files/lBbJuxJ5Mza45GC097H8" alt="A live storefront product page seen by a non-B2B visitor: product image, title, and vendor are visible, with a Login to see price link where the price would be and no Add to cart button."><figcaption><p>The result of the example: non-B2B visitors can browse the product, but the price and buy buttons are replaced.</p></figcaption></figure>

{% hint style="info" %}
The default replacement text may say **"Login to see price"**. Because a signed-in retail customer can still fail the B2B condition, consider changing it to something more specific, such as **"Company account required"**. See [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart).
{% endhint %}

## Related docs

* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)
* [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Custom liquid](/b2b-lock-password-protect/access-rules/custom-liquid)


# Email contains

Match logged-in customers whose email address contains a given string, such as a company domain.

The Email contains rule checks whether the logged-in customer's email address contains a specific piece of text. It's most useful for matching an entire company by their email domain, without needing to tag every individual account.

## How it works

The rule only looks at the email of a customer who is currently signed in — a guest without a session has no email for the rule to check. You give it one or more strings to look for; the rule matches if the customer's email contains **any** of them.

To match more than one string, separate them with the word **or** in the same field — for example, entering `@wholesaleco.com or @partnerco.com` matches any customer whose email contains either domain.

## Adding the rule

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and choose **Email contains** from the **Condition type** dropdown.

   <figure><img src="/files/hmers9p6Onvpx6uKf6W0" alt="Access rule picker with Email contains selected and a text field for the match string"><figcaption><p>Adding the Email contains rule and entering the text to match.</p></figcaption></figure>
3. Enter the text to match — for example a company email domain like `@wholesaleco.com`. Add more strings separated by "or" if you need to match several domains or addresses.
4. Choose whether the rule should match **If** (the email contains the string) or **Unless** (it doesn't).
5. Optionally set a per-rule **Redirect URL**.
6. Save the lock.

{% hint style="info" %}
Since this rule depends on the visitor being logged in, it's often paired with the [Logged-in customers](/b2b-lock-password-protect/access-rules/logged-in-customers) rule in the same access key — that way a guest gets a clear "please sign in" message instead of simply failing this rule with no explanation.
{% endhint %}

## Example: Allow employees with an approved company email

Suppose an internal resources page should only be available to signed-in customers whose email address contains `@acme.com`.

1. Select the **Company resources** page as the content to protect.

<figure><img src="/files/Q5N6j6Jhz5StOq26OgGx" alt="The Lock setup tab with Specific Page as the content type and the Company resources page listed under Restricted pages."><figcaption><p>Pick the internal page you want to gate.</p></figcaption></figure>

2. On the **Unlock rules** tab, the first condition already defaults to **Logged-in customers** — leave it. Click **Add key condition** to add a second condition in the *same* access key and set it to **Email contains**.
3. For **Email contains**, choose **If** and enter `@acme.com` in the **Email address** field.

<figure><img src="/files/bGLqIn0nIPJGXY5P2sNx" alt="The second condition set to Email contains with Rule logic If and @acme.com in the Email address field."><figcaption><p>The condition heading confirms it: If the customer email matches @acme.com.</p></figcaption></figure>

4. Leave the rules' **Redirect URL** fields empty.
5. Set the messages to:
   * **Guest message content:** `Sign in with your approved company email to continue.`
   * **Access denied message:** `Your email address is not approved for this resource.`

{% hint style="info" %}
Both fields appear because Email contains is one of the five customer-identity rules — see [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees). The guest message goes to signed-out visitors; the access-denied message goes to signed-in customers whose email doesn't match.
{% endhint %}

<figure><img src="/files/SHbE99ctNVG9ZyQcTNCF" alt="The Messages card showing both the Guest message content and Access denied message fields filled in with the example wording."><figcaption><p>This rule needs both messages, because either kind of visitor can be blocked.</p></figcaption></figure>

6. Click **Save**.

### Result on the storefront

* A signed-out visitor sees the Guest message and the sign-in option.
* A signed-in customer such as `alex@acme.com` passes both conditions and can open the page.
* A signed-in customer such as `alex@example.com` sees the Access denied message because their email does not contain `@acme.com`.

<figure><img src="/files/h03U7D2eFSjmTDXKL7td" alt="The Company resources page displaying the configured email-not-approved message."><figcaption><p>A signed-in customer using an email outside the approved domain sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Logged-in customers](/b2b-lock-password-protect/access-rules/logged-in-customers)
* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)
* [Selected customers](/b2b-lock-password-protect/access-rules/selected-customers)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)


# Selected customers

Hand-pick specific individual customers who can access a lock, without relying on tags or emails.

The Selected customers rule lets you choose exactly which customer accounts should pass — a hand-picked list rather than anything based on tags, email, or B2B status. It's the right tool when access comes down to a short, specific list of named people rather than a pattern you can describe with a rule.

## How it works

You search for and select individual customers directly from your store's customer list inside the rule. Only the customers you've explicitly added to the list are checked — there's no tag or email pattern involved, so keeping the list current is entirely manual.

## Adding the rule

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and choose **Selected customers** from the **Condition type** dropdown.

   <figure><img src="/files/ch17UzhYEvP8Cd7WaaNp" alt="Access rule picker with Selected customers selected and a customer search field"><figcaption><p>Searching for and selecting specific customers to add to the rule.</p></figcaption></figure>
3. Use **Search customers** to find customers by name or email, or click **Browse** to pick them from a list of your store's customers. Each one you add appears as a row you can remove later.
4. Choose whether the rule should match **If** (the customer is on the list) or **Unless** (they are not).
5. Optionally set a per-rule **Redirect URL**.
6. Save the lock.

## When to use this rule

Selected customers is a good fit for VIP or one-off access — for example, giving a handful of press contacts early access to a product page, or granting a single long-standing customer a permanent discount page, without tagging their account or generating a passcode just for them. For anything that grows past a short, manually maintained list, [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags) or [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer) will scale better.

## Example: Give two customers early access

Suppose a pre-release page should only be available to Alex and Jamie, two customer accounts selected from your Shopify customer list.

1. Select the **Pre-release preview** page as the content to protect.

<figure><img src="/files/KmDDmbEcqOLEhqN3V42I" alt="The Lock setup tab with Specific Page as the content type and the Pre-release preview page listed under Restricted pages."><figcaption><p>Pick the page the two customers should get early access to.</p></figcaption></figure>

2. On the **Unlock rules** tab, set **Condition type** to **Selected customers** and leave **Rule logic** on **If**.
3. Click **Browse**, tick **Alex Morgan** and **Jamie Chen** in the **Add customers** dialog, then click **Add**. Both accounts appear as rows under the search field.

{% hint style="info" %}
You can also type a name or email into **Search customers** instead of browsing. Either way, only the accounts listed here pass the rule — remove one with the **✕** on its row.
{% endhint %}

<figure><img src="/files/HrHBaZxJisqaB2rfSam2" alt="The condition set to Selected customers with Rule logic If and Alex Morgan and Jamie Chen listed as the two selected accounts."><figcaption><p>The two hand-picked accounts are the whole rule — there's no tag or pattern behind it.</p></figcaption></figure>

4. Leave the rule's **Redirect URL** empty.
5. Set the messages to:
   * **Guest message content:** `Sign in to check whether your account has early access.`
   * **Access denied message:** `Your account is not included in this early-access group.`

{% hint style="info" %}
Both fields appear because Selected customers is one of the five customer-identity rules — see [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees). The guest message goes to signed-out visitors; the access-denied message goes to signed-in customers who aren't on the list.
{% endhint %}

<figure><img src="/files/5MFQT3yeNd4BBwWYl2Js" alt="The Messages card showing both the Guest message content and Access denied message fields filled in with the example wording."><figcaption><p>This rule needs both messages, because either kind of visitor can be blocked.</p></figcaption></figure>

6. Click **Save**.

### Result on the storefront

Alex and Jamie can open the page after signing in with the selected accounts. A signed-out visitor sees the Guest message. A different signed-in customer sees the Access denied message because their account is not on the selected list.

<figure><img src="/files/d5AVTw30ocB8eSRhWLlF" alt="The Pre-release preview page displaying the configured account-not-included message."><figcaption><p>A signed-in customer outside the selected list sees the Access denied message from this example.</p></figcaption></figure>

{% hint style="warning" %}
The list stores individual customer accounts, so it doesn't follow email changes or new accounts. If Alex signs up again with a second email, that new account is a different customer and won't pass — you'd need to add it here too.
{% endhint %}

## Related docs

* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)
* [Email contains](/b2b-lock-password-protect/access-rules/email-contains)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Request access overview](/b2b-lock-password-protect/request-access/overview)


# Passcode

Protect content with one or more shared passcodes that shoppers type in to unlock it.

The Passcode rule protects content behind one or more access codes. Instead of checking a fact about the visitor, it presents a passcode field on the storefront — anyone who knows a valid code gets in. It's a straightforward way to gate content for a group of people who don't have (or don't need) customer accounts, like event attendees, press previews, or a private sale you're promoting by word of mouth.

## How Passcode works

Passcode is one of the app's action-based rules, so it doesn't have an If/Unless toggle — it works through its own verification step instead. When a visitor reaches locked content protected by this rule, they see a passcode field. If what they type matches any one of the passcodes you've configured, they pass; a wrong or empty entry shows an error and keeps the content locked.

You can keep more than one passcode active on the same rule at once — useful if you want to hand out a different code to different groups (say, one for a newsletter list and a different one for in-store customers) while still treating them as the same access key.

## Steps to manage

1. Open the app and go to **Locks**, then open the lock you want to protect (or create a new one).
2. On the **Lock setup** tab, set **Content to lock** to whatever you're protecting.
3. Click the **Unlock rules** tab to continue.
4. Add an access rule and set the condition type to **Passcode**.

   <figure><img src="/files/FPHjH2hecDOLLQwUmp1L" alt="Access rule picker with Passcode selected as the condition type"><figcaption><p>Choosing Passcode as the condition type for a new access rule.</p></figcaption></figure>
5. Type a passcode into the field and click **Add Passcode** — or leave the field empty and click the same button to have the app generate a random code for you automatically.

   <figure><img src="/files/VBnNMAfYg1Dh1L8DJCcS" alt="Passcode field with a code entered and the Add Passcode button"><figcaption><p>Adding a passcode manually, or leaving the field blank to auto-generate one.</p></figcaption></figure>
6. Repeat step 5 to add more passcodes if you want several active at once — each one added independently unlocks the same content.
7. Each passcode in the list has its own **Copy** and **Delete** buttons: copy a code to share it, or delete a code you no longer want to accept.

   <figure><img src="/files/k6Bfo5dL0xCjOdUnsqnl" alt="List of active passcodes with copy and delete controls next to each one"><figcaption><p>Managing the list of active passcodes — copy one to share it, or delete one to revoke it.</p></figcaption></figure>
8. Configure **Grant access (optional)** — leave it blank to remember a verified visitor only for their current browser session, or enter a number and choose a unit (minutes, hours, or days) to keep them remembered for a fixed duration instead.

   <figure><img src="/files/wVp0MENIwQiHWvFfio6L" alt="Grant access duration field with a number and unit selector for the Passcode rule"><figcaption><p>Setting how long a verified visitor stays unlocked before needing to re-enter a passcode.</p></figcaption></figure>
9. Customize the passcode message and any other translated copy for this lock, per storefront language, from the lock's Messages section.

   <figure><img src="/files/nfM5V8rinSyfLvtymRPL" alt="Passcode message field in the lock&#x27;s translation and messages settings"><figcaption><p>Editing the passcode prompt copy shown to shoppers.</p></figcaption></figure>
10. Customize the design of the passcode input and surrounding lock screen (colors, button style) from the lock's Design section if you want it to match your theme.

    <figure><img src="/files/X726Suy0aMxCXbUvZ1iP" alt="Design settings panel showing passcode input color options"><figcaption><p>Adjusting the passcode input's colors from the lock's Design settings.</p></figcaption></figure>
11. Click **Save**.

{% hint style="info" %}
Passcode is one of only two access rules that support **Request access** — a built-in form shoppers without a code can use to ask you for one. See [Request access overview](/b2b-lock-password-protect/request-access/overview) for how to turn it on and manage submissions.
{% endhint %}

## Customer experience on the storefront

A shopper who reaches passcode-protected content sees a "Content locked" message with a passcode field and a **Submit** button. If they submit an empty field, they see "Passcode cant be empty !!"; if they enter a code that doesn't match any active passcode, they see "Passcode is incorrect !!". Once they enter a correct code, the content unlocks immediately, and the app remembers them for the rest of their session (or for your configured grant-access duration) so they aren't asked again on that same browser.

All of this copy is editable per lock and per storefront language from the Messages section — see [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).

<figure><img src="/files/D2C1ibs0gvjUQMTkNrIA" alt="A locked storefront page replaced by the app&#x27;s Content locked card with a passcode field and Submit button."><figcaption><p>A visitor without the code gets the passcode card instead of the page.</p></figcaption></figure>

## Related docs

* [Secret link](/b2b-lock-password-protect/access-rules/secret-link)
* [Request access overview](/b2b-lock-password-protect/request-access/overview)
* [Grant access duration](/b2b-lock-password-protect/lock-behavior/grant-access-duration)
* [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages)


# Secret link

Protect content so only visitors arriving via a URL with a valid access token can unlock it.

The Secret link rule protects content so it can only be unlocked by arriving through a specific URL — one that carries a valid `?access=` token at the end. There's no field for the shopper to fill in; the link itself is the key. It's a good fit for sending a private preview or an invite-only offer straight to someone's inbox, where you'd rather they just click through than type a code.

## How Secret link works

Secret link is one of the app's action-based rules, so it doesn't have an If/Unless toggle. Instead, the app checks the URL a visitor used to arrive at the locked page: if it ends in `?access=` followed by one of this rule's active tokens, the visitor is let straight in. Arriving at the same page without that token — or with an old, deleted one — shows the locked experience instead.

You can keep more than one secret link active at once, so you can hand out a different link to different recipients (or campaigns) while they all unlock the same content.

## Steps to manage

1. Open the app and go to **Locks**, then open the lock you want to protect (or create a new one).
2. On the **Lock setup** tab, set **Content to lock** to whatever you're protecting.
3. Click the **Unlock rules** tab to continue.
4. Add an access rule and set the condition type to **Secret link**.

   <figure><img src="/files/ygCXtqMQhlywK8H5mAKX" alt="Access rule picker with Secret link selected as the condition type"><figcaption><p>Choosing Secret link as the condition type for a new access rule.</p></figcaption></figure>
5. Type a code into the field and click **Generate link** — or leave the field empty and click the same button to have the app generate a random token for you automatically. The app shows the token with the `?access=` prefix already in place, and appends it to your lock's preview URL so you can see the full link to share.

   <figure><img src="/files/yvdIxFzX7GeOieSLP7lp" alt="Secret link field with a generated token and the Generate link button"><figcaption><p>Generating a secret link token, shown with the full URL it produces.</p></figcaption></figure>
6. Repeat step 5 to add more secret links if you want several active at once — each one independently unlocks the same content.
7. Each link in the list has its own **Copy** and **Delete** buttons: copy the full link to share it, or delete a link you want to revoke.

   <figure><img src="/files/1mAGo8Lg31V6kBpjsIUD" alt="List of active secret links with copy and delete controls next to each one"><figcaption><p>Managing the list of active secret links — copy one to share it, or delete one to revoke it.</p></figcaption></figure>
8. Configure **Grant access (optional)** — leave it blank to remember a verified visitor only for their current browser session, or enter a number and choose a unit (minutes, hours, or days) to keep them remembered for a fixed duration instead.

   <figure><img src="/files/rJnCxoEBwL3IVLRuYrDw" alt="Grant access duration field with a number and unit selector for the Secret link rule"><figcaption><p>Setting how long a verified visitor stays unlocked before needing the link again.</p></figcaption></figure>
9. Customize the secret-link message and any other translated copy for this lock, per storefront language, from the lock's Messages section.

   <figure><img src="/files/8vwiEE0bdWx1RX4FRUnk" alt="Secret link message field in the lock&#x27;s translation and messages settings"><figcaption><p>Editing the copy shown to shoppers who arrive without a valid secret link.</p></figcaption></figure>
10. Customize the design of the lock screen shown to visitors without a valid link (colors, button style) from the lock's Design section if you want it to match your theme.

    <figure><img src="/files/XHNBn1hzDK3a9xZKlrqF" alt="Design settings panel for the secret link lock screen"><figcaption><p>Adjusting the lock screen's colors from the lock's Design settings.</p></figcaption></figure>
11. Click **Save**.

{% hint style="info" %}
Secret link is the other of the two access rules that support **Request access** — a built-in form shoppers without a link can use to ask you for one. See [Request access overview](/b2b-lock-password-protect/request-access/overview) for how to turn it on and manage submissions.
{% endhint %}

## Customer experience on the storefront

A shopper who reaches secret-link-protected content without a valid token in the URL sees a "Content locked" message: "Use a valid secret link to access this content." A shopper who arrives with a valid token in the URL is let straight through — there's no form to fill in. Once verified, the app remembers them for the rest of their session (or for your configured grant-access duration), so revisiting the same page without the token in the URL still works while that memory lasts.

All of this copy is editable per lock and per storefront language from the Messages section — see [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).

<figure><img src="/files/DShCwpFBvwoulDi7X1F2" alt="A locked storefront page showing the Content locked card with the message Use a valid secret link to access this content and a Back button."><figcaption><p>Without a valid token in the URL, the visitor gets this card instead of the page.</p></figcaption></figure>

## Related docs

* [Passcode](/b2b-lock-password-protect/access-rules/passcode)
* [Request access overview](/b2b-lock-password-protect/request-access/overview)
* [Grant access duration](/b2b-lock-password-protect/lock-behavior/grant-access-duration)
* [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages)


# Subscribe to unlock

Let shoppers unlock content by subscribing with their email, through Shopify, Mailchimp, or Klaviyo.

**Subscribe to unlock** asks a visitor to enter their email address, then grants access once they subscribe (or, for a Klaviyo segment, once the app confirms they're already on your list). It's an action-based rule — like Passcode and Confirmation prompt, it doesn't have an If/Unless toggle, because the shopper unlocks the content by completing the subscribe step rather than by matching a yes/no condition.

Sami B2B Lock, Password Protect supports three email services for this rule. You pick one per rule:

* **Shopify** — uses your store's native email marketing consent. No extra account or API key needed. This is the default option and has no additional cost.
* **Mailchimp** — connects to your Mailchimp account with an API key so you can subscribe visitors straight into one of your audience lists.
* **Klaviyo** — connects to your Klaviyo account with an API key so you can subscribe visitors into a list, or check membership against a segment.

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Subscribe to unlock**.

<figure><img src="/files/1SgrRW33D9ceXHNfVfcy" alt="The Unlock rules tab with Subscribe to unlock selected in the Condition type dropdown."><figcaption><p>Select Subscribe to unlock from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Choose an **Email service**: Shopify, Mailchimp, or Klaviyo.

### Shopify (default, no setup)

Shopify email marketing consent works out of the box — there's nothing to connect. Once selected, the app shows a note that it remembers a subscribed visitor for their current browser session and won't ask them to subscribe again until that session ends; to require re-subscription sooner or later than that, set a duration in the **Grant access (optional)** field below it.

<figure><img src="/files/Mo4A3yDl9AOFYTcRVXAF" alt="The Subscribe to unlock rule with Shopify selected as the email service."><figcaption><p>Shopify email marketing consent requires no extra setup.</p></figcaption></figure>

### Mailchimp

1. Enter your **Mailchimp API key** (an API key with audience access, generated from your Mailchimp account) and click **Check connection**.
2. Once connected, select which **audience list** the visitor should be subscribed to.
3. Set an optional **Grant access** duration, the same as with Shopify.

<figure><img src="/files/ZfZXvvxdrczOLHxqTyXc" alt="The Subscribe to unlock rule with Mailchimp connected and an audience list selected."><figcaption><p>Connect Mailchimp with an API key, then pick the audience list to subscribe visitors to.</p></figcaption></figure>

{% hint style="info" %}
Your Mailchimp API key is checked securely and is never exposed on the storefront. Once you save the lock, the key is stored encrypted.
{% endhint %}

### Klaviyo

1. Enter your **Klaviyo private API key** and click **Check connection**.
2. Once connected, choose an **audience type**: **List** or **Segment**.
3. Select the specific list or segment.
4. Set an optional **Grant access** duration if you're using a list (Klaviyo segments don't use this field — see below).

<figure><img src="/files/A7qRIgXvofK9hpVXZ7i7" alt="The Subscribe to unlock rule with Klaviyo connected, showing the audience type selector and list or segment picker."><figcaption><p>Connect Klaviyo, then choose whether to subscribe visitors to a list or check membership in a segment.</p></figcaption></figure>

{% hint style="warning" %}
**List and Segment behave very differently — don't mix them up.**

* Choosing a **list** actually subscribes the visitor: they type their email, the app adds them to that Klaviyo list, and access is granted. This is the same "subscribe and unlock" behavior as Shopify and Mailchimp.
* Choosing a **segment** does **not** add a new subscriber at all. It's a membership check only — the app looks at whether the visitor already belongs to that segment and grants access if they do. Because there's no email field to type into for a segment check, the visitor generally needs to be signed in to their customer account for the app to identify them and check their segment membership.

Use a list when your goal is to grow a specific Klaviyo list through this lock. Use a segment when you want to gate content to people who are already members of a group you've built in Klaviyo (for example, an existing "VIP" or "wholesale" segment) without collecting a new email address.
{% endhint %}

## Shopper-facing copy

By default, shoppers who hit a Subscribe to unlock rule see:

* Notification: **"Content locked"** / **"Subscribe with your email to access this content."**
* Email input placeholder: **"Enter email address..."**
* Button: **"Subscribe"**
* Errors: **"Please fill in field"**, **"Invalid email"**, **"Unable to subscribe. Please try again."**

All of this text is editable per lock and per storefront language. See [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).

<figure><img src="/files/5RXIQ2aDqztNUjIEPv9l" alt="A locked storefront page showing the Content locked card with an email field and a Subscribe button."><figcaption><p>An unsubscribed visitor gets the subscribe card instead of the page.</p></figcaption></figure>

## Save

5. Click **Save**. The rule takes effect on your storefront as soon as the app embed is enabled.

{% hint style="info" %}
API keys for Mailchimp and Klaviyo are stored encrypted and are only ever used to check or add subscribers for this rule — see [Permissions and data](/b2b-lock-password-protect/reference/permissions-and-data).
{% endhint %}

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Confirmation prompt](/b2b-lock-password-protect/access-rules/confirmation-prompt)
* [Grant access duration](/b2b-lock-password-protect/lock-behavior/grant-access-duration)


# Confirmation prompt

Ask a shopper to self-certify with a confirm button before they can access protected content.

**Confirmation prompt** shows a shopper a short statement and a confirm button — for example, "I confirm I am 18 or older." Clicking the button grants access. It's a self-certification, not a real identity check: the app has no way to verify that what the shopper is confirming is actually true, so use it for things like age or terms acknowledgements where you're relying on the shopper's honesty, not for anything that needs to be independently verified.

Like Subscribe, Passcode, and Secret link, Confirmation prompt is action-based — it doesn't have an If/Unless toggle, since the shopper unlocks the content by clicking Confirm rather than by matching a condition.

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Confirmation prompt**.

<figure><img src="/files/ASndcNPUeJ5Iq6E9Kc1i" alt="The Unlock rules tab with Confirmation prompt selected in the Condition type dropdown."><figcaption><p>Select Confirmation prompt from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Edit the prompt's content and button text if you want something more specific than the defaults (see below).
5. Turn on **Remember confirmation for signed-in customers** if you want signed-in shoppers to only have to confirm once (see the warning below before you do).
6. Optionally set a **Grant access** duration.

<figure><img src="/files/MdUIk1W9JRDQVoCIC0ag" alt="The Confirmation prompt rule settings, showing the Remember confirmation for signed-in customers toggle and the Grant access duration field."><figcaption><p>Configure the remember toggle and how long a confirmation lasts before the shopper has to confirm again.</p></figcaption></figure>

7. Click **Save**.

## Shopper-facing copy

By default, shoppers see:

* Notification: **"Confirmation required"** / **"Please confirm that you meet the requirements to access this content."**
* Button: **"Confirm and continue."**

Both the statement and the button text are editable per lock and per storefront language — for example, changing it to "I confirm I am 18 or older" for an age-restricted product. See [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).

<figure><img src="/files/f5QQw0TI0pAjBustrwAc" alt="A locked storefront page showing a Confirmation required card with a Confirm and continue button."><figcaption><p>The shopper must confirm before the content unlocks.</p></figcaption></figure>

## Remember confirmation for signed-in customers

{% hint style="warning" %}
**Remember confirmation for signed-in customers has no expiry.** The confirmation is stored in local storage in the same browser, associated with that customer's ID. It ignores **Grant access** duration and remains until browser storage is cleared or you turn off the toggle and save the lock. It does not transfer to another browser or device.
{% endhint %}

If you'd rather have shoppers re-confirm periodically (for an age gate you want re-checked every so often, for instance), leave this toggle off and rely on the **Grant access** duration field instead.

## Save

Once saved, the confirmation prompt appears whenever this rule is checked, and the app grants access as soon as the shopper clicks the confirm button.

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Grant access duration](/b2b-lock-password-protect/lock-behavior/grant-access-duration)
* [Subscribe to unlock](/b2b-lock-password-protect/access-rules/subscribe)


# Custom liquid

Write your own Liquid snippet to decide access, with customer, cart, product, and storefront variables.

The Custom liquid rule lets you write your own Liquid code snippet to decide whether a visitor gets access. It's the most flexible rule in the app — anything you can express as a Liquid condition against the customer, their cart, the current product or collection, or the storefront itself, you can use to gate content — but it's also the one rule where a mistake in the snippet has real consequences, covered below.

## How it works

Custom liquid is an action-based rule, so it doesn't have an If/Unless toggle. Instead, the app runs your snippet for each visitor and reads its final result. The result must be exactly `true` or `false` (surrounding whitespace is ignored): `true` passes the rule and `false` fails it. Other output, such as `true - customer is eligible`, is not a valid result. Your snippet has access to the same kind of data a Shopify theme would have about the current visitor and page.

## Adding the rule

Open the lock, click the **Unlock rules** tab, and choose **Custom liquid** from the **Condition type** dropdown.

<figure><img src="/files/QADMBlnBajtuDwNVSAQV" alt="The Condition type dropdown with Custom liquid selected"><figcaption><p>Select Custom liquid from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

## The code editor

The rule's condition type opens a dedicated Liquid code editor with syntax highlighting, autocomplete, and real-time syntax validation — errors in your Liquid are flagged directly in the editor as you type, before you even save.

<figure><img src="/files/o0KFIgSVlbprUrzHLpyD" alt="Custom liquid code editor with a snippet and a syntax validation indicator"><figcaption><p>Writing and validating a Liquid snippet in the code editor.</p></figcaption></figure>

### Available variables

The editor exposes a library of variables you can insert, grouped by what they describe:

| Group                | Variables                                                                                              |
| -------------------- | ------------------------------------------------------------------------------------------------------ |
| Customer             | `customer`, `customer.tags`, `customer.orders_count`, `customer.total_spent`, `customer.b2b?`          |
| Cart                 | `cart.item_count`, `cart.total_price`, `cart.items`                                                    |
| Product & collection | `product.tags`, `product.vendor`, `product.metafields`, `collection.handle`                            |
| Storefront           | `request.path`, `request.page_type`, `localization.country.iso_code`, `localization.language.iso_code` |

<figure><img src="/files/ZveQBffU43Ex14BJYVkq" alt="Variables and templates panel showing the available Liquid variables grouped by category"><figcaption><p>Browsing the available variables from the Variables and templates panel.</p></figcaption></figure>

### Starter templates

If you'd rather start from something working than an empty editor, the same panel includes ready-made templates you can drop in and adjust, including a logged-in customer check, a customer-tag check, a cart quantity or cart total minimum, a product-tag check, a visitor-country check, a URL-path check, and a ready-made **Shopify B2B customer** template that checks `customer.b2b?` directly.

<figure><img src="/files/IVKXPr4h8bO9rotc8MAQ" alt="Example templates panel with a list of ready-made Liquid snippets to use as a starting point"><figcaption><p>Choosing a starter template, including the ready-made Shopify B2B template.</p></figcaption></figure>

## Steps to manage

1. Open the lock you want to protect and click the **Unlock rules** tab.
2. Add an access rule and set the condition type to **Custom liquid**.
3. Write your snippet directly in the editor, or open **Variables and templates** to copy a variable or start from one of the ready-made templates.
4. Make sure your snippet's final output is exactly `true` for visitors who should pass and exactly `false` for everyone else. Do not add explanatory text, HTML, or other output around the value. The editor flags basic syntax problems, but you still need to confirm the logic matches what you intend.
5. Optionally set a per-rule **Redirect URL**, used only if this specific rule denies the visitor.
6. Save the lock.

## Fail-open behavior

{% hint style="warning" %}
If a Custom liquid snippet is missing, broken, or fails to render a clear `true`/`false` result, the app fails **open** — it grants access instead of blocking the visitor. This is deliberate, but it also means a broken snippet doesn't fail safe: a merchant who assumes "no result means still locked" would be wrong. Always confirm your snippet actually renders and test it before relying on it to protect anything sensitive.
{% endhint %}

## Example: Allow signed-in customers with a VIP tag

Suppose a private page should only be available to signed-in customers whose account has the `vip` tag.

1. Select the **VIP collection preview** page as the content to protect.

<figure><img src="/files/cslDND7OfDs1KeGi6smz" alt="The Lock setup tab with Specific Page as the content type and the VIP collection preview page listed under Restricted pages."><figcaption><p>Pick the page you want to keep for VIP customers.</p></figcaption></figure>

2. Add **Custom liquid** and replace the starter snippet with:

```liquid
{% if customer and customer.tags contains 'vip' %}true{% else %}false{% endif %}
```

The editor confirms **Liquid syntax is valid** underneath as you type.

<figure><img src="/files/7E5CbFhwPirKBkzslna4" alt="The Custom liquid condition with the VIP tag snippet in the Liquid condition editor and the Liquid syntax is valid confirmation below it."><figcaption><p>The editor highlights the Liquid and validates the syntax before you save.</p></figcaption></figure>

3. Leave the rule's **Redirect URL** empty.
4. Set the **Access denied message** to:

> This page is available to VIP customers only.

<figure><img src="/files/KE5dUzHpYZ9JeQ4JaGeH" alt="The Messages card with the Access denied message set to the VIP-customers-only wording, and the Preview panel rendering it."><figcaption><p>Custom liquid has a single message field, shown to everyone the snippet rejects.</p></figcaption></figure>

5. Click **Save**.

### Result on the storefront

The snippet outputs exactly `true` for a signed-in customer with the `vip` tag, so the page opens normally. It outputs exactly `false` for guests and customers without that tag, so they see the message above. Do not add text before or after `true` or `false` in the snippet output.

<figure><img src="/files/3AWZ3kSMevjcBuOQMEFG" alt="The VIP collection preview page displaying the configured VIP-customers-only message."><figcaption><p>When the Liquid snippet returns false, the visitor sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [B2B customer](/b2b-lock-password-protect/access-rules/b2b-customer)
* [Lock not working](/b2b-lock-password-protect/help/lock-not-working)
* [How it works](/b2b-lock-password-protect/reference/how-it-works)


# Date range

Only make a lock active between a fixed start and end date — useful for time-limited promotions and events.

**Date range** matches visitors while the current date falls between a fixed start date and end date you set. Outside that window, the rule doesn't match. It's a good fit for anything tied to a calendar date rather than a recurring pattern — an early-access window ahead of a launch, a holiday promotion, or a members-only sale that should stop working automatically once it ends.

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Date range can be set to match **If** the current date is inside the range, or **Unless** it is — inverting it to match everything outside the range instead. Each rule can also have its own **Redirect URL** that only applies when this specific rule fails. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules) and [Redirect after access](/b2b-lock-password-protect/lock-behavior/redirect-after-access).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Date range**.

<figure><img src="/files/eg7J6gceyA03auv0PjCs" alt="The Unlock rules tab with Date range selected in the Condition type dropdown."><figcaption><p>Select Date range from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Set a **start date** and an **end date** for when this rule should match.

<figure><img src="/files/ViSIEmquc1XNMEyX9OQk" alt="The Date range rule settings, showing a start date and end date picker."><figcaption><p>Set the start and end date the lock's date range condition is active between.</p></figcaption></figure>

5. Choose **If** or **Unless** depending on whether you want the lock active during the range or outside it.
6. Click **Save**.

{% hint style="info" %}
Combine Date range with another rule in the same access key if you want the time window to only apply to certain visitors — for example, "Date range AND Customer tags" to run an early-access promo only for tagged VIP customers during the promo window.
{% endhint %}

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Weekly schedule](/b2b-lock-password-protect/access-rules/weekly-schedule)
* [Location](/b2b-lock-password-protect/access-rules/location)


# Weekly schedule

Lock content on a recurring, per-day schedule with specific time windows — for example, every weekday 9am-5pm.

**Weekly schedule** matches visitors based on a recurring weekly pattern rather than a fixed calendar date: you turn specific days of the week on or off, and for each day you turn on, you can either make it active all day or set specific time windows (for example, 9am-5pm). It's a good fit for anything that repeats every week — locking checkout during a weekly flash-sale window, or restricting a live-drop page to only be reachable during your restock hours.

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Weekly schedule can be set to match **If** the visitor arrives inside the scheduled window, or **Unless** they do — inverting it to match everything outside the schedule instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Weekly schedule**.

<figure><img src="/files/Ql7JSIqH5isdNT1SHOyZ" alt="The Unlock rules tab with Weekly schedule selected in the Condition type dropdown."><figcaption><p>Select Weekly schedule from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Turn each day on or off. For every day you turn on, choose whether it's active **all day** or set specific **start and end times** — you can add more than one time window on the same day if you need separate windows (for example, a morning slot and an evening slot).

<figure><img src="/files/VIkWu1c5fx7GCvbiMfLb" alt="The Weekly schedule rule settings, showing per-day toggles and start/end time fields."><figcaption><p>Turn on the days this rule should be active and set a time window for each one.</p></figcaption></figure>

5. Choose **If** or **Unless** depending on whether you want the lock active during the scheduled windows or outside them.
6. Click **Save**.

{% hint style="info" %}
Times you set here are evaluated in your **shop's own timezone**, not the visitor's local time — a 9am-5pm window means 9am-5pm in your store's timezone, regardless of where the visitor is browsing from.
{% endhint %}

{% hint style="warning" %}
**Edge case:** if your shop's timezone information is ever unavailable at the moment the rule is checked, the schedule falls back to evaluating times using the **visitor's own device time** instead. This is rare, but it means a visitor in a very different timezone from your shop could, in that fallback scenario, see the schedule apply at different local hours than you'd expect. Keep this in mind if you notice the schedule behaving inconsistently for visitors in different regions.
{% endhint %}

## Example: Open a wholesale support page during business hours

Suppose the page should be available from Monday to Friday, between 9:00 AM and 5:00 PM in your shop's timezone.

1. Select the **Wholesale support** page as the content to protect.

<figure><img src="/files/ksKqIbiM0vecJ9YQgwXz" alt="The Lock setup tab with Specific Page as the content type and the Wholesale support page listed under Restricted pages."><figcaption><p>Pick the page that should follow business hours.</p></figcaption></figure>

2. Add **Weekly schedule** and choose **If**. The rule shows your store's timezone and its current time — for example *America/New\_York (Friday, 06:09 AM GMT-4)* — so you can tell what "9:00" will mean.
3. Under **Select days**, turn on Monday through Friday and leave Saturday and Sunday off. Unselected days stay locked all day.

<figure><img src="/files/nEkoYLnpy4SZiaTVwP8u" alt="The Select days row with Monday through Friday highlighted as selected and Saturday and Sunday left unselected."><figcaption><p>Selected days are the only days access can open at all.</p></figcaption></figure>

4. Under **Set access hours**, each selected day offers **Set time periods** or **Allow all day**. Choose **Set time periods** and set **09:00** to **17:00** for every day.

{% hint style="info" %}
The first day you enable defaults to **Allow all day**, not to a time range — switch it to **Set time periods** or that day will stay open around the clock. New time periods default to 09:00–17:00.
{% endhint %}

<figure><img src="/files/PAMblhATw5vmLG9tGg0V" alt="The Set access hours section showing Monday with Set time periods selected and Start time 09:00, End time 17:00."><figcaption><p>Each day carries its own start and end time, and you can add more than one period per day.</p></figcaption></figure>

5. Leave the rule's **Redirect URL** empty.
6. Set the **Access denied message** to:

> Wholesale support is available Monday to Friday, 9:00 AM–5:00 PM.

{% hint style="info" %}
Weekly schedule shows only the **Access denied message** — there's no Guest message field, because the rule doesn't look at who the visitor is. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees).
{% endhint %}

<figure><img src="/files/ODCbEkmxwoqqPKAPRVyD" alt="The Messages card with a single Access denied message field set to the business-hours wording, and the Preview panel rendering it."><figcaption><p>One message field only, and the Preview panel confirms the wording before you save.</p></figcaption></figure>

7. Click **Save**.

### Result on the storefront

During the configured hours, visitors can open the Wholesale support page normally. Outside those hours, the page stays locked and displays the message above. Because the schedule uses the shop's timezone, every visitor is evaluated against the same business hours.

<figure><img src="/files/7knibzAkVgt12FYoFgkh" alt="The locked Wholesale support page displaying the configured business-hours message."><figcaption><p>Outside the configured schedule, the visitor sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Date range](/b2b-lock-password-protect/access-rules/date-range)
* [Location](/b2b-lock-password-protect/access-rules/location)


# Storefront language

Match visitors based on the storefront language they're currently browsing in.

**Storefront language** matches a visitor based on which published storefront language they're currently browsing your store in. It's only useful if your store has more than one published language — on a single-language store, every visitor matches the same language, so the rule wouldn't distinguish anyone.

Common uses: showing a market-specific promotion only to visitors browsing in a particular language, or restricting content that's only ready in certain languages so visitors browsing in an unsupported language don't see a half-translated experience.

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Storefront language can be set to match **If** the visitor is browsing in the selected language(s), or **Unless** they are — inverting it to match every other language instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Storefront language**.

<figure><img src="/files/DhszjsCSLBehHTpUG3B4" alt="The Unlock rules tab with Storefront language selected in the Condition type dropdown."><figcaption><p>Select Storefront language from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Select one or more of your store's published languages to match against.

<figure><img src="/files/Z7qRwaSKdVX2sdKCwu0F" alt="The Storefront language rule settings, showing a multi-select list of the store&#x27;s published languages."><figcaption><p>Choose which published storefront language(s) this rule should match.</p></figcaption></figure>

5. Choose **If** or **Unless**.
6. Click **Save**.

{% hint style="info" %}
This rule matches the language the storefront is currently displayed in — the language the visitor selected (or was routed to) via your store's language selector — not the visitor's browser or device language setting.
{% endhint %}

## Example: Show a campaign page only on the French storefront

Suppose a campaign page has only been prepared in French and should not be available in the store's other published languages.

1. Select the **French campaign** page as the content to protect.

<figure><img src="/files/UW85sbnWhHIWBADu5Ghb" alt="The Lock setup tab with Specific Page as the content type and the French campaign page listed under Restricted pages."><figcaption><p>Pick the campaign page that only exists in French.</p></figcaption></figure>

2. Add **Storefront language**, choose **If**, then pick **French** from **Available languages**.

{% hint style="info" %}
The picker only lists languages your store has **published** under Settings → Languages. If French isn't there, publish it first — a language that's only added but not published won't appear.
{% endhint %}

<figure><img src="/files/sC33ShCC7zk7SMMTOstw" alt="The Storefront language condition with Rule logic set to If and French added as a chip under Available languages."><figcaption><p>The condition heading reads: If the storefront language matches any of the selected languages.</p></figcaption></figure>

3. Leave the rule's **Redirect URL** empty.
4. Set the **Access denied message** to:

> This campaign is only available on the French storefront.

<figure><img src="/files/NOc8HapImx9MM2gqSMWH" alt="The Messages card with the Access denied message set to the French-storefront-only wording, and the Preview panel rendering it."><figcaption><p>The Preview panel confirms the wording before you save.</p></figcaption></figure>

5. Click **Save**.

### Result on the storefront

A visitor browsing the French version of the storefront can open the page normally. If the visitor switches the storefront to English or another language, the rule no longer matches and the page displays the message above.

<figure><img src="/files/nYaQzBFOir5cPzEVruby" alt="The French campaign page displaying the configured French-storefront-only message."><figcaption><p>In another storefront language, the visitor sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages)
* [Location](/b2b-lock-password-protect/access-rules/location)


# Location

Match visitors based on their detected country, using a public IP-geolocation lookup.

**Location** matches a visitor based on their detected country. It's useful for restricting content by geography — for example, only showing a promotion to visitors in a specific country, or blocking a product page in a country you don't ship to.

{% hint style="warning" %}
**How country is detected — and its limits.** The app detects a visitor's country using a public IP-geolocation lookup on their current IP address — it does **not** look at the customer's saved shipping or billing address, and it doesn't require the visitor to be signed in. This means the detected country reflects where the visitor's internet connection currently appears to be, which is usually accurate but isn't guaranteed: a visitor using a **VPN or proxy** can appear to be browsing from a different country than they're physically in, which will change what this rule sees. Keep that in mind if you notice the rule behaving unexpectedly for a specific visitor.
{% endhint %}

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Location can be set to match **If** the visitor's detected country is one of your selected countries, or **Unless** it is — inverting it to match every other country instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Location**.

<figure><img src="/files/aRjHhOhTXcto0tFhiHXW" alt="The Unlock rules tab with Location selected in the Condition type dropdown."><figcaption><p>Select Location from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Search for and select one or more countries to match against.

<figure><img src="/files/0ybbmbF5HEwh8Md0ssnd" alt="The Location rule settings, showing a country picker with multiple countries selected."><figcaption><p>Select the countries this rule should match against the visitor's detected country.</p></figcaption></figure>

5. Choose **If** or **Unless**.
6. Click **Save**.

## Shopper-facing copy

When a Location rule denies a visitor and the lock shows a message rather than redirecting, the default text is:

* **"This content is not available in your country."**

This is editable per lock and per storefront language. See [Translate lock messages](/b2b-lock-password-protect/design-and-customization/translate-messages).

## Example: Make a product available only in the United States and Canada

Suppose a product can only be offered to visitors whose detected country is the United States or Canada.

1. Select the product you want to protect.

<figure><img src="/files/iFRYkexf9j9ri98Ac0c9" alt="The Lock setup tab with Specific products as the content type and one product listed under Restricted products."><figcaption><p>Pick the product with the country restriction.</p></figcaption></figure>

2. Add **Location**, choose **If**, then pick **United States** and **Canada** from the **Countries** field. Each choice becomes a removable chip.

<figure><img src="/files/lHJdFqR4emCV2SiPBIlc" alt="The Location condition with Rule logic set to If and United States and Canada added as chips under the Countries field."><figcaption><p>The condition heading reads: If the visitor is from selected locations.</p></figcaption></figure>

3. Leave the rule's **Redirect URL** empty.
4. Set the **Location denied message** to:

> This product is only available to visitors in the United States and Canada.

{% hint style="info" %}
This rule labels its message field **Location denied message** rather than Access denied message. The Preview panel shows this field's raw HTML instead of rendering it — that's a preview quirk only; the storefront renders the markup normally.
{% endhint %}

<figure><img src="/files/JzNyNRMia3yB7p4Fqg2F" alt="The Messages card showing the Location denied message field set to the United States and Canada availability wording."><figcaption><p>For Location, the field is named Location denied message.</p></figcaption></figure>

5. Click **Save**.

### Result on the storefront

A visitor detected in either selected country can view the product normally. A visitor detected anywhere else sees the locked content and the message above. The result is based on IP geolocation, not the customer's shipping address.

<figure><img src="/files/6P0YJDH5ykXT06JqBRkZ" alt="A location-restricted product page replaced entirely by the Content locked card carrying the United States and Canada availability message."><figcaption><p>A visitor detected outside the selected countries sees the Location denied message from this example.</p></figcaption></figure>

{% hint style="info" %}
Because the lock covers a product, the app replaces the whole product page — the theme's header and footer included — rather than swapping the content inside your theme's layout. Page, collection, and blog locks keep the surrounding theme in place.
{% endhint %}

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Certain IP addresses](/b2b-lock-password-protect/access-rules/certain-ip-addresses)
* [Storefront language](/b2b-lock-password-protect/access-rules/storefront-language)


# Certain IP addresses

Match visitors whose public IP address exactly matches an address on a merchant-entered list.

**Certain IP addresses** matches a visitor based on their exact public IP address against a list you enter. It's a good fit for gating content to a known, fixed set of locations — for example, letting only your office or warehouse network see an internal catalog or a testing page.

{% hint style="warning" %}
**This rule matches exact public IP addresses only**; IP ranges, CIDR blocks (such as `192.168.1.0/24`), and wildcards are not supported. Enter each address separately, and update the list if your network uses a changing IP address.
{% endhint %}

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Certain IP addresses can be set to match **If** the visitor's IP is on your list, or **Unless** it is — inverting it to match every other IP instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Certain IP addresses**.

<figure><img src="/files/jp9RqjGEVtk1wCUvEq34" alt="The Unlock rules tab with Certain IP addresses selected in the Condition type dropdown."><figcaption><p>Select Certain IP addresses from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Enter the exact public IP address(es) you want to match. You can add more than one.

<figure><img src="/files/47HRMoFCKGiJtimZHeSZ" alt="The Certain IP addresses rule settings, showing a list input for entering exact IP addresses."><figcaption><p>Add each exact public IP address this rule should match — no ranges or wildcards.</p></figcaption></figure>

5. Choose **If** or **Unless**.
6. Click **Save**.

{% hint style="info" %}
To find the public IP address to enter for a location like your office or warehouse, search "what is my IP" from a browser on that network, or check with whoever manages that network's internet connection.
{% endhint %}

## Example: Limit an internal price list to the office network

Suppose the office's fixed public IP address is `203.0.113.10`, and only visitors using that network should see an internal price list.

1. Select the **Internal price list** page as the content to protect.

<figure><img src="/files/tn44Ablzn26GWZN7jIaQ" alt="The Lock setup tab with Specific Page as the content type and the Internal price list page listed under Restricted pages."><figcaption><p>Pick the page you want to keep on the office network.</p></figcaption></figure>

2. Add **Certain IP addresses**, choose **If**, and enter `203.0.113.10`. Click **Add IP address** to turn it into a chip — the value isn't saved until you do.

<figure><img src="/files/CfgeXvJQjzmmiR6bluYT" alt="The Certain IP addresses condition with Rule logic set to If and 203.0.113.10 added as a chip below the IP addresses field."><figcaption><p>The condition heading confirms the value: If the visitor IP address matches 203.0.113.10.</p></figcaption></figure>

3. Leave the rule's **Redirect URL** empty.
4. Set the **Access denied message** to:

> This page is only available when you’re connected to an approved network.

<figure><img src="/files/jz4SSMUCyuVQrRYbMAwf" alt="The Messages card showing the Access denied message set to the approved-network wording, with the Preview panel rendering it."><figcaption><p>This rule has only one message field. The Preview panel shows the wording as shoppers will read it.</p></figcaption></figure>

5. Click **Save**.

### Result on the storefront

A visitor whose public IP is exactly `203.0.113.10` can open the page. Any other IP address fails the rule and sees the message above. If the office's public IP changes, update the value in the rule before access can work again.

<figure><img src="/files/J06qmrmu8hHU8I3Y06KF" alt="The Internal price list page displaying the configured approved-network message."><figcaption><p>A visitor outside the allowed IP address sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Location](/b2b-lock-password-protect/access-rules/location)
* [Shop domain](/b2b-lock-password-protect/access-rules/shop-domain)


# Shop domain

Match visitors based on the exact domain they're currently browsing your store on.

**Shop domain** matches the exact hostname a visitor is using to browse your store. This is useful when your store is available through both a connected custom domain, such as `www.your-store.com`, and its original Shopify domain, such as `your-store.myshopify.com`.

Use this rule to make protected content available only on your public custom domain, or to keep a testing flow available only through the `myshopify.com` domain.

Enter one or more domains without a protocol or path, for example `www.your-store.com` or `your-store.myshopify.com`.

* **If**: the visitor matches when their current domain is one of the domains you entered.
* **Unless**: the visitor matches when their current domain is not one of the domains you entered.

When this rule is combined with other Lock conditions, every condition must be satisfied. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Shop domain**.

<figure><img src="/files/Aa2xcandE13fpyNnyDvl" alt="The Unlock rules tab with Shop domain selected in the Condition type dropdown."><figcaption><p>Select Shop domain from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Enter the exact domain(s) you want to match — for example, your custom domain or your `*.myshopify.com` domain. You can add more than one.

<figure><img src="/files/WNKeXHE1JRrlR1zBQoCx" alt="The Shop domain rule settings, showing a list input for entering exact domains."><figcaption><p>Add each exact domain this rule should match against the visitor's current browsing domain.</p></figcaption></figure>

5. Choose **If** or **Unless**.
6. Click **Save**.

## Example: Keep a preview page on the Shopify domain

Suppose your public store uses `www.your-store.com`, but a preview page should only be available through `your-store.myshopify.com`.

1. Select the **Staging preview** page as the content to protect.

<figure><img src="/files/iSZ4VHObtMOP2iX1eHro" alt="The Lock setup tab with Specific Page as the content type and the Staging preview page listed under Restricted pages."><figcaption><p>Pick the page that should stay on the Shopify domain.</p></figcaption></figure>

2. Add **Shop domain**, choose **If**, and type `your-store.myshopify.com` into **Shop domains**. The field already supplies the `https://` prefix, so enter the host only — then click **Add domain** to commit it to the list.

<figure><img src="/files/UYomgLGDjcdoffYvIO8B" alt="The Shop domain condition with Rule logic set to If, the host typed into the Shop domains field, and the full https:// URL added to the list below."><figcaption><p>The condition heading reads: If the visitor shop domain matches your-store.myshopify.com.</p></figcaption></figure>

3. Leave the rule's **Redirect URL** empty.
4. Set the **Access denied message** to:

> This preview page is only available on the store's Shopify domain.

<figure><img src="/files/hARvDTwt8ClkagD3V9p1" alt="The Messages card with the Access denied message set to the Shopify-domain-only wording, and the Preview panel rendering it."><figcaption><p>The Preview panel confirms the wording before you save.</p></figcaption></figure>

5. Click **Save**.

### Result on the storefront

The page opens normally at `your-store.myshopify.com`. When the same page is opened at `www.your-store.com`, the domain does not match, so the page remains locked and displays the message above.

<figure><img src="/files/Lov7RiUOx7Qrdqxwa32s" alt="The Staging preview page displaying the configured Shopify-domain-only message."><figcaption><p>On the public custom domain, the visitor sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Certain IP addresses](/b2b-lock-password-protect/access-rules/certain-ip-addresses)
* [Location](/b2b-lock-password-protect/access-rules/location)


# Purchased items

Match customers who have already purchased specific products or variants, with quantity, lookback, and order-status options.

**Purchased items** matches a customer based on whether they've already bought specific products or variants. It's a good fit for gating exclusive restocks or upsells to people who've already bought the related item — for example, unlocking an accessory only for customers who bought the matching main product, or opening an early restock only to customers who already own the sold-out original.

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Purchased items can be set to match **If** the customer meets the purchase condition, or **Unless** they don't — inverting it to match customers who haven't bought the item instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

{% hint style="info" %}
This rule reads purchase history from a signed-in Shopify customer account. With **If**, a guest cannot meet the purchase condition; with **Unless**, a guest has no matching purchase history and therefore satisfies the inverted condition.
{% endhint %}

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Purchased items**.

<figure><img src="/files/QZNNhSobBpMk7P6Fvdnl" alt="The Unlock rules tab with Purchased items selected in the Condition type dropdown."><figcaption><p>Select Purchased items from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Choose whether to match **Products** (any variant of the selected products counts) or **Variants** (only the specific variants you select count), then pick the items.

<figure><img src="/files/LWrdfbmtyy7ZA0PYSTHu" alt="The Purchased items rule showing the Products/Variants type picker and a product selection list."><figcaption><p>Choose whether to match whole products or specific variants, then select the items.</p></figcaption></figure>

5. Optionally cap the matching purchase quantity, set a lookback window of up to 60 days, and choose which order statuses to ignore.

<figure><img src="/files/3I6J2rxcyyK17fciyDgc" alt="The Purchased items rule settings, showing the maximum purchased quantity field, lookback window in days, and ignore-order-status checkboxes."><figcaption><p>Optionally cap the purchased quantity, set a lookback window of up to 60 days, and choose which order statuses to ignore.</p></figcaption></figure>

6. Choose **If** or **Unless**.
7. Click **Save**.

### The options

* **Maximum purchased quantity** (optional) — the rule always requires the customer to have bought at least one unit of the matching product or variant. Set this field to also cap it: the rule only matches while their total qualifying quantity is at or below the number you enter (useful for something like "unlock this add-on, but only for customers who bought 1-2 of the original — not bulk buyers"). Leave it blank to match on any purchase at all, with no upper limit.
* **Lookback window in days** (optional) — only count orders placed within the last N days. The maximum value is **60**; the field does not accept a number greater than 60. Leave it blank to use the full 60-day order-history window available to this rule. Use a smaller value, such as 30, when only more recent purchases should qualify.
* **Ignore cancelled orders** — on by default. Cancelled orders don't count toward a match.
* **Ignore unfulfilled or partially fulfilled orders** — off by default. Turn this on if you only want fully fulfilled orders to count.
* **Ignore orders that are not fully paid** — on by default. Unpaid or partially paid orders don't count toward a match.

{% hint style="warning" %}
This rule evaluates up to the customer's **50 most recent orders placed within the last 60 days**. Orders older than 60 days are not checked. If the customer placed more than 50 orders during that period, only the newest 50 are evaluated.
{% endhint %}

## Example: Unlock an accessory for previous buyers

Suppose only customers who purchased **The Complete Snowboard** within the last 60 days should be able to open a private accessories page.

1. Select the **Snowboard accessories** page as the content to protect.

<figure><img src="/files/jT2nGLnyyISzzYXcPxSg" alt="The Lock setup tab with Specific Page as the content type and the Snowboard accessories page listed under Restricted pages."><figcaption><p>Pick the page that only previous buyers should reach.</p></figcaption></figure>

2. On the **Unlock rules** tab, set **Condition type** to **Purchased items** and leave **Rule logic** on **If**.
3. Under **Select items the customer must have purchased**, keep **Products** selected (it matches any variant), then click **Specific products** and add **The Complete Snowboard**.

<figure><img src="/files/MzHKicg2DQI8HNXSXSgS" alt="The Purchased items condition with Rule logic If, Products selected as the match type, and The Complete Snowboard in the product list."><figcaption><p>Products matches any variant; the condition heading confirms it reads "If the customer purchased selected items".</p></figcaption></figure>

4. Leave **Maximum purchased quantity** empty so any qualifying purchase quantity can pass, and set **Only look at orders from the last** to **60** days.
5. Leave the three order-status checkboxes at their defaults — **Ignore cancelled orders** and **Ignore orders that are not fully paid** are already on, and **Ignore unfulfilled or partially fulfilled orders** is off. Leave the rule's **Redirect URL** empty.
6. In **Messages**, set the **Access denied message** to:

> Sign in with an account that purchased The Complete Snowboard to view these accessories.

{% hint style="info" %}
Purchased items shows only the **Access denied message** — there's no Guest message field, because the rule isn't one of the five customer-identity rules. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees).
{% endhint %}

<figure><img src="/files/gjZOhQNYMQxOXgP52Opr" alt="The Messages card with a single Access denied message field set to the previous-purchase wording, and the Preview panel rendering it."><figcaption><p>One message field only, and the Preview panel confirms the wording before you save.</p></figcaption></figure>

7. Click **Save**.

### Result on the storefront

A signed-in customer with a qualifying purchase of The Complete Snowboard from the last 60 days can open the accessories page. A purchase older than 60 days does not qualify. A guest or a signed-in customer without a qualifying purchase sees the Access denied message above.

<figure><img src="/files/218FvOmdmWC4wwHIr2oM" alt="The Snowboard accessories page displaying the configured previous-purchase requirement."><figcaption><p>A visitor whose purchase history does not satisfy the rule sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Order quantity](/b2b-lock-password-protect/access-rules/order-quantity)
* [Cart conditions](/b2b-lock-password-protect/access-rules/cart-conditions)


# Order quantity

Match customers whose total order count meets a minimum — good for loyalty and repeat-buyer perks.

**Order quantity** matches a customer based on how many orders they've placed with your store in total, rather than what they bought. It's a good fit for loyalty or repeat-buyer perks — for example, unlocking a discount code or an exclusive product only for customers who've ordered from you a certain number of times before.

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), Order quantity can be set to match **If** the customer meets the order-count threshold, or **Unless** they don't — inverting it to match customers below the threshold instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

{% hint style="info" %}
This rule reads order history from a signed-in Shopify customer account. With **If**, a guest cannot meet the order threshold; with **Unless**, a guest has no matching order history and therefore satisfies the inverted condition.
{% endhint %}

## Add the rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Order quantity**.

<figure><img src="/files/hkunZRf2y4IiMcvWZX7l" alt="The Unlock rules tab with Order quantity selected in the Condition type dropdown."><figcaption><p>Select Order quantity from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Set the **Order threshold** — the minimum number of orders the customer must have placed for the rule to match. The default is 1 order.
5. **Ignore cancelled orders** is on by default, so cancelled orders don't count. Untick it if you want them included.

<figure><img src="/files/ZsvGntUK9aCzUitBqMsw" alt="The Order quantity rule settings, showing the order threshold field and the Ignore cancelled orders checkbox."><figcaption><p>Set the minimum number of orders a customer must have placed, and choose whether cancelled orders count.</p></figcaption></figure>

6. Choose **If** or **Unless**.
7. Click **Save**.

{% hint style="warning" %}
This rule counts up to the customer's **50 most recent orders placed within the last 60 days**. Orders older than 60 days are not included. If the customer placed more than 50 orders during that period, only the newest 50 are counted.
{% endhint %}

## Example: Unlock rewards after three orders

Suppose customers should be able to open a rewards page after placing at least three non-cancelled orders.

1. Select the **Repeat-customer rewards** page as the content to protect.

<figure><img src="/files/StkihVG13KN8ppreKDWr" alt="The Lock setup tab with Specific Page as the content type and the Repeat-customer rewards page listed under Restricted pages."><figcaption><p>Pick the page that repeat buyers should unlock.</p></figcaption></figure>

2. On the **Unlock rules** tab, set **Condition type** to **Order quantity** and leave **Rule logic** on **If**.
3. Set **Order threshold** to **3**. Leave **Ignore cancelled orders** ticked — it's on by default.

<figure><img src="/files/i9HN9k4uIpMzVgDqKCAp" alt="The Order quantity condition with Rule logic If, Order threshold set to 3, and Ignore cancelled orders ticked."><figcaption><p>The condition heading reads: If the customer order quantity matches.</p></figcaption></figure>

4. Leave the rule's **Redirect URL** empty.
5. In **Messages**, set the **Access denied message** to:

> Sign in with an account that has placed at least 3 orders to unlock these rewards.

{% hint style="info" %}
Order quantity shows only the **Access denied message** — there's no Guest message field, because the rule isn't one of the five customer-identity rules. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees).
{% endhint %}

<figure><img src="/files/79LyjhAPBX7X6w9pdEtm" alt="The Messages card with a single Access denied message field set to the three-order wording, and the Preview panel rendering it."><figcaption><p>The Preview panel confirms the wording before you save.</p></figcaption></figure>

6. Click **Save**.

### Result on the storefront

A signed-in customer with at least three counted orders can open the rewards page. A guest or a customer with fewer than three counted orders sees the Access denied message above.

<figure><img src="/files/BJjWXAzC0ftIN2TNAQZn" alt="The Repeat-customer rewards page displaying the configured three-order requirement."><figcaption><p>A visitor without three qualifying orders sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Purchased items](/b2b-lock-password-protect/access-rules/purchased-items)
* [Customer tags](/b2b-lock-password-protect/access-rules/customer-tags)


# Cart conditions

Match visitors based on what's currently in their cart — specific products, variants, item count, or subtotal.

Cart conditions are four related access rules that all look at the visitor's current shopping cart:

* **Cart contains selected products** — a specific product is currently in the cart.
* **Cart contains selected variants** — a specific variant is currently in the cart.
* **Cart quantity** — the total number of items in the cart is at least a number you set.
* **Cart total** — the cart's subtotal is at least a dollar amount you set.

They're a good fit for free-gift unlocks (add a specific product to reveal a bonus item) or minimum-order-value gating (unlock a discount or perk once the cart reaches a spending threshold).

Like most access rules (aside from the action-based ones such as Passcode, Secret link, Subscribe, and Confirmation prompt), each of these four can be set to match **If** the cart meets the condition, or **Unless** it doesn't — inverting it to match carts that don't meet the condition instead. See [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules).

## Add a cart condition rule

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. Choose the content you want to protect. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview) for how rules fit into a lock.
3. Click the **Unlock rules** tab, then in the **Condition type** dropdown, select **Cart contains selected products**, **Cart contains selected variants**, **Cart quantity**, or **Cart total**.

<figure><img src="/files/03KnGRJzbpsFU3sj0wRs" alt="The Unlock rules tab&#x27;s Condition type dropdown showing the four cart-related rule types: Cart contains selected products, Cart contains selected variants, Cart quantity, and Cart total."><figcaption><p>Select one of the four cart conditions from the Condition type dropdown on the Unlock rules tab.</p></figcaption></figure>

4. Configure that rule (see each section below).
5. Choose **If** or **Unless**.
6. Click **Save**.

### Cart contains selected products

Select one or more products. The rule matches whenever any of those products is currently in the visitor's cart — this checks presence only, regardless of how many units or which specific variant.

<figure><img src="/files/Hb1jxZJ56a0e8WBFsPMf" alt="The Cart contains selected products rule settings, showing a product selection list."><figcaption><p>Select the product(s) that must be in the cart for this rule to match.</p></figcaption></figure>

### Cart contains selected variants

Select one or more specific variants. The rule matches whenever any of those exact variants is currently in the cart. Use this instead of Cart contains selected products when the condition should depend on a specific size, color, or other variant option, not just the product as a whole.

<figure><img src="/files/lfXODgxCMCXFiism1qTg" alt="The Cart contains selected variants rule settings, showing a variant selection list."><figcaption><p>Select the specific variant(s) that must be in the cart for this rule to match.</p></figcaption></figure>

### Cart quantity

Set a number. The rule matches whenever the total number of items in the cart — across all products, not just a specific one — is **at least** that number.

<figure><img src="/files/V879j50iWzFWxYG5T1JZ" alt="The Cart quantity rule settings, showing a number input for the minimum total items required in the cart."><figcaption><p>Set the minimum total number of items the cart must contain for this rule to match.</p></figcaption></figure>

### Cart total

Set a dollar amount. The rule matches whenever the cart's subtotal is **at least** that amount.

<figure><img src="/files/gxpJVfo9Y8Hq2Xw9sntT" alt="The Cart total rule settings, showing a currency input for the minimum cart subtotal required."><figcaption><p>Set the minimum cart subtotal required for this rule to match.</p></figcaption></figure>

{% hint style="warning" %}
**Cart quantity and Cart total only support "at least" (≥) today.** Even though the number field might look like a general-purpose input, there's currently no way to configure "exactly," "at most," or "less than" for either of these two rules. If you need content to unlock only below a certain quantity or amount, use the **Unless** toggle together with a slightly higher threshold, or plan around the "at least" behavior directly — don't build a lock expecting a different comparison, since it isn't supported.
{% endhint %}

{% hint style="info" %}
Cart conditions are evaluated again when the cart changes. A visitor who is denied can qualify after adding the required product or variant, or after reaching the configured quantity or subtotal.
{% endhint %}

## Examples

Each example below represents a separate Lock. Leave the rule's **Redirect URL** empty so visitors who do not qualify see the configured message.

{% hint style="info" %}
None of the four cart conditions shows a **Guest message content** field — they don't look at who the visitor is, so only the **Access denied message** applies. See [Access rules overview](/b2b-lock-password-protect/access-rules/overview#what-a-blocked-visitor-sees).
{% endhint %}

### Cart contains selected products

Suppose a bonus-offer page should open after the visitor adds any variant of **The Complete Snowboard** to the cart.

1. Select the **Snowboard bonus offer** page as the content to protect.

<figure><img src="/files/I1hS96ndD1LYDaRqYGxx" alt="The Lock setup tab with Specific Page as the content type and the Snowboard bonus offer page listed under Restricted pages."><figcaption><p>Pick the page the cart should unlock.</p></figcaption></figure>

2. On the **Unlock rules** tab, set **Condition type** to **Cart contains selected products**, leave **Rule logic** on **If**, then click **Specific products** and add **The Complete Snowboard**.

<figure><img src="/files/1pu2SY6dh6oX2Jc6XHvm" alt="The Cart contains selected products condition with Rule logic If and The Complete Snowboard in the product list."><figcaption><p>The condition heading reads: If the cart contains the selected product.</p></figcaption></figure>

3. In **Messages**, set the **Access denied message** to:

> Add The Complete Snowboard to your cart to unlock this offer.

<figure><img src="/files/YfSRXNIoD5edYtRo5UZG" alt="The Messages card with the Access denied message set to the required-product wording, and the Preview panel rendering it."><figcaption><p>The Preview panel confirms the wording before you save.</p></figcaption></figure>

4. Click **Save**.

The page opens when any The Complete Snowboard variant is in the cart. Otherwise, the visitor sees the message above.

<figure><img src="/files/VFQuFReiM8iMJztHS5py" alt="The Snowboard bonus offer page displaying the configured required-product message."><figcaption><p>Without the product in the cart, the visitor sees the Access denied message from this example.</p></figcaption></figure>

## Related docs

* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Combining rules](/b2b-lock-password-protect/access-rules/combining-rules)
* [Purchased items](/b2b-lock-password-protect/access-rules/purchased-items)
* [Order quantity](/b2b-lock-password-protect/access-rules/order-quantity)


# Lock behavior overview

What a blocked visitor actually experiences, and the six behaviors you can configure on a lock.

Every lock in Sami B2B Lock, Password Protect is built from three pieces: **content to lock** (what's protected), **access rules** (who must match to get through), and **lock behavior** — this piece. Lock behavior is what a blocked visitor actually experiences on your storefront, and what happens once someone passes your rules.

{% hint style="info" %}
Not sure how these three pieces fit together? Start with [Locks overview](/b2b-lock-password-protect/locks/overview).
{% endhint %}

Where content-to-lock decides *what* is protected and access rules decide *who* gets in, lock behavior decides:

* What a blocked shopper sees in place of the protected price, button, page, or menu link.
* Whether the protected content is hidden from search engines, on-site search, and navigation menus.
* Where a visitor goes after they pass (or after they fail a specific rule).
* Whether passing a rule tags the customer's account.
* How long a visitor stays unlocked before they have to verify again.

These settings live on the **Unlock rules** tab of each lock's editor — the same screen where you add access rules, not a separate step afterward. Hide price and Add to cart, Hide from search engines, and Hide from menus configure in the **Blocked visitor behavior** panel in that tab's right-hand sidebar, and the exact fields shown there depend on the lock's content type. Redirect after access, Add customer tags on verification, and Grant access duration instead configure per access key/rule in that same tab's main column, alongside the rule builder.

## The six behaviors

| Behavior                       | What it controls                                                                              | Guide                                                                                             |
| ------------------------------ | --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Hide price and Add to cart     | Hide a product or collection's price, Add to cart button, or both — or hide the item entirely | [Hide price and Add to cart](/b2b-lock-password-protect/lock-behavior/hide-price-and-add-to-cart) |
| Hide from search engines       | Remove protected content from on-site search, the sitemap, and search engine indexing         | [Hide from search engines](/b2b-lock-password-protect/lock-behavior/hide-from-search-engines)     |
| Hide from menus                | Remove a protected item's links from storefront navigation menus                              | [Hide from menus](/b2b-lock-password-protect/lock-behavior/hide-from-menus)                       |
| Redirect after access          | Send a visitor to a URL after they pass, or after a specific rule denies them                 | [Redirect after access](/b2b-lock-password-protect/lock-behavior/redirect-after-access)           |
| Add customer tags after access | Tag a signed-in customer's account after they satisfy an access key                           | [Add customer tags after access](/b2b-lock-password-protect/lock-behavior/customer-auto-tags)     |
| Grant access duration          | How long a visitor stays unlocked before re-verifying                                         | [Grant access duration](/b2b-lock-password-protect/lock-behavior/grant-access-duration)           |

## Related docs

* [Locks overview](/b2b-lock-password-protect/locks/overview)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)
* [Manage locks](/b2b-lock-password-protect/locks/manage-locks)
* [Create your first lock](/b2b-lock-password-protect/quick-start/quickstart)


# Hide price and Add to cart

Hide a locked product or collection's price, Add to cart button, or the whole item, until a visitor passes your access rules.

This behavior is available on locks whose content type is **Products and variants** or **Collections**. Instead of blocking the whole page, it lets a blocked visitor keep browsing the product or collection while hiding the specific parts you choose — the price, the Add to cart button, or both — until they meet your access rules.

## Reach this setting

1. Open **Locks** and create a new lock, or open an existing one to edit it.
2. On the **Lock setup** tab, choose **Products and variants** or **Collections** as the content type, then select the products or collections you want to protect.
3. Click the **Unlock rules** tab to continue.
4. In the main column, add one or more access rules that decide who is allowed to see price and Add to cart.
5. On the same **Unlock rules** tab, the right-hand sidebar shows the **Blocked visitor behavior** panel — configure the price/Add to cart options there, alongside your rule.

<figure><img src="/files/pdSOSVRqIwGEaaoYOBIK" alt="The Blocked visitor behavior section showing the choose lock settings dropdown with price, Add to cart, and both options."><figcaption><p>Choose whether to hide price only, Add to cart only, or both for the selected products or collections.</p></figcaption></figure>

## Choosing what to hide

Use the dropdown to pick one of:

* **Hide product price** — the price is replaced by your message or button; Add to cart still works.
* **Hide product atc** — the Add to cart button is replaced; the price still shows.
* **Hide product price and atc** — both are hidden. When you pick this option, a note confirms that both prices and cart buttons will be hidden.

## What shoppers see instead

In place of the hidden price or button, a blocked shopper sees either a plain-text message or a styled button — you choose the style in the lock's design settings (see [Colors and templates](/b2b-lock-password-protect/design-and-customization/colors-and-templates)). Either way, the default English copy is:

* Hidden price: **"Login to see price"**
* Hidden Add to cart: **"Login to Add to cart."**

Both strings are editable per lock and per language from the lock's translation settings.

<figure><img src="/files/tejfsJ9Xmw3AZUg5Gvif" alt="A live storefront product page seen by a signed-out visitor: the product image and title are visible, and a Login to see price link sits where the price would be, with no Add to cart or Buy it now button."><figcaption><p>The result on a live storefront — the product stays browsable, only the price and buy buttons are replaced.</p></figcaption></figure>

{% hint style="info" %}
"Login" in the default copy is just the default wording — the actual requirement is whatever access rules you've added to the lock, not necessarily being logged in. Edit the text if your rule isn't about signing in (for example, a passcode or a customer tag).
{% endhint %}

## Hiding the product or collection entirely

If hiding just the price and button isn't enough, turn on **Hide products from storefront**. This is a stronger option: instead of showing the product with its price/Add to cart hidden, it removes the protected products or collections from product lists, search results, and product pages entirely, so blocked visitors can't find them at all. When this is on, the price/Add to cart dropdown above no longer applies, since there's nothing left to show.

<figure><img src="/files/Sct8C6JdNBsHjvaHWhYL" alt="The Hide products from storefront checkbox in the Blocked visitor behavior section."><figcaption><p>Turning on Hide products from storefront removes the protected items from listings and search instead of just hiding price and Add to cart.</p></figcaption></figure>

{% hint style="warning" %}
This setting and the price/Add to cart options above may require a paid plan. If your current plan doesn't include it, the app shows an upgrade prompt instead of the toggle.
{% endhint %}

## Save your lock

Click **Save** once you've chosen your settings. The behavior applies immediately to any matching products or collections on your live storefront.

## Video walkthrough

Prefer to watch it done end to end? This walkthrough covers the same setup:

{% embed url="<https://www.youtube.com/watch?v=wUhZ6eq2kYQ>" %}

## Related docs

* [Lock behavior overview](/b2b-lock-password-protect/lock-behavior/overview)
* [Products and variants](/b2b-lock-password-protect/content-to-lock/overview)
* [Colors and templates](/b2b-lock-password-protect/design-and-customization/colors-and-templates)
* [Access rules overview](/b2b-lock-password-protect/access-rules/overview)




---

[Next Page](/llms-full.txt/1)

