Documentation

Tierfy Documentation

Everything you need to launch bulk discounts and tiered pricing on your Shopify store, from install to advanced Design Studio customization.

Overview

Tierfy lets Shopify merchants set up quantity‑break pricing, bulk discounts and tiered promotions without touching theme code. The app creates discount rules that are evaluated by a native Shopify Discount Function at checkout, and renders a matching “buy more, save more” table on your product pages through an app embed block.

At a glance, Tierfy gives you:

  • Unlimited quantity tiers per rule (percentage or fixed‑amount off)
  • Four ways to target: by exact variant SKU, by product tag, by collection, or by product ID
  • Scheduled activation and expiry windows
  • A storefront widget with full HTML / CSS / JS control (Design Studio)
  • CSV bulk import & export of rules
  • Real‑time analytics on app‑driven revenue, AOV and rule performance

Installation

Install Tierfy from the Shopify App Store or from the install form on the Tierfy homepage. During install, Shopify asks you to approve the scopes the app needs:

  • write_products: to read product and variant data used when targeting rules
  • write_discounts: to register the Discount Function that applies your tiers at checkout
  • read_orders: to measure app‑driven revenue and enforce plan limits
  • read_themes: to help merchants locate the theme editor for embedding the widget

Once install finishes, Tierfy automatically registers the Discount Function, subscribes to the orders/create webhook for analytics, and opens the embedded admin inside your Shopify dashboard.

🧩
Enable the app embedAfter installing, open Online Store → Themes → Customize → App embeds and toggle on Tiered Pricing (listed under Tierfy). This is what renders the tier table on your product pages.

Creating your first rule

  1. Open the Tierfy admin and click Pricing Rules → Create rule.
  2. Give the rule a clear internal title (e.g. “Summer bulk tees”), or leave it blank to auto-generate one from your targets.
  3. Pick a target type and enter its value(s) (see Targeting).
  4. Add at least one tier. A tier is a minimum quantity and a discount.
  5. Optionally set a start and / or end date.
  6. Toggle the Active switch on or off. You can flip this at any time later to pause or resume the rule without deleting it.
  7. Save. Active rules go live immediately (or on their scheduled start).

Targeting products

Each rule targets products in exactly one of four ways. Pick the Target type in the rule editor and fill in the matching value(s):

SKU

Match one or more exact variant SKUs (comma separated, e.g. SHIRT-1, SHIRT-2). Use this when you need size‑ or color‑level precision across specific variants.

Product tag

Match every product that carries one of the tags you list (comma separated, e.g. summer24, new_arrival). Great for campaign‑style targeting that updates as you re‑tag products.

Collection

Pick one collection from the dropdown. All products currently in that collection qualify, and new additions to the collection qualify automatically.

Product ID

Paste one or more Shopify product IDs (comma separated, e.g. 8674002075819, 8674002075820). Every variant of each listed product qualifies.

🔁
Enable / disable any rule at any timeEvery rule has an Active toggle. Disabled rules are kept in the database along with their tiers and targeting, but are skipped at checkout and hidden from the storefront widget until you re‑enable them. Use this to stage seasonal promos in advance or to briefly pause a rule without losing its configuration.

Customer Eligibility (VIP & Wholesale groups)

By default, rules apply to All Customers. However, you can restrict a pricing rule to only apply to logged-in customers who have specific Shopify tags.

  • Customer Tags: Specify one or more tags (comma-separated, e.g. vip, wholesale). Only customers possessing at least one of these tags will receive the discount. This is perfect for setting up exclusive B2B wholesale pricing ladders or VIP reward tiers without needing a separate Shopify store.
💡
Testing tag-gated rulesTo test a customer-specific rule, ensure you are logged into the storefront using a customer account that actually has the required tag attached to it in your Shopify admin.

Tiers & discount types

A tier is a minimum quantity plus a discount. Add as many tiers as you want. They are matched at checkout based on the quantity of qualifying items in the cart line.

  • Percentage: e.g. 10% off when quantity ≥ 2.
  • Fixed amount: e.g. $5 off per unit when quantity ≥ 5.

When multiple tiers match a line, Tierfy always applies the highest‑qualifying tier for the customer's benefit.

Scheduling

Each rule supports an optional startsAt and endsAt. A rule with a future start is created in a scheduled state and only begins discounting once the start time is reached. A rule with an end time stops applying discounts automatically.

⏰
TimezoneScheduled times are evaluated against your shop's IANA timezone (set in Shopify admin). You'll see the resolved local time in the rule editor.

Storefront embed

