Adjusted unit price through attribut-based pricing

Posted by
Version Française disponible ici

I’ve been digging a little bit to be more aware of this functionality but I haven’t find any end to end tutorial so here. If you are familiar with chemical industry and need to apply some price according to the potency of some components, or if you simply need to adjust prices depending on the values of some attributes, you may need to read what’s coming.

First thing if you need an explanation of the purpose of attribute-based pricing you can find a good video here and the official explanation by Microsoft here.

As you can see, this exists since R2 version.

In the following demo I will focus on a procurement process but you should be able to manage it for the sale process as well.

Here is the first setup to do : having a attribute-base pricing data policy activated : go under Procurement and sourcing > Setup > Prices and discounts > Attribute-based princing details and create a new formula.

Again, the full meaning of this setup is described in the previous links.

Setup batch attribute and released product

After setting up the formula, you will need to setup some stuff on the items. Define the batch attributes is the first step to do. As you can see, you can go under product information management > Setup > Categories and attributes > Batch attributes, and from there you will be able to define some attributes (integer, date, etc).

You can also group them into custom groups you could have setup.

Regarding the item you will need to use a batch active tracking dimension group ! No big surprise here.

Then, for using the attribute-based pricing policy you will need to create a price trade agreement with a certain amount and the link with the formula created on step 1. Note that the attribute-base pricing is available for price agreement only (not discount, total…). In my test here, I’ve setup a purchase price of 10.

Going back to the item, you will need to press the Product specifc button available on the rubbon under Manage Inventory.

Here you will indicate which attributes or groups you want to use for that item.

In the screenshot above I’ve setup a group. But in the screenshot below I’ve setup attributes one by one. For what is next to come I haven’t be able to make it work if I’ve loaded the attributes through a group : bug ?

In Manage Inventory tab of the released product form, you now should be able to specify which of your attributes will be the base attribute used to calculate the price. Note : I’ve setup an auto-increment batch policy but that’s is not mandatory for the process.


I’m testing it through a procurement process. So I’m created a brand new purchase order, and adding the item. At first, the populated price is 10 USD which is the one setup on the trade agreement.

Now, I’m confirming the purchase order, and I will register the receipt. You should now the following form of registration. A new mandatory field is here : the actual value. Here you will register the value for the base attribute of your item for the current batch.

As you can see, I’ve setup 27 for the base attribute (my target specified in the batch policy is 25).

Going back to the purchase order line, you won’t see any impact or change at that stage.

Even if you’re proceeding the product receipt, still no change.

But now let’s run the purchase invoice and see.

Here the Adjusted unit price have been calculated, according to the formula setup on step 1 :

Unit price (10) * Transacation quantity (5) * batch attribute actual (27) / batch attribute target (25) = 54 USD

After posting the invoice, you get back to the purchase order line, and notice that the adjusted unit price has been initialized and so is the adjusted net amout.

You can check the voucher posted for the invoice to see the impact on ledgers as well.

That’s it !



Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.