Implementing PeopleSoft Enterprise Pricer

This chapter discusses how to:

Click to jump to parent topicEstablishing Price By Key and Price List Fields

The section provides an overview of PeopleSoft Enterprise Pricer setup, lists common elements, and discusses how to:

Click to jump to top of pageClick to jump to parent topicUnderstanding PeopleSoft Enterprise Pricer Setup

When setting up PeopleSoft Enterprise Pricer, you must establish price by key fields and price list fields for each transaction that is priced. The person who administers PeopleSoft Enterprise Pricer should set these up when you implement the application. These pages are accessed again; however, it's important that you understand how these pages are used to create a pricing structure.

Price lists are groups of date-controlled product prices that are defined by currency code and linked to related business objects or price rules. These product prices are intended to replace the product list price when they are associated with a transaction by way of the related business objects or price rules.

Price list-related business objects are objects to which you can associate a price list. The business objects are a subset of price by fields that are already defined for the transaction. A price list can have more than one related business object, such as customer, customer group, product ID, and business unit. The system uses the appropriate pricing transaction to determine the available price list related business objects.

The system attempts to match a particular transaction to one or more price lists based on the transaction values and the price list related business objects. For example, if you are taking an order for customer ABC and customer ABC is defined as a related business object for a specific price list, that price list applies to this order. Furthermore, if any product on the order appears on this price list, the price from the price list is used as the base price for all further pricing calculations, instead of the product's list price. If more than one applicable list is found, the price list lookup that is defined for that transaction on the Price By Key Field page determines which price is used:

The Transaction Price by Keys page is used to define the fields used to match a transaction. At implementation time, select from the delivered list of price by keys for each transaction.

If PeopleSoft Enterprise Pricer is configured, you can expand the list of price by keys. A knowledgeable PeopleSoft application developer or IT person should complete the configuration.

Click to jump to top of pageClick to jump to parent topicCommon Element Used in This Section

Transaction to be Priced

Determines the appropriate list of price by keys to use to price transactions. Value is:

OC (order capture): Price PeopleSoft Order Capture transactions.

Click to jump to top of pageClick to jump to parent topicPages Used to Establish Price by Key and Price List Fields

Page Name

Object Name

Navigation

Usage

Price Key Fields

EOEP_APPKEY_FIELD

Set Up CRM, Product Related, Enterprise Pricer, Transaction Price-by Keys, Price-by Key Field

Select the price by fields that are used to price the transaction.

Price List Fields

EOEP_APPLIST_FLDS

Set Up CRM, Product Related, Enterprise Pricer, Transaction Price-by Keys, Price List Fields

Select valid price list-related business objects that are used when creating price lists.

Click to jump to top of pageClick to jump to parent topicDefining Price by Keys

Access the Price Key Fields page.

Price-by Key Fields

Displays the current price by fields for the transaction.

Build Price-by Key Fields

Click to add fields to the Price-by Key Fields grid after selecting them from the Select Price-by Key Fields grid.

Note. If a price by field is currently assigned to a price rule or an arbitration plan, you cannot remove it from the list of values assigned to the pricing transaction.

Select Price-by Key Fields

Use to select additional price by fields.

Note. You can define an unlimited number of pricing keys; however, system performance is affected as the number of keys increases.

Click to jump to top of pageClick to jump to parent topicDefining Price List Fields

Access the Price List Fields page.

Price List Lookup

Select how you want the system to perform price list lookup. Values are:

Consider all prices: The system considers all matching price lists based on the related business objects and price rules that you have attached to the price lists. It then selects the lowest price for the product.

Lookup in priority order: The system establishes the order for the price list lookup based on the values in the Price-by Key Field Names by Priority section. Use this method to establish a hierarchical method for selecting the list price for the transaction.

Note. When using the hierarchical method, price rules tied to price lists are not used, unless a price is not found using the hierarchical method.

Key Field Code

Select price by keys to define the valid related business objects for a price list. These values are available to you as related business objects on the Price List Related Object page.

Priority

Establish a hierarchical order to price list lookups by entering a numeric value. This field is available only if you select Lookup in priority order in the Price List Lookup field.

