CHAPTER 20
Pricing

In Release 11 i, Oracle rewrote its pricing functionality. Release 11 i offers two methods for pricing goods that you sell to your customers: basic pricing functionality, included with the Order Management application, and advanced pricing, which you must license separately.

Basic pricing is essentially the same functionality as was provided prior to Release 11 i—the ability to define multiple price lists and discounts.

Advanced pricing builds on the basic functionality, adding the ability to handle deals, promotions, and other sales incentives. Advanced pricing also serves the pricing needs of other applications, including the Order Capture or quoting systems in the CRM products, Oracle Contracts, and others. It attempts to address business-to-business pricing needs that you might find in the automotive industry or consumer packaged goods, as well as the business-to-consumer needs in Web stores and telecommunications.

Figure 20-1 provides an orientation to the fundamentals of advanced pricing.

Images

FIGURE 20-1. Main pricing concepts

Defining Price Lists

Price lists are the core of the pricing functionality. An order can be placed only if a price list line can be found for the ordered item. To define a price list, navigate to the Price List Setup form in the Pricing menu. The price list is expressed in a currency. The rounding precision of the currency is defaulted as the rounding precision of the price list. The payment term, freight term, and freight carrier defined at the header are possible default sources for defaulting rules.

NOTE
The pricing engine uses the rounding factor to round the final price only if the calling application requests that the price be rounded. The rounding factor will not prevent the user from entering a price that is a greater precision than that given by the rounding factor.

Price List Lines

You identify what is being priced through the product context, product attribute, and attribute value. The price list line can therefore be for an item, item category, or anything defined within the Pricing Attributes Descriptive Flexfield. You may define volume breaks for price lists by making the line type a price break line. The Price Break button then becomes enabled. Price breaks may be quantity-based or value-based.

NOTE
Price breaks may actually be based on any attribute in the volume context of the Pricing Descriptive Flexfield. Value and quantity are two of the most obvious examples of how this is used.

The application method is discretionary only for service items for which you must choose between pricing by unit or percent of the price of the item being serviced. You can choose a formula for your price list line and effective dates. Because many price list lines may be effective to price a line on an order but only one can apply, precedence can be set for the line. The price list line with the lowest precedence will be the one applied.

NOTE
The precedence assigned to the list line by the pricing engine is the lowest precedence on the list line itself or any of its qualifiers.

Pricing attributes can further define the item being priced. For example, Neptune defines premium, standard, and economy support services, but defines an item only for support services. When entering an order in Order Management, the order-entry operator will choose the service item and then be presented with a choice of the service level in a separate window.

NOTE
You can define a Pricing attribute as being either user entered or sourced. If the Pricing attribute is user enterable, when entering an order in Order Management, the order-entry operator will be presented with a descriptive flexfield to enter the value of the Pricing attribute; if sourced, the Sourcing API will populate the Pricing Attribute value.

Administering Price Lists

Oracle Pricing offers a number of tools to help ease price list administration for volatile catalogs, or if you manage a large number of price changes.

Creating New Price Lists from Old

You can create a new price list by copying an old price list. Navigate to the Copy Price Lists form in the Pricing menu. You can copy all or a category of items, and you can bring the discounting structure and effective dates over to the new price list.

Managing Price Increases or Reductions

You can adjust the price of a(n):

Images Item or range of items

Images Item category—for example, Neptune has decided to reduce the price of all Pentium II Desktops.

Images Item status—for example, Neptune may decide to reduce the price of all products with a status Retiring.

Images Creation date—for example, Neptune updates its price lists twice every year, so it has a June 1 and a December 31 price list.

NOTE
You cannot use wildcards in the Beginning or Ending items.

You can adjust the price by a percent or an amount. To adjust prices, navigate to the Adjust Price List form in the Price List menu.

Adding Items to Price Lists

You can bulk-load items onto price lists using the same criteria as adjusting price lists. You can choose to set the price equal to the cost from the standard cost type in a specified organization. If you build your prices on a cost-plus basis, you can create the price list and then uplift the price accordingly.

Setting Up Pricing for Government Services Administration (GSA)

