You are on page 1of 21

How to: Create and control pricing

options in AX for Retail


1 OVERVIEW
Dynamics AX for Retail provides many pricing options to control prices and discounts which can
specifically target Retail Channels or customers. Throughout this document, references to prices or
pricing refer to the final price which the customer sees as the price of the item. References to discounts
refer to additional reductions on top of the item’s price.

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. Item base price


2. Sales price trade agreements
3. Retail price adjustments

The price is retrieved from these data sources as follows:

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.

This logic has some consequences worth noting:


 The customer-specific price will override the channel-specific price.
 The base item sales price is only used when no applicable trade agreements can be found.
 The adjusted price will always be less than or equal to the price after considering trade
agreements and base price. This is the item price the customer will pay.

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.

2.1 BASE SALES PRICE


The base sales price is set on the details page for released products. One way of opening the released
product details page in AX is to navigate to Product information management -> Common -> Released
products and double-click on the item in this list page. The base sales price field Price is found under the
Sell fast tab in the Base sales price group. See picture below for illustration. This field will be interpreted
as being in the channel’s currency.

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:

 Pricing for specific items or subset of a specific items variants


o For example, a price can be set for all red variants of a particular shirt at once.
 Pricing can be specific to a customer, a customer sales price group, or all customers
 Pricing can be specific to a Retail channel
 Pricing can have from and to dates which define its effective period
 Pricing can be activated by certain quantities of items on a transaction
 Pricing can be restricted to particular unit of measure of an item

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.

2.2.1 Retail channel-specific sales price trade agreements


We can set up sales price trade agreements which only apply in specific Retail channels. This is
accomplished by using AX customer sales price groups. We’ve extended these to be used as Retail price
groups by adding an additional flag to them which allows them to be used for retail channels. You can
create and manage these price groups as well as mark them for Retail channel use under Retail->Setup-
>Pricing and discounts->Retail price groups.

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.

2.2.2 Advanced trade agreement configuration


It is likely that multiple sales price trade agreements will be active for a given combination of
customer/channel/item at the same time. In these cases, basic familiarity with the pricing logic will help
you know what to expect when these are consolidated into a single value.

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

Enumerated, this search order is:

1. Specific customer / Specific item


2. Customer group / Specific item
3. All customers / Specific item
4. Specific customer / Item group
5. Customer group / Item group
6. All customers / Item group
7. Specific customer / All items
8. Customer group / All items
9. All customers / All items
You’ll notice on the bottom of the trade agreement journal line form, there is a Find next field. This field
is checked when searching through the trade agreements which apply to the current customer and item
on the given date. The search continues through the whole search order as long as each agreement
found has enabled the “Find next” option. When an agreement is found which disabled “Find next” the
search will halt. The best price found up to this point is used.

2.2.3 Updating or removing trade agreements


Another advanced task is recalling an active agreement from use. This may be done to remove the
agreement or just to modify some of its settings before posting it again. Because trade agreements are
journalled entities, they are never modified directly. Instead we work with trade agreement journals
which define what the trade agreements should look like. Not until we post the journal will we see any
new trade agreements we’ve created or see the effects of modifying existing agreements.

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.

2.2.4 Enabling/Disabling types of trade agreements


Even with existing trade agreements of various types (price or discount) configured for various
combinations of customers and items, they will only take effect if that particular combination of
agreement type, account code, and item code has been enabled for the legal entity. The settings to
control which combinations of trade agreements are valid is found under Sales and marketing->Setup-
>Price/discount->Activate price/discount.

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.

2.3 RETAIL PRICE ADJUSTMENTS


In AX for Retail, price adjustments complement sales price trade agreements by providing more flexible
scheduling scenarios (e.g. happy hour) and enabling markdowns on top of the trade agreement or base
item price. They are always channel-specific and don’t depend on the customer placing the order. They
can be configured to override the item price (from trade agreements or base price) or reduce the item
price by an amount or percent.

2.3.1 Configuring Retail Price Adjustment


Retail price adjustments have to be configured to apply to a particular price group. These price groups
are then mapped to channels. This way we can configure channel-specific pricing. Price groups can be
assigned to multiple channels, so price adjustments can also be reused. See Section 2.2.1 for details on
specifying retail price groups.

Price Adjustments are opened from Retail->Common->Pricing and discounts->Price adjustments.


The currency on a price adjustment acts as an additional filter. The only price adjustments retrieved are
those matching the channel’s currency.

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.

2.3.2 Using Advanced Validation Periods


The validation periods are used to specify what days and times the validation periods are used. These
dates and times have no inherent time zone associated with them. When a channel is deciding whether
to apply a price adjustment, it will get the time and compare it to the raw times and dates specified for
the validation period. For the default implementations, POS will use the current machine time for the
comparison; online channels will use UTC time for the comparison.

Validation periods are opened from Retail->Setup->Pricing and discounts->Discount period.


The validation period has default settings on the header level and the ability to override each day of the
week. There are 4 settings which are repeated across the form. They are:

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

3.1 DISCOUNT TRADE AGREEMENTS


The workflow for creating and editing discount trade agreements is identical to price trade agreements.
See section 2.2 for information on working with trade agreement journals.

AX has three types of trade agreement discounts:

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

3.1.1 Item discount groups


Items can be associated with specific line discount groups and multiline discount groups to work with
trade agreement discounts configured for those groups. In addition, items can be configured to be
included or excluded from total discount calculations. This configuration is found under the Sell fast tab
on the released product details form.

3.1.2 Customer discount groups


