Sales in a competitive market is the driving force of a company. One of the critical factors influencing sales volume is sales price. Dynamics 365 for Finance and Operation (D365FO) has a very strong functionality to manage sales pricing in a very flexible way. In this blog post, I cover a lot of available options in D365FO related to sales prices.

This post is also applicable for Dynamics AX 2012 (AX2012).

Contents

This post doesn’t cover sales pricing related to retail.

Sales price in product details

The most simple setting for a sales price is to put it on the product. To make things work, just set the base sales price and sales order unit there. The price is transferred from the product to the sales order. The price is recalculated if the sales unit in the product details is different from the unit in the sales order. For example, a sales price is set as $0.5 for 1 unit and 1 pallet includes 500 units. Then one pallet is specified in the sales order, so the price per pallet in the sales order will be $250 ($0.5 * 500 units per pallet).

Released product - price - unit
The “Product information management > Products > Released products” menu item, the “Sell” tab of the exact product.

It is also important to mention here that the price is set in the national currency that is specified in the ledger module. The system recalculates the price if the currency in the sales order is different from the national currency.

Another important parameter that can be set in the product details is the “Price quantity,” meaning that the price is set per quantity of units. For example, the price can be set as $3,000 per 10 units, so the price per 1 unit is $300 ($3,000/10).

Released product - price - pr quantity
The “Product information management > Products > Released products” menu item, the “Sell” tab of the exact product.

D365FO offers functionality to set a sales price based on the purchase price. As one of the options, you can set sales price based on the purchase price by specifying the charges percentage. In this case, the sales price is calculated and specified automatically: purchase price * (charges percentage / 100 + 1).

Released product - purchase - sell
The “Product information management > Products > Released products” menu item, the “Purchase” and “Sell” tabs of the exact product.

Instead of charges percentage, it’s also possible to use the contribution ratio model, which can be specified in the “Sales price model” field. In this case, the calculation of the sales price is: (purchase price * 100) / (100 – contribution ratio).

The sales price can also be calculated based on the cost of production. The option can be specified in the “Base price” field, and the cost is specified in the “Manage costs” tab.

Released product - cost - sell
The “Product information management > Products > Released products” menu item, the “Sell” and “Manage costs” tabs of the exact product.

The system allows automatically updating the purchase price and cost. This option advances sales price management. It means that if the sales price is set based on the purchase price or the cost, the sales price can be updated automatically because of automatic updating of the purchase price or cost. The image below shows an example where I linked sales price to purchase price and specified that purchased price must be updated automatically.

Released product - purchase - update
The “Product information management > Products > Released products” menu item, the “Purchase” tab of the exact product.

In accordance with the setting above, the system updates the purchase price when the purchase invoice is posted, and then updates the sales price in accordance with the purchase price. It’s also true when a sales price is linked to the cost.

In this chapter I covered the most basic functionality regarding sales prices. In the chapters below, I describe more advanced options.

Sales price in trade agreements

A more sophisticated option to set up prices is to use trade agreements. Trade agreements give a lot of flexibility. You can still set the base price in the product details, but you can also specify a price in the trade agreement. A price in the trade agreement has priority over a base price in the product details. It means if the system finds an appropriate price in trade agreements, and at the same time the price is available in the product details, the system will use the price from the trade agreement.

In order to use trade agreements, it is required to create at least a trade agreements journal name.

Trade agreement journal names
The “Sales and marketing > Setup > Prices and discounts > Trade agreement journal names” menu item.

To create a trade agreement journal name for sales prices, use the “Price (sales)” value in the “Relation” field.

Price for period

Let’s say you’re required to set a specific price from the exact date. A trade agreement helps to accomplish the requirement.

The system gives you options for how to define the date that must be used to determine the price. Make sure that the “Date type” parameter in the account receivable module has an appropriate value. In my example, I set the “Today” value meaning that is used the system date to determine the price.

Accounts receivable params
The “Accounts receivable > Setup > Accounts receivable parameters” menu item, the “Prices” tab.

To set a price that is active from the particular date, create a new journal and go to its lines. Then select the “Table” value in the “Production code type” field and specify the item code in the “Item relation” field. Also specify unit, currency, and price unit (the same as price quantity in the product details). Finally, you need to input the “From date” value.

