Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Configure the price matrix

Describes how to configure the price matrix to create a data structure that can perform the calculations with minimal latency in Optimizely Configured Commerce.

The Price Matrix in Optimizely Configured Commerce creates a generic construct used for storing complex pricing information across various ERP systems. It intentionally is non-normalized data to create a data structure that can perform the calculations with minimal latency. It does have its limitations, such as a maximum of 10 price breaks.

Each ERP or custom application of the matrix can use different data in specific fields as needed to accommodate pricing functions.

Configuration settings

Configure the appropriate settings to use the Price Matrix. Remember to correctly target the desired website using the Configuring menu on the left side of the screen.

Website SettingsDescription
PricingService

The service used for pricing. Case sensitive. Values can be set to Generic, Sx, Legacy or <Custom> (any third-party pricing service).

Update to Generic to use Price Matrix.

Note: Developers can create custom pricing services for client-specific situations

Note: PricingService is set to Legacy by default, which requires the use of UseBasicPricing and ERP_PricingStoredProcedure. If PricingService is set to Generic or Sx, no other settings are required. Pricing automatically defaults to the product record when Price Matrix data does not exist for the product.

SettingDescription

Pricing Service

This sets the pricing service to use for the targeted website. Use the Configuring menu on the left side of the screen to select either global or a specific website. There are four default Pricing Service options:

  • List - only pricing values on the Product table are used- the Price Matrix will not be used if this selection is made.
  • Generic - the pricing service with C# code for Price Matrix calculations is used.
  • StoredProcedure - the pricing service with a SQL stored procedure for Price Matrix calculations is used.
  • RealTime - a real-time call to an external service will be used.This requires a Real-Time pricing plug-in to be developed.

The default value is Generic.

ERP Pricing Stored ProcedureThis field only displays if the Pricing Service is set to StoredProcedure. Enter the name of the stored procedure to run to calculate pricing. Default value: PriceCalculator_Generic
If RealTime is selected, the following fields are displayed:
Real-time Pricing ServiceThe real-time pricing service name.
Real-time Service Timeout SecondsTime to wait for real-time pricing service to return. Default value: 10
Real-time Service Cache MinutesNumber of minutes that prices from an real-time service will be cached. Default value: 60
Real-time Service Unavailable Retry MinutesNumber of minutes to wait if the real-time service timed out. Default value: 5
Real-time Service Delay SecondsNumber of seconds to delay the real-time pricing. This is used for testing and should be set to 0 in a production environment. Default value: 0

Set up a price matrix record

Set up a Price Matrix record to create pricing information for a product, a customer, or both.

Price matrix details section

  1. Within the Admin Console, go to Catalog > Price Matrix.

  2. Click Add Price Matrix.

  3. Select a Record Type from the drop-down [beginning of 4.3, 4.4, 4.5.]Record types are listed in evaluation order from most specific to most general:

    • Customer/Product
    • Customer/Product Price Code
    • Customer Price Code/Product
    • Customer Price Code/Product Price Code
    • Customer
    • Customer Price Code
    • Product
    • Product Price Code
    • Product Sale
  4. Then, select one or multiple options from the corresponding fields.

    Record Type OptionDescriptionCorresponding Fields
    ProductCorrelates to a Product record.Product select drop-down
    Product SaleCorrelates to a Product record. When used, puts the product on sale and includes any possible price breaks.Product select drop-down
    Product Price CodeCorrelates to a Product Price Code. Functions like record type Product, but allows the user to select a wider array of products by assigning them price codes.Product Price Code select drop-down
    CustomerCorrelates to a Customer record.Customer select drop-down
    Customer/ProductAssign both a Customer record and a Product record.

    Product select drop-down

    Customer select drop-down

    Customer/Product Price CodeAssign both a Customer record and a Product Price Code.

    Customer select drop-down

    Product Price Code select drop-down

    Customer Price CodeCorrelates to a Customer Price Code.Customer Price Code select drop-down
    Customer Price Code/ProductAssign both a Customer Price Code and a Product.

    Customer Price Code select drop-down

    Product select drop-down

    Customer Price Code/Product Price CodeAssign both a Customer Price Code and a Product Price Code.

    Customer Price Code select drop-down

    Product Price Code select drop-down

  5. Use the Activate On and/or Deactivate On fields to select the date and time (or span of time) the Price Matrix is active. Leave Deactivate On blank if the Price Matrix record is active indefinitely.

  6. For the Currency Code field, enter the appropriate currency.

  7. The Unit of Measure and Warehouse fields are optional.

    If the Warehouse field is populated, the Price Matrix only displays pricing for products available from the warehouse identified in the Warehouse field.

    The Unit of Measure field is optional; however, if it is filled with a unit of measure that differs from the unit of measure listed on the product's Detail page, the Price Matrix record will not execute.

Pricing details section

  1. Modify the quantities in the Break Qty column. The first quantity always is 1. The second break level is the price or percentage to select for the break quantity (such as the second break quantity of 5 equates the first break level to purchases between 1 and 4 items, while the second break level equates to purchases of 5 items or more). Continue this process for each break quantity, up to ten fields.

  2. Select a value from the Price Basis drop-down.

    📘

    Note

    This table is the same regardless of the selected Record Type.

    Price Basis Menu OptionDescription
    ListBase list price of product +/- number entered in Amount field. Use - in front of the integer to apply a discount amount or percentage.
    Override

    Uses the Amount to override the product list price.

    Enter what the price should be in the Amount column to override all cost information for that specific product.

    CostMultiplies unit cost of product (determined in Warehouse) by the Amount.
    Margin+/- adjustment from unit cost. This option only works with Amount adjustment type, not Percent adjustment type
    Mark upUnit cost of product + Amount.
    BaseReserved for ERP-specific pricing
    Price 1Reserved for ERP-specific pricing
    Price 2Reserved for ERP-specific pricing
    Price 3Reserved for ERP-specific pricing
    Price 4Reserved for ERP-specific pricing
    Price 5Reserved for ERP-specific pricing
    Price 6Reserved for ERP-specific pricing
    Customer Level/DiscountReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level/ListReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level/CostReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level/BaseReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level/MarginReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level/OverrideReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level Discount/ListReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level Discount/CostReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level Discount/BaseReserved for ERP-specific pricing; works with SX Price Calculator
    Customer Level Discount/MarginReserved for ERP-specific pricing; works with SX Price Calculator
  3. Select a value from the Adjustment Type drop-down.

    📘

    Note

    This table is the same regardless of the selected Record Type.

    Adjustment Type Menu OptionDescription
    AmountRecognizes the value in the Amount field as a whole number.
    PercentRecognizes the value in the Amount field as a percentage.
  4. Enter an amount in the Amount field.

  5. Repeat steps 1-4 for each Price Matrix break quantity.

  6. Click Save.

️ Important

Upon completion of configuring the Price Matrix, rebuild the Product Search Index. Go to Admin Console > Marketing > Search > Indexing, and click Rebuild All or rebuild just the Product Index.

Set up a price matrix record for a product

Set up a Price Matrix record to create pricing information for a product.

Use a product's basic list price

Use the Product's Basic List Price as a basis for the Price Matrix record. In this example, the User selects a product with a Basic List Price of $37.00.

Price matrix details section

  1. Within the Admin Console, go to Catalog > Price Matrix.

  2. Click Add Price Matrix.

  3. Select Product from Record Type.

  4. Select a Product from Product.

  5. Use the Activate On and/or Deactivate On fields to select the date and time (or span of time) the Price Matrix is active. Leave Deactivate On blank if the Price Matrix record is active indefinitely.

  6. For Currency Code, enter the appropriate currency.

  7. The Unit of Measure and Warehouse fields are optional.

    If the Warehouse field is populated, the Price Matrix only displays pricing for products available from the warehouse identified in the Warehouse field.

    The Unit of Measure field is optional; however, if it is filled with a unit of measure that differs from the unit of measure listed on the product's detail page, the Price Matrix record does not execute.

Pricing details section

  1. Modify the quantities in the Break Qty column. The first quantity always is 1. The second break level is the price or percentage to select for the break quantity (such as the second break quantity of 5 equates the first break level to purchases between 1 and 4 items, while the second break level equates to purchases of 5 items or more). This user chooses to set break quantities at 1, 5, and 10.

  2. Select List from Price Basis. List calculates the price of the item +/- the value entered in the Amount field.

  3. Select Percentage from Adjustment Type. This recognizes the value entered in the Amount field as a percentage.

  4. Enter an amount in the Amount field. This user chooses to enter 0 for break quantity 1, -10 for break quantity 5, and -25 for break quantity 10.

  5. Click Save.

  6. Rebuild the Product Search Index by going to Admin Console > Marketing > Search > Indexing.

  7. View the results on the commerce site.

  8. Click View Website in the upper right corner of the Admin Console, and select the applicable website.

  9. Browse or search for the product assigned in Step 4.

  10. Click Quantity Pricing to view the Price Matrix pricing.

This is the result of the exercise listed above. Since the user entered 0 for break quantity 1, the list price of the item was not altered. Entering -10 reduced the break quantity 5 cost by 10%, and -25 reduced the break quantity 10 cost by 25%.

Use a product's unit price

Use the Product's Unit Price as a basis for the Price Matrix record. In this example, the user uses a product with a Unit Price of $1.00.

Set Unit Price

  1. Start by assigning a Unit Price to a Product. Within the Admin Console, go to Catalog > Products.

  2. Click Edit for the desired Product.

  3. Click the Warehouses finger tab.

  4. Click Add Product Warehouse.

  5. Assign the appropriate Warehouse, ERP Qty Available, Qty On Order, Safety Stock, and Unit Price to the product.

  6. Click Save.