Customers can be grouped for association to any type of trade agreements. These associations are
found on the customer details form under the Sales order defaults fast tab. There are separate
customer group types for prices, line discounts, multiline discounts, and total discounts.
3.1.3 Resolution of overlapping trade agreement discounts
There may be cases where the same sales line would qualify for discounts from both a line discount
trade agreement and multiline discount trade agreement. The rule for how to handle these situations
can be configured under Accounts receivable->Setup->Accounts receivable parameters. On this form’s
Prices tab, there is a Discount setting which sets this rule.
The 5 different values for this setting are:

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

3.1.4 Overview of trade agreement discounts


The similarities and differences between the various trade agreement discount 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.

* Customer-specific means that the agreement can be specified for specific customer, one of the
customer discount groups, or all customers.

3.2 RETAIL DISCOUNTS


Retail discounts offer a complement to the trade agreement discounts. Like Retail price adjustments
they are channel-specific, support concurrency rules, and have validation periods defining their effective
dates and times. Retail discounts can also be conditionally applied by associating them with a coupon
code. This coupon code must be on the retail transaction for any associated retail discounts to apply.

3.2.1 Retail discount types


There are three types of retail discounts. They range from simple item discounts, through tiered
quantity-based discounts, to complex mix & match groups of items with various discounting methods.
Retail discounts are found under Retail->Common->Pricing and discounts in the AX client.

3.2.1.1 Discount offers


Discounts (or discount offers) are the simplest Retail discount. They will apply to individual sales lines.
Products are added to the discount indirectly through categories, directly through products, or limited
to specific product variants.

Simple Retail discounts offer three different discount methods:


1. Discount percentage
a. This is a percent off value on the sales line. E.g. 20% discount percentage on a $10 item
results in a $2 discount on the line
2. Discount amount
a. This is an amount off value on the sales line. E.g. $5 discount amount on a $10 item
results in a $5 discount on the line
3. Discount price
a. This is a target effective price value on the sales line. E.g. $2 discount price on a $10
item results in a $8 discount on the line
b. There are two variants of this value for tax inclusive/exclusive channels. The discount
price will only be applied if the tax setting matches the channel setting.

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.

3.2.1.2 Quantity discounts


Quantity discounts offer tiered quantity-based discounts. They will apply to individual items on the
transaction, but those items may be on different sales lines. The quantity of the item is considered
across the entire transaction. Products are added to the discount indirectly through categories, directly
through products, or limited to specific product variants.
Quantity discounts have an additional subform which is used to manage the quantity tiers for the
discount. This subform is launched from the Configuration button in the action strip of the quantity
discount form. Given the total item quantity on the transaction, the discount value of the greatest tier
threshold less than or equal to the total item quantity is used.

Retail quantity discounts offer two different discount methods:

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

3.2.1.3 Mix and match discounts


Mix and match discounts (often abbreviated M&M) offer the most flexible discount setup. For example,
M&M discounts can accomplish BOGO, second item half price, percent/amount off item bundle, or
least-expensive item free discounts. Mix and match discounts will apply to a set of items on the
transaction which meets the group criteria for the M&M discount. These sets of items are considered
across the entire transaction.

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:

1. Adding line group ‘A’ with 2 required items to M&M offer


2. Adding line group ‘B’ with 1 required item to M&M offer
3. Adding item “Bat” on a discount line and associate with line group ‘A’
4. Adding item “Glove” on a discount line and associate with line group ‘A’
5. Adding item “Baseball” on a discount line and associate with line group ‘B’

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

3.2.2 Retail discount concurrency


Retail discounts (and Retail price adjustments) support the idea of discount concurrency. These are rules
for how to handle when multiple pricing rules apply to the same item(s) in a transaction. They specify
when to find the best price for items or when to start stacking discounts on top of each other.

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.

The basic rules are:

 If Exclusive discount(s) found:


o All non-Exclusive discounts discarded. Best applicable Exclusive discount chosen.
 Else If Best Price discount(s) found:
o Best Price of all applicable discounts chosen.
 Else If only Compounded discount(s) found:
o Best price of applicable non-compoundable discounts (e.g. price discounts)
o Then compound all applicable compoundable discounts (i.e. amount/percent off
discounts)
When comparing which Retail discount is “better” we consider “atomic units” of the discounts. You can
think of it as the smallest set of lines which are required for the discount to remain valid. For discount
offers (and price adjustments) this unit is an individual sales line. For quantity discounts, this unit is the
set of sales lines with the same item. For mix & match discounts, this unit is the full set of sales lines
which activated the discount. Also note that due to the inability to partially apply discounts, mix &
match discounts should only ever have the Exclusive mode set, otherwise, the behavior as they interact
with discount offers or quantity discounts will not always be desirable.

3.2.3 Concurrency between trade agreement discounts and Retail discounts


There is no advanced configuration to handle the cases where a sales line qualifies for both a trade
agreement discount and a Retail discount.

If this occurs, the conflict is resolved in the following way on each sales line:

 If both mix & match and trade agreement total discount


o Leave both and delete any trade agreement line/multiline discounts
 Else If both mix & match and trade agreement line/multiline discount
o Leave mix & match. Remove trade agreement discounts
 Else If Retail discount (non M&M) and trade agreement line/multiline discount
o Keep whichever type (Retail or trade agreement) of discount gives lower price.

3.3 OVERVIEW OF DISCOUNT TYPES AND USES


There are two types of discounts which can be configured in AX for Retail: discount trade agreements
and Retail discounts. They offer some parallel and some complementary functionality.

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.

You might also like