Sales price trade agreement with quantity breaks in AX 2012

In October I created a post about sales price trade agreements (see here).

Miranda left a comment asking for an explanation of a price break scenario like this:

Buy 1 – 5 units, you pay $48.00

Buy 6-10 units, you pay $44.00

Buy 11-24 units, you pay $42.00

Buy 25+ units, you pay $39.00

I’m not sure how to put screen-shots in replies to Comments, so I’ve created this post. I’m working in the standard Dynamics AX 2012 R3 CU9 demo image. I’ve created a new item. Incidentally when I setup a new item I usually set the default site in the Default order settings and the Default warehouse in the Site specific order settings – that saves a bit of time when you’re creating sales orders. Here’s the sales price trade agreement:

(I have to come clean and admit that my first attempt, on the first row I had a From = 0.00 and a To = 5.00. That doesn’t work – so notice that the To quantity on the first row is the same as the From quantity on the next row, and so on for all rows). I’ve also ticked ‘Find next’ but in this case I don’t think that’s doing anything.

I’ve created these sales price trade agreements for a customer price group, because that’s how it’s normally done, but of course you can have sales prices for a specific customer (Table) or all customers (All). I’ve also set a ‘From date’, because I think that’s best practice. When these prices are changed you should set the ‘To date’ on these records, and create new ones with the appropriate ‘From date’.

I need to check that my customer is in this sales price group and then I can create a sales order.

Here’s the sales order – this isn’t trying to be a realistic sales order, it’s a dummy just to test the prices, and I’m testing each ‘boundary condition’:

I’ve also added a line using a different unit of measure. I’ve declared that this item 1 Pair = 2 ea. As expected the sales price trade agreement isn’t found. The sales price trade agreement is defined for a specific sales unit of measure, and for a sales order currency.

Miranda’s comment also mentioned variants, so I’ve setup a product master with a couple of configurations. The Product dimension group setup defines whether the dimension is active for sales price search:

Config is used for sales prices. If the sales price trade agreement row has a configuration, it is used – if it doesn’t, it’s the default for all configurations:

So I’ve got different prices for my two configurations for 1 to 5 units, but the same price for 6 or more units.

Here’s the sales order test of that setup:

One final thing – Sales and marketing > Inquires > Prices can also be used to test your sales price trade agreement setup:

Hope this is useful – thanks for the comments and feedback.

Sales price in AX 2012 R3

Sales price trade agreements

The primary mechanism for setting an item’s sales price in Dynamics AX is a sales price trade agreement. Sales price trade agreements are always entered for a specific item, and can be set for a specific customer, a group of customers, or all customers. Sales price trade agreements are entered in a specific currency; optionally for a specific configuration/size/colour/site/warehouse; for a specific unit of measure; optionally for a quantity break; and can be for fixed terms (date ranges) or open-ended.

If no active sales price trade agreement is found, the system will use a single field on the item master (the ‘Sales price’). Unlike sales price trade agreements which can be in any currency, the Sales price on the item master is implicitly held in the home currency of the company (e.g. NZD). The item’s Sales price is implicitly in the item’s default sales unit of measure, and doesn’t support quantity breaks or date ranges.

Trade agreements are not to be confused with Sales agreements. A sales agreement is a blanket sales order or contract which typically establishes a favourable sales price for a customer based upon a commitment to purchase a quantity of items within a limited time frame. Individual release sales order are created from a sales agreement. Release sales orders take their sales price from the sales agreement – trade agreements are not used for Release sales orders.

The third way of establishing a sales price in Dynamics AX is to convert a quotation to a sales order. When a sales quotation is confirmed the sales price is taken from the quotation and not from trade agreements or sales agreements.

Sales discount trade agreements

There are three types of sales discount trade agreements:

  • Line discounts
  • Multi-line discounts
  • Total discounts

Line discounts are a single amount or 2 cascading discount percentages, off the loaded sales price for an item or item group (or all items) and for a customer or customer group (or all customers).

Multi-line and total discount types can be applied to a sales order if applicable. These discount types are typically applied if minimum total quantities are ordered.

Trade allowance agreements

Trade allowance agreements are used to manage marketing processes which stimulate demand based upon special pricing and sales incentives (or manage trading terms imposed by your customer). These may include temporary discounts and allowances given off invoice and/or through rebates; and one-off payments (Lump sums) or credits given on single events like radio or web ads, newspaper inserts and end-aisle displays.

A Trade allowance agreement is setup for one or more customers, for one or more items, and optionally tracks the discounts back to individual ‘Funds’. The Trade allowance agreement is defined in a single currency, and is bounded by a date range related to order entry date (or ship date, or receipt date).

A Trade allowance agreement consists of one or more ‘Merchandising events’.

Trade allowance management > Common > Trade allowance agreements:

There are three types of Merchandising events:

  • Off-invoice
  • Bill back
  • Lump sum

The ‘Amounts’ tab, used to define the discount amount or percentage, differs depending upon the type of Merchandising event.

For ‘Off invoice’ Merchandising events, the Amounts tab simply defines the amount or percentage discount (with an optional quantity break):

For ‘Bill back’ Merchandising events, the Amounts tab allows you to define whether the Rebate is taken from the Gross or Net sales order line price; whether the rebate is paid per invoice (or week/month/year/customised period); how the rebate is to be paid; and the debit and credit accounts used when the rebate is posted. The rebate can be specified in terms of an ‘Amount per unit’, ‘Fixed amount’ or ‘Percentage’:

For ‘Lump sum’ Merchandising events, the Amounts tab simply defines the Lump sum amount and how it is paid:

I’ll work through the process for taking a rebate as a discount in another post.

Processing a sales rebate as a deduction in AX 2012 R3

Microsoft Dynamics AX 2012 R3 includes a new ‘Trade allowance management’ module which supports more discount and rebate functionality than previous Dynamics AX versions.

We’re going to walk-through demonstration of a rebate being taken as a deduction from a sales invoice payment – using the standard Dynamics AX 2021 R3 CU8 demonstration ‘Contoso’ data-set. This walk-through assumes that the rebate does not require approval.

More information is found on Technet.

Setup. 1 Rebate parameters

Trade allowance management > Setup > Trade allowance management parameters:

Accounts receivable > Setup > Accounts receivable parameters > Rebate program:

Setup 2. Rebate types

Sales and marketing > Setup > Rebate program > Rebate program types:

Setup 3 Sales line price inquiry

Accounts receivable > Setup > Accounts receivable parameters > Prices:

‘Enable price details’ must be ticked.

Setup 4 Customer hierarchy

Trade allowance management > Setup > Customer category hierarchy:

You’re going to use a Customer hierarchy to select the customers that the Trade allowance agreement refers to.

Setup 5 Product hierarchy

Product information management > Common > Released products > Product > Setup > Product categories:

You’re going to use the Product category hierarchy to select the items that the Trade allowance agreement applies to.

Setup 6 Deduction type

Trade allowance management > Setup > Deductions > Deduction types:

Process step 1 Trade allowance agreement

Now we’re ready to setup the trade allowance agreement itself.

Trade allowance management > Common > Trade allowance agreements:



Line view:

Line amounts:

Process step 2 Activation of Trade allowance agreement

Before a trade allowance agreement is used in sales order entry, it must be ‘Confirmed’.

Trade allowance management > Common > Trade allowance agreements > Plan > Status > Confirm:

Once a Trade allowance agreement has Status = Confirmed, it can’t be changed. You have to re-set the status to ‘In-progress’.

Once the Trade allowance agreement has been used to generate discounts (or rebates) on sales invoices, you can’t re-set the status to ‘In-progress’. You’ll have to create a new Trade allowance agreement (Maintain > Copy) and close the current agreement (Status > Closed).

Note. The login-user must be linked to a worker to Confirm a Trade allowance agreement.

Confirmation of a Trade allowance agreement can be controlled by a work-flow approval process.

Process step 3 Sales invoice

Bill back trade allowance agreement merchandising events do not affect the sales order invoice price – but are shown on the Price details inquiry form (Sales order line > View > Price details):

When the sales order is posted, if the rebate doesn’t require approval, the system posts the rebate accrual according to the setup of the trade allowance agreement merchandising event:

The rebate accrual voucher posting is:

Process step 4 Deductions workbench

The Deductions workbench is one of the methods for managing rebates, and is suitable for the case where your customer does not wait for the rebate to be paid, but instead submits a payment which deducts the rebate.

The first step is to create a deduction journal entry.

Accounts receivable > Journals > Payments > Payment journal

Create a payment journal for the customer account and select the invoices that the payment relates to:

Click the Deductions button, and create a new Deduction:

Enter a type, and set the amount to the Balance to be settled.

When you close the form, the system adds a journal line to the payment journal:

(In this example – enter the customer payment shows the full invoice value, and I have entered a bank offset account)

Post the journal.

Deduction voucher:

Next create a credit note for the rebates. Accounts receivable > Common > Customers > All customers > Collect > Settle open transactions > Functions > Bill back program:

(Note this screen shows all the rebates for the customer – regardless of the Open transaction that you’ve selected).

Mark the rebates as required, then Functions > Create credit note.


Note. If the rebate requires approval, you first Approve and Process the rebate on the Trade allowance management Bill back workbench.

Finally, use the Deductions workbench to settle the deduction to the credit note.

Trade allowance management > Common > Deduction workbench:

Select/mark the deduction(s) and credit(s) and click Deductions > Maintain > Match.

The system posts a voucher: