Example Pricing Algorithm, Part 4, Get Base List Price
Create a charge for the item on the price list, then use the charge as the base list price for the item.
The base list price is the price you charge for a quantity of 1 for the item before you apply any tiered pricing that you set up for the item.
The output SDO from the Get Pricing Strategy provides the input SDO.
You can use these algorithms to meet your specific needs. Here are some examples.
-
Override the base list price according to a value that the Order Entry Specialist enters into an extensible flexfield on the order line.
-
Match price list charges for a unit of measure that doesn't match the unit of measure on the order line. Convert the unit of measure on the order line to the unit of measure you need to use.
-
Make sure the quantity on the order line is equal to or greater than a minimum quantity that you set for the item.
Here's what the algorithms do.
What the Algorithms Do |
How the Algorithms Do It |
---|---|
1. Find charge candidates for coverage items. |
- |
2. Find charge candidates for component items. |
- |
3. Find charge candidates for items and component items. |
Use values in the input SDO to find charge candidates. For each item, match the item, unit of measure, business unit, and line type. Assume the Corporate Pricing Strategy includes the Corporate Segment Price List. 300100071623855 identifies the list. This price list includes the AS54888 item with a Pricing UOM of Each and Line Type of Buy. Create a charge candidate for each charge that it finds that matches the query. On the Edit Price List page in Pricing Administration, assume you search the Corporate Segment Price List for the AS54888 item. The search returns row 1 and row 2, and each row contains the AS54888 with a Pricing UOM of Each and Line Type of Buy. Each of these rows is a candidate to become the charge. |
4. Filter duplicate charge candidates. |
If the query finds more than one charge candidate for each line, then filter them according to the item's precedence. An item that has a charge defined takes precedence over other items. For example, if row 1 from your search on the Edit Price List contains a charge in the Charge area but row 2 doesn't, then the filter will return only row 1. |
5. Create charges. |
- |
6. Calculate cost-plus pricing. |
- |
7. Create charge component for the base list price. |
Use the base price from you set up to set the unit price and calculate the extended amount. |
For the 5. Create charges step, create a charge for each candidate that remains after filtering them. For example, if the AS54888 on row 1 and the AS54888 on row 2 each contain a charge, then create a charge for each of them. If no charge candidates match the query criteria, then the algorithm creates an error.
The algorithm uses your set ups in the Pricing Administration work area. If the charge includes.
-
Tiered adjustment, then the algorithm populates the TierQueue entity in the output SDO.
-
Price adjustment matrix, then the algorithm populates the MatrixQueue entity.
Here are details about attributes in the SDOs.
Entity |
Attributes in Input SDO |
Attributes in Output SDO |
---|---|---|
Line |
AllowCurrencyOverrideFlag: Y AppliedCurrencyCode: USD AppliedPriceListId: 300100071623855 DefaultCurrencyCode: USD DefaultPriceListId: 300100071623855 DefaultPriceListPrecedence: 1 FromCurrencyCode: USD. HasAlternatePriceList: Y HeaderId: 1 InventoryItemId: 149 InventoryOrganizationId: 204 ItemType: Standard LineCategoryCode: Order LineId: 1 LineQuantity2: Ea LineQuantityUOMCode: Ea LineTypeCode: ORA_BUY PriceAsOf: 2019-03-26 @ 08:32:53 PricedOn: 2019-03-26 @ 08:32:53 PricingDate: 2019-03-26 @ 08:32:53 PricingStrategyId: 300100071623888 ShipToLocationId: 929 UnreferencedReturnLineFlag: N |
- |
Charge |
- |
CanAdjustFlag: Y ChargeAppliesTo: Price ChargeDefinitionCode: QP_SALE_PRICE ChargeDefinitionId: 3001000070841552 ChargeId: 1 ChargeSubtypeCode: ORA_PRICE ChargeTypeCode: ORA_SALE CompSeqCntr: 1001 CurrencyCode: USD EstimatedPricedQuantityFlag: N EstimatedUnitPriceFlag: N LineId: 1 NeedsCostPlus: N NeedsMargin: Y ParentEntityCode: LINE ParentEntityId: 1 PriceTypeCode: ONE_TIME PricedQuantity: 2 Ea PricedQuantityUOMCode: Ea PrimaryFlag: N RollupFlag: N RunningUnitPrice: 2500 TaxIncludedFlag: N |
ChargeComponent |
- |
ChargeComponentId: 1 ChargeId: 1 CurrencyCode: USD ExtendedAmount: 5000 USD PriceElementCode: QP_BASE_LIST_PRICE PriceValidFrom: 2019-03-26 @ 08:32:53 SequenceNumber: 1000 SourceId: 3001000071623860 SourceTypeCode: PRICE_LIST_CHARGE UnitPrice: 2500 USD In this example, the base price is 2,500, the quantity is 2, so the algorithm calculates the extended amount as 5,000. |
Here are some of the functions you can use with the algorithms you use to get the base list price.
Algorithm Name |
Function Name |
Function Type |
Description |
---|---|---|---|
Get Base List Price For Goods And Services |
constructChargeCandidate |
Script |
Create a data object for the charge candidate according to the view row of the charge definition. |
- |
getChargeDefinitionName |
View object Lookup |
Get a single row for the translated name of the charge definition. |
- |
getCharges |
View object lookup |
Get price list charges in your pricing setup that match the single price list. |
- |
getDurationConversionRate |
Script |
Get the UOM conversion rate for part of the duration. |
- |
getOKCUomMappings |
View object lookup |
Get mappings in the contracts okc_ tables to call the contracts API. For details about okc_ tables, go to Tables and Views for CX Sales and B2B Service, then see the Contracts chapter. |
- |
getPriceList |
View object lookup |
Get your price list. |
- |
getRootCharge |
View object lookup |
Get the price list charge of a root item. |
- |
getUomTranslation |
View object lookup |
Get the unit of measure table for translations that exist for the UOM. |
Compute Cost Plus Price |
None |
- |
- |
Derive Cost List |
getCostCharge |
Hierarchical view object lookup |
Get the cost elements. |
Get Cost Elements |
getCosts |
View object lookup |
Get costs elements from your setup. |