The GSA is the buying arm of the U.S. government. A condition of selling to the GSA is that you can show you have systems that guarantee no one will be offered a lower price than the government. Oracle Pricing uses the Modifiers form with an application type of override price to implement the special pricing that is needed for GSA. The basic logic is that GSA customers are offered the lowest price. This means that non-GSA customer orders should be placed on hold if the price on the order is less than the agreed GSA price. For countries that do not have a need for such pricing, the feature is very useful to set minimum prices. Salespeople can negotiate freely, but orders placed that are below the minimum price will be placed on hold. To set up a GSA price list, navigate to the GSA Pricing Setup form in the Price List menu.

NOTE
The application type of New Price is used so that whenever a GSA customer receives a GSA price, a discount will be created for the amount of the reduction. This allows the cost of giving a lower GSA price to be captured.

Secondary Price Lists

If the item you are ordering cannot be found on the primary price list on the order, the pricing engine will search through the secondary price lists in order of precedence to see if a price can be found. Advanced pricing supports multiple secondary price lists; basic pricing supports only a single secondary price list.

Price Qualifiers—Setting Up Rules of Eligibility

Price lists, discounts, and surcharges can be qualified to determine the orders to which they apply. It is the “Who you are?” piece of the pricing equation. For example, Neptune qualifies a price list to use for distributors. You can also qualify a price list to be used only with other order characteristics, such as a particular order type. For example, Neptune applies a surcharge to the order type Rush Order.

Qualifier Groups

You may choose a qualifier group to restrict the use of a price list. You can set up new qualifiers in Qualifier Groups in Oracle Pricing. An example of a qualifier group might be retail distributors. Under one qualifier group, you can set up attributes that must all evaluate to true for the list or modifier to apply. These groups are identified by a grouping number. By putting attributes under different grouping numbers, you are saying that all the attributes within at least one group must evaluate to true.

NOTE
Grouping Number may also be NULL, which means this qualifier becomes a condition that applies to all other qualifier groups.

Figure 20-2 shows how the qualifier attributes are evaluated within grouping numbers to qualify an order for the retail distributor price list.

Images

FIGURE 20-2. Qualifying an order for the retail distributor price list

Modifiers

Modifiers cover discounts, surcharges, freight charges, and deals and promotions. The Modifiers form is capable of creating them all. While discounts enable you to adjust prices, deals and promotions allow you the full range of sales incentives: coupons, upgrades, discounts on other items, and improvements in payment or freight terms. The different sales incentives are implemented as different line types within the form. Modifier lists are under version control and have date effectively in the header. You state who is eligible for the modifier list or modifier list line by clicking the List Qualifiers or Line Qualifiers button. You can choose from existing qualifier groups, or you can create qualifiers directly.

NOTE
Copying a qualifier group will actually copy rather than reference the qualifier group, hence, any changes made to the original qualifier group will not be reflected in the qualifier group where it has been copied to a List or List Line.

To create a modifier, navigate to the Modifiers form in the Pricing menu. Figure 20-3 shows a sample discount in the Modifiers form. It shows Version 1 of a discount list called “Compact Disk Discount.” It shows a line-level lump-sum discount of $2. Only customers with a customer status of “Silver” will qualify for this discount.

Images

FIGURE 20-3. A sample modifier screen

If you choose a list type of Deal in the list header, you can refer to a parent promotion in the Advanced tab.

Modifier Summary Information

Some basic information applies to all line types. This includes modifier number, level (order, line, or group of line), and modifier type. The modifier number is mandatory for coupons and any modifier that has the Ask For flag set to Yes in the list header. You can choose whether this type of discount should be revealed on invoices and whether to apply discounts automatically. This will depend on how your order desk is operating. If discounts are being applied at the discretion of the order-entry personnel, the Apply Automatically flag should not be set. If the discount will be applied automatically, but the order-entry personnel have discretion to override the discount, the Allow Override flag should be checked.

Combining Discounts

When a number of discounts are eligible, you need to decide whether and how they will affect the overall price. You could choose to allow only one of the eligible discounts to be applied, or you could combine discounts. When discounts are combined, you might wish to apply all the discounts to the list price (called additive discounts) or apply discounts to the previously discounted value (cascading discounts).

