Short answer: Garment and footwear retail breaks ordinary inventory systems because one product becomes dozens of SKUs — a single shirt in 5 sizes and 6 colours is 30 sellable items. Odoo handles this with product variants: one product template plus size and colour attributes, so stock, pricing and reporting work per variant while staff still search one product. That makes size-curve analysis, season planning, inter-branch size balancing and end-of-season markdowns possible — the four things spreadsheets cannot do for apparel.
Retail ERP · Pakistan
Odoo for Garment & Footwear Retail in Pakistan
One shirt in 5 sizes and 6 colours is 30 SKUs. Multiply by 400 styles and you understand why apparel retail breaks normal systems.
By Pearl Solutions · Updated September 2026 · 10 min read
Why apparel breaks ordinary retail systems
Most retail software assumes a product is a product. In garments and footwear, a product is a family.
One men's shirt in 5 sizes and 6 colours is 30 distinct sellable items, each needing its own barcode, stock level and sales history. Carry 400 styles and you are managing 12,000 SKUs — and that is before you add seasons, collections and fits.
This is why so many Pakistani garment and footwear retailers end up with a POS that only tracks a style name, an Excel file that tracks sizes, and no reliable answer to the simplest question in the business: which sizes are actually selling?
Product variants: the feature that makes it work
Odoo separates the product template from its variants:
| Layer | Example | What it holds |
|---|---|---|
| Product template | Men's Cotton Shirt | Description, images, category, base price |
| Attribute 1 | Size: S, M, L, XL, XXL | Generates variants |
| Attribute 2 | Colour: Black, White, Navy… | Generates variants |
| Variant | Shirt / L / Navy | Own barcode, own stock, own sales history |
Why this matters operationally: your counter staff search for one product — “Men's Cotton Shirt” — and pick size and colour. They are not scrolling through 30 near-identical entries. Meanwhile inventory, costing and reporting all happen at variant level, which is where the business questions actually live.
The four things this unlocks
1. Size curve analysis — stop buying the wrong distribution
Every apparel buyer has a habitual split (say 10% S, 25% M, 30% L, 25% XL, 10% XXL). Real demand rarely matches it, and the gap is expensive: you run out of L in week three while XXL sits until markdown.
Because Odoo records sales per variant, you can group sales by size attribute per style, per branch, per season. The next purchase order reflects what actually sold, not what you assumed.
2. Broken size runs get fixed before they kill the sale
In apparel a broken size run is worse than a stockout of one item — a rail missing M and L becomes hard to sell at any price. With every branch as its own stock location, you can see which outlet has the size another is missing and move it on a traceable two-step transfer.
3. Season and collection planning
Organise styles by season and collection using categories or tags. Then you can answer: how did Summer sell against Winter, which collections carried margin, what is still sitting from last season.
4. Deliberate markdowns instead of blanket clearance
Pricelists apply discounts centrally — by category, collection, or specific variants, for a fixed date range, across all outlets at once. Combined with variant-level ageing, you discount the styles and sizes that are genuinely stuck rather than sacrificing margin on everything.
Footwear: same problem, tighter tolerances
Footwear is apparel with less forgiveness. Size runs are longer (often 6–12 sizes), fit varies by last, and a customer who wants size 42 will not accept 41. Variant-level stock visibility across branches is not a nice-to-have here — it is the difference between making the sale and sending the customer to a competitor.
What else a garment retailer needs from the system
- Barcode per variant — scanning at the counter and during stock counts
- Offline-capable POS — essential given power and connectivity conditions in Pakistan (see Odoo POS for multi-store retail)
- Multi-branch stock visibility — covered in multi-store inventory management
- Returns and exchanges — extremely common in apparel; must move stock back correctly
- Cycle counting — high SKU counts make annual stocktakes almost useless
- Supplier and import costing — landed cost matters where fabric or finished goods are imported
Manufacturing plus retail: the Pakistani pattern
Many Pakistani garment businesses both manufacture and sell retail — a factory in Faisalabad or Sialkot feeding branded outlets. That combination is where a single connected system pays most, because the same platform carries bills of materials, cut plans and production alongside variant-level retail stock and POS. Split systems mean reconciling production output against retail stock by hand, every month.
Implementing it properly
Pearl Solutions is an Official Odoo Partner and a leading manufacturing ERP implementation expert based in Lahore, Pakistan — delivering ERP since 2006 with 400+ ERP implementations and 150+ clients, including 30 Odoo implementations and 91% client retention. Textile and garments is one of our strongest industry areas, and we configure Odoo for variant-heavy retail alongside manufacturing, with staff training in English and Urdu. Start with the retail chain ERP guide if you are still evaluating.
Frequently Asked Questions
A size curve is the distribution of sales across sizes for a given style, for example whether a shirt sells mostly in M and L or skews toward XL. It matters because buying the wrong size distribution creates dead stock in the sizes nobody wants while the popular sizes go out of stock. Because Odoo tracks sales and stock at variant level, its reporting can be grouped by size attribute to show exactly which sizes sell and which do not, per style, per branch and per season, so the next purchase order reflects real demand rather than a habitual split.
Yes. Seasonal collections can be organised using product categories or tags for season and collection, so buying, stock and sales can be analysed per season. Markdowns are handled through pricelists, which let you apply a percentage or fixed discount to a category, a collection or specific variants for a defined date range, applied centrally across all outlets. Combined with variant-level ageing reports, this lets a retailer identify slow-moving styles and sizes and discount them deliberately rather than clearing everything at one blanket rate.
Odoo treats each outlet as its own stock location, so you can see stock of every size and colour at every branch on one screen. When one branch is out of a size that another branch is overstocked on, you create an internal transfer that is dispatched by the sending branch and confirmed on receipt by the receiving branch, keeping the movement traceable. For apparel this matters more than in most retail, because a broken size run makes the remaining stock much harder to sell, so moving sizes between branches often recovers sales that would otherwise be lost.