Purchasing Models
How to set up and receive each type of supplier purchase. Use this as a reference when onboarding new products.
ABuy by weight, sell by pieceWorks today
Supplier prices per kg. You receive pieces and weigh the total. Piece count and avg weight vary per delivery.
Example: Versig Vleis Rump — R/kg from supplier, sold per piece to consignee.
PO setup
- Purchase unit
- kg
- Purchase price
- R per kg
- Purchase qty
- Total kg ordered
- Sellable units
- Leave blank / not used
- Weight per unit
- Leave blank / not used
GRN fields
- Physically received (kg)
- Actual kg that arrived — drives payable
- Piece count override (pcs)
- Count the pieces — required for this model
- Supplier invoice qty (kg)
- What supplier claims — three-way check
System derives
- →Avg weight per piece = received kg ÷ piece count
- →Cost per piece = avg weight × R/kg
- →Payable = received kg × R/kg (short weight → less owed automatically)
Payable: Adjusted for actual weight received. Short delivery reduces payment.
BBuy by box (fixed price, variable piece count), sell by pieceRecently fixed
Supplier charges a fixed price per box. Piece count inside the box varies between deliveries — you count what's actually there.
Example: Organic Oranges (12 KG box) — R260/box, but 49–60 oranges depending on size.
PO setup
- Purchase unit
- box (or pack, unit, etc.)
- Purchase price
- R per box
- Purchase qty
- Number of boxes ordered
- Sellable units
- Estimated pieces per box (used for dispatch planning only)
- Weight per unit
- Estimated kg per piece (used as placeholder — actual weight captured at GRN)
GRN fields
- Physically received (boxes)
- Number of boxes that arrived — drives payable
- Piece count override (pcs)
- Count the actual pieces — required, overrides the estimate
- Actual weight (kg)
- Weigh the actual contents — derives avg weight per piece
- Supplier invoice qty (boxes)
- What supplier claims — three-way check
System derives
- →Cost per piece = box price ÷ actual piece count (NOT the estimated sellable units)
- →Avg weight per piece = actual weight ÷ actual piece count
- →Payable = boxes received × box price (weight doesn't affect what you owe)
Payable: Fixed per box received. Weight shortfall within a box is a quality issue, not a billing adjustment.
CBuy by box (fixed price, guaranteed piece count), sell by pieceWorks today
Supplier charges a fixed price per box and guarantees a specific number of pieces. Count is predictable — you verify weight as a quality check.
Example: New chicken supplier — R/box, 10 chickens per box guaranteed, each 1.1–1.2 kg (box = 11–12 kg).
PO setup
- Purchase unit
- box
- Purchase price
- R per box
- Purchase qty
- Number of boxes ordered
- Sellable units
- Guaranteed pieces per box (e.g. 10) — this IS the actual count
- Weight per unit
- Expected kg per piece (e.g. 1.15 kg midpoint of guarantee)
GRN fields
- Physically received (boxes)
- Number of boxes that arrived — drives payable
- Piece count override
- Leave blank — sellable units is the correct count
- Actual weight (kg)
- Weigh the box contents — verify against guaranteed range
- Supplier invoice qty (boxes)
- What supplier claims — three-way check
System derives
- →Cost per piece = box price ÷ sellable units (guaranteed count — no override needed)
- →Avg weight per piece = actual weight ÷ guaranteed piece count
- →Payable = boxes received × box price
Payable: Fixed per box. Weight outside the guaranteed range is a quality dispute with the supplier — raise separately.