Click to jump to parent topicConfiguring PeopleSoft Enterprise Pricer

The general PeopleSoft Enterprise Pricer user should not have access to these pages. These pages are available to the PeopleSoft Enterprise Pricer developer to modify or configure the PeopleSoft Enterprise Pricer system data. You can configure the PeopleSoft Enterprise Pricer data entry pages, but you should not be required to use a standard implementation of PeopleSoft Enterprise Pricer. The system data described in this section are delivered for each pricing transaction implementation.

This section discusses how to:

Warning! Changes made to the pages in this section are considered a configuration and are not supported by PeopleSoft.

Click to jump to top of pageClick to jump to parent topicPages Used to Configure PeopleSoft Enterprise Pricer

Page Name

Object Name

Navigation

Usage

All Price-by Key Fields

EOEP_KEYFLDS

Set Up CRM, Product Related, Enterprise Pricer, All Price-by Key Fieldnames, Price-by Keyfields

Select fields to use as price-by key fields for all PeopleSoft Enterprise Pricer implementations. The values are delivered as system data during installation.

Price Transaction Code

EOEP_APP_CODE

Set Up CRM, Product Related, Enterprise Pricer, Price Transaction Code

Configure the PeopleSoft Enterprise Pricer data entry pages for each application code and relate the transaction to another transaction.

Click to jump to top of pageClick to jump to parent topicConfiguring Price-by Key Fields

Access the All Price-by Key Fields page.

Note. In certain situations, you might need to add additional price by key fields that aren't available on this page. Adding data here is considered a configuration.

Record

Select the record for the price by key fields and select a corresponding Field Name for the Price-by Key field.

Click to jump to top of pageClick to jump to parent topicConfiguring Price Transaction Code Options

The options for each transaction are delivered as system data and appear on the online pricing pages. They also determine how PeopleSoft Enterprise Pricer is used to price each transaction.

Access the Price Transaction Code page.

The options for each transaction are delivered as system data and appear on the Price Rule Formulas page. This table lists the options set up for each transaction:

Transaction

Buying Agreement

Order Capture

Sales Order

Sales Order Batch

Price Action Type

Note. Inherits all options from the sales order transaction.

  • Discount/Surcharge

  • Giveaway

  • Min/Max Target Discount

  • Min/Max Target Price

  • Min/Max Target Surcharge

  • Price Override

  • Total Order Discount/Surcharge

  • Product Add

  • Recurring Discount/Surcharge

  • Free Period Promotion

  • Discount/Surcharge

  • Giveaway

  • Min/Max Target Discount

  • Min/Max Target Price

  • Min/Max Target Surcharge

  • Price Override

  • Total Order Discount/Surcharge

  • Product Add

  • Free Period Promotion

Note. Inherits all options from the sales order transaction.

Price Type

 
  • Extended Price

  • Quantity

  • Extended Price

  • Quantity

  • Volume

  • Weight

 

Cascading/Summed

 

Yes

Options include:

  • Cascading

  • Summed

Yes

Options include:

  • Cascading

  • Summed

 

Promotion Code

 

No

Yes

Populated if PeopleSoft Promotion Management is installed.

 

Use Grace Days

Use Grace Days

 

No

Yes

 

Merchandising Type

 

No

Yes

Populated if PeopleSoft Promotion Management is installed.

 

Period-to-Date

 

Not applicable

Yes

 

Stop Processing Here

 

Yes

Options include:

  • Yes

  • No

Yes

Options include:

  • Yes

  • No

 

Distribution Accounts

 

No

Yes

 

Payment Terms

 

No

Yes

 

Price Dates

 

No

Yes

Options include:

  • Requested Arrival Date

  • Order Date

  • Schedule Ship Date

 

 

Parent

Select a value if you want the transaction to inherit all of the attributes and price by keys of the parent.

Action Types

Select valid price action types for the transaction and limit the available options during price rule and arbitration plan entry. The values that you select are available for the price rule price action type. Values are:

Discount/Surcharge: Applies a discount or surcharge to the list price on a line.

Recurring Discount/Surcharge:Applies a discount or surcharge to the recurring price on a line.

