Professional Documents
Culture Documents
Pricing management in AX for Retail is primarily managed through two modules. The first is the core AX
concept of sales price trade agreements. These are used to set date effective prices on items or subsets
of their variants. The second is Retail price adjustments. These offer greater flexibility to specify
category pricing rules, active times, and percent markdowns.
Discount management in AX for Retail is managed through two similar, though expanded, modules. First,
core AX trade agreements can be used to set up sales line discounts, sales multiline discounts, and sales
total discounts. These behave similarly to how they behave on AX sales orders. Second, Retail discounts
allow category discount rules, active times, and complex setups for quantity discounts and mix & match
discounts on sets of items.
Of these pricing and discount management tools, sales price trade agreements, Retail price adjustments,
and Retail discounts can be specified for individual channels. Discount trade agreements are not scoped
to an individual channel.
2 PRICE MANAGEMENT
In AX for Retail, the final channel price is found after searching three data sources:
1. Apply sales price trade agreements for the current customer to find item price
2. If nothing was found in step 1, apply sales price trade agreements for the current channel to find
item price
3. If nothing was found in step 2, the item’s base sales price becomes the item price
4. Apply Retail price adjustments to the item price.
5. If result from step 4 is lower than the item price, the item price is set to the new adjusted price.
Now that we know the basic flow of pricing in AX for Retail, let’s look at setting up each of these pricing
options in detail.
Note: Retail pricing logic will assume the Price unit field is set to 1.
2.2 SALES PRICE TRADE AGREEMENTS
Sales price trade agreements allow much more dynamic pricing rules. AX for Retail tries to mimic the
behavior of sales price trade agreements on AX sales orders in the back office, so most documentation
for sales order pricing carries over into pricing for Retail channels.
Some of the features of sales price trade agreements in AX for Retail include:
Sales price trade agreements are journalled entities in AX for Retail. They can be managed through
Price/discount agreement journals and won’t factor into the price calculation until after they have been
posted.
A new trade agreement journal can be created in AX by navigating to Sales and marketing -> Journals ->
Price/discount agreement journals. From this form, choose New, select a journal name, and click Lines.
From this form, the pending trade agreements in the journal are defined. The relation should be set to
Price (sales), the item code set to Table, and the Account code set based on whether this should apply
to a specific customer (“Table”), a customer group or Retail channel (“Group”), or all customers (“All”).
The account selection field lets you specify a customer or group for the trade agreement. The item
relation field lets you specify to item this agreement applies too. There are refining fields to apply this to
particular variants and units of this item. The From field specifies the quantity needed to activate this
agreement. The Amount in currency field specifies the sales price for this agreement.
Underneath the grid of agreement lines, there are From date and To date fields which can enforce
activation and expiration dates for the trade agreement. This date range is inclusive, and an empty date
means there is no date specified which allows ranges to extend indefinitely into the past or the future.
After configuring trade agreement lines, use the “Validate” and “Post” buttons in the action pane to
verify and publish these trade agreements for use.
Once there are some customer price groups which have been enabled for Retail, you must associate the
price groups with Retail channels. Each channel can belong to multiple price groups and different
channels can belong to the same price groups. This association is set up from the Price groups button in
the Action Pane for Retail stores or Online stores. They can be accessed from the list pages or the
details pages. The following picture shows the two price groups to which “Store 1” belongs.
Once channels belong to Retail price groups, we can start setting up channel-specific pricing based on
those price groups. This is done by relating the sales price trade agreements or Retail price adjustments
with the price group. (The same mechanism is used to associate Retail discounts with channels.)
While creating a sales price trade agreement, by setting the Account code to “Group” the Retail price
groups can be chosen just as a standard customer price group is chosen. This will result in that price
trade agreement applying to all sales transactions in that Retail Channel. Keep in mind that any
customer-specific trade agreements will override any channel-specific agreements.
The first concept to understand is that all trade agreements in AX are expected to be queried in a well-
defined search order. This search order is based on the account code and item code. It starts with the
most-specific agreement type (i.e. specific customer for specific item) and ends with least-specific (i.e.
all customers for all items).
Recalling trade agreements is accomplished similarly to created new ones. You must create a new
Price/discount agreement journal and open up the Lines form. This form has a Select function in the
action pane. This will pull up a form which allows you to specify search criteria for a trade agreement.
After completing this form and choosing Select, the journal lines form will contain all the trade
agreements which met your search criteria. You can edit these trade agreements and when you post
this journal, the original trade agreements will be updated.
Deleting trade agreements is nearly identical. After using the Select dialog form to find the trade
agreements to be deleted, the Select all agreements to be deleted button in the Action strip of the
trade agreement lines form will mark all the lines in the current journal for deletion when the journal is
posted. Note that manually deleting lines from the agreement lines form (e.g. using Alt-F9) will merely
exclude those agreements and/or their changes from being posted, it will not actually delete any active
trade agreements.
This form contains a tab for each trade agreement type and within each tab, all the combinations of
customer/item-specificity which are potentially valid for that trade agreement type. These individual
combinations can be enabled or disabled to include or exclude them from consideration when
calculating prices in AX or on the Retail channels.
The concurrency setting specifies how we should resolve conflicts when multiple price adjustments
apply to the same sales line. This same mechanism is used in discounts and will be described in detail in
section 3.2.2.
The status flag controls when the price adjustment should be used. When enabled, it can’t be edited.
The Validation fast tab allows specifying when the price adjustment is active. There are two types which
can be used here. The Standard rule simply allows specifying an inclusive date range, by default the
range will be active forever. The Advanced rule allows choosing one of the Retail Validation Periods to
use. These periods also have start and end dates, but you can choose more advanced functionality for
specific days of the week or times. This is described in detail in Section 2.3.2.
The Lines fast tab is where the actual price adjustment rules are specified. This grid allows you to select
the target products of a particular price adjustment rule. Products can be selected at the category,
product, or variant level. The Unit field is used as an additional filter. The sales unit on the sales line
must match this unit for the price adjustment to be applied.
The method must be selected for the line. After choosing the method, the price adjustment values are
entered in the fields to the right. The methods are as follows: [verify these labels match]
Discount percent
o This is a percent off markdown. So entering a value of 10 for an item with an item price
of $50, would give an adjusted price of $45.
Cash discount amount
o This is an amount off markdown. So entering a value of 10 for an item with an item price
of $50 would give an adjusted price of $40.
Offer price
o This overrides the item price (as long as it’s better than the item price). This method will
only apply on tax-exclusive channels.
Offer price including tax
o This overrides the item price (as long as it’s better than the item price). This method will
only apply on tax-inclusive channels.
The price adjustment configuration also allows input of free-text long form descriptions and disclaimers.
These are not consumed by the channels, but can be useful places to store human readable descriptions
of the price adjustment’s intent.
Start time
o Defines the inclusive starting time for the range
Stop time
o Defines the inclusive stopping time for the range
Is end time after midnight
o This box should be checked if the stopping time for the range is actually on the next day.
This is useful for a range for example that runs from 11pm -1am on a Friday night. Friday
is the day in question, but we specify that the stopping time is actually on the next day.
Is valid in range
o This setting indicates whether the range we’ve specified should be active or inactive. For
example, if we don’t want adjustments from 3-5pm on a Tuesday, we’d set a start time
of 3:00 and a stop time of 5:00 and set “Is valid in range” to false.
2.4 OVERVIEW OF PRICING TYPES AND USES
There are three sources of pricing in AX for Retail: base item price, trade agreement price, and Retail
adjusted price. Each of these have slightly different functionality and uses. The key differences are called
out below.
* Best price or first found refers to the “find-next” search mechanism of trade agreements. See
section 2.2.2 for more details.
3 DISCOUNT MANAGEMENT
There are two sources of discount rules in AX for Retail. The first are discount trade agreements. These
are part of the core AX offering. Additionally, there are Retail discounts, which offer advanced
functionality tailored to the needs of a retailer.
Line discounts
Multiline discounts
Total discounts
Line discounts define percent off or amount off discounts which should apply to individual sales lines.
When the pricing logic decides if these discounts should be applied, it will consider only the individual
sales line, not the rest of the lines on the transaction. These can be specified to activate for particular
variants, units, or quantities for that sales line.
Multiline discounts define percent off or amount off discounts which should apply to groups of items
across the transaction. They can be defined for specific item groups or set to apply to all items. When a
possible effective multiline discount configuration is found, all lines on the transaction are considered
when checking if the minimum required quantity is met.
Total discounts define percent off or amount off discounts which should apply to the entire transaction.
They are triggered based on the transaction total and proportionately distributed across the transaction
based on price of the sales lines. Total discounts cannot be configured for specific items or item groups,
they always apply to all items.
The similarities and differences between the different discount trade agreement types are summarized
below.
Line
o The value of the line discount is used. Multiline discount is ignored.
Multiline
o The value of the multiline discount is used. Line discount is ignored.
MAX(Line,Multiline)
o The higher of the two is chosen, i.e. best price.
MIN(Line,Multiline)
o The lower of the two is chosen, i.e. worst price.
Line+Multiline
o The amounts off and percents off are added from both types. For example, if the line
discount is 25% off and the multiline is 25% off, the total percent off is 50%.
Line*Multiline
o The amounts off are added and the percents off are compounded. For example, if the
line discount is 25% off and the multiline is 25% off, the total percent off is 43.75%.
Note that this setting only applies to the overlap between line and multiline trade agreement discounts.
It does not have an effect on total trade agreement discounts or Retail discounts.
* Customer-specific means that the agreement can be specified for specific customer, one of the
customer discount groups, or all customers.
There are 4 separate fields for entering the values for each of these methods. The AX form will disable
the uneditable fields based on the method selection.
1. Discount %
a. This method means the tiered discount values should be interpreted as percentage off
discount values. When activated, this method acts like the “Discount percentage”
method of discount offers.
2. Unit price
a. This method means the tiered discount values should be interpreted as unit prices for
the item receiving the discount. When activated, this method acts like the “Discount
price” method of discount offers. (Unlike those, however, it doesn’t depend on tax
settings.)
Similar to Quantity discounts, the group criteria are set by the Mix and match line groups button in the
action strip of the mix and match discount form. On this subform, different line groups can be added to
the M&M discount and, for each one, the number of items required to satisfy this group is specified.
When a transaction has enough items from all groups to satisfy their requirements, a set of items which
exactly matches the number and groups will receive the mix and match discount. These line groups can
also have an associated color to aid in visualizing the groups on the discount lines on the primary form.
On the primary M&M discount form, products can be added by category, product, or variant. For each
discount line specified, the line is associated with one of the line groups specified on the subform. Let’s
go through an example of this configuration:
Given this configuration, we can expect the following behavior for customer transactions:
Transaction Result
2 Bats Gets discount.
1 Ball
1 Bat Gets discount.
1 Glove
1 Ball
2 Gloves Gets discount.
1 Ball
3 Gloves Gets discount twice. Once for 2 Gloves & 1 Ball. Second for 1 Glove, 1 Bat, & 1
1 Bat Ball.
2 Balls
2 Gloves Gets discount once and the extra Glove or Bat would be on a separate line
1 Bat without any discount.
1 Ball
The line group configuration dictates when the mix and match discount will be applied. What affect the
discount has is decided by its method. There are 5 discount methods for M&M discounts.
1. Discount %
a. This method sets a percent off discount which applies to all lines in the instance of the
discount.
2. Discount amount
a. This method sets an amount off which is distributed across all lines in the instance of the
discount.
3. Deal price
a. This method means setting effective price across all lines in the instance of the discount.
The total price is calculated and then an appropriate discount amount is calculated in
order to reach the target price for all the items.
4. Least expensive
a. This method means setting an amount off equal to the least expensive item in the
application of the discount. Using the example configuration above, assume Bat is $40,
Glove is $30, and Ball is $10. In this case, we end up with an amount off of $10 (price of
the Ball) which is distributed across all three sales lines on the transaction. This method
takes an argument which allows specifying that specific number of least expensive items
should have their total price discounted from the instance.
5. Line spec (Line-specific)
a. This method allows configuring different behavior for each discount line (note: not line
group) on the mix and match discount.
b. Each discount line can be configured with one of two discount methods:
i. Discount %
1. This is a percent off value for items on the M&M instance from this
discount line.
ii. Deal price
1. This is a unit price value for items on the M&M instance from this
discount line
For Retail discount concurrency, there are three concurrency methods for each discount. They are
Exclusive, Best Price, and Compounded. This is roughly a way to specify discount priority/precedence
with the Exclusive taking priority over Best Price and compounding only happening in the absence of
other discount types.
If this occurs, the conflict is resolved in the following way on each sales line:
The similarities and differences between these two types are summarized below.
* Best price or first found refers to the “find-next” search mechanism of trade agreements. See
section 2.2.2 for more details. Additionally, “Line” and “Multiline” discounts have a rough
concept of concurrency. See section 3.1.3 for more details.