Exclusive Discounts

If you choose to allow only one of the eligible discounts to be applied, you need to set up incompatibility groups. For example, in a retail environment, it is common to print on a coupon that the coupon cannot be combined with any other discount. Oracle Pricing enforces this through incompatibility groups. Modifiers can be defined as being incompatible within a given phase.

Pricing Phases

Oracle Pricing evaluates the lists and modifiers to be applied to the order at different phases. The incompatibility groups are defined within a pricing phase. Phases are needed because an order line might qualify for a discount based on many order lines. For example, a line might qualify for a volume discount based on the volume on all order lines of a product category. The order line will be priced when entered and then might be repriced in the All Lines phase. Incompatibility resolve codes are defined for the pricing phase. To set up a pricing phase, navigate to the Event Phases form in the Setup menu.

Incompatibility Groups

Oracle Pricing can resolve the modifier to apply within an incompatibility group through its precedence or whether it returns the best price. The precedence of a given modifier is assigned on the line. It is defaulted from the Segment Number in the Pricing Descriptive Flexfield definition, explained in the technical overview. Incompatibility groups are set up in pricing lookups. Incompatibility groups can be assigned to modifier lines in the Modifier form and in the Modifier Incompatibility Setup form in the Modifiers menu. An overview of the how the exclusive discount is selected is laid out in Figure 20-4. Two modifiers would both be eligible, but they are within the same incompatibility group. The modifier with the lowest precedence is selected and applied to the order line.

Images

FIGURE 20-4. Selecting exclusive discounts in an incompatibility group

Cascading and Additive Combinations

You can make combinations of discounts cascade or be additive. Additive discounts apply all the discounts to the list price. Cascading discounts apply a discount to an already discounted value. Oracle Pricing will treat as additive all discounts that are within the same pricing bucket. A pricing bucket is a grouping mechanism for discount lines. Buckets are applied in Order. Bucket 1 is applied to the list price. Bucket 2 is applied to results of bucket 1 being applied. Putting all the discounts in the same bucket makes them additive. Putting discounts in different buckets makes them cascading. For example, if a set of writeable CDs has a list price of $10, and Neptune modifies the price by $1.50 for distributors and further discounts it by 10 percent from the list price for the San Francisco Bay Area, Bay Area distributors will be charged $7.50. Grill’s is a discount warehouse that Neptune decides to grant an extra 10 percent from the discounted price. The calculation would look as follows.

List Price = $10.00

Bucket 1 percent discount = 10%

Bucket 1 amount discount = $1.50

Subtotal -------------------- = $7.50

Bucket 2 percent discount = 10%

Subtotal -------------------- = $6.75

NOTE
You can also place a modifier in an unnumbered bucket, known as a null bucket. Modifiers in this bucket are calculated off the list price and then applied to the last bucket’s subtotal. Manual and Order Level modifiers are always in the null bucket.

Defining the Subject of the Modifier

The subject of the modifier can be refined through pricing attributes, price breaks, and exclusions. A brief explanation of each method for defining what is modified is outlined next.

Defining Pricing Attributes

You can define the Product or Product category that the modifier applies to in the Modifier Summary. You can define the subject of the modifier line to be more specific than the item using pricing attributes. To define pricing attributes, click the Pricing Attributes button. For example, Neptune provides service coverage for its enterprise servers, but it will charge the customer based on the age of the machine and the distance from the service center. Rather than record combinations of service, machine age, and distance as items, Neptune has decided to define service as the item and machine age and distance as pricing attributes.

Defining Price Breaks

You can create a single line discount with a volume or value qualifier. For example, spend more than $10 on item A, get a 10 percent discount. You can also create a price break by defining a Price Break header and Price Break lines in the modifier details, where you have multiple ranges. For example, spend more than $10 on item A, get a 10 percent discount; spend more than $50, get a 25 percent discount. All attributes, phases, buckets, etc., of the Price Break header apply to all Price Break lines.

