Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In
GitHubNuGetDev CommunityDoc feedback


The Price Matrix in Optimizely <<product-name>> 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.

<table class="TableStyle-Borders" style="margin-left: 0; margin-right: auto; width: 100%;" data-cellspacing="0"> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">Website Settings</th> <th class="TableStyle-Borders-HeadD-Regular-Header1">Description</th> </tr> </thead> <tbody> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>PricingService</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>The service used for pricing. Case sensitive. Values can be set to Generic, Sx, Legacy or &lt;Custom&gt; (any third-party pricing service).</p> <p>Update to <strong>Generic</strong> to use Price Matrix.</p> <p><strong>Note:</strong> Developers can create custom pricing services for client-specific situations</p></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td colspan="2" class="TableStyle-Borders-BodyA-Regular-Row1"><p><strong>Note:</strong> <strong>PricingService</strong> is set to <strong>Legacy</strong> by default, which requires the use of <strong>UseBasicPricing</strong> and <strong>ERP_PricingStoredProcedure</strong>. If <strong>PricingService</strong> is set to <strong>Generic</strong> or <strong>Sx</strong>, no other settings are required. Pricing automatically defaults to the product record when Price Matrix data does not exist for the product.</p></td> </tr> </tbody> </table>

<table class="TableStyle-Borders" style="width: 100%; margin-left: 0; margin-right: auto;" data-cellspacing="0"> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">Setting</th> <th class="TableStyle-Borders-HeadD-Regular-Header1">Description</th> </tr> </thead> <tbody> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><p><strong>Pricing Service</strong></p></td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>This sets the pricing service to use for the targeted website. Use the <strong>Configuring</strong> menu on the left side of the screen to select either global or a specific website. There are four default <strong>Pricing Service</strong> options:</p> <ul> <li><strong>List</strong> - only pricing values on the Product table are used- the Price Matrix will not be used if this selection is made.</li> <li><strong>Generic</strong> - the pricing service with C# code for Price Matrix calculations is used.</li> <li><strong>StoredProcedure</strong> - the pricing service with a SQL stored procedure for Price Matrix calculations is used.</li> <li><strong>RealTime</strong> - a real-time call to an external service will be used.This requires a Real-Time pricing plug-in to be developed.</li> </ul> <p>The default value is <strong>Generic.</strong></p></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>ERP Pricing Stored Procedure</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This field only displays if the <strong>Pricing Service</strong> is set to <strong>StoredProcedure</strong>. Enter the name of the stored procedure to run to calculate pricing. Default value: <strong>PriceCalculator_Generic</strong></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td colspan="2" class="TableStyle-Borders-BodyD-Regular-Row1">If <strong>RealTime</strong> is selected, the following fields are displayed:</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>Real-time Pricing Service</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1">The real-time pricing service name.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>Real-time Service Timeout Seconds</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Time to wait for real-time pricing service to return. Default value: 10</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>Real-time Service Cache Minutes</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Number of minutes that prices from an real-time service will be cached. Default value: 60</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1"><strong>Real-time Service Unavailable Retry Minutes</strong></td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Number of minutes to wait if the real-time service timed out. Default value: 5</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyB-Regular-Row1"><strong>Real-time Service Delay Seconds</strong></td> <td class="TableStyle-Borders-BodyA-Regular-Row1">Number 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</td> </tr> </tbody> </table>

## 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.

    <table class="TableStyle-Borders" style="margin-left: 0; margin-right: auto; width: 100%;" data-cellspacing="0"> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">Record Type Option</th> <th class="TableStyle-Borders-HeadE-Regular-Header1">Description</th> <th class="TableStyle-Borders-HeadD-Regular-Header1">Corresponding Fields</th> </tr> </thead> <tbody> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Product</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Correlates to a Product record.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Product select drop-down</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Product Sale</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Correlates to a Product record. When used, puts the product on sale and includes any possible price breaks.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Product select drop-down</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Product Price Code</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Correlates 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.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Product Price Code select drop-down</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Customer</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Correlates to a Customer record.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Customer select drop-down</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Customer/Product</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Assign both a Customer record and a Product record.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>Product select drop-down</p> <p>Customer select drop-down</p></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Customer/Product Price Code</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Assign both a Customer record and a Product Price Code.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>Customer select drop-down</p> <p>Product Price Code select drop-down</p></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Customer Price Code</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Correlates to a Customer Price Code.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Customer Price Code select drop-down</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Customer Price Code/Product</td> <td class="TableStyle-Borders-BodyE-Regular-Row1">Assign both a Customer Price Code and a Product.</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>Customer Price Code select drop-down</p> <p>Product select drop-down</p></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyB-Regular-Row1">Customer Price Code/Product Price Code</td> <td class="TableStyle-Borders-BodyB-Regular-Row1">Assign both a Customer Price Code and a Product Price Code.</td> <td class="TableStyle-Borders-BodyA-Regular-Row1"><p>Customer Price Code select drop-down</p> <p>Product Price Code select drop-down</p></td> </tr> </tbody> </table>

  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.

    <table class="TableStyle-Borders" style="margin-left: 0; margin-right: auto; width: 100%;" data-cellspacing="0"> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">Price Basis Menu Option</th> <th class="TableStyle-Borders-HeadD-Regular-Header1">Description</th> </tr> </thead> <tbody> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">List</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Base list price of product +/- number entered in Amount field. Use - in front of the integer to apply a discount amount or percentage.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Override</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>Uses the Amount to override the product list price.</p> <p>Enter what the price should be in the Amount column to override all cost information for that specific product.</p></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Cost</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Multiplies unit cost of product (determined in Warehouse) by the Amount.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Margin</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">+/- adjustment from unit cost. This option only works with Amount adjustment type, not Percent adjustment type</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Mark up</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Unit cost of product + Amount.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Base</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 1</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 2</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 3</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 4</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 5</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Price 6</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/Discount</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/List</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/Cost</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/Base</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/Margin</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level/Override</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level Discount/List</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level Discount/Cost</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1" style="font-weight: bold">Customer Level Discount/Base</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyB-Regular-Row1" style="font-weight: bold">Customer Level Discount/Margin</td> <td class="TableStyle-Borders-BodyA-Regular-Row1">Reserved for ERP-specific pricing; works with SX Price Calculator</td> </tr> </tbody> </table>

  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 Cod**e from**Record 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.