Scenario 1 — Stock Procurement (The Basic P2P Cycle)

FOUNDATION ★☆☆☆☆ ⏱️ ~2 hours ME51N → ME21N → MIGO → MIRO → F-53
← Back
All 26 Scenarios (Hub)
Next →
Scenario 2: Return to Vendor

📊 Business Case — When & Why You Use This

Stock procurement is how a company buys physical material and puts it into its own warehouse as inventory — to be consumed in production or sold later. It is the single most common purchasing process in any manufacturing or trading business, and the master pattern every other scenario in this hub extends.

🕐 When to use it

You are buying a stockable material (raw material, packaging, trading goods) that should sit in inventory before it's used. Material type ROH/HALB/FERT, valuated, with a material master.

❓ Why it matters

It links MM ↔ FI automatically: every goods movement posts the right G/L accounts with no manual journal entry. Master this and you understand 80% of SAP procurement.

👤 Who triggers it

MRP, production planning, or a storekeeper raises the need → buyer converts to a PO → warehouse receives → AP pays. Four departments, one connected chain.

🔁 How often

The everyday case — the majority of all purchase orders in a make-or-trade business. If you only learn one scenario, learn this one cold.

📈 Contrast — when you would NOT use this
If the purchase is consumed immediately and never stocked (a service, office supplies charged straight to a department, a machine capitalised as an asset), you use account-assigned procurement instead (Scenarios 4–6) — the cost goes to a cost center/asset, not to inventory. Stock procurement is specifically for things that become inventory first.

💰 Financial Impact — The Easy-Money Example

Forget the jargon for a second. Here is what this scenario does to the company's money, in plain terms, using our example: PakSteel buys 50 tons of iron ore from Mughal Steel for ₨12,500,000 on credit.

1️⃣ You receive the goods (GR)
Inventory ↑ ₨12.5M
Warehouse asset goes up. You now owe the money (a liability sits in a "GR/IR" holding account).
→
2️⃣ Vendor invoice arrives (IV)
Payable ↑ ₨12.5M
The holding account clears; now you formally owe Mughal Steel ₨12.5M (Trade Payables).
→
3️⃣ You pay (Payment)
Bank ↓ ₨12.5M
Cash leaves the bank, the debt is gone. You're square with the vendor.

