Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
Showing results for 
Search instead for 
Did you mean: 
Product and Topic Expert
Product and Topic Expert
Introduction: Pricing procedures play a crucial role in any ERP system, allowing organizations to set and calculate the prices of their products and services accurately. In SAP S/4HANA Cloud, pricing is one of the most complex topics as it involves using various components such as condition tables, access sequences, pricing procedures, and condition types. These components are tightly interdependent and work together to constitute condition techniques. In this blog post, I want to first introduce these terminologies and explain their significance in price management. I’ll later demonstrate an example of a possible business requirement in the Service Line of Business, where you have to adapt the standard pricing procedures fulfill a specific pricing requirement that a customer may have. For a deep dive into the topic of pricing, please take a look at this blog post.

Terminologies in SAP S/4HANA Cloud Pricing:

  1. Condition Table: A condition table in SAP S/4HANA Cloud is a collection of fields that define the criteria for determining prices. It consists of specific attributes such as customer, material, and sales organization. Condition tables help establish relationships between condition types and access sequences, enabling the system to fetch relevant pricing data during pricing calculations.

  2. Access Sequence: An access sequence defines the order in which condition tables are accessed to determine the price for a particular condition type. The access sequences search for valid condition records in order from most specific to most general.

  3. Pricing Procedure: A pricing procedure (a.k.a calculation schema) is a collection of condition types arranged in a specific sequence. It determines how prices are calculated and displayed for a specific business transaction. By defining the sequence of condition types, the pricing procedure controls the order in which prices are calculated and displayed.

  4. Condition Types: Condition types represent different pricing elements such as discounts, surcharges, taxes, or any other factors affecting the final price. Each condition type is assigned to an access sequence and is responsible for fetching the relevant condition records from condition tables and applying the necessary calculations to derive the final price. SSCUI #101120

  5. Condition master record
    In the condition master record, you set the master data for the different condition types. This is done using the Fiori app “Set Material Prices – Sales”.

Now that we’ve covered the basic terminology, let’s look at an example of what a business requirement for pricing in Service Orders could look like. Generally speaking, there are 3 different types of items you can process in a Service Order – service products (eg. Service time provided by a service technician), service expenses (eg. Travel costs) and service materials (eg. Spare parts needed for a repair). For the second category of service expenses (SRV_02), the out-of-the-box pricing procedure in S/4HANA Cloud involves the service technician providing a manual expense amount (condition type PMP0), which overrides the standard price (PPR0) in the system for that particular expense item. For example, if the condition type PPR0 maintains a material price of 30€ for the expense item SRV_02, this will get overridden by the manual input (PMP0) of the actual expenses (costs) incurred during the Service confirmation. In simple terms, for SRV_02, the costs incurred for the expense item are at the same time the price that is billed to the customer for this expense item. This is how the standard pricing procedure is setup for SRV_02.

In reality, a business could have their own pricing requirements as to how they want to go about billing their customers for service expenses incurred. In this next part, I want to illustrate a specific scenario, wherein the service providing company would like their billing price for expense items to have a 10% margin compared to the costs of the service expense item.
So instead of Billing price = Costs (standard pricing procedure), the service provider would like to have Billing price = Costs * 1.1 (custom pricing procedure).

Let's now explore the steps involved in creating a new custom pricing procedure for Service orders based on the pricing rule stated above.

Step 1: Create/change a Condition table (SSCUI 103119, 103120)

In SSCUIs 103119 and 103120, you can create/change custom condition tables or search for existing ones that contain the right combination of required fields from the field catalog. For my example, I have chosen the standard condition table 304 that contains the fields Sales Org., distribution channel and material.

Step 2: Set access sequence (SSCUI 103121)

The next step is to find/set an access sequence that uses the above fields. In my case, I can use the existing access sequence 'DM01' for this purpose.

In the Accesses section, you can see the condition table(s) that the access sequence runs through while trying to search for a condition record match.

Step 3: Set condition types for pricing (SSCUI 101120)

The next step is to create a new custom condition type and assign it to the previously chosen access sequence DM01. Since the condition type should emulate a surcharge on the gross price amount, I can create a copy of the standard condition type DRG1 which represents a surcharge. As the surcharge is percentage-based, the calculation type should be set to 'A'.

Step 4: Set pricing procedures (SSCUI 101117)

Create a new pricing procedure to be used in Service orders. For this, copy the existing standard pricing procedure A10018 and create a copy of this. The name for custom pricing procedures usually should start with a Z, so mine is called Z10018. 

Now comes the crucial step in our process. Between the conditions DRG1 and DRN1, add a new step where our new condition type will be inserted. Copy the values for the other columns as shown below. We have now essentially appended the new service surcharge into the pricing procedure for service orders.

Step 5: Set pricing procedure determination (SSCUI 101118)

After having created the new pricing procedure in the previous step, we have to change the pricing procedure determination so that Z10018 is used in service orders instead of the standard procedure A10018. This is configured in the SSCUI 101118.

Step 6: Create a condition master record for newly created condition type ZS03 from Step 3

The final step is to create the condition master record for the newly created condition type ZS03. In the app "Set Material Prices – Sales", enter the condition type ZS03 and fill in the Sales Org. and distribution channel for which the pricing should be valid. Click execute and in the detail screen, maintain the following values. With this, the newly created pricing procedure will come into effect for all service orders where the product SRV_02 (service expense item) is used.

The litmus test: We can now validate the new pricing procedure by creating a new Service order for the material SRV_02. Et voilà - our new pricing procedure with the 10% surcharge on top of the base price is active.

Conclusion: Pricing procedures are vital in SAP S/4HANA Cloud for determining accurate prices for products and services. By understanding the concepts of condition tables, access sequences, pricing procedures, and condition types, consultants can configure pricing procedures in accordance with the specific business requirements of the customer.