This chapter covers the following topics:
Oracle Advanced Pricing supports e-business applications by providing a flexible pricing engine that executes pricing and promotional calculations for Oracle Order Management and other Oracle Applications. This application is licensed as Oracle Advanced Pricing.
Note: For more information on implementation steps, setup procedures, and profile options, see: Oracle Advanced Pricing Implementation Guide.
Oracle Advanced Pricing provides the flexibility to meet the needs of complex pricing situations for a range of demanding industry business requirements which include:
Consumer goods, telecommunications, services, high technology, automotive businesses, and aerospace/defense businesses that sell to other businesses.
Telemarketing, mail order catalog, and web store businesses that sell directly to consumers.
Oracle Advanced Pricing provides advanced pricing capabilities that enable you to set up your pricing information and to model complex data relationships to determine the correct price.
With Oracle Advanced Pricing, you can perform the following functions:
Create a list price for an item or item hierarchy.
Set a list price based on volume breaks.
Assign security privileges to pricing users to control their view or maintain access to price lists and modifiers. You can also control which operating units can use price lists or modifiers.
Define price breaks using block pricing to evaluate prices as a single block. For example, if item weight is between 5 and 15 pounds, then the price is $5. If the weight is between 16 and 30 pounds, then the price is $10.
Maintain price lists by performing tasks such as searching across a single or multiple price lists and updating the price, formula, or effective dates of price list lines.
Usage pricing and counter pricing: calculate price based on usage brackets.
Use price breaks.
Set a list price and discounts at multiple levels of flattened hierarchies and use precedence to select the right price or discount.
Define a formula to dynamically calculate the price based on a simple or a complex formula or to create a price relation (for example, the price of item A is the price of Item B + $20).
Create multiple currency conversion criteria for a single base currency price list.
Set up General Services Administration (GSA) prices.
Define pricing agreements.
Get a price or discount from an external source (for example, my price = competitor's price - 5 percent).
Set a percent/fixed/lump sum discount or surcharge.
Apply N-Dimensional Pricing (for example, if the width is between 2 and 4 and thickness is between 1 and 3, then multiply the price by 0.3).
Apply a benefit/surcharge based on the total volume of multiple order lines of the same order.
Set up deals and promotions.
Buy one get one free.
Coupon issue (spend more than $1,000 and get a coupon valued at $100 for a future purchase).
Other item discount (for example, buy A and B, and get 20 percent off on C).
Item upgrade (for example, for the price of a 12-oz. shampoo, get a 16-oz. shampoo).
Term substitution (spend more than $100 and get upgraded to air shipment).
Set discounts as to be accrued.
Set up freight and special charges.
Mark discounts as exclusive or incompatible to each other.
Create cascading discounts (discounts to be applied on subtotals).
Set spending and usage constraints to stop application of a promotion when the limit is reached.
Query on multiple modifier criteria across all modifier setups.
Create your own eligibility conditions by grouping the qualifiers.
Define your own qualifier and qualifier mapping rules (for example, if today = Sunday, then give a 10 percent discount).
View the criteria that the engine uses to select price and modifiers for a pricing request.
Oracle Advanced Pricing and its pricing engine work through open, business object oriented application programming interfaces (APIs). For more information about APIs, see Oracle Order Management Open Interfaces, API, & Electronic Messaging Guide.
The pricing engine receives transaction information, prepares pricing requests, selects price lists and modifier lists, and applies price adjustments (benefits) to the transaction.
The pricing engine, which appears in the diagram shown later in this section, evaluates the following questions to determine a price:
Who qualifies for prices and benefits?
What is the product hierarchy and what pricing attributes pertain to this item or service?
How should I adjust the order price or order line price?
Pricing qualifiers control who is eligible for certain prices (price lists) and benefits (modifiers).
Some examples of qualifiers are:
Customer Class = VIP
Order Type = Special
What is the Product Hierarchy and the Pricing Attributes?
The product hierarchy and pricing attributes control what is being priced or modified on a price list or modifier list.
An example of a product hierarchy with pricing attributes is All plastic items of grade B quality get a 50 percent discount.
Pricing modifiers control how a modifiers affect the final price (selling price).
Some examples of modifiers are:
Receive discount of 2 percent
Buy 1, get 1 free
Get 480-ml shampoo for the same price as 360-ml shampoo
Get a coupon for 100 currency units if you buy more than 1,000 currency units
The advanced, flexible pricing engine performs pricing and benefit calculations for Oracle Order Management products and Oracle Customer Relationship Management products through open APIs.
The pricing engine performs the following functions:
Prepares the price request structure
The calling applications submit price requests, which the pricing engine configures into a pricing request structure. The pricing request structure provides information about all the qualifiers and product pricing attributes.
Selects applicable price lists and modifier lists
This function selects which price lists are eligible for the current pricing request. It uses the qualifiers and pricing attributes to select an eligible list of prices or modifiers that it can apply to the pricing request lines according to the certain rules.
Determines base list price
This function takes the validated price list lines and applies them to the pricing request lines. You can specify the list price on a price list as unit price, percent price, or formula.
Applies benefits and adjustments (from modifier lists) to list price to determine selling price
This function takes the validated modifier list lines and applies them to the pricing request lines to provide price adjustments, such as discounts, price breaks, surcharges, coupons, item and term substitutions, and other item discounts. Discount and surcharge modifiers affect the selling price; freight charge modifiers do not affect the selling price.
Calculates final selling price
A sales order
The qualifier hierarchy
The pricing request
The pricing engine
The list price and adjustments
The setup entities: price lists, qualifiers, modifiers, products, formulas, and pricing attributes
In Oracle Applications, a basic level of security called functional security is used to manage users' access to each application and to control their access to windows, functions, and reports within an application.
Typically, the System Administrator administers functional security and assigns system access at the responsibility or user level. See the Oracle E-Business Suite System Administrator's Guide Documentation Setfor more information about functional security.
Oracle Advanced Pricing provides an additional level of security (in addition to the existing functional security) called pricing security. Pricing security can be used to restrict pricing activities such as updating and viewing pricing entities to users granted specific access privileges. Pricing security is set up and maintained in the HTML user interface (UI) by a user who is assigned the Oracle Pricing Administrator responsibility. See the Oracle Advanced Pricing Implementation Guide, Pricing Security section, for more information on pricing security.
Security privileges enable you to define who can access each pricing entity and the level of access permitted: View Only or Maintain. The Pricing Administrator is typically responsible for setting up security privileges. For more information on security privileges and other security features, see Oracle Advanced Pricing Implementation Guide.
Oracle Advanced Pricing Implementation Guide, Pricing Security
For many pricing features, Oracle Advanced Pricing provides an HTML-based user interface (UI) that features guided steps and user-friendly pages for setting up and maintaining modifiers, price lists, and qualifiers. You can use the HTML UI to complete many of the pricing tasks that were previously available only in the Oracle Forms-based interface.
To access the HTML UI, select the Oracle Pricing User responsibility and click the Home link to display the Oracle Advanced Pricing Home page.
Note: The HTML UI is available only in Oracle Advanced Pricing.
The following examples compare the HTML UI and Forms-based UI used in Oracle Advanced Pricing. The first example shows an Oracle Advanced Pricing HTML page used to create a price list.
Example of Oracle Advanced Pricing HTML Format: Create Price List Page
The second example shows an Oracle Advanced Pricing Forms-based window used to create a price list.
Example of Oracle Advanced Pricing Forms-based Format: Advanced Pricing - Price Lists Window
You can use the HTML UI to complete the following common pricing tasks:
Create price lists, price list lines, and price break lines for price lists.
Create the following modifier list types:
Create the following modifier line types:
Maintain price lists in the Price List Maintenance feature.
Create qualifiers for price lists and modifiers.
Search for price lists and modifiers.
Pricing entities such as price lists, modifiers, or qualifiers created in one format, such as the HTML UI, can be maintained in the other. For example, if you created a price list in the Forms-based UI, you could update and maintain that price list in the HTML UI.
For features unavailable in HTML, you can still use the Forms-based UI to set up and maintain pricing functions and features, as in previous releases. If an entity cannot be created in HTML, for example, qualifier groups, then you must use the Forms-based UI for these tasks.
Qualifiers control who receives benefits, and can be used to assign list prices, discounts, and promotions to:
Specific customer or group of customers
Qualifier groups allow you to group multiple conditions and to assign them to a single benefit. For more information, see Oracle Advanced Pricing User's Guide, Qualifiers.
Pricing attributes control the items being priced or modified on a price list or modifier list.
Qualifier and product attributes are used to define customer or product hierarchies:
A product hierarchy element defines product pricing characteristics, such as a product item, item number, category, or brand.
A customer hierarchy element defines customer pricing characteristics, such as customer name or customer number.
Attribute mapping enables you to extend your pricing capabilities by using data from a wide variety of nonstandard sources to drive your pricing actions. The data sources for the qualifiers and pricing attributes can be from within or outside of Oracle Applications. Using the attribute management feature, you can complete the following tasks:
Create new contexts and attributes.
Update existing contexts and attribute properties.
Disable existing attributes.
For information about creating new contexts and attributes, attribute management, mapping rules, and associated functionality, see the Oracle Advanced Pricing Implementation Guide.
Price lists contain prices and currencies associated with products and services. Each price list contains basic header information with one or more item lines. Price lists can have:
Prices for specific products and services or for product groups
Prices as absolute values, percents of other prices, or as formulas
Prices applicable to the entire organization or to one operating unit
The pricing engine prices service items in the same way that it prices inventory items. You can price service items as follows:
Unit price: Set a list price for the service item.
Percent price: Set a percentage; the price of the service item is that percentage of the serviceable item list price.
For more information, see Oracle Advanced Pricing User's Guide, Price Lists.
Pricing modifiers control how the pricing engine can modify the pricing requests and pricing request lines. You can select from the following modifier list types and then add modifier lines to define the actual adjustments or benefit such as a 10 percent discount:
Freight and Special Charge List
|Scenario||Qualifier||Modifier||Product Hierarchy||Pricing attribute|
|XYZ Corporation gets 10% discount on all the products||Customer = XYZ Corporation||10% discount||Null||Null|
|If Order_Type = Return and customer class = Retail then apply 15% surcharge for all electronic items.||Order Type = Return
Customer Class = Retail
|15% surcharge||Electronic items||Null|
|Grade B motor oil gets $20 off||Null||$20.00 discount||Motor oil||Grade B|
For more information on modifier list and line types and using modifiers, see Oracle Advanced Pricing User's Guide, Overview of Modifiers.
Pricing formulas allow the pricing engine to determine item prices based on the following:
A combination of pricing attributes and factors based on the value of a pricing attribute
The list price on the price list line to which the formula is attached
The list price on any specific price list line
A numeric constant
A customizable function
You can also attach a formula to a modifier line to calculate discounts. A price list line uses two types of formulas:
Static: Specify the formula and execute a concurrent process that calculates absolute price values.
Dynamic: Specify the formula, and the pricing engine uses the formula in its calculations each time that someone orders the product.
For more information, see Oracle Advanced Pricing User's Guide, Formulas.
Decide whether your prices are at an individual product level, at the product hierarchy, or both. Also, determine the precedence levels in your organization. Determine if you base list prices on the volume purchased. Plan the number of price lists. To get a better performance, minimize the number of price lists and price list lines by using a combination of qualifiers, modifiers, pricing attributes, and formulas.
Categorize your discounts and promotions into the appropriate modifier types. Each modifier type produces different results: for example, the Other Item Discount requires the customer to order the original item as a prerequisite to offering the discount; however, the Promotional Goods discount adds a new line to the order.
The pricing engine may calculate different selling prices depending on how you group your discounts into buckets. Plan your cascading discounts so that you can assign discounts to buckets based on the subtotal on which each discount needs to be applied.
The pricing phase assigned to a modifier determines when the adjustment or benefit of the modifier is applied. For example, a modifier assigned to the List Line Adjustment phase is applied after leaving the order line, while a modifier assigned to the All Lines Adjustment phase is applied only after the order line is saved.
Decide to which event and phase each discount and promotion belongs. You should place:
Line-level discounts in the Line Adjustments phase
A promotion such as Buy items A and B and get a discount on Item C in the All Lines phase
Modifiers to apply when orders ship in a ship event
Phases are also associated with order events. To apply a discount only when an order is shipped, assign the modifier to a phase that runs in the SHIP event.
Suppose you create a Discount modifier (10 percent discount) and assigned it to the All Lines Adjustment phase. Then suppose a sales order for Item AS54888 (with list price $200) and an ordered quantity of 1 qualifies for that modifier. If the order line is entered but not saved, only the list price ($200) is retrieved. However, when the order line is saved or you move to the next line, the modifier assigned to the All Lines Adjustment phase is applied and the price changes to $190.
See the Oracle Advanced Pricing Implementation Guide for more information on pricing phases.
Assigning modifier lines to an incompatibility group enables the pricing engine to use incompatibility processing to resolve incompatibility between multiple eligible modifier lines. If an incompatibility occurs, the pricing engine reviews the modifier lines in the incompatibility group (assigned for a specific phase), evaluates their precedence value from highest to lowest priority, and then selects the modifier line with the highest priority. In Precedence processing, the lower value has the higher precedence (number 1 has the highest priority). The precedence value is evaluated from both the product precedence and qualifier precedence. The highest precedence (lowest value) is determined based on the precedence values in the qualifier and product precedence fields. For more information, see Oracle Advanced Pricing Implementation Guide, Incompatibility Groups and Exclusivity.
Categorize the modifiers into line, group line, and order modifiers. How the pricing engine treats a modifier can change, depending on your classification.
It is important that you understand how the pricing engine operates with these flags so that you can set them to reflect your business needs. Analyze all of your discounts, promotions, and charges in terms of these features.
Precedence preferences, profile options, break types, and pricing attributes control the behavior of the pricing engine. Determine the values for these settings that reflect your business needs.
Evaluate default precedence values for qualifiers and product hierarchy-related attributes and change them to reflect your business needs. When incompatibility is encountered between price lists or modifier lists, the pricing engine attempts to resolve the incompatibility by ordering the qualifier attributes and product attributes from highest to lowest priority (number 1 is the highest priority).
For more information, see Oracle Advanced Pricing Implementation Guide, Precedence and Best Price.
Decide the pricing units of measure for each item. The pricing units of measure determine if the pricing engine selects a modifier.
The list price in the order unit of measure overrides the precedence. When the pricing engine processes a pricing request, it first chooses eligible price list lines whose unit of measure matches the calling unit of measure. If multiple price list lines with matching units of measure exist, the pricing engine chooses the price list line with the greatest precedence (the lower the number, the greater the precedence). If no price list lines with matching units of measure exist, the pricing engine looks for price list lines with a selected primary unit of measure flag for that item, and then it chooses the best precedence price list line (attributes are defined with a precedence value to resolve incompatibility).
For more information, see Oracle Advanced Pricing Implementation Guide, Unit of Measure.