Lesson 2 of 6
Purchase contracts and release orders
7 min
A purchase contract is a longer-term outline agreement with a supplier: Contoso commits to buy a total quantity or value over a period, at agreed prices and terms, and the supplier commits to supply. The contract itself does not trigger deliveries. Deliveries are triggered by release orders: ordinary purchase orders that reference the contract.
Quantity and value contracts
| Topic | Quantity contract (MK) | Value contract (WK) |
|---|---|---|
| Commitment | Target quantity per item | Target value for the whole contract |
| Header total value | Optional | Required |
| Consumption tracked | Per item: quantity released to date | At header: total release value |
| Typical items | Specific products with known volume | Specific products or a material group |
| Contoso example | Harbor Electric Parts: 7,200 rotors at $40.80, 2027 | Northpoint Office Supply: $60,000 of office and shop supplies, 2027 |
Contracts are created in the Manage Purchase Contracts app or with ME31K (change ME32K, display ME33K). The header carries the supplier, purchasing organization 1710, validity period, payment terms and, for value contracts, the target value. Items carry the product (or material group), target quantity, price conditions and plant. A contract item with no plant is valid for all plants of the purchasing organization; one with a plant is plant-specific, which matters for source determination later.
| Field | Harbor quantity contract 4600000021 |
|---|---|
| Supplier | Harbor Electric Parts |
| Validity | January 1 to December 31, 2027 |
| Item 10 | CMC-RTR-200, plant 1710, target 7,200 PC |
| Price | $40.80 per piece; freight $0.60 per piece as a separate condition |
| Terms | Net 45; delivery 30 days after order |
The quantity contract created from Harbor's awarded quotation.
Release orders
When MRP or a buyer needs rotors from Harbor, a PO is created with reference to the contract item (in ME21N by entering the outline agreement and item, or in the Manage Purchase Orders app, or automatically when a requisition with the contract as source is converted). The PO inherits price and terms from the contract, and the contract's released quantity increases. The contract's release documentation lists every release order, so a buyer can see at any time how much has been called off.
- Contract4600000021: 7,200 rotors at $40.80, released to date 0
- RequisitionMRP: 600 rotors for plant 1710 with source 4600000021 item 10
- Release orderPO 4500000522 references the contract; price $40.80 copied
- ConsumptionReleased to date 600; open target 6,600
- Receipt and invoiceAs for any PO: goods receipt 101, invoice matched to PO price
What happens when release orders exceed the target? SAP issues a message; whether it is a warning or an error depends on message configuration. Contoso wants a warning at the target and a buyer decision to extend the contract. Expired contracts are not proposed as sources, and a PO referencing an expired contract is refused or warned depending on settings. Both cases belong in testing.
Large groups often negotiate contracts centrally for several companies. SAP S/4HANA supports central contracts for this through its central procurement capabilities, distributing contract information to connected systems. Contoso has one purchasing organization today, but the planned Mexican acquisition would raise the question; record it as a future design topic rather than solving it now.
What would you do?
Harbor's contract has 400 rotors left, and MRP needs 600. A buyer asks whether to create a release order for 600 anyway. What is the best approach?
- Quantity contracts (MK) commit item quantities; value contracts (WK) commit a total value.
- Create in Manage Purchase Contracts or ME31K; plant-specific or for all plants.
- Release orders are POs referencing the contract; they inherit price and update consumption.
- Monitor targets, expiry and contract compliance; overruns need a decision.
Check your understanding · not graded
Lesson check
1. What is a release order?
2. Which contract type commits a total value at header level?
3. Which transaction creates a contract in SAP GUI?
4. A contract item has no plant. Where is it valid?