SAP Pricing Procedure Configuration in SD
Master SAP pricing procedure configuration in SD with practical steps, transaction codes, and real-world examples to build accurate pricing rules into your sales orders.
Why SAP Pricing Procedure Configuration Matters in SD
If you've spent time in the Sales and Distribution module, you've probably noticed that getting prices right isn't just about finding a number in a master file. It's about orchestrating a set of rules—discounts, surcharges, taxes, rebates—that apply at exactly the right moment, to the right customer, for the right product. That's where SAP pricing procedure configuration in SD comes in.
A pricing procedure is essentially a sequence of condition types that SAP evaluates in order when you create a sales order, delivery, or invoice. Think of it as a recipe: each step adds or modifies the price until you arrive at the final customer price. Get this wrong, and you'll have angry customers, revenue leaks, or compliance headaches.
In this article, I'll walk you through how to configure pricing procedures like a seasoned SD consultant would explain it to a colleague—with real transaction codes, table names, and practical examples.
Understanding the Building Blocks of a Pricing Procedure
What Is a Condition Type?
A condition type is the basic unit of pricing. It represents a single price component—a base price, a discount, a freight charge, a tax. Each condition type has:
- A key (like PR00 for price, K001 for customer discount)
- A calculation type (fixed amount, percentage, quantity-based)
- A rounding rule
- A sign (+ or − to indicate whether it increases or reduces the final price)
- Determination rules (where SAP looks to find the value—master data, user input, formula)
What Is a Pricing Procedure?
A pricing procedure is a named collection of condition types arranged in a specific sequence. SAP processes them from top to bottom. For example, a typical procedure might look like:
- Base price (PR00)
- Customer discount (K001)
- Volume rebate (K004)
- Freight (FRE1)
- Insurance (INS1)
- Sales tax (MWST)
- Net invoice price
Each row in this sequence tells SAP what to evaluate and in what order. The order matters—you can't apply tax before you've calculated your subtotal.
Configuring Pricing Procedures: Step-by-Step
Step 1: Maintain Condition Types (OKA1)
Before you build a procedure, you need your condition types defined. Open transaction OKA1 (or use the menu path: SPRO > IMG > Sales and Distribution > Basic Functions > Pricing > Pricing Control > Define Condition Types).
Here, you'll set up the fundamentals:
- Condition Type key: A four-character code (PR00, K001, etc.)
- Description: What this condition represents
- Calculation type: Is it a percentage (%), fixed amount, or formula-based?
- Rounding: How many decimal places? Should it round up or down?
- Sign: Does this increase (+) or reduce (−) the price?
You'll also define determination here—how SAP finds the value. Common options include:
- Table lookup: SAP searches a condition table (T607 for pricing, T682 for rebates, etc.)
- Manual entry: The user enters it during order entry
- Calculation: A formula determines the value
- Counter: Used for rebate condition scaling
Step 2: Build Your Pricing Procedure (V/08)
Now the real fun begins. Open transaction V/08 (or via SPRO > IMG > Sales and Distribution > Basic Functions > Pricing > Pricing Control > Define Pricing Procedures).
Follow these steps to create your procedure:
- Enter a procedure name (up to 6 characters, e.g., ZSTD01 for "custom standard pricing")
- Add a brief description
- In the detail section, start adding condition types row by row
- For each row, specify:
- Condition type key (the code you defined in OKA1)
- Step number (SAP auto-assigns this, but you can control sequence)
- Requirement (optional: logical conditions that must be met for this row to apply)
- Subtotal field name (how SAP stores this result internally)
- Calculation base (what amount is this condition calculated on?)
- Save your procedure
Step 3: Assign the Procedure to Document Types (VOR4)
A pricing procedure doesn't do anything until you tell SAP which sales document types should use it. Open transaction VOR4 (Sales Document Type Configuration).
Find your document type (OR for sales order, DL for delivery, IV for invoice), and in the Pricing tab, enter your procedure name. You can also set here whether pricing can be manually changed at order-line level or whether it's locked.
This is also where you decide if customer pricing, material pricing, or both should be applied. You can set a pricing strategy to control the precedence of different pricing sources.
Key Tables and Where to Look
If you ever need to troubleshoot or audit pricing, these SAP tables are your friends:
- T685: Pricing procedure master (the name and description of your procedures)
- T686: Pricing procedure details (the condition types and sequence within each procedure)
- T607: Pricing condition tables (the lookup tables SAP searches to find prices)
- KONP: Condition records (the actual price data)
- VBRK / VBRP: Invoice headers and line items (to check final prices on invoices)
You can query these directly in transaction SE16N (table browser), but be cautious about changing them directly—always go through the proper IMG configuration.
Common Pitfalls and How to Avoid Them
Wrong sequence of conditions: If tax is calculated before your final subtotal, you'll have incorrect amounts. Always place summary/subtotal rows after all detail conditions.
Calculation base confusion: If you set a freight charge to calculate based on the customer discount instead of the net amount, your math is broken. Review the "calculation base" field carefully for each condition.
Requirement rules that are too strict: If you add a requirement (e.g., "only for customer type X") but your pricing logic needs to apply globally, the row will be skipped silently. Test with real data.
Not testing across document types: A procedure works in sales orders but behaves differently in deliveries or invoices. Always test your end-to-end flow.
A Practical Example: Setting Up a Simple Procedure
Imagine you're implementing a procedure for standard customers:
- Base price from material master (PR00)
- Customer-specific discount percentage (K001)
- Volume-based additional discount (K004)
- Freight surcharge—fixed amount (FRE1)
- Tax calculated on subtotal (MWST)
In OKA1, you'd ensure each of these condition types exists with the right calculation types. In V/08, you'd create your procedure, add these five rows in order, and set the calculation base for MWST to be the subtotal after freight, not before.
Then in VOR4, you'd assign this procedure to your sales order type (OR) and ensure manual price override is only allowed for certain user roles (via authorization checks).
Finally, you'd test by creating a sample order for a customer with a known discount and volume rebate, and verify the final price matches your expectations.
Next Steps: Master Pricing Like a Pro
Pricing procedure configuration might seem complex at first, but it's one of the most powerful tools in SAP SD. Once you've configured it correctly, the system does the heavy lifting automatically—every sales order, delivery, and invoice calculates prices consistently and accurately.
Ready to deepen your SAP SD knowledge and master pricing like a seasoned consultant? Head over to Automate & Graduate to explore interactive SD modules, practice real scenarios, and graduate to consultant-level expertise.
Go deeper on SE16N
Annotated screen, every field explained in plain English, the errors you will actually hit and how to fix them.
Transactions covered in this article
Want to keep track of what you learn?
A free account saves your progress across 70+ modules, 26 games and a daily challenge.
Create a free account