How-toSAP ECC / S/4HANAMM / Purchasing Pricing

SAP MM price determination: pricing procedure, condition types and fixing wrong PO prices

Question
sap mm price determination

Also searched as

  • sap mm pricing procedure
  • pricing sap mm
  • sap RM0000 calculation schema
  • wrong price in purchase order ME21N

Short answer

In SAP MM the purchase price comes from condition records, read in the order set by the calculation schema (standard RM0000), which the system assigns using the purchasing organization, vendor schema group and plant. PB00 is the gross price condition type. A wrong price in ME21N is usually a missing or outdated info record or condition, or the wrong schema.

Applies to: SAP ECC 6.0 and S/4HANA on-premise

Trace and fix a wrong purchase price

  1. 1In ME21N or ME22N open the item and go to the Conditions tab. Read each line: condition type, amount, currency, per quantity and the calculated value.
  2. 2Use the analysis option in the conditions screen to see which condition record was found and which access sequence step supplied it.
  3. 3Check the info record in ME13 (display purchasing info record) for the vendor and material: validity dates and the PB00 condition amount.
  4. 4If the price should come from a contract or scheduling agreement, check ME33K or ME33L and that the item references it.
  5. 5Check which schema was determined: schema group of the vendor (in the vendor purchasing view), schema group of the purchasing organization and the schema determination table.
  6. 6Correct the condition in ME12 (change info record) or MEK2 (change conditions), or enter a manual price in the item if policy allows. Use the new pricing option in the item to re-determine the price.
  7. 7Re-check the item net price and verify no vendor discount or surcharge condition is also applied by mistake.

How purchasing pricing is structured

Purchasing pricing has four parts: condition types, access sequences, the calculation schema and schema determination. A condition type represents a price element, such as PB00 for the gross price, discounts and surcharges, freight and tax. An access sequence tells the system where to look for a condition record for that type. The calculation schema orders the condition types and says how each is calculated, and schema determination picks which schema applies.

The standard schema is RM0000, which includes PB00 (gross price), discount and surcharge types, freight types and taxes. Condition records are stored in info records, contracts, scheduling agreements and as general conditions. When you save a purchase order the system reads them in the access sequence order and writes the result into the item conditions.

Where it is configured

The path in the IMG is Materials Management > Purchasing > Conditions > Define Price Determination Process. There you maintain condition types, access sequences, the calculation schema, schema groups for vendors and purchasing organizations, and the schema determination assignments.

Changes affect every purchase document that determines a price in future. Test in a sandbox, transport the change and only use a copy of the standard schema (for example ZM0000) when you need new condition types; do not edit RM0000 in place.

IMG: MM > Purchasing > Conditions > Define Price Determination Process
  - Define Condition Types (PB00, PBXX, RA01, FRB1, ...)
  - Define Access Sequences
  - Define Calculation Schema (standard RM0000)
  - Define Schema Group: Vendor / Purchasing Organization
  - Define Schema Determination

Common reasons a PO price is wrong

The vendor price in the info record has expired, so the system falls back to an older record or none at all and shows price zero. A quantity scale does not match the order quantity. A currency exchange rate differs from expectation. A general condition record exists that overrides the info record because the access sequence reads it first. Or the item was changed manually and was not re-determined.

In ME21N the Conditions tab shows each condition with a manual flag. If a manually changed line is marked, the next pricing refresh will not overwrite it, so people can unknowingly keep an old figure. When prices differ between the order and the invoice, MIRO will block the invoice for price variance, which is covered in the related page.

Info records, contracts and conditions

The info record holds the vendor-material price per purchasing organization and, optionally, per plant. Contracts and scheduling agreements hold their own conditions and take precedence when the item references them. Use ME11 or ME12 for info records and MEK1 or MEK2 for general conditions. Keep validity dates continuous; a gap of a single day is the most common cause of a zero price.

Try it here, free

SAP SD Pricing Condition Price Calculator

Open full tool

Walk a sales order line through a typical SD pricing procedure and see net value, invoice total and margin. Sweep the customer discount to see margin erosion.