Free Period Promotion: Specifies the number of free periods of a recurring price. The period used is what appears on the order. For example, if you select three free periods and the rule is used on an order with a cell phone for 30 USD per month, then the first three months are free.

Product Add: Adds a product to the order, such as a cancellation penalty product.

Giveaway: Adds a free product to the line or order.

Min/Max Target Discount (minimum/maximum target discount): Compares the total discount adjustment and, if it's outside the limit, the system discards the calculated amount and replaces it with the target discount.

Min/Max Target Price (minimum/maximum target price): Compares the price adjustment and, if it's outside the specified range, the system discards the calculated amount and replaces it with the target amount.

Min/Max Surcharge (minimum/maximum surcharge): Compares the total surcharge adjustment and, if it's outside the specified range, the system applies a target surcharge.

Price Override: Replaces the price on a product with this price.

Total Order Discount/Surcharge: Applies a discount or surcharge to the entire order.

Price Type

Select a value that will be available when you select the price rule price type. Values applicable to PeopleSoft CRM are Extended Price and Quantity.

Options

Select values, and the system will display the appropriate processing fields on the price rule pages. Values are:

Use Payment Terms on Formula: Select the payment for each adjustment from the list of values on the Payment Terms page in PeopleSoft Billing. If the order or schedule has more than one price rule with a payment term that qualifies for the order, the system selects the most favorable terms for the customer.

Use Period-to-date: Enables the system to use period-to-date pricing to calculate price adjustments based on transactions across a predefined time frame, rather then individual transactions.

Use Promotion Code: Use if PeopleSoft Promotions Management is installed and you want to associate promotions on the price rule.

Use Rule Distribution Accounts: View and create accounting distribution details for the adjustments on the price rule.

Note. These values are not applicable to PeopleSoft CRM.

Price Date

Select the dates available to price the transaction from the available options:

Order Date: The date the order header is created. The system uses the current date as the default date on a sales order header, but you can enter another date.

Requested Arrival Date: The date that the customer wants the order to arrive on site. This option is used only by PeopleSoft SCM installations.

Schedule Ship Date: The date that the order line is scheduled to ship. The system calculates this date from the requested arrival date using the transit lead time and exception ship dates, but you can enter another date. This option is used only by PeopleSoft SCM installations.

Note. These values are not applicable to PeopleSoft CRM.

Click to jump to parent topicAdding Price by Key Fields

You might need to add more price by keys than those delivered with the system data. Add these using the All price by Key Fields page. The following steps provide an example of how to add item weight. You can follow the same steps to add other fields.

Note. Adding price by key fields is considered a customization.

Follow these steps to add item weight as a pricing key to PeopleSoft Enterprise Pricer:

  1. Add the INV_ITEM_UOM record and the SHIPPING_WEIGHT field on the All Price-by Key Fields page.

  2. Assign the new SHIPPING_WEIGHT field to the transaction code that you are using on the Price-by Key Field page.

    Select the new SHIPPING_WEIGHT field from the list at the bottom of the page. Click the Build Price-by Key fields button to associate the new field to the transaction code.

  3. If the new field requires a table to prompt for valid values when the pricing key is used on the price rule, create a view and assign the prompt table to the pricing key on the Price-by Key Field page.

    This is the same page you used in step 2.

    If no prompt table is assigned to a pricing key, you can enter any value on the price rule for that field.

You may need to modify the PeopleCode to recognize the new pricing key. When a new pricing key is added to the list of available keys and it is assigned to a transaction code, it may require a change to the PeopleCode method used to pass a value to that new pricing key. The following method in PeopleSoft CRM contains the logic used to pass a value for each pricing key defined for the Order Capture transaction code. If a new pricing key is added to the transaction code, you should review the following PeopleCode program to make sure that the pricing key is used by the system:

This method is used to assign a value from PeopleSoft Order Capture to each pricing key defined for the Order Capture transaction code. If multiple pricing keys are defined for the same record, you modify the PeopleCode only once. Subsequently, you can select any field from that record as a pricing key without having to modify the code. You can modify the code in CreatePricingKeysLocal( ) to handle all the fields from a specific record without having to specify the field name.

