Batten
Color theme

Getting started

Install the app, build a tier set, import in bulk, and show the ladder on your product pages.

Batten Volume Discounts gives guests and ordinary logged in customers the quantity price breaks that Shopify otherwise reserves for B2B company accounts.

1. Install

Install from the Shopify App Store. The app is embedded, so it runs inside your Shopify admin, and it brings its own metaobject definition for tier sets. Reinstalling does not duplicate anything.

2. Build a tier set

Open the app and choose New tier set.

  1. Name the set, for example Fasteners volume.
  2. Add breaks. Each break is a minimum quantity plus either a percentage off or a fixed unit price.
  3. Choose the scope: specific products, a collection, a tag, a vendor, or every product.
  4. Decide whether quantity aggregates across variants of the same product, or counts per variant.
  5. Optionally restrict the set to customers carrying a given tag.

The editor shows a price ladder preview for a sample price, so you can see what a shopper pays at each break before you save.

A typical trade ladder looks like this.

Minimum quantityDiscount
105 percent
2510 percent
5015 percent
10020 percent

The Free plan holds one tier set with up to three breaks. Growth lifts that to ten sets with as many breaks as you like, and Pro removes the set limit.

3. Import in bulk

For a large catalog, open Import and paste or upload a CSV with a product handle or a variant SKU, a minimum quantity, and either a percentage or a unit price. Column headers can be in any order and any capitalization. The import validates every row, shows a preview, and reports errors before anything is written. Handles and SKUs that cannot be found are listed rather than quietly dropped. Import is a Growth feature.

4. Add the storefront blocks

In the theme editor, add the Volume price table block to the product template, near the quantity input. It renders the applicable breaks in Liquid and highlights the current break as the shopper changes quantity.

Add the Volume savings notice block to your cart page or cart drawer. It tells the shopper how many more units unlock the next break. This block is a Pro feature, and on a lower plan the theme editor says so while the storefront renders nothing.

5. Check the discount applies

Add nine units of a scoped product and confirm nothing happens, then add a tenth and confirm the first break appears in the cart. Cross the second break and confirm it moves. The Function reads a compiled copy of your tier sets from the discount node, so a save in the admin is live on the next cart calculation.

What the shopper sees, and why it matches

The price table is written from the tier set's own scope rather than kept in step by hand. Save a set and every product the scope covers gains the table. Take a product out of the collection, disable the set, or delete it, and the table goes with it. That is deliberate: a product page must never advertise a ladder that checkout will not honor.

Two cases where the table is hidden on purpose:

  • A set restricted to a customer tag shows no table to a guest, because a guest cannot unlock those prices.
  • A set using fixed unit prices shows no table while the buyer is browsing in a currency other than your shop's, because a fixed price in one currency is not a fixed price in another. A percentage only ladder stays visible in every currency.

If a scope covers more than a thousand products, the discount still applies to all of them, and the admin tells you that only the first thousand carry the table.

Pairing with the trade theme

A Shopify theme cannot ship discount logic of its own, which is why the price table lives here and the quick order list lives in the theme. The theme reads the same product data this app writes, so the two line up without either depending on the other's code.

  1. Install this app and build at least one tier set.
  2. In the theme editor, open the product template and add the Volume price table block under the quantity input.
  3. Turn on the theme setting that shows quantity rules, so minimums and increments sit next to the price ladder.
  4. Turn on Aggregate across variants, because the quick order list is a variant grid and a buyer typing quantities against several sizes of one product expects them to count together.
  5. Open a product in the quick order list, add mixed variant quantities that total a break, and confirm the cart, the price table, and the theme's own quantity rules all agree.

Still stuck? Send it through the support form and you will have a reply inside two business days.