Trade agreement - lines - from date
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

After that you need to post the trade agreement journal to make the price active in the system. When you add a new product to the sales order, the system searches for a price in trade agreements first. If the appropriate price in not found in trade agreements, then the system looks for the price in the product details.

Price for inventory dimensions

The system gives an option to set prices in connection with inventory dimensions such as product, storage, and tracking. For activating this functionality, the necessary settings must be done in the dimension groups that are linked to the product. To activate the dimension for price, the “For sales prices” field must be marked.

Inventory dimensions - sales prices
The “Product information management > Setup > Dimension and variant groups > Product dimension groups”, “… >Storage dimension groups”, and “… > Tracking dimension groups” menu items.

For example, let’s set the price for a specific color. If the color is not available in the lines of the trade agreement, then turn it on by clicking the “Inventory / Display dimensions” button. Please note that the system shows active dimensions for the selected item code that is specified in the “Item relation” field.

Journal lines - price for invent dim
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

Don’t forget to post the journal.

Price for customer group or exact customer

To retain or attract high valued customers, a company can offer special prices for them. It’s possible to set these in D365FO by using trade agreements. To enable this option, the “Activate price/discount” parameters must be set up.

Activate price
The “Sales and marketing > Setup > Prices and discounts > Activate price/discount” menu item, the “Price” tab.

Next, it’s necessary to create groups of customers.

Cust price discount group
The “Sales and marketing > Prices and discounts > Customer price/discount groups” menu item.

Then you need to link the customer to the group.

Customer - price group
The “Sales and marketing > Customers > All customers” menu item, the “Sales order defaults” tab of the exact customer.

After that, you can set the price for the customer group in the trade agreement journal.

Trade agreement - price for cust group
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

If a company has a very special customer, it is also possible to set the price for that exact customer. In this case, just choose the “Table” value in the “Party code type” field and set the customer code in the “Account selection” field.

Trade agreement - price for exact cust
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

To activate the price, the journal must be posted.

Price for quantity

D365FO allows setting prices depending on the quantity that the customer is going to buy. In the example below, I set the price for an exact customer and minimum quantity for the specified price. So the price will be used if the customer buys 10 or more units.

Journal lines - from
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

Smart rounding

The system gives an option to round the prices in the trade agreement journal. To use this option, the smart roundings must be set up.

Smart rounding
The “Sales and marketing > Setup > Prices and discounts > Smart rounding” menu item.

You can find a guide for smart rounding in the “Trade agreements” document the chapter is “Smart rounding”.

Smart roundings can be applied in the journal by the “Adjustment / Apply smart rounding” button.

Smart rounding - apply
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

After the “Apply smart rounding” function was run, the prices in the journal were adjusted in accordance with the smart rounding settings.

How the search price engine works

The key rule of the search price engine is that it searches from the particular to the general. This means, for example, that the system searches the price for the exact customer first. If the price for the customer is not found, then the system looks further for the customer group, and so on.

The important thing is that trade agreements allow setting more than one price that can be applicable for exact conditions. For example, it’s possible to set more than one price for the particular product, or particular customer. In this case the system uses the LOWEST price.

Some details about the logic of searching can also be found in the “Trade agreements” document – chapter “Priority for searching through dimensions.”

How to manage trade agreements

There are many options available for managing trade agreements. First, let’s talk about initial data entry. The most straightforward way is to manually enter trade agreements in the journal, entering line by line by using the “Copy line” button. This option is suitable if it’s not necessary to input many records.

Trade agreement - copy line
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

However, if it’s required to enter hundreds or thousands of records then this approach is not suitable. For bulk uploading, it’s possible to use the “Open sales price journal lines” data entity in the data management module. This option allows uploading records from a file.

It’s also possible to input a trade agreement journal line by selecting already available trade agreements in the system. You can use the “Select” button in the “Overview” tab of the trade agreement lines to resolve this task. When you click the button, the system requests criteria to filter the necessary trade agreements. The example in the image below shows how to select all prices available in the system.

Trade agreement - select
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button, the “Select” button.

When the lines are available in the journal, it’s possible to use Excel to manage them. Click the “Open sales price journal lines” menu to download an Excel file that is connected to D365FO. You can find more information about opening in Excel in this link.

