SAP MM Organizational Structure — Complete Guide
The foundation of SAP MM. Before you can buy, sell, store, or value anything in SAP, the organization itself must be modeled. This guide explains every org-structure entity using a Pakistani company example — Pakistan Steel & Engineering Co. (PSEC).
📘 Deep-dive guide per entity
Each entity below has its own dedicated page with full details — configuration T-codes, mandatory vs optional, linkages, customization options, "is this possible" client Q&A, common errors, real-world examples, and interview soundbites.
Client
Top of the hierarchy. Isolated SAP universe.
Company Code
Legal entity that owns books. T-code OX02.
Plant ⭐
Most important MM entity. T-codes OX10, OX18.
Storage Location
Where stock physically sits. T-code OX09.
Purchasing Org
Who buys. Cross-company patterns. T-codes OX08, OX01, OX17.
Purchasing Group
Buyer ID. Free-floating. T-code OME4.
Valuation Area
Where stock value lives. T-code OX14.
Advanced topics
Batch, custom types, release strategy, special procurement.
1. Why SAP separates organizational concerns
Real businesses have multiple dimensions:
- A legal dimension — who files taxes, owns books
- An operational dimension — where physical activity happens
- A functional dimension — who is responsible for buying, selling, producing
- A physical sub-location dimension — where stock actually sits within a plant
SAP separates each of these into its own entity so that real-world complexity can be modeled accurately.
2. Our example — Pakistan Steel & Engineering Co. (PSEC)
Throughout this academy we'll follow a fictional Pakistani manufacturer. Here's the company:
| Attribute | Value |
|---|---|
| Group name | Pakistan Steel & Engineering Co. (PSEC) |
| Business | Manufactures steel rods, bars, and engineering products |
| Headquarters | Karachi, Pakistan |
| Currency (primary) | PKR (Pakistani Rupee) |
| Legal entities | PSEC Pakistan Ltd (Karachi) · PSEC Trading FZ-LLC (Dubai) |
| Manufacturing locations | Karachi factory · Lahore factory · Faisalabad factory · Dubai DC (UAE) |
| Sells to | Local construction firms in Pakistan + export to GCC countries |
This setup covers nearly every scenario you'll meet on a real project:
- ✅ Multiple plants under one company (Karachi, Lahore, Faisalabad)
- ✅ Multi-country / multi-currency operations (PKR + AED)
- ✅ Cross-company plants for export logistics
- ✅ Mix of manufacturing and distribution
- ✅ Both central procurement (steel, IT) and local procurement (consumables)
3. The 7 organizational entities you must know
3.1 Client
| What it is | The whole SAP system instance. Top of the hierarchy. |
|---|---|
| Format | 3-digit number (e.g. 100, 200, 800) |
| Example | Client 100 = PSEC's production system |
| Database | T000 |
3.2 Company Code
| What it is | A legal entity. Files taxes, produces balance sheet & P&L. |
|---|---|
| Format | 4-character alphanumeric |
| T-code to define | OX02 |
| Example | CC 1000 = PSEC Pakistan Ltd (PKR) · CC 2000 = PSEC Trading FZ-LLC Dubai (AED) |
| Database | T001 |
3.3 Plant — ⭐ the most important MM entity
| What it is | An operational location. Factory, warehouse, distribution center, service site. |
|---|---|
| Format | 4-character alphanumeric |
| T-code to define | OX10 |
| T-code to assign to CC | OX18 MANDATORY |
| Example | Plant 1100 = Karachi factory (CC 1000) · Plant 1200 = Lahore factory · Plant 1300 = Faisalabad · Plant 2100 = Dubai DC (CC 2000) |
| Database | T001W |
3.4 Storage Location
| What it is | A physical or logical subdivision of a Plant where stock sits. |
|---|---|
| Format | 4-character alphanumeric |
| T-code to define | OX09 (per plant) |
| Example | Inside Plant 1100: SL RM01 (raw materials), SL FG01 (finished goods), SL QA01 (quality hold) |
| Database | T001L |
3.5 Purchasing Organization
| What it is | The unit responsible for purchasing — negotiates with vendors, signs POs. |
|---|---|
| Format | 4-character alphanumeric |
| T-code to define | OX08 |
| T-code to assign to CC | OX17 (optional) |
| T-code to assign to Plant | OX01 MANDATORY (≥1) |
| Example | Purch Org PSEC-PK = local Pakistan buying · Purch Org PSEC-AE = UAE local · Purch Org PSEC-GLOB = cross-company strategic buying |
| Database | T024E |
3.6 Purchasing Group
| What it is | A buyer or buyer team — usually specialized by category. |
|---|---|
| Format | 3-character alphanumeric |
| T-code to define | OME4 |
| Assigned to | NOTHING — free-floating in config. Selected directly on each PR/PO. |
| Example | 001 = Raw materials buyer · 002 = Packaging buyer · IT0 = IT & software · SRV = Services |
| Database | T024 |
3.7 Valuation Area
| What it is | The level at which materials are valued in money — Plant level (standard) or Company Code level (rare). |
|---|---|
| T-code to define | OX14 |
| Standard choice | Plant level — each plant has its own price for the same material. Required if PP (Production Planning) is used. |
| Example | Steel Rod M-100: ₨5,000/ton at Karachi plant; ₨5,200/ton at Lahore plant — independent prices. |
| Database | T001K |
4. How they link together
Here's our PSEC example fully mapped out:
Client 100
│
├── Company Code 1000 (PSEC Pakistan Ltd, PKR)
│ ├── Plant 1100 (Karachi factory)
│ │ ├── SL RM01 (raw materials)
│ │ ├── SL FG01 (finished goods)
│ │ └── SL QA01 (quality hold)
│ ├── Plant 1200 (Lahore factory)
│ │ └── SL RM01, FG01, QA01
│ └── Plant 1300 (Faisalabad factory)
│ └── SL RM01, FG01, QA01
│
└── Company Code 2000 (PSEC Trading FZ-LLC, AED)
└── Plant 2100 (Dubai DC)
└── SL DC01, EXP1
Purchasing Orgs (cross-cutting):
PSEC-PK → assigned to CC 1000 + plants 1100, 1200, 1300 (local PK buying)
PSEC-AE → assigned to CC 2000 + plant 2100 (local UAE buying)
PSEC-GLOB → assigned to NO CC + all 4 plants (cross-company strategic buying)
Purchasing Groups (free-floating):
001 Raw materials · 002 Packaging · 003 Maint/spares · IT0 IT · SRV Services
Valuation Area:
= Plant level (each plant carries its own price)
The assignment rules
| Assignment | Mandatory? | T-code |
|---|---|---|
| Plant → Company Code | YES | OX18 |
| Storage Location → Plant | YES | OX09 |
| Purch Org → Plant | YES (≥1) | OX01 |
| Purch Org → Company Code | OPTIONAL | OX17 |
| Purch Group → anything | ❌ Never assigned | — |
5. T-codes to define and assign — your roadmap
The exact sequence to build an org structure in SAP S/4HANA On-Premise:
- Step 1 — Define Company Code(s) T-code: OX02 · Set the 4-char ID, country, currency, language, fiscal year variant.
- Step 2 — Define Plant(s) T-code: OX10 · Set the 4-char ID, name, factory calendar.
- Step 3 — Assign each Plant to its Company Code T-code: OX18 · This is mandatory; without it, the plant can't function.
- Step 4 — Define Storage Locations T-code: OX09 · Per plant — define 3-5 SLs that make sense (RM, FG, QA, returns).
- Step 5 — Define Purchasing Organization(s) T-code: OX08 · 4-char ID and description.
- Step 6 — Assign Purch Org to Company Code T-code: OX17 · Optional — leave blank for cross-company Purch Org.
- Step 7 — Assign Purch Org to Plant(s) T-code: OX01 · Mandatory; must assign to at least one plant.
- Step 8 — Define Purchasing Group(s) T-code: OME4 · 3-char ID, buyer name, contact details.
- Step 9 — Set Valuation Level T-code: OX14 · One-time choice — Plant level (recommended) or CC level.
Open the Org Structure Builder →
6. Centralized vs Decentralized — when each makes sense
One of the most important design decisions: should ONE Purchasing Org buy for all plants, or should EACH plant have its own?
When CENTRALIZED is right (one Purch Org)
- Single Company Code, multiple plants, shared vendors
- Want volume leverage from suppliers (better prices)
- Same procurement policy across plants
- Master data team wants minimal duplication
When DECENTRALIZED is right (Purch Org per plant)
- Different Company Codes (legal entities) — each signs its own contracts
- Joint venture / multi-owner plants
- Different vendor currencies for same vendor
- Different statutory compliance per legal entity
- Genuinely autonomous business units
PSEC scenarios mapped
| Scenario | Recommended setup | Why |
|---|---|---|
| PSEC has only Karachi factory | Centralized — 1 Purch Org | Single CC, single plant — nothing to decide |
| PSEC expands to Lahore + Faisalabad | Centralized — 1 Purch Org PSEC-PK | Same CC, same vendors, same currency. Volume leverage gained. |
| PSEC opens Dubai entity (CC 2000) | Hybrid — PSEC-PK + PSEC-AE + optional PSEC-GLOB | Different CCs, different currencies. GLOB enables strategic global buying. |
| PSEC enters JV with Saudi partner | Decentralized — separate Purch Org for JV plant | Different ownership = different contract signatories. |
7. Interview Q&A
What is the highest organizational unit in SAP?
Client. All data is scoped to a client; nothing is shared across clients. Configured at system installation.
Can a Plant belong to more than one Company Code?
No. A plant must be assigned to exactly ONE Company Code via T-code OX18. This is enforced by SAP.
At what level is material valuation done?
Either Plant level (standard, recommended) or Company Code level (rare). Set once via OX14. Plant-level is required if PP module is used.
Is Purchasing Group assigned to Purchasing Organization?
No — and this is a classic interview trap. Purchasing Group is free-floating in config. It's a field on PR/PO, not an assigned entity. Used for buyer accountability, release strategy routing, and reporting.
What are the three flavors of Purchasing Organization?
(1) Plant-specific — assigned to one plant only. (2) Cross-plant / Company-specific — assigned to multiple plants of one CC. (3) Cross-company / Reference — buys across CCs; not assigned to a single CC.
What's the difference between Plant and Storage Location?
Plant is the operational location and the valuation level — stock value lives here. Storage Location subdivides a plant and tracks quantity only. Moving stock between SLs of the same plant is quantity-only — no financial impact.
Can a Purchasing Org buy for plants in multiple Company Codes?
Yes — assign the Purch Org to NO single CC (leave OX17 blank) and assign it to plants from multiple CCs via OX01. This makes it a cross-company Purch Org. The PO's financial impact still lands in the CC the PO line's plant belongs to.
8. What's next
You now understand the theory. Time to build.
Our interactive Org Structure Builder lets you construct PSEC's organization step-by-step. You'll watch database tables fill with rows, see exactly which T-codes to run in real SAP, and toggle between centralized and decentralized scenarios.