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

The following shows the fields in the PriceMatrix table and how they are used in Optimizely <<product-name>>.


The record contains up to 11 separate layers of pricing based on quantity, each of which can have different calculations.

<table class="TableStyle-Borders" style="margin-left: 0; margin-right: auto;" data-cellspacing="0"> <thead> <tr class="header TableStyle-Borders-Head-Header1"> <th class="TableStyle-Borders-HeadE-Regular-Header1">FieldName</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">RecordType</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>This is used to determine how to prioritize the records read from the matrix and can be used for custom implementations.</p> <p>In the Admin Console, we would expect a slash to separate how the CustomerKeyPart and ProductKeyPart are used so, for example, "Customer/Product Price Level" indicates that a specific customer record is used and some code entered for the price level. The AC will present drop-downs where it thinks we are looking up a customer or product but any value can be entered.</p> <p>"Price Code" is a proxy for "Group"- so Customer Price Code really means "Customer Group" at the conceptual level.</p> <p>The current, generic record types supported in order of evaluation are:</p> <ul> <li>Customer/Product</li> <li>Customer/Product Price Code</li> <li>Customer Price Code/Product</li> <li>Customer Price Code/Product Price Code</li> <li>Customer</li> <li>Customer Price Code</li> <li>Product</li> <li>Product Price Code</li> <li>Product Sale (evaluated separately)</li> </ul></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">CurrencyCode</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is the code that should exist in the currency table for which the price values are represented. We strongly recommend that all records have a currency code.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Warehouse</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>This is the code for the warehouse in case the system should handle warehouse-specific pricing. This is a more rare case and typically you do not need or want to set the warehouse.</p> <p>This field would not matter for record types that do not reference a specific product.</p></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">UnitOfMeasure</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>This is the unit of measure, typically the alternate unit of measure for the product so that, for example, you can have a very different price for single units (that is EACH) of a product and an entirely different price for a CASE of a product. Without a specified UoM, the price will be calculated from the base unit of measure for the product.</p> <p>This should not be set for record types that do not reference a specific product.</p> <p>The absence of a value here would imply the base/default unit of measure for the product.</p></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">CustomerKeyPart</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This will represent either the string version of the Customer Id field or a string value for whatever the customer key part is, such as Customer Price Code.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">ProductKeyKey</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This will represent either the string version of the Product Id field or a stringvalue for whatever the product key part is, such as Product Price Code</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">ActivateOn</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is the date that the pricing record becomes active and is required since it is part of a compound key. This is important so that pricing is based on the currently active price on a given date.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">DeactivateOn</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is the end date of the pricing record and is common for temporary price records.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">CalculationFlags</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is a "placeholder" for custom extension and has no specified use.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">BreakQty (01..11)</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is the quantity for which the quantity ordered must equal or exceed. They should be entered in increasing size.</td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">PriceBasis (01..11)</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>This represents the basis from which the price is calculated.</p> <p>The price basis values supported by the Generic calculator include:</p> <ul> <li>List (base list price +/- adjustment)</li> <li>Override (takes the price entered)</li> <li>Cost (+/- from unit cost in warehouse)</li> <li>Margin (+/- adjustment from current cost)</li> <li>Markup (+/- adjustment from the current markup from current cost)</li> </ul></td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">AdjustmentType (01..11)</td> <td class="TableStyle-Borders-BodyD-Regular-Row1"><p>The only values are Amount or Percent.</p> <p>When using the Amount option, the adjustment is assumed to add or subtract the amount from the PriceBasis value.</p> <p>When using the Percent option, the adjustment is assumed to add or subtract a percentage from the PriceBasis value.</p></td> </tr> <tr class="odd TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyE-Regular-Row1">Amount (01..11)</td> <td class="TableStyle-Borders-BodyD-Regular-Row1">This is generally the amount or percentage value to use in calculating the price.</td> </tr> <tr class="even TableStyle-Borders-Body-Row1"> <td class="TableStyle-Borders-BodyB-Regular-Row1">AltAmount (01..11)</td> <td class="TableStyle-Borders-BodyA-Regular-Row1">This is a special value that is not used in the Generic calculator but it affords a secondary value by break level for advanced calculations.</td> </tr> </tbody> </table>