Open in excel
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

Another option for creating a trade agreement journal is to open the “Price (sales)” page from the “Released products” page, then select the prices that are necessary to change, and click the “Edit selected lines” button. The system offers creating a trade agreement journal where you’ll be able to change or delete prices.

Edit selected lines
The “Product information management > Products > Released products” menu item, the “Sell” tab, the “Sales price” button.

To delete prices, click the “Select all agreements to be deleted” button and post the journal.

Select all agreements to be deleted
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

Trade agreements is a very strong functionality. This option complements the basic pricing functionality and gives a lot of flexibility for specifying prices. However, I don’t recommend making your pricing very tricky, because it can be time consuming to support it.

How to determine where the price was taken from

Now let’s have a look at the available options for tracking the settings that were used to determine the price in the sales order. You can use the “Find price” page where “Price and discounts from agreements” and “Product price” are shown. The “Price and discounts from agreements” group contains information from trade agreements and  the “Product price” group has information from the product details.

Find price
The “Sales and marketing > Sales orders > All sales orders” menu item, the “Sales order lines” tab, the “Financials / Find prices” button for the exact sales line.

Another option for tracking the price determination is to use the “Price details” functionality. Please note that this function must be turned on first.

Price details
The “Accounts receivable > Setup > Accounts receivable parameters” menu item, the “Prices” tab.

The price details page shows the price from the exact trade agreement, and also contains information about potential agreements.

Price details - trade agreements
The “Sales and marketing > Sales orders > All sales orders” menu item, the “Sales order lines” tab, the “Sales order line / Price details” button for the exact sales line.

Sales agreements

D365FO offers functionality to manage sales agreements (don’t confuse it with trade agreements as it’s a very different functionality). A sales agreement is a contract according to which a customer must buy products in a specific quantity or amount over an agreed period of time. In its turn, the company offers a special price for the customer.

One of the most important parameter of a sales agreement is the commitment that the company and the customer agreed on. Different commitment types are available in D365FO. You can find more information about sales agreement commitments in this link.

Before you can use sales agreements, at least one sales agreement classification record must be set up.

Sales agreement classifications
The “Sales and marketing > Setup > Sales agreements > Sales agreement classifications” menu item.

There is an example of a sales agreement below, where the price for the exact product is specified.

Sales agreement
The “Sales and marketing > Sales agreements > Sales agreements” menu item, the page of the exact sales agreement.

The system offers a few options to link a sales order to the sales agreement. The first option is to create a new sales order from the sales agreement. To do so, click on the “Release order” button and the system shows the form where it is necessary to provide details about a new sales order. In case of product quantity commitment, the system requests sales quantity for each line of the sales agreement.

Sales agreement - release order
The “Sales and marketing > Sales agreements > Sales agreements” menu item, the page of the exact sales agreement.

When the the sale order was created, the linked sales agreement can be found by clicking the “Attached sales agreements” button.

Attached sales agreement
The “Sales and marketing > Sales orders > All sales orders” menu item, the page of the exact sales order.

The lines of the sales order and sales agreement are linked. The prices are transferred to sales orders as well. You have options to discover linked lines, unlink lines, and create a new link.

Sales agreement - links
The “Sales and marketing > Sales orders > All sales orders” menu item, the “Sales order lines” tab of the exact sales order.

Another option to link a sales order to the sales agreement is to choose sales agreement when creating a sales order.

Sales agreement - sales order link
The “Sales and marketing > Sales orders > All sales orders” menu item, the “New” button.

In this case, when the added product in the sales order matches the product in the agreement, the system links the sales order and sales agreement lines together.

The system allows tracking the fulfillment of sales agreements. Information about fulfillment can be found on the sales agreement page.

Sales agreements - fulfillment
The “Sales and marketing > Sales agreements > Sales agreements” menu item, the page of the exact sales agreement, the “Line details” tab, the “Fulfillment” tab.

The system also has a report which aids tracking the fulfillment of sales agreements.

Sales agreements - fulfillment - report
The “Sales and marketing > Sales agreements > Sales agreement fulfillment report” menu item.

More details about sales agreements can be found in this documentation. A video is also available here. It focuses on Dynamics AX 2012 but it is pretty similar to D365FO and gives a good idea of how it works.