Net effect on the balance sheet: the company swapped ₨12.5M of cash for ₨12.5M of iron ore inventory. Nothing hit the Profit & Loss yet — buying stock is not an expense. The expense (cost of goods) only appears later, when the iron is issued to production or sold (that's Scenario 3).

💡 Easy example of WHY payment terms matter (the ₨250,000 lesson)
Our vendor uses payment terms 0003 = "2% discount if paid within 14 days, otherwise net in 30 days." So you have a choice: That ₨250,000 on one order is why finance teams obsess over payment terms — across thousands of POs it's millions. This is the real business reason the 0003 field on the vendor master is not just decoration.

🇵🇰 The Business Story (our running example)

PakSteel Karachi Factory (plant PK01) needs 50 tons of iron ore lump, Grade A, from local supplier Mughal Steel Industries (vendor MUGHAL21). The ore goes into the raw-material warehouse (storage location RAWM). Price ₨250,000/ton → order value ₨12,500,000. Payment terms 0003, input tax I0 (0%). Company code PSPK (PKR), purchasing org PKLO, purchasing group RMT.

🎯 What you'll learn

📋 Prerequisites

Before this scenario runs, the org structure and MM-FI integration must exist. If you built them via the Setup Guide, you're ready.

ItemQuick status check
CC PSPK fully configuredSE16N → T001 → row for BUKRS=PSPK
Plant PK01 assigned to PSPKT001W → PK01 with BUKRS=PSPK
Storage Location RAWM at PK01T001L → WERKS=PK01, LGORT=RAWM
Purch Org PKLO + assignmentsT024E, T024W rows
Purch Group RMTT024 → EKGRP=RMT
OBYC entries for valuation class 3000T030 → BSX, WRX, GBB rows for VKO=0001, BKLAS=3000
⚙️ New config needed for this scenario
None beyond Setup Guide Steps 1–15. This is purely transactional. One reminder: a brand-new company code needs its one-time gates (posting periods, tolerances, number ranges, Material Ledger) ready before the first goods receipt — the Stock-Readiness Checklist walks through them, and each message has its plain cause & fix in the Error Registry.
✅ Before you start — what this scenario assumes

📦 Master Data Setup

📦 Create these two master records first — full field-by-field guides

Both moved to their own pages so any scenario can link to them. Then maintain the price link below.

Link them — Create Info Record · ME11 · Material ↔ Vendor + price

What: The agreement "Vendor X sells Material Y to Plant Z at price P." PR/PO then auto-suggests the price. Optional but standard.

  1. Run ME11 → Vendor MUGHAL21 · Material RM-IRON-01 · Purch Org PKLO · Plant PK01 · Standard
  2. Purch Org Data 1: Net Price 250000 · Currency PKR · Validity to 31.12.9999 → Save

Verify: SE16N → EINA + EINE populated.

🔄 Transaction Flow — The 5 Steps

🧭 The route at a glance — read this first
StepT-codeWhat it doesWhy this step exists
1ME51NCreate a wish-list asking purchasing to buy 50 tonsa need must be written down first
2ME21NTurn the wish into a binding order to Mughal Steela promise needs a document
3MIGOPost the ore into stock; first money entrystock and money must move together
4MIRORecord the vendor's bill; a real debt appearsa bill must match order and receipt
5F-53Pay the vendor and clear the debta purchase isn't finished until the vendor is paid
6ME23N · FBL1N · FB03Display only — walk the finished document chainproof the whole chain closed cleanly
Step 1 — Purchase Requisition · ME51N

⚡ This step will: create a wish-list paper asking purchasing to buy the 50 tons — no promise to any vendor yet. 📄 paper: purchase requisition · 📦 stock: no change · 💰 money: no posting

What: Internal request "I need this material." No vendor commitment yet, no FI posting.

  1. Run ME51N → Doc Type NB
  2. Line 1: Material RM-IRON-01 · Qty 50 TO · Delivery date today+14 · Plant PK01 · Sto Loc RAWM · Purch Grp RMT
  3. Item Detail → Source of Supply: vendor MUGHAL21 (info record suggests 250000/TO) → Save → PR # e.g. 10000123

Tables: EBAN (+ EBKN if account-assigned).

Step 2 — Purchase Order · ME21N · adopt the PR (don't re-type!)

⚡ This step will: turn the wish into a binding promise to Mughal Steel — plant PK01 starts showing the 50 TO as On-Order (a promise, not stock). 📄 paper: purchase order · 📦 stock: no change · 💰 money: no posting

What: The legal commitment to the vendor.

The ME21N screen has 3 zones — ① the Header (top: doc type, vendor, dates, with header tabs like Org Data), ② the Item overview grid (one ROW per line you buy), ③ the Item detail tabs below (for the selected line). Adopting a PR fills zones ① and ② for you — you only verify them and add the Invoice-tab tax code.

🎯 If you already created a PR, do NOT re-enter Plant/Purch Org/Vendor/Material in the PO
Use the Adopt PR flow — every PR field auto-copies. You only verify and add PO-specific fields (Tax Code, exact delivery date).

✅ Flow A — Convert PR → PO (recommended)

  1. Run ME21N — don't type anything yet
  2. ⭐ Most reliable method: in the PO item table scroll right to the "Purchase Requisition" column → type the PR number → Enter → all fields auto-copy. (Alternative: Document Overview On → Purchase Requisitions → drag the item across — plain cause & fix if drag-and-drop does nothing.)
  3. SAP auto-copies: Material, Plant, Storage Loc, Qty, UOM, Vendor, Purch Org, Purch Group, Net Price, Material Group, Delivery Date, Currency.
  4. You only add/verify: Tax Code I0 (Input 0% — V0 may not exist on your system; press F4 to see your codes, "I" prefix = input tax for purchases) · Header → Org Data CC PSPK · Delivery/Invoice tab payment terms (auto from vendor)
  5. Check → Save → PO # e.g. 4500000123. PR now shows "PO created."

⚠️ Flow B — Direct PO (no PR)

Only for urgent/low-value/recurring buys. Enter everything manually: Doc Type NB · Vendor MUGHAL21 · Org Data (PKLO/RMT/PSPK) · Item (RM-IRON-01, 50 TO, 250000, PK01, RAWM) · Invoice tab Tax I0 → Check → Save. No PR-PO audit link.

Tables: EKKO + EKPO + EKET + EKPV (Flow A link) + EKBE. No accounting entry yet — a PO is a commitment, not a posting.

Step 3 — Goods Receipt · MIGO · movement 101 · first FI entry

⚡ This step will: bring the ore IN: the shelf at RAWM fills AND the first money document posts. 📄 paper: material + accounting document · 📦 stock: ↑ 50 TO at PK01/RAWM · 💰 money: Dr Inventory / Cr GR/IR

What: Vendor delivers; you post the ore into inventory. The first accounting entry hits here.

MIGO has 3 zones — ① the top bar (two dropdowns, Action + Reference, plus the movement type), ② the header tabs (General/Vendor: dates, delivery note), ③ the item area — the overview grid plus the item-detail tabs (Material · Quantity · Where · Account Assignment) with ☑ Item OK at the bottom.

⚠️ First goods receipt in a brand-new company code can raise one-time config errors — each has its plain cause & fix in the Error Registry: Material Ledger not productive · LIV tables T169P/T169V · VP tolerance · G/L not in company code · FI document number range.

  1. Run MIGO → Goods Receipt · Purchase Order · PO 4500000123
  2. Movement Type 101 (auto) · Header: Delivery Note (any text) · Posting Date today
  3. Item: confirm Qty 50 TO, Sto Loc RAWM, tick Item OK → Check → Post
  4. Material Doc # + FI Doc # generated
Posting KeyG/LDescriptionAmount (PKR)
89 Inventory Dr300000Raw Material Inventory (BSX, VKL 3000)Dr 12,500,000
96 GR/IR Cr191100GR/IR Clearing (WRX)Cr 12,500,000

Tables: MSEG + MKPF + BKPF/BSEG + MBEW. Verify: MMBE → 50 TO unrestricted at PK01/RAWM.

Step 4 — Invoice Receipt · MIRO · 3-way match

⚡ This step will: record the vendor's bill: the GR/IR IOU clears and a real debt to Mughal Steel appears. 📄 paper: invoice document · 📦 stock: no change · 💰 money: Dr GR/IR / Cr Vendor

What: Vendor invoice verified against PO + GR (qty/price). Posting creates the vendor liability.

The MIRO screen has 3 zones — ① the Header tabs (Basic Data · Payment · Details · Tax) where the invoice date, reference and Amount go, ② the PO-reference / allocation area that pulls the ordered lines in, ③ the item list; the Balance indicator sits top-right and must read 0.00 · green before you Post.

  1. Run MIRO → Invoice · Invoice Date · Posting Date today · Reference (vendor inv #)
  2. Amount 12,500,000 · PO Reference 4500000123 → Enter
  3. System pulls the GR line (50 TO @ 250,000) · Balance must be 0.00 🟢 → Post → Invoice doc #
Posting KeyG/LDescriptionAmount (PKR)
86 GR/IR Dr191100GR/IR Clearing (clears the GR credit)Dr 12,500,000
31 Vendor Cr160000Trade Payables (via recon account)Cr 12,500,000

The GR/IR test: after GR + IV the account nets to 0. Non-zero = qty/price mismatch. Tables: RBKP + RSEG + BKPF/BSEG.

Step 5 — Vendor Payment · F-53 (manual) or F110 (run)

⚡ This step will: pay the debt: the vendor's account clears and the bank shrinks (₨250,000 less if you pay within 14 days). 📄 paper: payment document · 📦 stock: no change · 💰 money: Dr Vendor / Cr Bank (+ Cr Cash Discount if paid early)

What: Pay the vendor and clear the AP liability.

The F-53 screen has 3 blocks — ① the document header (dates + company code), ② the Bank data block (which cash G/L + how much leaves), ③ the Open item selection block (the vendor) → then Process Open Items opens the Open-items screen where you pick the exact invoice so it clears.

  1. Run F-53 → Doc/Posting Date today · CC PSPK · Currency PKR
  2. Bank Data: G/L 113100 · Amount 12,500,000 (or 12,250,000 if taking the 2% early-payment discount)
  3. Open Item Selection: Vendor MUGHAL21 → Process Open Items → select the invoice → Amount Entered = Assigned → Post
Posting KeyG/LDescriptionAmount (PKR)
25 Vendor Dr160000Trade Payables (clears the credit)Dr 12,500,000
50 Bank Cr113100Bank Main AccountCr 12,250,000
50 Discount Cr276000Cash Discount Received (only if paid ≤14 days)Cr 250,000

If you pay after 14 days, drop the discount row and Bank = full 12,500,000. Tables: BKPF/BSEG + BSAK (cleared items).

Step 6 — Trace the whole document flow · ME23N · FBL1N · FB03

⚡ This step will: create nothing — it is display only: you walk the finished document chain and prove the vendor is fully paid. 📄 paper: — · 📦 stock: no change · 💰 money: no posting

What: Prove every link in the chain and that the vendor is fully cleared — a daily consultant skill.

  1. PO History hub: ME23N → item → tab Purchase Order History → see WE (GR) + RE-L (invoice); click any to drill to its FI doc.
  2. Prove vendor is clear: FBL1N → MUGHAL21 → "Cleared items": invoice (RE) + payment (KZ) share the same Clearing Document (AUGBL). "Open items" → empty = fully paid.
  3. Relationship Browser: FB03 → any FI doc → Environment → Relationship Browser → the whole document family tree.

💰 Complete Accounting Trail (T-account view)

G/L AccountGR (101)IV (MIRO)Payment (F-53)Net
300000 Raw Material InventoryDr 12,500,000——Dr 12,500,000
191100 GR/IR ClearingCr 12,500,000Dr 12,500,000—0 ✓
160000 Trade Payables—Cr 12,500,000Dr 12,500,0000 ✓
113100 Bank——Cr 12,500,000Cr 12,500,000

Net: Inventory ↑ ₨12.5M · Bank ↓ ₨12.5M · GR/IR clears to 0 (success indicator) · Vendor clears to 0 (paid). (Taking the 2% discount shifts ₨250,000 from Bank to G/L 276000 income.)

🚨 Common Errors & Fixes

Hit an error not listed here? Search the full Troubleshooting Command Center.

StepErrorRoot causeFix
MM01Valuation class 3000 not allowed for ROHOMSK configOMSK → ROH → allow 3000–3999
ME21NNet price is 0.00No info recordME11, or enter price in PO line
MIGOAccount determination INT BSX VKL 3000 not possibleOBYC missingOBYC → BSX → add VKL 3000 → G/L 300000 · registry
MIGOML not productive for valuation area PSPKMaterial Ledger not activatedOMX2/OMX3 + CKMSTART — Step 1O · registry
MIGOMaintain tolerance limits for key VPOMC0 missingOMC0 → VP for PSPK · registry
MIGOPosting period not openOB52OB52 → open period for variant PSPK · registry
MIROBalance not zeroQty/price mismatchCheck GR qty vs invoice qty, PO price vs invoice price · registry
F-53No open items foundWrong vendor / already paidFBL1N → check open status

✅ Verification — Confirm Scenario 1 Worked

#T-codeCheck
1ME53NPR status = Completed (converted to PO)
2ME23NPO status = Delivered + Invoiced
3MB51Mvt 101 entry for RM-IRON-01 at PK01/RAWM
4MMBE50 TO unrestricted at PK01/RAWM
5MIR4Invoice posted, balance 0
6FBL1NVendor MUGHAL21 → no open items (cleared)
7FAGLB03G/L 191100 GR/IR → net 0 for this PO
8FBL3NG/L 300000 → debit of 12,500,000 visible

🎓 Interview-Ready Answers

Q: Walk me through the standard P2P cycle.

PR (internal request, ME51N) → PO (commitment, ME21N, no FI hit) → GR (101, MIGO — Inventory Dr, GR/IR Cr) → IV (MIRO — GR/IR Dr, Vendor Cr; 3-way match) → Payment (F-53/F110 — Vendor Dr, Bank Cr). GR/IR clears across GR + IV; non-zero means a qty or price mismatch.

Q: Difference between V and S price control?

V = Moving Average — valuation updates with every GR at actual price; used for raw materials with varying prices. S = Standard Price — fixed in the master, variance posts to a separate account; used for finished goods for stable costing.

Q: How does GR auto-determine G/L 300000 with no manual entry?

Material's Valuation Class (3000) + Movement Type (101) + Transaction Key (BSX) + Chart of Accounts (INT) → OBYC table lookup → G/L 300000. Pure config.

Q: Why is buying stock not an expense?

It's an asset swap — cash (or a payable) becomes inventory, both on the balance sheet. The P&L expense (consumption / COGS) only posts later when the material is issued to production or sold.

← Back
All 26 Scenarios (Hub)
Next →
Scenario 2: Return to Vendor