Tierfy uses Shopify's Online Store 2.0 app embed system, with no theme forking and no liquid edits. With the Tiered Pricingtoggled on, the widget script loads on product pages, detects the current product, matches the most relevant active rule, and mounts the tier table.

When a customer changes the quantity or variant, the table highlights the currently active tier and shows the computed price, so the discount is obvious before they hit the cart.

Collection & Search Page Badges

If you want to highlight products with active volume discounts on your Collection, Search, or Featured Grid pages, you can add a lightweight Liquid snippet to your theme code. The badge text is fully customizable to whatever text you prefer, such as ⚡ Unlock Bulk Deals, Buy More Save More, or Volume Discount Available.

Tierfy automatically maintains a high-performance storefront index in shop.metafields.tiered_pricing.rules_index.value. This index contains all active Product IDs, Collection IDs, Tags, and Variant SKUs that have active discount rules, allowing your theme to render badges instantly with zero page speed penalty or layout shift.

Step 1: Create the Liquid Snippet

In your Shopify Admin, go to Online Store → Themes → Edit code. Under Snippets, click Add a new snippet and name the file tierfy-discount-badge.liquid. Paste the following code:

liquid
{%- comment -%}
  Tierfy Volume Discount Badge
  Usage: {% render 'tierfy-discount-badge', card_product: card_product %}
{%- endcomment -%}

{%- assign p = card_product | default: product -%}
{%- assign tp_idx = shop.metafields.tiered_pricing.rules_index.value -%}
{%- assign has_tierfy_discount = false -%}

{%- if p and tp_idx -%}
  {%- assign pid_str = p.id | append: '' -%}

  {%- comment -%} 1. Overflow flag fallback {%- endcomment -%}
  {%- if tp_idx.overflow -%}
    {%- assign has_tierfy_discount = true -%}

    {%- comment -%} 2. Product ID match {%- endcomment -%}
  {%- elsif tp_idx.products contains pid_str -%}
    {%- assign has_tierfy_discount = true -%}
  {%- endif -%}

  {%- comment -%} 3. Tag match {%- endcomment -%}
  {%- unless has_tierfy_discount -%}
    {%- for tag in p.tags -%}
      {%- assign ltag = tag | downcase -%}
      {%- if tp_idx.tags contains ltag -%}
        {%- assign has_tierfy_discount = true -%}
        {%- break -%}
      {%- endif -%}
    {%- endfor -%}
  {%- endunless -%}

  {%- comment -%} 4. Collection match {%- endcomment -%}
  {%- unless has_tierfy_discount -%}
    {%- for collection in p.collections -%}
      {%- assign cid_str = collection.id | append: '' -%}
      {%- if tp_idx.collections contains cid_str -%}
        {%- assign has_tierfy_discount = true -%}
        {%- break -%}
      {%- endif -%}
    {%- endfor -%}
  {%- endunless -%}

  {%- comment -%} 5. SKU match (checks all variant SKUs) {%- endcomment -%}
  {%- unless has_tierfy_discount -%}
    {%- for variant in p.variants -%}
      {%- assign lsku = variant.sku | downcase -%}
      {%- if lsku != blank and tp_idx.skus contains lsku -%}
        {%- assign has_tierfy_discount = true -%}
        {%- break -%}
      {%- endif -%}
    {%- endfor -%}
  {%- endunless -%}
{%- endif -%}

{%- if has_tierfy_discount -%}
  <div class="tierfy-badge-wrapper product-badges__badge product-badges__badge--rectangle">
    <span class="tierfy-badge">⚡ Unlock Bulk Deals</span>
  </div>
{%- endif -%}

Step 2: Render in Theme Product Cards or Blocks

Open your theme's product card block or snippet (e.g. blocks/_product-card-gallery.liquid, snippets/card-product.liquid in Dawn theme, or snippets/product-card-grid.liquid in vintage themes). Place this render tag where you want the badge to appear:

liquid
{% render 'tierfy-discount-badge', card_product: product %}

Step 3: Add CSS to a Dedicated Theme CSS File

Add custom CSS rules to your theme's main stylesheet (e.g., assets/base.css, assets/theme.css, or assets/global.css):

css
.tierfy-badge-wrapper {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
}

.tierfy-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #111827;
  color: #ffffff;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border-radius: 4px;
  line-height: 1.2;
  white-space: nowrap;
}
✨
Supports All Target TypesThe snippet dynamically checks Product IDs, Tags, Collections, and Variant SKUs against your active Tierfy rules. Any active discount rule automatically highlights qualifying products across your collection grid and search results.

Custom Discount Messages (Cart, Drawer & Checkout)

