Per-unit fee with quantity breaks
Last updated: September 23, 2026
For per-unit services that get cheaper in volume, such as labelling, kitting or personalization, use a per-product Formula fee: if(qty >= 10, 0.50, 0.65) * qty. It charges 0.65 per unit, or 0.50 per unit from 10 units of the same product. 12 labelled items pay 6.00; 4 pay 2.60.
The rule in FlexiFees
| Setting | Value |
|---|---|
| Fee title | Labelling fee |
| Scope | Per product fee |
| Fee type | Formula |
| Formula | if(qty >= 10, 0.50, 0.65) * qty (the editor template Lower rate from a quantity; example amounts) |
| SKU | LABEL |
| Condition | Product collection is one of Custom labels |
Quantity per product or for the whole cart?
- In a per-product formula,
qtyis the quantity of that product in the cart. 12 of one label and 3 of another are priced as 12 at 0.50 and 3 at 0.65, then added into one fee line (6.00 + 1.95 = 7.95). - To price by the total number of items, use a cart formula instead:
if(cart_qty >= 10, 0.50, 0.65) * cart_qty. Note thatcart_qtycounts every item in the cart, not only the matching ones.
More breaks
Nest if() for more steps, highest first: if(qty >= 50, 0.35, if(qty >= 10, 0.50, 0.65)) * qty.
Good to know
- A per-product fee needs at least one product condition (collection, tag, type, vendor, category or others) to know which products are charged.
- If the charge depends on an option the customer picks for a line (for example engraving text), add the line item property condition; see the engraving fee.
The first cart with a new amount. Calculated fees produce amounts Shopify has not seen before. The first time a new amount appears, Shopify can take a few seconds, occasionally up to about a minute, to accept the fee line; FlexiFees retries automatically and the same amount is instant afterwards.
Related
Questions
Is qty the quantity of one product or of the whole cart?
In a per-product formula, qty is the quantity of that product. For the total number of items, use cart_qty in a cart formula.
Can I have more than two price breaks?
Yes. Nest if(), highest threshold first, for example if(qty >= 50, 0.35, if(qty >= 10, 0.50, 0.65)) * qty.