Skip to content

Wholesale Pricing, Volume Discounts and Minimum Orders ​

Not every customer pays list price. Iraca lets you charge less at higher quantities, give a particular customer their own rate, group customers into tiers that share a rate, take a straight percentage off for a customer or a whole tier, and refuse an order that's too small to be worth packing — all from one place.

Until you set a price up, nothing changes: every order line is priced at the product's unit price, exactly as before.


The idea: one price list, read from the bottom up ​

A price in Iraca is one line that says: at this quantity or above, this product costs this much.

Stack a few of them and you have volume discounts:

Minimum quantityUnit price
25 and up$9.00
100 and up$8.00

Order 40 and you pay $9.00 each. Order 100 and you pay $8.00 each.

And because the lowest price starts at 25, there's no price at which 10 units can be sold — so 25 is also the minimum order quantity for that product. You don't set a minimum separately; it's whatever your cheapest rung starts at. If you want a minimum without a discount, add a single price at the quantity you want to require.


Where you set prices ​

There are three places, and which one you use depends on who the price is for.

Volume pricing — open to every customer ​

Open the product (Inventory → Products, then the product) and find the Volume pricing card. Prices added here apply to anyone who orders that product.

A pricing group — a tier of customers ​

Go to Contacts → Groups. A group is a tier several customers share — "Distributors", "Preferred", "Buying club". Give it a price list of its own with the Prices button, and every customer in the group gets those rates.

Use this when the same rate should apply to more than one customer. Setting it once on the group means there's one place to change it later, rather than the same edit repeated on every account.

A customer's own prices ​

Go to Contacts, find the customer, and choose Pricing. Prices added here apply to that customer only, and you can set them across as many products as you like from the one dialog.

Use this for a rate negotiated with one account specifically.

All three are for wholesale customers. A retail customer — including everyone your online storefronts create automatically — pays the product's unit price, and the pricing controls aren't offered on them. See Contacts for the difference.


Percentage discounts ​

A price list is precise but it has to be written out product by product. When what you actually mean is "this customer gets 30% off everything", set a discount percentage instead.

You can set one in two places:

  • On a group (Contacts → Groups, the Discount field) — everyone in that tier gets it.
  • On one customer (their contact form, the Discount % field) — just them.

The percentage comes off your list prices — the product's unit price, or your shared volume pricing at whatever break the quantity reaches.

A customer's own percentage overrides their group's ​

Leave the customer's Discount % blank and they inherit their group's. Type a number in and that number wins instead.

That includes zero, which is a real setting and not the same as blank:

  • Blank — "use whatever the group gives."
  • 0 — "this customer is on the Distributors tier, but takes no percentage off."

A percentage doesn't stack on an agreed price ​

This is the rule worth reading carefully, because it's the one that surprises people:

The percentage applies to your list prices only. On any product where you've already agreed a price — the customer's own, or their group's — the agreed price stands and the percentage is skipped.

So if Acme is on a tier with 30% off, and you've also given Acme a negotiated $9.00 on one product, Acme pays $9.00 for that product — not $6.30. The number you agreed is the number you agreed.

In practice this is what makes the two work together nicely. A group can carry a blanket percentage and a short list of carved-out products, and it reads exactly as you'd say it out loud: "Distributors get 30% off, except these five where we've agreed a number."


Setting tiers and discounts in bulk ​

Assigning customers to tiers one at a time gets old around the twentieth customer. The contacts CSV carries two columns for it — Contacts → Export, edit, Import:

ColumnWhat goes in it
customer_groupThe name of a group you've already created, e.g. Distributors
discount_percentA number from 0 to 100. Blank means "use the group's"

Two things to know before you run one:

A column you leave out of the file is left alone. A column you include but leave blank is cleared.

So a three-column file of type,name,email won't touch anyone's tier — but a full export with the group column blanked will take those customers off their tiers.

The import never creates a pricing group. If customer_group names a group that doesn't exist — a typo like Distributers — that row fails and tells you so, rather than importing the customer without a tier.