Common pitfalls

  • !Editing the delivered RM0000 schema directly instead of copying it.
  • !Leaving a gap in validity dates between two condition records.
  • !Overriding a price manually and forgetting the flag, so a later correct record is ignored.
  • !Maintaining the price in the info record for the wrong purchasing organization or plant level.
  • !Ignoring scale quantities that do not cover the order quantity.

How an ERP-grounded AI assistant handles this

Price questions combine master data, condition tables and PO history. A grounded assistant can take a PO number, show which condition record was found for the item, list the info record validity and contract references, and explain which step of the schema produced the final value. It reads from your SAP system on-prem, and any price correction remains a controlled change made by purchasing.

Frequently asked questions

What is the standard purchasing pricing procedure in SAP MM?

The standard calculation schema is RM0000. It orders the purchasing condition types such as PB00 gross price, discounts, surcharges, freight and tax. Schema determination decides which schema applies using the purchasing organization and the vendor schema group.

What is condition type PB00?

PB00 is the standard gross price condition type for purchasing. Its record is usually stored in the purchasing info record and read by an access sequence when a purchase order item is created.

Why does my purchase order show a zero price?

Most often there is no valid condition record for the date, vendor, material and organization. Check the info record validity in ME13, any contract reference and the conditions tab analysis, then maintain the missing record.

How do I update prices on existing purchase orders?

Open the item in ME22N, change the delivery or pricing date if needed and use the new pricing function so conditions are re-determined. Items with manual condition lines are not overwritten, so remove the manual flag first.

Related

Error fix

SAP Pricing Error: Condition Record Missing for PR00 in a Sales Order

The error means the pricing procedure expected a price condition such as PR00, found no valid record for the key, and the condition was flagged mandatory. Use the pricing analysis in the order item to see which access failed, then create the record with VK11, or fix the pricing procedure determination if the wrong procedure was selected.

How-to

SAP MIRO: invoice blocked for price variance, and how to release it in MRBR

MIRO blocks an invoice for payment when its price or quantity differs from the PO or goods receipt by more than the tolerance limits defined in OMR6. The invoice posts, but it carries a payment block reason (R for price) until someone releases it in MRBR or corrects the underlying data. Release only after confirming which side is wrong.

How-to

Landed cost in SAP MM: planned and unplanned delivery costs

SAP MM handles landed cost through delivery cost conditions. Planned delivery costs are conditions on the purchase order (flagged as delivery costs) that are accrued at goods receipt and settled with the freight invoice. Unplanned delivery costs are entered in MIRO when the invoice arrives. How they hit inventory value depends on the price control of the material.

How-to

SAP ME21N: why the release strategy is not determined on a purchase order

When a purchase order saves without a release strategy, no strategy in the release group matched the PO's characteristic values. Compare the PO header values (value, document type, purchasing group, plant) against the value ranges in the strategy classification (CL24N), and check that the release group and code are active for the PO document type.

Error fix

SAP M7 021: Deficit of SL Stock Quantity

M7 021 fires during a goods issue, delivery, or confirmation when SAP checks the unrestricted-use (SL) stock for the exact plant, storage location and batch combination and finds less than what you are trying to post out. Fix the entry (batch, storage location, quantity) first; only enable negative stock or downgrade the message to a warning if the business genuinely needs to post ahead of a receipt.

Error fix

SAP IDoc Status 51: Application Document Not Posted

Status 51 tells you the IDoc reached the application layer and failed to post, but the status text itself is not the error - the real cause sits in the status record's long text or the linked application log. Fix the underlying data or configuration, then reprocess the IDoc through BD87 rather than editing the status.

AI for ERP

AI for SAP S/4HANA, Running On-Prem or in Your Private Cloud

Run AI on SAP S/4HANA without sending ERP data to a public API. On-prem and private-cloud architecture, CDS views, OData, and honest deployment trade-offs.

Stuck on SAP ECC / S/4HANA?

Talk to engineers who work inside SAP ECC / S/4HANA every week, and who build private AI that answers these questions from your own ERP data.