📦 SAP Storage Location — Complete Guide
A physical or logical subdivision of a Plant where stock physically sits. Holds quantity only, not value. T-code OX09, configuration, batch management, real examples.
▶ Try it live: Plant vs Storage Location demo — see live why value sits at plant level and a 311 transfer posts no FI document.
📋 Snapshot
| What it is | Subdivision of a plant — physical or logical area holding stock |
|---|---|
| ID format | 4-character alphanumeric (e.g. RM01, FG01) |
| Mandatory? | YES — at least one per plant for stock-managed materials |
| T-code to define | OX09 (per plant) |
| Database table | T001L |
| Holds | QUANTITY only — never value |
1. The single most important rule
Quantity vs Value
Plant holds money VALUE. Storage Location holds QUANTITY only. Moving stock between SLs of the same plant (movement type 311) is quantity-only — no FI document fires. Only crossing the plant boundary creates FI postings.
2. Where Storage Location is mandatory
| Transaction | Why |
|---|---|
| Goods Receipt (MIGO 101) | Must land stock at a specific SL |
| Goods Issue (MIGO 261) | Withdraw from a specific SL |
| Transfer Posting (MIGO 311) | SL → SL transfer |
| Reservation (MB21) | Earmark stock at specific SL |
| Physical Inventory (MI01) | Count is per plant + SL |
| Stock Overview (MMBE) | Stock broken down by SL |
3. Where SL is OPTIONAL or auto-handled
- PO line — SL can be left blank on PO; filled at GR time
- Non-stock items (item cat K) — go to cost center, no SL
- Services (item cat D) — no stock, no SL
- Auto-create on GR — configured via OMB3; SL is created automatically on first GR
4. Customization — Storage Location configuration
- Define SL per Plant — OX09 — 4-char ID, description (e.g. RM01, FG01, QA01)
- Auto-create SLs on GR (optional) — OMB3 — Configure per plant; saves manual SL master maintenance
- Set Negative Stock allowed (optional) — OMJ1 — Allow negative stock per SL (rare)
- Block SL from MRP (optional) — Material Master MRP view per SL
- Storage Location MRP indicator — Per material per SL — excludes SL from MRP net req calculation if needed
5. Common SL design patterns
| SL Code | Purpose | Common in |
|---|---|---|
0001 | General / default | Small operations |
RM01 | Raw materials | Manufacturing |
WIP1 | Work in process | Production |
FG01 | Finished goods | Manufacturing |
QA01 | Quality hold | QM scenarios |
RTN1 | Returns from customers | SD reverse logistics |
BLCK | Blocked stock | Any |
SCRP | Scrap awaiting decision | Manufacturing |
Rule of thumb
Start with 3–5 SLs per plant. Add more only when there's a real operational reason — physical distinction, distinct reorder policy, or distinct WM bin assignment. Don't over-engineer.
6. SL + Batch Management
If material is batch-managed (flag XCHPF in MM01 Storage 1 view), each stock at an SL is also tracked by batch number:
- Same material, same SL, different batches = separate stock records
- Batch table
MCHB= material + plant + SL + batch + quantity - FEFO / FIFO / LIFO picking strategies use batch data
- See Advanced → Batch Management for deep dive
7. "Is this possible?" — client Q&A
Can stock be valued at SL level?
No. Stock value is always at the plant (or CC) level — never SL. If you genuinely need separate valuation, you need separate PLANTS, not separate SLs.
Can I have negative stock at an SL?
Yes if configured via OMJ1 — but rare. Usually a sign of process issues.
Can two plants share the same SL ID?
Yes — but independent. RM01 in Plant 1100 ≠ RM01 in Plant 1200.
Can I delete an SL?
Once stock posted there, no. Block via deletion indicator — historical postings remain valid.
PSEC SL setup
Plant 1100 (Karachi factory):
RM01 — Raw materials (iron ore, billets)
WIP1 — Work in process
FG01 — Finished goods (steel rods ready to ship)
QA01 — Quality hold (awaiting inspection decision)
RTN1 — Returns from customers
Plant 2100 (Dubai DC):
DC01 — Main stock
EXP1 — Export staging (held for export shipments)
Interview Q&A
Storage Location = where stock physically sits inside a plant. Quantity only — no value. Quality / blocked / returned stock often modeled via SL. Multiple SLs per plant. Same SL ID can exist in different plants (independent).