A price break can be a point- or range-type break. With a point break, the entire volume is priced at the highest price break. With a range break, the volume within the range attracts the price within that range. The volume in the next price break range attracts the price in its range. A volume qualifier on a single line discount can be of type point or recurring. For example, if every fourth item is at 20 percent discount, the discount applies only to the fourth, eighth, and twelfth items.

Defining Exclusions

You can exclude pricing request lines from qualifying for the prices and discounts from a modifier by stating the excluded items, categories, and pricing attributes in the Exclusions window. You define exclusions by selecting the modifier and clicking the Exclusions button.

Discount and Charges

A discount creates a negative price adjustment. A surcharge creates a positive price adjustment. To create a discount line you must have a discount, freight charge, surcharge, deal, or promotion modifier list. If you have chosen a discount, only the Modifier Summary and Discount Surcharge tabs apply.

Charges

If this is a charge, you need to record the charge name. You can include or exclude charges from returns. If your list is of types surcharge or freight and special charges, the charge name will be required.

Discounts

You can state how the discount should be applied:

Images Percentage

Images Amount per unit

Images New price for the line

Images Lump sum (amount for the Line)

Pricing Formulas

Oracle Pricing allows you to price using a pricing formula. You can state the formula you are using for this discount. How to set up pricing formulas is covered later in this chapter.

Accrued Discounts

You can state that the discount is to be rebated rather than given as a deduction on the invoice. The system supports both monetary and nonmonetary accruals, such as shopper points or air miles.

NOTE
Non-monetary accruals are defined as units of measure in the UOM Class defined by the Profile Option: QP Accrual UOM Class. For example, a flight may have a unit of measure of Seat and accrue a number of air miles.

You need to record the quantity of the nonmonetary unit and its conversion into a monetary value. At press time, there was no automated functions for creating credit memos or payables vouchers to discharge such accrued liabilities. You can mark accruals as having been redeemed in the Accrual Redemption form in the Modifiers menu.

Differences Between Pricing with and without Advanced Pricing

There are many features that are only available if Advanced Pricing has been licensed. A few of them are as follows. If only Order Management has been licensed, the List Type Code LOV shows only Discount, Surcharge, or Freight List types when defining lists.

Advanced Pricing adds capability to utilize price breaks on price lists. The following break types are supported:

Images Point break

Images Range break

Advanced Pricing includes the Basic Pricing types and adds

Images Coupon Issue

Images Item Upgrade

Images Other Item Discount

Images Terms Substitution

Images Promotional Goods

Defining Other Types of Discounts and Sales Incentives

The other types of discounts can be created through the line types shown in Table 20-1. The list type determines the line types that you can create within it.

Images

TABLE 20-1. Modifier Line Types by List Type

Promotional Upgrades

In this tab, you indicate that the system should replace a specific item ordered with another item for the same price. The items that are available for upgrade are related through the Related Items form in inventory.

Terms Substitution

In this tab, you define the freight charges, shipping charges, and payment terms to be replaced with typically more favorable terms. For example, you might want to give preferential payment terms of 90 days on a promotional order that would normally attract a 45-day term via defaulting rules.

Other Item Discount

This 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. For example, the customer might order a desktop PC from Neptune and be eligible for 50 percent off Internet service for 12 months.

NOTE
The Benefit or Get Items on an Other Item Discount are optional. For example, if you set up Buy A and Get 10% on B, 25% on C, if either B or C are on the order, the discount will be given.

Promotional Goods

In this tab, you define an item to be added to the order free of charge when the modifier line item is ordered. For example, Neptune is offering a free printer with the order of a new desktop PC.

Coupon Issue

Issues a coupon on one order for the customer to redeem for a price adjustment or benefit on a later order. The price on the originating order is not changed, but a new modifier is created for the coupon. It is the coupon modifier that will attract the discount when it is redeemed at a later date.

Formula-based Pricing

With Oracle Pricing, you can price based on a formula rather than a price list entry. For example, Neptune charges for extended warranty as a percentage of the list price for some customers and as a percentage of the order value for others. You can use formulas to create the price or to calculate a price adjustment. To create a formula, navigate to the Formulas Setup form in the Pricing menu. You can express a calculation based on a number of components. These components are used at steps within the calculation. Components can be

