Wholesale and Retail Pricing: Selling by the Piece, Pack, and Carton Without the Confusion

How to set wholesale and retail pricing in a small shop: start from the carton cost, set tiered prices, and sell by piece, pack, or carton without stock errors.

Wholesale and retail pricing means two prices for the same item: a retail price for customers buying single units, and a wholesale price that's cheaper per unit for customers buying in bulk. How to set them up: work out the cost per piece from the price you pay per carton, set the retail price, then create a wholesale price that still makes a profit.

This guide uses the example of a toko sembako (a shop selling everyday staples) that sells by the piece, by the pack, and by the carton. It also covers how to keep stock tidy and how to set it all up in a POS app on iPhone or iPad.

Why a staples shop needs both wholesale and retail prices

A staples shop serves all kinds of buyers. A homemaker buys two packs of noodles; the owner of a small warung (neighborhood shop) buys a whole carton to resell.

If everyone pays the retail price, bulk buyers may move to another shop. If wholesale prices are handed out at random, your profit erodes without you noticing.

Written pricing rules also make the cashier's job easier. They don't have to guess or ask every time a customer buys a lot.

Understanding pieces, packs, and cartons

  • Pcs (pieces) is the smallest unit you sell, for example one pack of noodles or one bottle of water.
  • Pack is a bundle of several pieces, for example a pack of 5. For some items it's called a strip (renceng) or a bundle (ikat).
  • Carton is the box from the supplier, for example 24 or 40 per carton.

The contents of a carton or pack differ between brands, and even between sizes. Always check the quantity on the packaging or the supplier's invoice; don't rely on memory.

Example: working out retail and wholesale prices from the cost per carton

Say you buy instant fried noodles at Rp 112.000 per carton of 40 packs. The numbers below are only an example; adjust them to your own costs and the market around your shop.

  1. Work out the cost per piece. Rp 112.000 ÷ 40 = Rp 2.800 per pack.
  2. Set the retail price. For example Rp 3.500 per pack. That's a profit of Rp 700, or 25% of cost.
  3. Set the wholesale price per piece. For example Rp 3.200 when buying at least 10 packs. That's a profit of Rp 400 per pack.
  4. Set the pack and carton prices. A pack of 5 for Rp 16.000, and a carton of 40 for Rp 124.000.
How it's soldContentsSelling pricePrice per pieceCostProfit
Retail1 pcsRp 3.500Rp 3.500Rp 2.800Rp 700
Pack5 pcsRp 16.000Rp 3.200Rp 14.000Rp 2.000
Wholesale (min. 10 pcs)1 pcsRp 3.200Rp 3.200Rp 2.800Rp 400
Carton40 pcsRp 124.000Rp 3.100Rp 112.000Rp 12.000

Notice the pattern: the more someone buys, the cheaper the price per piece, but it never drops below the Rp 2.800 cost. The profit per carton, Rp 12.000, is 10.7% of cost, thinner than retail, but 40 packs go out at once.

The pack price is deliberately set equal to the wholesale price per piece. Two packs hold 10 pieces and cost 2 × Rp 16.000 = Rp 32.000, the same as 10 × Rp 3.200. Customers aren't confused, and the cashier doesn't have to argue about which is cheaper.

To understand the difference between markup and margin in more depth, read the guide on how to set selling prices.

Tiered pricing: when the wholesale price applies

Tiered pricing means the price per unit drops once the quantity bought reaches a certain level. Staples shops commonly use three rules.

  • By quantity. Buy at least 10 pieces and the price per piece drops. Example: 12 packs × Rp 3.200 = Rp 38.400, instead of 12 × Rp 3.500 = Rp 42.000. The customer saves Rp 3.600.
  • By unit. Buying by the pack or carton automatically gets that unit's price.
  • By customer. Regular warung owners or resellers always get the wholesale price, however much they buy.

Don't create too many tiers. Two or three are enough and easy for both cashiers and customers to remember.

Tip: Write your wholesale rule on a sign near the counter, for example "Wholesale from 10 packs." Customers know from the start and don't feel treated differently.

Always keep stock in the smallest unit

This is the basic rule when you sell by the piece, pack, and carton. Keep stock in a single unit only: the smallest one.