In other cases, the value for a field will require more logic to determine what value to assign to the pricing key. If you must add a new record for which all the fields can be used as pricing keys to the PeopleCode, you use the same logic and add a new condition to the Evaluate logic. For example, if you need to add multiple fields from record INV_ITEM_UOM to the list of pricing keys, you can add the following condition:

When Record.INV_ITEM_UOM &recItemUom = createrecord(RECORD.INV_ITEM_UOM); &recItemUom.SETID.value = %Super.ProductSetid; &recItemUom.INV_ITEM_ID.value = %This.GetInvItemId(&recLine.PRODUCT_ID.Value); &recItemUom.UNIT_OF_MEASURE.value = &recLine.UNIT_OF_MEASURE.value; &recItemUom.SelectByKey(); &strValue = &recItemUom.GetField(@("FIELD." | &strFieldname)).Value; Break;

You can add the PeopleCode once and then use any field from record INV_ITEM_UOM as a pricing key.

Example

The following example shows the code that you need when more logic is needed in order to determine the value for a specific pricing key. When the pricing key is INV_ITEM_UOM.SHIPPING_WEIGHT, you can run the method GetWeight( ) to calculate the weight for the item.

When Record.INV_ITEM_UOM Evaluate &strFieldname When Field.SHIPPING_WEIGHT &strValue = %This.GetWeight(&recLine.PRODUCT_ID.value, &recLine.UNIT_OF_MEASURE.value); Break;

This is the existing and new code for the customization:

rem ================================================================== rem Method: CreatePricingKeysLocal rem rem Description: Pass the pricing key information to the engine. rem ==================================================================; method CreatePricingKeysLocal /+ &objLine as EOEP_PRICER:DataStructure:Line, +/ /+ &recLine as Record +/ Local integer &iCount, &iCount2; Local Record &recAppkeyFld, &recDestination; Local string &strFieldname, &strValue, &strVoid; Local number &numBO, &numShipToBoid, &numProfileSeq; Local boolean &bRetVal; Local RO_CAPTURE:BusinessLogic:Records:Destination &objDestination; Local array of string &arrReturn; For &iCount = 1 To &c_rsPricingKeys.ActiveRowCount &recAppkeyFld = (&c_rsPricingKeys)(&iCount).PW_PRCKEY_VW; &strFieldname = &recAppkeyFld.FIELDNAME.Value; &strValue = ""; When Record.RO_HEADER rem -----------------------------------------------------------; rem Copy key value from header ; rem -----------------------------------------------------------; &strValue = %Super.HeaderRec.GetField(@("FIELD." | &strFieldname)).Value; Break; When Record.INV_ITEM_UOM rem -----------------------------------------------------------; rem Copy key value from Inventory Item UOM ; rem -----------------------------------------------------------; &recItemUom = createrecord(RECORD.INV_ITEM_UOM); &recItemUom.SETID.value = %Super.ProductSetid; &recItemUom.INV_ITEM_ID.value = %This.GetInvItemId(&recLine.PRODUCT_ID.Value); &recItemUom.UNIT_OF_MEASURE.value = &recLine.UNIT_OF_MEASURE.value; &recItemUom.SelectByKey(); &strValue = &recItemUom.GetField(@("FIELD." | &strFieldname)).Value; Break; . . . End-Evaluate; If &strValue <> "" Then %This.AddPricingKey(&objLine, &recAppkeyFld.EOEP_KEY_FLD_CD.Value, &strValue); End-If; End-For;

This is the new code for the customization to retrieve values from the table and pass them to the pricing engine:

When Record.INV_ITEM_UOM rem -----------------------------------------------------------; rem Copy key value from Inventory Item UOM ; rem -----------------------------------------------------------; &recItemUom = createrecord(RECORD.INV_ITEM_UOM); &recItemUom.SETID.value = %Super.ProductSetid; &recItemUom.INV_ITEM_ID.value = %This.GetInvItemId(&recLine.PRODUCT_ID.Value); &recItemUom.UNIT_OF_MEASURE.value = &recLine.UNIT_OF_MEASURE.value; &recItemUom.SelectByKey(); &strValue = &recItemUom.GetField(@("FIELD." | &strFieldname)).Value; Break; . . . End-Evaluate;