Images Numeric Constant For example, 20 percent of order value.

Images Function Oracle provides a PL/SQL hook to external pricing functions through a function, GET_CUSTOM_PRICE. For example, Neptune takes orders for extended warranty on printers. The price for printers is calculated through an external package and passed to Oracle Pricing through this function. GET_CUSTOM_PRICE must return a number to the calling application.

Images List Price For example, 20 percent of the list price on the order line. This might be used for a formula where the list price will be decreased if the customer is in education.

NOTE
Attach a formula that has a List Price component only to price list lines, not to modifier lines.

Images Price List Line For example, 20 percent of the North American standard list price, irrespective of the price list used on the order.

Images Pricing Attribute Value For example, Neptune offers service coverage on older equipment. It captures the age of the equipment as a pricing attribute.

Images Factor Neptune will increase the service charge by 30 percent if the equipment being covered is between two and four years old, and 50 percent if the equipment is between four and six years old.

Prior to advanced pricing, the support for formula-based pricing required you to create price list lines for all possible outcomes. For example, if a manufacturer of aluminum sheeting will charge for area of an ordered sheet in multiples of meters to a maximum of 200 square meters, it might choose to create the price list of Length and Width entries ahead of time. The pricing attributes of Length and Width would be created for every possible rectangle of aluminum sheeting that it sells. This has some performance benefits, and the capability still exists, but you define the price list line formula as a static formula and run the Update Formula Pricing concurrent request.

Agreements

There are two types of agreements: Standard and Pricing, determined by the Price List Type that you attach to the agreement. With Standard agreements, a price list can be attached to many agreements, and you can edit the price list through the Price List form. Pricing agreements Price Lists can only be edited through the Pricing agreements.

Pricing agreements are a way to store a more formal pricing arrangement with a customer. Although you can make price lists and discounts specific to a customer, the agreement makes it much easier to set up. Agreements are under revision control and have effectivity dates and signature dates. The salesperson and customer contact that were the signatories are also recorded. You can define the items on the agreement in terms of either your item number or your customer’s item numbers. The lines themselves are under revision control. If you define a line as a price break, you can set up volume breaks, making this an ideal way to set up volume purchase agreements. Pricing can be taken from an existing agreement price list, or you can define it in the Pricing tab. The Payment tab enables you to set up a billing address and contact for this agreement.

Overview of the Pricing Flow

The Calling application prepares a pricing request. The pricing request includes what is being sold and how the purchaser qualifies for the price. The calling system will create the product hierarchy and pass this to the pricing engine in the pricing request. An example of a product hierarchy used for pricing is shown in Figure 20-5.

Images

FIGURE 20-5. Product pricing hierarchy for a cake-mix company

For example, a manufacturer of cake mixes might sell a stock-keeping unit (SKU) but price at the product group/brand/variant (cake mix, greens, lemon sponge, 2 dollars) level and discount at the product group/brand (greens, cake mix, 10 percent off) level.

Different customers might qualify for a discount. The qualification of a customer for a discount is through their position in a customer-pricing hierarchy. An example of a customer-pricing hierarchy is shown in Figure 20-6.

Images

FIGURE 20-6. Customer pricing hierarchy for a cake-mix company

Customers within a given class (retail multiples) might qualify for a given price list or special discounts. The calling application will construct the qualifier hierarchy and pass this to the pricing engine in the pricing request. Figure 20-7 shows the flow through the pricing application.

Images

FIGURE 20-7. Oracle advanced pricing process flow

Extending Oracle Pricing

Oracle Pricing provides seeded qualifiers and pricing attributes in associated contexts with defaulting rules. The following paragraphs explain how to extend the application for the inclusion of new qualifiers and pricing attributes. Pricing uses descriptive flexfields to define the qualifier and pricing contexts. Descriptive flexfields define attributes within a given context. Attributes are assigned a segment number. Pricing uses this segment number to resolve incompatible discounts. It is the segment number that is defaulted to the Precedence field in the Modifier form.

NOTE
To resolve incompatibility between discounts, you must assign segment values in pricing contexts that are unique across all contexts.