Example: the storeroom has 3 cartons of 40 and 17 loose packs. Stock is recorded as 3 × 40 + 17 = 137 pcs, not "3 cartons and 17 pcs." When one carton sells, stock drops by 40 to 97 pcs.

If cartons and pieces are recorded as two separate items, stock quickly gets messy. A carton opened for retail sale is never moved in the records, and a discrepancy appears at the stock take. This pattern is covered in the article on causes of stock discrepancies.

Different barcodes for cartons and pieces

Cartons usually have their own barcode, different from the barcode on the single pack. Register both. When the cashier scans the carton barcode, one carton at the carton price goes into the cart, and stock drops by its contents.

If a carton has no barcode, you can print your own barcode labels. Scanning with the camera is covered in the guide to scanning barcodes with an iPhone and iPad.

Common mistakes

  • The purchase price goes up, but the wholesale price isn't updated. Retail prices usually get adjusted quickly; wholesale and carton prices often lag behind. Every time your cost goes up, check all three prices at once.
  • Wrong carton quantity. A carton of 40 recorded as 48, or the other way around. The price per piece and the stock end up wrong too.
  • Wholesale prices for friends with no rule. Over time, other customers feel it's unfair. Use the same rule for everyone, or decide who your wholesale customers are.
  • Cartons and pieces recorded as two products. Their stock never stays in sync when a carton is opened for retail.

How to set wholesale and retail prices in KasirPOS

KasirPOS is a free iPhone POS app for iPhone and iPad. Prices and units are set on the product page in the Products tab.

Retail price and automatic wholesale price

Fill in Selling Price as the retail price, Cost Price, and the smallest Unit, for example pcs. Then fill in Wholesale Price and its minimum quantity. When the quantity in the cart reaches the minimum, the wholesale price is applied automatically.

Extra units: packs and cartons

Add other units such as pack or carton. Each unit has its own contents, price, and barcode. Stock is still counted in the smallest unit, so selling one carton of 40 reduces stock by 40 pcs.

KasirPOS Products list on iPhone showing selling price, wholesale price, cost price, and stock, such as Cooking Oil 1L at Rp 17.500 with a wholesale price of Rp 16.500 and 201 bottles in stock
Selling price, wholesale price, and cost price appear in the Products list.

Wholesale prices for specific customers

For regular warung owners or resellers, save their details in More › Customers & Members and set them to get the wholesale price. When that customer is selected in a transaction, the wholesale price applies to every product that has one.

Switching to the wholesale price in the cart

Sometimes there are exceptions, for example a new customer buying a lot who hasn't quite reached the minimum. Tap the item name in the cart to change the quantity, choose the wholesale price, give a per-item discount, or add a note.

For resellers, you can also send your price list through More › Send Catalog to WhatsApp, with the option to show wholesale prices. More on the product menu is in the product support section.

Frequently asked questions

What's a reasonable gap between wholesale and retail prices?

There's no fixed number. The rule of thumb: the wholesale price per piece must stay above cost, and the gap should be attractive enough for bulk buyers. First work out the cost per piece from the price per carton, then compare with other shops around you. Start with a small gap and review it after a month.

How do I sell by the carton and by the piece in an iPhone POS app?

Create the product with its smallest unit, for example pcs, then add a carton unit with its own contents, price, and barcode. In KasirPOS for iPhone and iPad, this is set on the product page. When a carton sells, stock drops by the carton's contents, so you don't need to track piece and carton stock separately.

Can a POS app apply wholesale prices automatically?

Yes, as long as the app supports a minimum quantity. In KasirPOS, fill in Wholesale Price and the minimum quantity on the product page. When the quantity in the cart reaches the minimum, the wholesale price is used straight away without the cashier retyping the price. The cashier can still choose the wholesale price manually by tapping the item name in the cart.

Can wholesale prices be given only to certain customers?

Yes. Save customers such as warung owners or resellers in your customer list, then set them to get the wholesale price. In KasirPOS for iPhone and iPad, this is under More, Customers & Members. When that customer is selected in a transaction, the wholesale price applies to every product that has one.

KasirPOS for iPhone and iPad

Record sales, stock, and customer debt from your phone or iPad. Every feature is free, with no ads, no account to sign up for, and it keeps working without internet.

Download on the App Store