When a customer qualifies for tiered pricing, Tierfy displays your custom discount message directly underneath the discounted line item in the Cart Drawer, on the Cart Page (/cart), and throughout Shopify Checkout. You can customize this message both globally and on a per-rule basis to better match your brand voice.

Message Fallback Hierarchy

  1. Rule-level Message: If a specific pricing rule has a custom message defined, Tierfy will use it for any items discounted by that rule. This is perfect for rule-specific promos (e.g. “Summer BOGO Promo Applied!”).
  2. Global Settings Message: If the rule doesn't have a custom message, Tierfy will fall back to the Global Cart & Checkout Message configured in your app Settings page.
  3. Default Message: If neither are set, Tierfy will use the standard default text.

Available Variables

You can make your messages dynamic by including these variables anywhere in the text field:

  • {{discountValue}}: The discount value with unit automatically included — displays as 15% for percentage tiers, or $5.00 for fixed amount tiers.
  • {{totalSavings}}: The total calculated savings amount with your store currency symbol automatically included (e.g. $15.00).
  • {{itemQuantity}}: The actual quantity of the item currently in the cart (e.g. 3).
  • {{minQuantity}}: The minimum quantity required by the qualifying tier (e.g. 2).
💡
Example usage
If you enter: Awesome! You saved {{totalSavings}} by buying {{itemQuantity}} items!
It will display as: Awesome! You saved $15.00 by buying 3 items! at checkout.

Or if you enter: Unlocked {{discountValue}} off for buying {{minQuantity}}+!
It will display as: Unlocked 15% off for buying 2+! (or Unlocked $5.00 off for buying 2+! if fixed amount).

Design Studio

Design Studio is a full in‑app IDE (Monaco‑powered, the same editor VS Code uses) for total control of the widget. Four files are editable:

  • container.html: the outer markup of the tier table
  • row.html: the markup for a single tier row
  • custom.css: any CSS you want layered on top
  • custom.js: client‑side hooks that run on mount and on variant / cart changes

You can also override where the widget mounts on the PDP. Paste any CSS selector (e.g. .product__info, #AddToCart,form[action*="/cart/add"]) into the Table selector field and the widget mounts exactly there.

⌨️
Editor shortcuts⌘S / Ctrl+S saves. Alt+Z toggles word‑wrap. Click the expand icon for full‑screen editing.

CSV bulk import

For large catalogs and seasonal campaigns, import rules in bulk from a CSV. Each row becomes a rule (or a row in an existing rule). You can also export your current rules to CSV from the same screen.

  1. Go to Pricing Rules → Import.
  2. Download the template CSV to see the expected columns.
  3. Upload your file. Tierfy runs the import in the background and shows per‑row status.
  4. You can cancel a running import from the import detail screen.

Analytics

Tierfy records every order that used one of your rules (via theorders/create webhook) and writes a daily rollup of total orders, total revenue, app‑attributed orders and app‑attributed revenue. The Analytics page visualises:

  • Revenue lifted by Tierfy vs. baseline
  • App‑driven orders and AOV
  • Per‑rule and per‑tier performance
  • Discount spend over time

Plans & limits

Tierfy has three plans. You can switch at any time from the Billing page.

Free · $0 / mo

Up to 3 active rules and 5 app‑discounted orders per month.

Growth · $9.99 / mo

Unlimited active rules, CSV bulk import, scheduling, up to $2,000 of app‑driven revenue per month.

Unlimited · $14.99 / mo

Everything in Growth, uncapped revenue, full Design Studio (HTML / CSS / JS), custom mount selector, option to combine with Shopify discounts.

⚠️
What happens if I hit a limit?When you reach a plan limit, Tierfy pauses checkout discounting and shows a banner prompting you to upgrade. Your rules and settings are preserved; discounts resume the moment you upgrade or the monthly counter resets.

Combining with Shopify discounts

On the Unlimited plan you can toggle Combine with Shopify discountsin settings. Tierfy then declares its Discount Function as combinable with product‑ and order‑level discount codes, which is useful for loyalty codes, promo codes and similar campaigns. On lower plans, Tierfy is applied on its own and will not stack with other discount sources.

Uninstalling

Uninstalling Tierfy from Shopify admin is non‑destructive to your theme. The app embed stops loading on your storefront, the Discount Function is removed from your checkout, and the OAuth session is revoked. Your theme is never modified by Tierfy, so there is nothing to clean up on your side.

Data held about your shop is handled per our Privacy Policy.

Support

The fastest way to reach us is the in‑app chat widget (bottom‑right of every Tierfy admin page). We answer messages there in business hours and log every conversation so you don't have to repeat yourself. You can also email support@zxclabs.com or visit tierfy.zxclabs.com.