Setting Up Qualifiers

As explained earlier, qualifiers define eligibility for a given list or discount. Oracle provides seeded contexts that include customer, order, coupons, and other modifiers and volume.

Setting Up Qualifier Contexts

To set up a new context, navigate to the Define Descriptive Flexfield form. Query the Qualifier Contexts descriptive flexfield in the Pricing application. In the Contexts block, create a new row and give the context a new short name. You can optionally give the context a long name and description.

Setting Up Qualifier Attributes

In the Descriptive Flexfield form, query the Qualifier Contexts descriptive flexfield in the Pricing application. Choose the context that you want to add the attribute to. Click the Segments button. In the Segments column, give the new attribute a segment number that is unique across all qualifier contexts.

NOTE
Segment numbers 1–30 are reserved for applications development.

Create a name and prompt for the attribute. Select the column that you want to store the attribute in and the value set that defines the valid values for the attribute.

Setting Up New Pricing Attributes

As explained earlier, Pricing attributes define what is being sold. Oracle provides seeded pricing attribute contexts that include Item, Line Amount, and Pricing attributes. A pricing context is a way to model a product marketing hierarchy. Each attribute in the context represents a level in the hierarchy.

NOTE
When the pricing engine qualifies a list line for a given order line, it checks qualifiers and the product Pricing attributes. When it searches for the most specific price to apply, it looks for the lowest precedence. The precedence is defaulted from the segment number, so you need to ensure the segment number is unique across the product context and all qualifier contexts.

Setting Up Pricing Contexts

To set up a new context, navigate to the Define Descriptive Flexfield form. Query the Pricing Attributes descriptive flexfield in the Pricing application. In the Contexts block, create a new row and give the context a new short name. You can optionally give the context a long name and description.

Setting Up Pricing Attributes

In the Descriptive Flexfield form, query the Pricing Attributes descriptive flexfield in the Pricing application. Choose the context that you want to add the attribute to. Click the Segments button. In the Segments column, give the new attribute a segment number that is unique across all pricing contexts.

Create a name and prompt for the attribute. Select the column that you want to store the attribute in and the value set that defines the valid values for the attribute.

Defaulting Rules in Pricing

Pricing uses the same defaulting engine as Order Management to determine a value for a missing attribute on a pricing request. It does this for both Pricing attributes and Qualifier attributes. For a full explanation of how defaulting rules work, refer to Chapter 12.

Brief Technical Overview

The following paragraphs outline the technical specifications of the pricing system. Pricing is based on Oracles PL/SQL API standards. These implement PL/SQL procedures that you can call to interface your own systems into Oracle Pricing. Table 20-2 lists some of the packages and their purposes.

Images

TABLE 20-2. Public Pricing APIs

Specification of the Calculate Price API

The following listing shows the PL/SQL tables that are passed in and out of the Calculate Price API.

Images

Main Tables

The functionality for price lists and modifier lists is very similar, and they are implemented in the same tables, QP_LIST_HEADERS and QP_LIST_LINES. QP_LIST_HEADERS and QP_LIST_LINES are qualified through QP_QUALIFIERS. Details of products and other Pricing attributes are held in QP_PRICING_ATTRIBUTES.

Summary

This chapter explained the main pricing concepts of price lists, modifier lists, and pricing agreements. It showed how the basic pricing capability that comes with Order Management has been extended to include a range of pricing and discounting tools that serve business-to-business and business-to-consumer needs. These tools now include coupons, accrued discounts, upgrades, improved payment terms, and discounts on other items. You reviewed how these tools are built on a few key concepts of price lists, modifier lists, qualifiers, and pricing attributes. Pricing attributes define what you are buying, and price lists define how much you pay, which can be modified up or down with a modifier that you may be eligible for through a qualifier.

This chapter also reviewed how the pricing is administered by the commercial functions of the organization and the special functionality that exists for companies selling under GSAs. The chapter explained how the pricing functionality can be extended. It showed how to price and qualify discounts using other attributes in descriptive flexfields. Finally, it showed how the pricing engine is implemented in PL/SQL APIs that can be used by other applications.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset