🏭 SAP Plant — The Complete Guide
The single most-referenced entity in SAP MM. Master this and 60% of MM clicks into place. Configuration T-codes, database tables, linkages, customization options, and the PSEC Pakistani example.
📋 Snapshot
| What it is | An operational location — factory, warehouse, distribution center, service site |
|---|---|
| ID format | 4-character alphanumeric (e.g. 1100, MUM1) |
| Mandatory? | YES — without a plant, no MM activity possible |
| T-code to define | OX10 |
| T-code to assign to CC | OX18 (mandatory) |
| Database tables | T001W (master), T001K (valuation area if plant-level) |
| Owner module | Logistics — General (shared by all logistics modules) |
1. Purpose — why Plant exists
SAP separates the legal identity (Company Code — who files taxes) from the operational identity (Plant — where activity physically happens). This separation is what allows real businesses to be modeled:
- One company → many factories (Pakistan Steel has 3 plants)
- Different MRP rules per factory
- Different stock values per factory (plant-level valuation)
- Different storage layouts per factory
2. Where Plant is mandatory
The Plant field is required on every screen below:
| Transaction / Screen | Why mandatory |
|---|---|
| Material Master plant view (MM01) | Plant-specific MRP, Purchasing, Storage settings |
| Purchase Requisition item (ME51N) | Where the material is needed |
| Purchase Order item (ME21N) | Where to deliver; derives Company Code for FI |
| Goods Receipt (MIGO 101) | Where stock physically lands |
| Goods Issue (MIGO 261) | Which plant's stock is consumed |
| Transfer Posting (MIGO 311/313/315) | Source and destination plants |
| MRP run (MD01/MD02) | MRP always runs per plant |
| Physical Inventory (MI01) | Counts are per plant/SL |
| Info Record (ME11 with plant) | Plant-specific pricing/conditions |
| Source List (ME01) | Source determination is plant-scoped |
3. Where Plant is optional / avoidable
| Where | Why optional |
|---|---|
| Info Record "without plant" | Cross-plant info records allowed when pricing is global across all plants |
| Contract header (ME31K) | Header contracts can be plant-independent; releases specify plant |
| PR header (only item level mandatory) | Header is grouping; item carries the plant |
| Service POs (item category D) | Plant still entered but represents service location, not stock location |
4. Linkages with other entities
Cardinality
| Relationship | Cardinality | Rule |
|---|---|---|
| Plant : Company Code | many : 1 | A plant belongs to exactly ONE Company Code |
| Plant : Storage Location | 1 : many | A plant has many SLs; each SL belongs to one plant |
| Plant : Purchasing Org | many : many | A plant can be served by multiple Purch Orgs; a Purch Org can buy for many plants |
| Plant : Factory Calendar | many : 1 | Each plant has exactly one factory calendar |
| Plant : Valuation Area | 1 : 1 (if plant-level valuation) | Each plant is its own valuation area |
Mandatory assignments
- Plant → Company Code (T-code OX18)
- Plant → Factory Calendar (set in OX10)
- Plant → Country (defaults from CC)
Optional assignments
- Plant → Purchasing Organization (OX01) — needed to procure for this plant
- Plant → Sales Org / Distribution Channel (if shipping SD orders)
- Plant → Shipping Point (for outbound logistics)
- Plant → Valuation Grouping Code (for OBYC simplification — OMWM)
- Plant → Maintenance Planning Plant (if PM module used)
5. Design choices that matter
Should a Distribution Center be a plant or a Storage Location?
| Option | Impact |
|---|---|
| DC as its own plant | Standard pattern. Enables STOs from factory → DC, separate valuation, separate MRP, independent reporting. |
| DC as an SL of the factory | Simpler config but you can't run MRP just for the DC, can't value DC stock separately, can't STO between them. |
Rule of thumb: Real DCs are almost always separate plants.
How many plants per physical site?
| Option | When to choose |
|---|---|
| ONE plant for the whole site | Single site doesn't need separate valuation, MRP, or legal split |
| MULTIPLE plants on same physical site | Separate valuation needed; bonded warehouse vs regular; different MRP or tax treatment |
Rule of thumb: Separate plant if you need separate stock value or separate MRP. Just a different physical area? Use Storage Locations instead.
6. "Is this possible?" — client Q&A
Can one Plant belong to multiple Company Codes?
NO. Plant-to-CC is strictly 1:1 from the plant side. If you need MM activity for two legal entities at one physical site, create two plants and assign each to its own CC.
Can a Plant operate without being assigned to any Purchasing Org?
Technically yes, but you cannot create a PO for that plant — no Purch Org permitted to buy for it. Only useful for non-procurement plants (e.g. produces-and-ships-internal-only).
Can two plants share the same Storage Location ID?
Yes — but they're independent records. SL 0001 in Plant 1100 has no relationship to SL 0001 in Plant 1200. Same code, different SL records.
Can I change a Plant's Company Code assignment after go-live?
Practically NO. Once transactional data exists, changing CC requires a complex migration project. Plan plant-CC assignments very carefully at design phase.
Can a Plant be in a different country than its Company Code?
Yes technically — Plant has its own country field. But tax/customs/legal reporting becomes complex. Usually plant country = CC country unless deliberate cross-border setup.
Can I delete a Plant?
Practically no once it's referenced by any material extension or document. Standard approach: block the plant (mark for deletion) — stops new use but historical data preserved.
Can I create a PO without a Plant?
No. Plant is a mandatory item-level field. Even service POs require a plant (representing the service location).
Can the same plant produce AND distribute?
Yes — many real plants do both. You'd extend it for MM (procurement), PP (production), and SD (sales) — each module adds its own configuration without splitting the plant.
7. Common errors and fixes
| Error | Cause | Fix |
|---|---|---|
Plant XXXX not assigned to Purchasing Org YYYY |
Missing OX01 assignment | Run OX01, assign Purch Org → Plant |
Material XXX not maintained in plant YYY |
Material master not extended to plant | Run MM01 with reference, extend plant view |
No factory calendar defined for plant |
Plant config missing calendar link | OX10 → maintain factory calendar from SCAL |
Posting period closed in Company Code |
FI period closed when MM transaction tries to post | FI to open via MMRV / OB52; MM period via MMPV |
8. What can't change after go-live
- Plant → Company Code assignment — practically immutable after stock is posted
- Plant's country — impacts tax determination on historical docs
- Deletion of a plant — effectively impossible once used
9. Customization options — what consultants actually configure
Standard plant configuration
- Define Plant — OX10 — Set 4-char ID, name, factory calendar, country
- Assign to Company Code — OX18 — Mandatory link to FI
- Define Storage Locations — OX09 — Add 3-5 SLs per plant
- Assign Purchasing Orgs — OX01 — Which Purch Orgs can buy for this plant
- Set Standard Purch Org (optional) — OMKL — Default for source determination
Advanced plant customizations
| Customization | T-code | What it does |
|---|---|---|
| Plant assignment to Sales Org/Dist Channel | OVXM | If plant ships sales orders |
| Shipping Point per Plant | OVXC | For outbound shipping |
| Valuation Grouping Code | OMWM + OMWD | Group plants with similar OBYC needs |
| Maintenance Planning Plant | OX09 (PM) | If PM module is in use |
| Warehouse Number assignment | OX09 (WM) | If WM/EWM is active |
| Plant parameters for MRP | OPPQ | Default MRP settings per plant |
| Customer/Vendor for Plant (STO) | OMGN | Required for inter-company STO |
10. PSEC real-world example
Pakistan Steel & Engineering Co. (PSEC) plants:
Plant 1100 — Karachi factory (CC 1000 PSEC PK Ltd, PKR)
Factory calendar: PK (Pakistan working days)
Storage Locations: RM01, FG01, QA01
MRP: full deterministic planning
Purchasing Orgs assigned: PSEC-PK, PSEC-GLOB
Plant 1200 — Lahore factory (CC 1000)
Same calendar/SLs/MRP as Karachi
Purchasing Orgs assigned: PSEC-PK, PSEC-GLOB
Plant 1300 — Faisalabad factory (CC 1000)
Same calendar/SLs
Specializes in finished goods only
Purchasing Orgs assigned: PSEC-PK, PSEC-GLOB
Plant 2100 — Dubai DC (CC 2000 PSEC Trading UAE, AED)
Factory calendar: AE (UAE working days)
Storage Locations: DC01, EXP1 (export staging)
No production — distribution only
Purchasing Orgs assigned: PSEC-AE, PSEC-GLOB
Notice: Each plant has its own factory calendar, own SLs, own price (plant-level valuation), but they all link to Company Codes for FI consolidation.
11. Deep T-code list — Plant-related
| T-code | What it does |
|---|---|
| OX10 | Define plant (create/edit/delete) |
| OX18 | Assign plant → Company Code |
| OX09 | Define storage locations per plant |
| OX01 | Assign plant → Purchasing Org |
| OMKL | Standard Purch Org per plant (for source determination) |
| OMWM | Activate/configure Valuation Grouping Code |
| OMWD | Assign plants to Valuation Grouping Code |
| OPPQ | Plant MRP parameters |
| OMGN | Inter-company Customer/Vendor for STO |
| SE16N → T001W | View all plants directly in DB |
12. Interview Q&A on Plant
What is a Plant in SAP MM?
An operational location where activity physically happens — factory, warehouse, distribution center. The single most-referenced MM entity. Stock is held at plant level (with value), MRP runs per plant, material masters have plant-specific views. Each plant is assigned to exactly one Company Code.
Difference between Plant and Storage Location?
Plant is the operational location and valuation level — stock value lives here. Storage Location subdivides a plant for tracking quantity only. Moving stock between SLs of the same plant is quantity-only — no FI document.
Can a plant exist without being assigned to a CC?
No. OX18 assignment is mandatory. Without it, the plant cannot be used in any FI-linked transaction (which is essentially every MM transaction).
What's a Maintenance Planning Plant?
A plant designated to perform maintenance work. Can be the same as the operating plant or a separate dedicated maintenance plant. Configured if PM module is in use.
What's next
Create Plant (OX10)
Real SAP fidelity form — every OX10 field with tooltips.
Company Code
The legal entity that owns the plant's books.
Storage Location
Subdivisions of a plant where stock physically sits.
Purchasing Org
Who buys for this plant.
Advanced topics
Batch management, custom doc types, special procurement.