Attribute-based sales pricing

D365FO allows setting sales prices based on the properties of the product’s batch. The idea is that the company has a base price for the product and then adjust it depending on the properties of the batch. The batch’s properties are listed as batch attributes in the system. The price can be calculated based on the values of theses attributes. This method is known as attribute-based pricing.

To understanding this functionality, you need to be familiar with the following D365FO concepts:

  • Batch management and logistics – batches in D365 are used to track products. You also need to know how to register the received quantity in the system.
  • Batch attributes – D365FO allows the tracking property values in a batch, meaning that it is possible to define and track the attributes and values of each batch.
  • Potency and potency management – the term “potency” is used mostly in the pharmaceutical industry and refers to the concentration of active ingredient in the product. Attribute-based sales pricing only works in D365FO if the product is defined in the system as a potency item.

I’ll guide you through the most straightforward way of setting attribute-based sales pricing in D365FO. To make it easier to follow, I’m going to use the example.

Product: M1101 Foam reacting agent
Potency base attribute: Concentration Percentage
Target value of potency: 25%
Actual value of potency: 30%
Base sales price: $60 per bag
Potency adjusted price = $60 * 30/25 = $72
Sale quantity: 5 bags
Net amount = 5 bags * $72 = $360

The steps to follow:

1. Let’s start from batch attributes. At least one batch attribute must be available in the system. If there isn’t, then create one.

Batch attributes
The “Product information management > Setup > Categories and attributes > Batch attributes” menu item.

2. Now you need to make sure that the product is linked to the tracking dimension group where the batch is active.

Tracking dimension groups
The “Product information management > Setup > Dimension and variant groups > Tracking dimension groups” menu item.

3. Now let’s link the batch attribute to the item. For this example, I set a “Product specific” batch attribute.

Product specific attributes
The “Product information management > Products > Released products” menu item, the “Manage inventory” tab, the “Product specific” button.

4. Next, it’s necessary to set a base attribute, which is then used to track the potency of the product. Please note that I also set the “Batch number group” to retrieve the batch number automatically.

Potency
The “Product information management > Products > Released products” menu item, the “Manage inventory” tab of the exact product.

5. It’s time to set up attribute-based pricing details. I did it in accordance with the example we’re following.

Attribute-based pricing data
The “Sales and marketing > Setup > Prices and discounts > Attribute-based pricing details” menu item.

6. Now everything is ready to set a price and link attribute-based pricing to it. The price must be set in a trade agreement which is described earlier on in this post. Here is how I set it.

Trade agreement - lines
The “Sales and marketing > Prices and discounts > Trade agreement journals” menu item, the “Lines” button.

Don’t forget to post the trade agreement journal.

7.This is all you need to set up attribute-based pricing. Let’s add inventory to stock; I used movement journal. When registering inventory, it’s also possible to set a value for the potency attribute.

Registration
The “Inventory management > Journal entries > Items > Movement” menu item, the lines of the exact journal, the “Journal lines” tab, the “Inventory / Registration” button.

Don’t forget to confirm registration.

8. Now we can sell the product. I created a sales order, added the M1101 item, specified quantity, and set all other required parameters. Please note that the base price from the trade agreement is used at this step,, and the attribute-based pricing is linked to the line of the sale order.

Sales order - attribute-based pricing
The “Sales and marketing > Sales orders > All sales orders” menu item, the “Line details” tab, the “Price and discount” tab.

9. What is needed now is to pick and pack the batch we registered above. After that, the invoice can be issued. At this point, the system calculates the invoice’s adjusted net amount.

Posting invoice
The “Sales and marketing > Sales orders > All sales orders” menu item, the “Invoice” tab, the “Invoice” button.

While I was testing this option I noticed that the system always rounded the net amount to an integer. I checked the code and, if I’m not wrong, it’s programmed that way. I can see it in the “averageAdjustedUnitPriceOnServer” method  of the “PdsPriceEstablisher” class, the “calculator.averageAdjustedUnitPrice(0, inventTrans.Qty);” line.

That is all I have regarding sales prices in D365FO. I hope this post was helpful for you. Please don’t hesitate to share your thoughts about this topic in the comments.

Thanks for reading!

One thought on “Sales prices in Dynamics 365 for Finance and Operations

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s