Price Matrix Details Section

  1. Go to Catalog > Price Matrix.
  2. Click Add Price Matrix.
  3. Select Product from Record Type.
  4. Select a Product from Product.
  5. Use Activate On and/or Deactivate On to select the date and time (or span of time) the Price Matrix is active. Leave Deactivate On blank if the Price Matrix record is active indefinitely.
  6. Select the same Warehouse as was assigned to the Product in step 5.
  7. For Currency Code, enter the appropriate currency.
  8. The Unit of Measure field is optional. However, if it is filled with a unit of measure that differs from the unit of measure listed on the product's detail page, the Price Matrix record does not execute.

Pricing details section

  1. Modify the quantities in the Break Qty column. The first quantity always is 1. The second break level is the price or percentage to select for the break quantity (such as the second break quantity of 5 equates the first break level to purchases between 1 and 4 items, while the second break level equates to purchases of 5 items or more). This user chooses to set break quantities at 1, 5, and 10.

  2. Select Cost from Price Basis. Cost calculates the price of the item by either multiplying the unit cost by the value entered in the Amount field (if Adjustment Type = Percent), or adding the unit cost to the value entered in the Amount field (if Adjustment Type = Amount).

  3. Select Amount from Adjustment Type. This recognizes the value entered in the Amount field as a whole number.

  4. Enter an amount in Amount . This User chooses to enter 15 for break quantity 1, 13 for break quantity 5, and 11 for break quantity 10.

  5. Click Save.

  6. Rebuild the Product Search Index by going to Admin Console > Marketing > Search > Indexing.

  7. View the results on the commerce site.

  8. Click View Website in the upper right corner of the Admin Console, and select the applicable website.

  9. Browse or search for the product assigned in Step 4.

  10. Click Quantity Pricing to view the Price Matrix pricing.

This is the result of the exercise listed above. Since the user entered 15 for break quantity 1, 15 + 1.00 = 16.00. Entering 13 for break quantity 5 added 13 + 1.00 = $14.00, and 11 for break quantity 10 added 11 + 1.00 = $12.00.

Use a product's price code

Use the Product's Price Code as a basis for the Price Matrix record. Set a Price Code for multiple items to apply one Price Matrix record to multiple items. In this example, the user has marked several accessory items with the Price Code of ACC.

Set price code

  1. Start by assigning a Price Code to a product. Within the Admin Console, go to Catalog > Products.
  2. Click Edit for the desired Product.
  3. On the Details tab, scroll down to the Pricing subsection.
  4. Enter a code in the Price Code text box.
  5. Click Save.

Price matrix details section

  1. Go to Catalog > Price Matrix.

  2. Click Add Price Matrix.

  3. Select Product Price Code fromRecord Type.

  4. Select a Product Price Code from Product Price Code.

  5. Use Activate On and Deactivate On to select the date and time (or span of time) the Price Matrix record is active. Leave Deactivate On blank if the Price Matrix record is active indefinitely.

  6. For Currency Code, enter the appropriate currency.

  7. Warehouse and Unit of Measure are optional.

    If Warehouse is populated, the Price Matrix only displays pricing for Products available from the Warehouse identified in the Warehouse field.

    Unit of Measure is optional; however, if it is filled with a unit of measure that differs from the unit of measure listed on the product's Detail page, the Price Matrix record will not execute.

Pricing details section

  1. Modify the quantities in the Break Qty column. The first quantity always is 1. The second break level is the price or percentage to select for the break quantity (such as the second break quantity of 5 equates the first break level to purchases between 1 and 4 items, while the second break level equates to purchases of 5 items or more). This user chooses to set break quantities at 1, 5, and 10.

  2. Select Margin from the Price Basis drop-down. Margin calculates the price of the item by adding the unit cost to the value entered in the Amount field.

    📘

    Note

    The Margin option does not work with the Adjustment Type Percent.

  3. Select Amount from the Adjustment Type drop-down. This recognizes the value entered in the Amount field as a whole number.

  4. Enter an amount in the Amount field. This user chooses to enter 20 for break quantity 1, 16 for break quantity 5, and 12 for break quantity 10.

  5. Click Save.

  6. Rebuild the Product Search Index by going to Admin Console > Marketing > Search > Indexing.

  7. View the results on the commerce site.

  8. Click View Website in the upper right corner of the Admin Console, and select the applicable website.

  9. Browse or search for a Product with the applicable Product Price Code.

  10. Click Quantity Pricing to view the Price Matrix pricing.

This is the result of the exercise listed above, for a product with a unit price of $1.00. Since the user entered 20 for break quantity 1, 20 + 1.00 = 21.00. Entering 16 for break quantity 5 added 16 + 1.00 = $17.00, and 12 for break quantity 10 added 12 + 2.00 = $13.00.