That's deliberate. A customer who quietly lands on no tier is a customer paying list price, and you'd find out from the invoice. Create the group first, then import.

Group names match regardless of capitalisation, so DISTRIBUTORS and Distributors are the same tier. Both columns are refused on a retail customer, the same as a credit limit.


Which price wins ​

When you add a product to an order, Iraca picks the price like this:

  1. The customer's own prices come first. If this customer has a price for this product that their quantity reaches, that's the price — full stop.
  2. Then their group's prices, at the deepest break the quantity reaches.
  3. Then your volume pricing, again at the deepest break reached.
  4. Otherwise, the product's unit price, which is what happens when there's no price list at all.

Then, and only if the price came from step 3 or step 4, any percentage discount comes off it.

Steps 1 and 2 are worth reading twice, because they can run in a direction you don't expect.

A more specific price replaces a broader one for that customer — it doesn't combine with it.

Say you offer everyone $8.00 at 500 units, and you've given Acme a negotiated $9.00. Acme ordering 500 pays $9.00, not $8.00. Their own price list is their price list.

That's deliberate: a rate you negotiated shouldn't quietly lose to your public one. But it does mean that if you want a customer to get volume breaks, you add those breaks to that customer (or to their group) rather than relying on the shared ones.

A broader price still applies below a narrower one. If Acme's own pricing starts at 100 units and they order 20, they get their group's price at 20, or your shared pricing at 20 if the group has none.


Minimum order quantities ​

If a line is below the minimum for its product, Iraca says so as you're building the order, right under the line:

Minimum order is 25 units.

Try to create the order anyway and it's refused, naming the product and the minimum.

A few things to know:

  • A customer's own price can lower their minimum. If your shared pricing starts at 25 but you've given Acme a price starting at 1, Acme can order a single unit while everyone else still can't.
  • A group's prices set a minimum for everyone in it, the same way. Adding a rung at 25 to a group imposes a minimum of 25 on every customer in that group for that product — so if a tier is meant to buy in cases, that's how you say so.
  • A percentage discount never sets a minimum. It prices any quantity, so there's no floor for it to create.
  • Each line is measured on its own. Two lines of the same product on one order are two lines, not one combined quantity. If you want the combined total to count, put it on a single line.

On the order screen ​

Pick a product on a new order and Iraca fills in the price for you, then tells you where it came from:

  • This customer's price applied (10 and up).
  • Volume price applied (25 and up).
  • Nothing at all, when the product's ordinary unit price was used.

Change the quantity and the price follows it, so crossing a volume break updates the line as you type.

You can always type over it. A price you enter by hand is yours and Iraca won't replace it, even if you then change the quantity. If you want to go back to the list price, re-pick the product on that line.


Editing and removing prices ​

All three screens let you edit a price in place — click the pencil, change the quantity or the amount, and save. The bin removes the rung entirely.

You can't have two prices at the same quantity for the same product and the same owner; Iraca asks you to edit the existing one instead. That's what keeps "which price applies" from being ambiguous.

Changing a price only affects orders you raise from then on. An order already created keeps the price it was created with.

Deleting a pricing group ​

A group with customers on it, or with prices of its own, won't delete — Iraca tells you what's still attached. That's on purpose: deleting a tier out from under its members would put every one of them back on list prices without saying so, and the first you'd hear of it is a disputed invoice.

Move the customers off the group first (or clear its prices), then delete it.


What this doesn't cover ​

  • Marketplace orders. An Amazon or Shopify order was priced by the platform, which collected the money. Your price list has no standing over it.
  • The register. Point of Sale has its own pricing and isn't affected.
  • Purchase orders. These are prices you charge, not prices you pay. What a supplier charges you comes from their quote — see Requesting Quotes for that side.
  • Per-currency pricing. Prices are in your own currency only.
  • More than one group per customer. A customer is on one tier at a time, so there's never a question of which of two applies.
  • Discounts on a whole order. A percentage is per customer, not per order. To take an amount off one document, use the discount field on a quote or a standalone invoice.

This guide covers the Iraca app and its add-ons. The Iraca Marketplace is documented separately.