# Purchase rules

> A minimum, a maximum and a multiple per variant, and a minimum order per currency, checked by Shopify on the cart and at checkout, with your own messages.

Status: Ready (Smootify 2.0)  
URL: https://www.smootify.io/docs/features/purchase-rules  
Updated: 2026-10-15

Purchase rules set how many pieces of a variant a customer can buy: a minimum, a maximum and a multiple, such as “at least 6, in packs of 6”. You can also ask for a minimum order amount per currency. You set the rules in the Shopify admin, on the product, and Shopify checks them on every change to the cart and at checkout. On your Webflow site the quantity fields follow them.

> [!NOTE]
> Purchase rules come with the Smootify app in Shopify, on every Smootify plan, the free one too, and on every Shopify plan: Shopify runs them on its own servers, at checkout.

## 1. Set the rules of a variant

In the Shopify admin, open the product.

- The **Purchase rules** block on the product page lists the variants that have rules. **Edit the rules** opens the table below.
- **More actions → Purchase rules** opens a table with every variant of the product and three columns: minimum, maximum and multiple. The **Every variant** fields at the top fill a whole column at once.

![The Purchase rules block on a product page in the Shopify admin: each variant with its minimum, maximum and multiple, and an Edit the rules button.](https://www.smootify.io/docs/shots/purchase-rules-block.webp)

![The Purchase rules table: Every variant fields for the minimum, maximum and multiple above a table with one row per variant.](https://www.smootify.io/docs/shots/purchase-rules-variants.webp)

Leave a cell empty when the variant has no rule of that kind. A variant on more than one line of the cart counts once, with its quantities added up.

## 2. Set a minimum order

In the Shopify admin, open **Settings → Checkout → Checkout rules → Add rule** and choose **Purchase rules**.

- Write one currency per line, with the amount: `EUR 150`, `CHF 160`.
- The minimum applies at checkout, to the subtotal of the cart.
- After saving, turn the rule on: Shopify adds checkout rules turned off.

![The Purchase rules checkout rule in the Shopify admin: the minimum order, one currency per line, and the four messages with their placeholders.](https://www.smootify.io/docs/shots/purchase-rules-checkout-rule.webp)

## 3. Write your messages

On the same page you change the messages the customer reads. Each message has its own placeholders:

| Message | Placeholders |
|---|---|
| Below a variant’s minimum | `{{title}}`, `{{min}}`, `{{quantity}}` |
| Above a variant’s maximum | `{{title}}`, `{{max}}`, `{{quantity}}` |
| Not a multiple of a variant’s multiple | `{{title}}`, `{{step}}`, `{{quantity}}` |
| Below the minimum order | `{{amount}}`, `{{currency}}` |

For example: `{{title}}: sold in packs of {{step}}.`

![A Shopify checkout with a €29.90 cart and the banner "The minimum order is 50.00 EUR" above the contact fields.](https://www.smootify.io/docs/shots/checkout-minimum-order.webp)

## On your site

You add nothing to your Webflow site. The quantity fields you already built follow the rules:

- **On the product page**, the quantity field starts at the minimum, goes up in steps of the multiple and stops at the maximum. Without a maximum it stops at the stock. A quantity the rules refuse moves to the nearest valid one.
- **In the cart**, the quantity of a line goes up and down in steps of the multiple and stops at the maximum. It can still go to 0, which removes the line.
- **A direct add-to-cart button** (a Custom element with the tag `button` and `data-is="direct-add-to-cart"`) adds the minimum.
- If Shopify refuses a quantity, its message shows in the Error message of the Form Block.

A variant of linen napkins with minimum 6, multiple 6 and maximum 48:

Example: the variant Linen napkins · Natural with minimum 6, multiple 6 and maximum 48.

| Where | What the quantity field does |
|---|---|
| Product page | starts at 6 (the minimum), goes up 6 → 12 → 18 in steps of the multiple, stops at 48 (the maximum; without one, at the stock) |
| Cart line | goes up and down by 6, up to 48; one step down from 6 goes to 0, which removes the line |
| Error message of the Form Block | when Shopify refuses a quantity, the Not a multiple message shows: your text `{{title}}: sold in packs of {{step}}.` reads "Linen napkins: sold in packs of 6." |

To show the rules on the page, use `variant="quantity-min"`, `variant="quantity-max"` and `variant="quantity-increment"`: see the [variant attributes](https://www.smootify.io/docs/reference/attributes/variant).

## Purchase rules and B2B

A B2B catalog in Shopify can have its own quantity rules. When a variant has both, the strictest wins: the higher minimum, the lower maximum, and a multiple of both. See [Quotes and B2B](https://www.smootify.io/docs/features/quotes).

## Before you publish

> [!STUCK]
> - **The minimum order does nothing.** Shopify adds checkout rules turned off: turn on **Purchase rules** in Settings → Checkout → Checkout rules.
> - **The cart refuses a quantity and nothing shows.** The message goes in the Error message of the cart's Form Block: keep it in your design.
