------
Read about intended audience / purpose / approach towards these posts => Additional info
This my recent initiative. Give me feedback how I could improve it further, any topic you would like me to discuss in particular, change my writing approach / style etc.
------
In this post I touch various controls, objects that are in action during item pricing and interplay between them(form order document down all the way to to billing / invoicing). It is assumed you are already aware of concepts like - pricing condition technique, condition type, copy controls. item category etc.
ITEM CATEGORY CONTROLS:
(Remember "item category" == "document type" + "item cat. grp." + "high lvl. item cat." + "usage")
As soon as you enter the material in sales order, SAP runs through item category determination rules. Identifying appropriate item category for an item with-in the context of this transaction. Item category has 2 configuration settings that are highly relevant in pricing context:
- Pricing :: Whether the item is to be priced at-all or not (with-in the context of this transactions). An item may be relevant for pricing in one transaction and may not be relevant for pricing in other transaction. This is controlled though th is setting of the item category identified for an item in the transaction. Because the other transaction (free-of-charge subsequent delivery, FD for example) may result in different item category (KLN) not relevant for pricing, and so the item is never priced in that transaction
As you can see standard item category (TAN) is relevant for standard pricing (‘X’). and so normal pricing is carried out when TAN is identified as material’s item category in standard order (OR)
whereas, free-of-charge material category (KLN) is not relevant for pricing (BLANK). and so no pricing is carried out for the material in free-of-charge subsequent order type (FD)
- Billing Relevance :: The billing / invoice document is to be based on sales order or based on delivery documents or based on pre-defined billing plans? Most literature do not elaborate much upon that but in practical terms it means what types of copy control settings to use when data flows into billing document.
- For order related billing, data flow is based on order => billing copy controls (VTFA)
- For delivery related billing, or, data flow is based on delivery => billing copy controls (VTFA).
COPY CONTROL SETTINGS
More detailed discussions on copy controls in later posts, but basically with-in pricing context the copy control settings (at item-level) control
(condition value are copied from source to target document at item-level only. Never at header level. and so for time being I only discuss item-level copy controls in pricing context)
- Billing quantity :: what quantity to be copied to billing / invoice documents - should it be (ordered qty.) or (delivered qty.) or (ordered - invoiced qty.) etc. If you set it C (order quantity), SAP will always bill total ordered quantity (irrespective how many quantities were actually delivered)
- Price source :: Which source document the billing / invoice fetches condition values from - should it be order or delivery or both?
NOTE-1 :: Pricing source set to ‘E’ (delivery / order) for standard item category (TAN) in source document. This meansfor every condition type included in billing document’s pricing procedure, SAP tries to copy value from delivery document. Only, if billing document does not find condition value in delivery document will it try to access condition value from sales order. This is particularly useful when freight conditions are entered in delivery document and other conditions are n sales order. Make sure the condition type being copied is also included in order / delivery pricing procedure. (remember order / delivery / billing - each have their own pricing procedures, more on that towards the end of this post)
NOTE-2 :: If an item category is order related (Billing relevance = order related) the system gives error if you choose Price Source as delivery (B / D / E / F. why?
- Pricing type :: While copying condition values from source to target document, should condition values, scales etc. be re-determined or should they be copied as-is. For example billing document may be created months after order was created or delivery was made and meanwhile item prices / discounts etc. might have changed. or, the scales for Freight charges may have changed as per weight of the actual delivery (vs planned delivery in sales order). Being highly configurable system SAP allows the flexibility to selectively choose what set of condition types to be re-determined (for ex. taxes, freight etc condition categories) and which ones to be copied as-is (for example manually entered values).
NOTE :: remember "Billing date" in billing document is always "actual GI date" from the delivery (Delivery document => Item overview screen). This can be different form planned GI date, which is copied form sales order)
PRICING PROCEDURE:
Coming back to sales order, as soon as you enter the material in sales order and SAP finds the item to be price relevant, it runs trough pricing procedure determinations rules and determine the relevant pricing procedure.
This pricing procedure controls what all condition types constitute overall item pricing. Each condition type can be
- Automatically determined :: if the condition type has an access sequence assigned to it and the valid condition records exists.
- or, if no condition record is found, the condition type can still be added manually. In that case make sure you further set up the condition type to be manually editable (condition type settings, V/06 => “Changes which can be made” section). Set “Manual Entries” as either BLANK, A or C.
Depending upon business needs, it is also possible that a condition type be only added manually (not automatically!) to an item pricing. Despite relevant condition records existing. For example one-off special discount discussed case-by-case with customers. In order to achieve that, check the “Manual” check-box against the relevant condition type in the pricing procedure (V/08). In such situation, as-soon-as condition type is added manually, automatic determination kicks-in whereby SAP automatically picks the relevant condition records if there is one that exists. Or you just have to enter “Condition Amount (rate)” or “Condition Value” manually. Again make sure condition type shoudl still be set to be manually editable as described above.
**********************VERY IMPORTANT*******************************
*************************************************************************
Condition Amount (rate) and Condition Value are two different things
and, Condition value == Condition amount (rate) * Condition base
where,
- Condition base :: is determined by condition type settings => “Calculation type” (Fixed amount or item’s quantity / volume / weight or it could be % based
- Condition amount :: is simply the condition’s rate card and originating from condition records
(This is very important concept esp. when it comes to distributing header level "group condition" to various items or condition types that are % based. I have met even semi-experienced consultants alien to this concept!
*************************************************************************************
*************************************************************************************
SALES / DELIVERY / BILLING PRICING PROCEDURE
Now that we are on sales order stage, all condition types that comprise item price have been determined (or added manually). Next step is to make a delivery document, followed by billing / invoice document. How the prices / condition values flow from document-to-document?
It is a common myth that conditions types and respective amount (rate) and values are copied from sales document => delivery document and from there on => billing document. That’s not what happens exactly. In-fact if you look sales => delivery copy control, VTLA, there exist no controls for copying pricing data
Sales, delivery and billing document each has its own pricing procedure assigned to it
- Sales and billing pricing procedure is determined as per determination rules = (Sales org.) + (dist. ch.) + (div.) + (cust. pricing proc.) + (document pric. proc.)
- For delivery, the pricing procedure is directly assigned to delivery document type. Normally delivery pricing procedure only contains delivery related condition types (for example freight charges).
During billing / invoicing phase, SAP copies condition values from order document or from delivery document or both. Based on “price source” setting in delivery => billing copy controls, VTFL (Or, for order related billing relevance, order => billing copy controls, VTFA). Make sure all the condition types you want to include in billing / invoice exist in both
- the target document's pricing procedure (billing pricing procedure)
- as-well-as in source document you are copying from (order or delivery or both)
Because condition values are copied only if the condition type exists on both source and target document. In order to test that, try to leave out PR00 pricing condition type from billing pricing procedure. Then try to bill the delivery. In the billing document you wont notice PR00 condition anymore.
In practice though we can
- Create one pricing procedure
- Assign this pricing procedure to all three documents (sales / delivery / billing)
- Selectively hide any condition type from irrelevant document. For example freight conditions only relevant in delivery and not in sales order. This is achieved through “requirement” routine assigned to relevant fr eight condition(s) in pricing procedure where-in requirement routine hides the condition in sales order and displays it in delivery document.