This chapter covers the following topics:
Oracle Advanced Pricing is a rules-based application with an engine component to service the pricing requirements of Oracle applications to price customer transactions. Oracle Advanced Pricing enables you to set up pricing actions such as price lists, agreements, formulas, and modifiers that the pricing engine applies to transactions.
Oracle Advanced Pricing also enables you to define a set of pricing rules (and pricing controls that can be used in conjunction with the rules) to precisely govern how and when pricing actions are applied to transactions.
The pricing engine is a software component of Oracle Advanced Pricing that is called by an application such as Oracle Order Management or iStore to apply pricing actions to transactions. Applications make calls to the pricing engine when transactions need pricing services or need to be priced.
A calling application must provide the pricing engine with information about the product to be priced and the customer. This information is contained in an internal format called a pricing request structure. The pricing engine extracts from its tables the applicable pricing rules, pricing actions, and control information that have been set up. The engine then selects the proper actions and computes their effect. This information is returned by the engine to the calling application.
Oracle Advanced Pricing provides these capabilities to the pricing engine using open API calls. These APIs, along with others, are documented in the Oracle Order Management Open Interfaces, API, & Electronic Messaging Guide.
The term basic pricing refers to a component of Oracle Order Management that provides pricing functionality when Oracle Advanced Pricing is not installed. Oracle Advanced Pricing and basic pricing have common software components; however, Oracle Advanced Pricing extends and expands the capabilities of basic pricing.
The pricing system software components examine the installation type (either full or shared) to determine the appropriate mode in which to run. Users of basic pricing are installed as “shared” and are not licensed to use Oracle Advanced Pricing capabilities. When in basic mode, the pricing system software components restrict exposure of advanced features in the setup windows. Because the information necessary to drive Oracle Advanced Pricing functionality cannot be set up in a pricing implementation running in basic mode, use of Oracle Advanced Pricing features is also inhibited.
Users who have licensed Oracle Advanced Pricing are installed as “Full.” The pricing setup windows enable setup for all information needed to drive features provided by Oracle Advanced Pricing.
The following table describes the primary differences between Oracle Advanced Pricing and the basic pricing capabilities included in Oracle Order Management:
An application that calls the Oracle Advanced Pricing engine to obtain pricing calls. For example, both Oracle Order Management and iStore call the Oracle Advanced Pricing engine to apply pricing to customer transactions.
Oracle Advanced Pricing provides seeded qualifier attributes with context of Customer (also called Customer Attributes) You can use the preceding attributes by referencing them as qualifiers for either modifier or price list objects. For additional information, see Key Implementation Decision: Are the seeded context values on Oracle customer tables sufficient to contain customer attributes?.
Pricing Engine
The pricing engine is a program module of Oracle Advanced Pricing. A calling application (such as Oracle Order Management) calls the pricing engine when transactions that need a price are processed.
Pricing Request
A pricing request is the specific information provided to the Pricing engine when the engine is called by the calling application. In general, this includes who the customer is, what the product is, what attributes may be associated with the customer or product that may be used by the pricing engine, the pricing date, and other pricing data attributes that may be required by the pricing engine.
Product Hierarchy
The Oracle Advanced Pricing product hierarchy is pre-seeded with Item context (based on the Oracle Applications Item Master, MTL_SYSTEM_ITEMS table). This context delivers a two level product hierarchy consisting of:
Item number
Item category
Oracle Advanced Pricing provides two additional capabilities that extend this hierarchy:
You can define a product hierarchy level more specific than Item by using pricing attributes on a price list. This provides a product hierarchy level below item.
Oracle Advanced Pricing also recognizes a super category of items called item ALL. Item ALL consists of all the items in a price list.
You can use item, item and pricing attribute, or item categories as defaults to control the operation of price lists and modifiers.
Additional levels of product hierarchy capabilities can be defined in Oracle Advanced Pricing. For example, you may want to define flexfields on the customer tables to house additional customer groupings.
The above hierarchy is built using the Oracle Inventory Item Master. When Oracle Advanced Pricing is installed without Oracle Order Management or the standard item master tables being present, the seeded item attributes listed above will not be available. In that case, you must define an alternative table structure location where the product hierarchy exists (contexts) and attributes it contains. It is not necessary for the table structure supporting your alternative product hierarchy structure to exist within Oracle Applications.
Mapping an alternative product hierarchy can be accomplished using attribute mapping. For more information on attribute mapping, see Overview of Attribute Management.
The following list summarizes the Oracle Advanced Pricing features that are supported by Oracle Applications:
Qualifiers
Qualifiers determine who is eligible for a price or benefit. Qualifiers and qualifier groups can be linked to price lists and modifiers to define rules for who can receive a particular price, discount, promotion, or benefit. They can assign discounts and promotions to:
Specific customers
Customer groups
Order types
An order amount
Some example qualifiers are:
Customer class = VIP
Order type = Special
You can construct complex qualifier sets consisting of multiple qualifiers that are evaluated together in Boolean AND and OR relationships.
Qualifier Groups
Qualifier groups enable you to define multiple qualifiers relationships in preparation for association with either price lists or modifiers. You can save these qualifier groups and copy them to one or more price lists and modifiers.
Price lists relate a list price to a product. (The list price is the starting price before any related discounts and adjustments are applied.) Price lists can contain one or more price list lines, price breaks, pricing attributes, qualifiers, and secondary price lists. The price list information includes the price list name, effective dates, currency, pricing controls, rounding factor, and shipping defaults such as freight terms and freight carrier. See the Oracle Advanced Pricing User's Guide, Price Lists chapter for information about setting up and using price lists.
You can use the pricing engine to select price lists based on a qualifier rule. However, as an alternative to using price list qualifiers, you may provide a default price list on an order based on any one of the following:
The sold-to customer
The ship-to customer
The bill-to customer
Order type
Agreement
Defaulting provides equivalent functionality to the price list defaulting found in Oracle Order Entry/Shipping Release 10.7 and 11.0. You can provide by default some of the same elements you can reference in qualifier rules. Defaulting is available only for price lists. You can use only one default with a price list, and you cannot combine defaults using AND/OR relationships.
Note: You can define multiple price lists. Alternatively, you may enter a specific price list on the order header or at the order line level. For each price list, you can also designate secondary price lists that the engine searches when it cannot find an item on the primary list. Multiple secondary price lists may be searched for each primary list. You may define several price lists as secondary to a primary price list. You can not define multiple levels of secondary price lists.
Price lists may be specified in different currencies. During order entry, if you enter a currency on the order, the pricing engine selects price lists with currency that matches the currency you entered on the order.
Multiple Currency Price Lists
Multiple currency price lists enables businesses that have pricing strategies based on a single price for an item in a base currency to use exchange rates or formulas to convert that price into the ordering currency. At engine run time, the pricing engine will take the currency from the order and search for a price list or price lists with base or conversion currencies matching this currency. The pricing engine converts the price from the base currency and calculates the ordering currency based upon the established conversion rules.
Price List Maintenance
Oracle Advanced Pricing provides a Price List Maintenance feature that enables you to do searches for price lists and price list information, make bulk changes or update individual price list lines across multiple price lists.
The Price List Maintenance is available through the HTML user interface. See the Oracle Advanced Pricing User's Guide, Using the Price List Maintenance feature for more information.
Pricing attributes are data elements used in addition to item identifiers. These attributes control what is being priced on a price list or a modifier. Oracle Advanced Pricing is delivered with seeded pricing attributes. The seeded attributes for Oracle Advanced Pricing are the same as those for basic pricing. For more information, see seeded attributes.
In some situations, an item identifier does not identify the product to a level where a price can be assigned. Pricing attributes enable you to define separate conditions for a product such that the product must be priced under different conditions. A pricing attribute can be any condition you use to further qualify an item.
The following examples show how pricing attributes are used to specify conditions of a product or service that affects the price. While these examples are appropriate to price lists, the same concept is true for modifiers. Pricing attributes can also be used with formulas.
Product ID = HMO Plan 15; Pricing Attribute = State = Connecticut; List Price = $200.00 per month.
Product = HMO Plan 15; Pricing Attribute = State = New York; List Price = $250.00 per month.
Product ID = Motor Oil; Pricing Attribute = Grade = Regular; List Price = $3.50 per Quart
Product ID = Motor Oil; Pricing Attribute = Grade = Premium; List Price = $4.25 per quart
Product ID = Usage Charge; Pricing Attribute = Time of Day = Evening (7:00pm to 11:00pm); list price =.08 per minute
Product ID = Usage Charge; Pricing Attribute = Time of Day = Late night (6:00am to 5:30am) list price =.05 per minute
Pricing attributes can be used in combination with each other and are passed to the pricing engine at run-time. The following image shows an example of how to define two attributes, Time of Day and Market Area. Both of these attributes must be obtained by the calling application and then passed to the pricing engine at run time. The pricing engine uses the attributes to match to the combination of product ID and conditions defined by the pricing attributes.
Pricing Attributes Definition
Attribute Mapping
Attribute mapping is the process used to pass in data (from other applications or systems) that is not seeded in the delivered product into Oracle Advanced Pricing for use in price lists, modifiers, agreements, qualifiers, and formulas.
You can maintain price lists using any one of the following functions:
Copy price list
Adjust price list
Add items to price list
These features are available from the Oracle Pricing Manager responsibility which then submits concurrent manager jobs for each step.
The Price List Maintenance feature (available from the HTML user interface) enables you to make changes to price lists and price list lines for a single price list or across many price lists. For more information, see Oracle Advanced Pricing User's Guide, Using the Price List Maintenance feature.
Agreements
Agreements enable you to define prices, payment terms, and freight terms that you negotiated with specific customers. You can:
Define your agreements using customer part numbers and inventory item numbers.
Revise the original terms and maintain these changes and their reasons under separate revision numbers.
Attach an already existing price list to the agreement or define new prices.
Assign optional price breaks by quantity.
Set effectivity dates for agreement terms.
Set payment terms including invoice rule and accounting rule.
Set freight terms including the freight carrier.
Apply agreement terms to sales orders by reference agreements.
GSA Pricing
GSA Pricing enables you to define a GSA price list for your GSA customers. The GSA Price List actually uses the modifiers window and uses the new price. You create a discount that adjusts the base price of the item to the GSA price.
Formulas
Formulas, which can be used in both price lists and modifiers, enable a list price to be adjusted according to an algebraic relationship with other variables. Oracle Advanced Pricing enables pricing attributes to be passed as variables to the formula processing at run time. Formulas enable you to define a mathematical expression that the pricing engine uses to determine the list prices of items. A full complement of mathematical operators and numeric operands can be used. An example of a formula is:
List price of service call = (price from price list * distance) + adjustment factor
Distance is a numeric value passed to the pricing engine as a pricing attribute at run time. Adjustment factor is the result of a value in a factor table, based on class of service, which is a pricing attribute variable passed to the engine at run time.
For price lists: When processing formulas, the pricing engine begins by locating a price list line that is linked to a formula. It then applies the mathematical expression to generate a final list price. In Oracle Advanced Pricing, formulas may be static; that is, the variables in the formula must be pre-populated with data by running a concurrent manager job before the formula can be used. Oracle Advanced Pricing provides a dynamic mode of formula operation. In dynamic formulas, the required data to be substituted into formula variables is collected by the pricing engine at run time.
Modifiers
Modifiers are pricing actions that, when applied to a transaction, adjust the selling price up or down. The specific action that a modifier takes is defined by its type. In Oracle Advanced Pricing, a modifier has two levels of functionality that define its action: a list type and a line type. A modifier list type enables you to define behavior characteristics that are common to all lines, which enables you to define a modifier with several different lines, each line representing a specific pricing action.
You can create the following modifier list types in Oracle Advanced Pricing:
Deal
Discount
Freight/Special Charges
Promotion
Surcharge
For each list type that you define, you can associate certain line types. The available line types are:
Coupon issue: Issues a coupon on one order for the customer to redeem for a price adjustment or benefit on a later order.
Discount: Creates a negative price adjustment.
Freight charge: Creates a freight charge.
Item upgrade: Replaces a specific item ordered with another item for the same price.
Other item discount: Gives a price adjustment or benefit to a specified item on an order when the customer orders one or more other items on the same order.
Price Break: Applies a variable discount or surcharge price adjustment to a pricing request based meeting the condition of a break type. You can use both point and range type breaks.
Promotional goods: Adds a new item with a price adjustment or benefit when the customer orders one or more other items on the same order.
Surcharge: Creates a positive price adjustment.
Terms Substitution: Replaces freight charges, shipping charges, and payment terms with more favorable charges.
Not all line types can be used with all list types. See the Oracle Advanced Pricing User's Guide for a listing of valid modifier list and line type combinations.
You can define a modifier that the pricing engine automatically applies, or you can manually enter a modifier. With proper setup, modifiers can be defined as manual or overrideable.
Modifiers can be used to compute price breaks. You can define breaks at the line level to be computed as percent, amount, or fixed price. Both point and range breaks are supported.
Freight and Special Charges
The freight and special charges capability of Oracle Order Management enables you to capture, store, update, and view costs associated with a shipment, order, container, or delivery. You can either itemize or summarize such charges on your orders. This capability includes functionality to pass customer charge information to Oracle Receivables for invoicing.
Freight and special charges enables you to:
Apply charges as part of the order.
Limit the application of charges to orders that meet certain criteria.
Apply charges until the point of ship confirmation/invoicing.
Review charges at anytime.
Create many charge types (duty, handling, freight).
Support charges at the order or line level.
When using freight and special charges, you set up freight and special charges as pricing modifiers. The pricing engine applies the qualified freight and special charges to order lines. You can view the application of freight and special charges to orders. Oracle Order Management captures costs at shipping and converts them to charges. Freight and special charges appear on invoices.
With Oracle Advanced Pricing, the full functionality of qualifier rules can be used to determine which orders should have freight and logistics charges applied to them, and to exclude certain orders from having charges. Additionally, formulas can be used to mark freight charges up or down before they are placed on the order.
Pricing Security
Oracle Advanced Pricing provides an additional level of security called "pricing security" to enhance the existing functional security. Pricing security enables you to restrict pricing activities such as updating and viewing pricing entities to users granted specific access privileges.
Get_Custom_Price API
Oracle Advanced Pricing provides an API that enables the pricing engine to execute user-supplied code to obtain a price, which as an alternative to storing the price in a price list or in a formula. This enables you to obtain a starting or beginning list price from sources that are outside Oracle Advanced Pricing's tables and yet accessible to code that you write.
The Get_Custom_Price is called by the pricing engine while evaluating a formula that contains a formula line (step) of type Function.
The technical information necessary to use this API is documented in Oracle Order Management Open Interfaces, API, & Electronic Messaging Guide.
The process flow for implementing Oracle Advanced Pricing assumes that Oracle Applications, including Oracle Order Management, have been successfully installed, that Oracle Advanced Pricing has been installed as Shared, and that all necessary patches have been applied.
The following table lists the recommended steps to implement a fresh install of Oracle Advanced Pricing (no previous implementation of Oracle Order Entry/Shipping exists).
# | Process Step | Step Description |
---|---|---|
1 | Analyze and understand business pricing scenarios. | A thorough understanding of pricing business requirements should be established before beginning an implementation of Oracle Advanced Pricing. For more information, see Chapter 3, "Implementation Methodology". |
2 | Determine data sources and columns needed for product and customer hierarchy definition. | Oracle Advanced Pricing ships with seeded values. You may need to define additional levels or alternative data sources. For more information, see Chapter 3, "Implementation Methodology". |
3 | Develop logical pricing model solutions. | Plan how you will use Oracle Advanced Pricing for each pricing scenario. For more information, see Chapter 3, "Implementation Methodology". |
4 | Set up and test prototype pricing solutions. | Before implementing a production system, you should set up Oracle Advanced Pricing prototype solutions for all the pricing scenarios you have identified, and enter test orders against them to determine that they are handled correctly. (The Vision Sample database shipped with the software can be used to do this). |
5 | Make defaulting decisions. | These decisions must be made before product setup. For more information, see Chapter 3, "Implementation Methodology". |
6 | Perform Oracle Advanced Pricing product setup tasks. | This step involves taking results of steps 1 through 4 and creating entries in the pricing system tables that enables Oracle Advanced Pricing to act on your plans. |
7 | Create backup of system as setup. | This step involves creating a backup of the system as set up. |
8 | Conduct pre-production system functionality and load tests. | Before initial production, you should conduct a system test. This test should exercise all product setups by including examples of all pricing scenarios defined during pre-implementation planning. Verify that testing includes a sufficient volume to stress the system to levels equal to those that are experienced during production operations. |