AX 2012–Kitting revisited

I wanted to revist the blogpost I created on kitting, since the kitting is now built also for AX 2012.  It is a simple and easy to use customization that many of our customers appriciate, spesially since it is included in the same model as the Centralized product information form.  I must excuse the picture quality in this post, but I’m a DAX expert and not a perfect blog stylist.

Kitting is a great alternative for companies that are not equipped with finished goods warehouse facilities or cannot afford the capital expenditure of setting up a finished goods warehousing facility. Your company can take advantage of the services that are necessary to forward a product to market quickly by keeping the component on stock instead of the finished customized product. With kitting you can also speed up the order processing, because no production orders are needed.

Kitting and sales order

One of the requirements is to show the kitting structure in the sales order form in Dynamics AX. Kitting stipulates that there is a hierarchy of items, where only the bottom level is real items that are purchased, stocked and priced, while the upper levels are phantom BOM items. When a customer orders a product, the customer only need to relate to the uppermost BOM-level, while the warehouse workers are picking the actual contents of the kit.


Explosion of a phantom BOM items on a sales order is built into the order line processing procedure, the procedure that takes place every time a sales line is inserted, deleted or updated.

The parameter field Phantom that exists on the item table. This parameter defines if a BOM item is exploded on the sales line. Explosion of BOM item is performed on all BOM levels and all the phantom BOM levels create sales lines marked as a kit, while real items create normal sales lines. The relation between levels for the Kit sales lines is established via a new reference field related to the sales line. When using the sales order screen, the order looks just like the normal sales order screen:


By clicking on the “Show/Hide kit lines”, all lines are shown inside each kit:


The bottom-level sales lines (real stocked items) should be editable only in terms of quantity, unit price, line discount amount and multiline discount amount, the rest: delivery dates, etc. is derived from the uppermost line.

The structure of BOM cannot be manually adjusted: sales lines that are sub levels of the top phantom BOM cannot be manually added, but unwanted lines can be deleted.

Price and discount calculations

Price amounts and discount amounts are set on the lowest level of BOM only. The price on the upper level is always the sum of the sub lines.



Calculation direction

Sales quantity

Calculated downwards

Unit price

Calculated upwards

Discount amounts

Calculated upwards

Discount percent’s

Calculated downwards

Line amounts

Calculated upwards

Inventory transactions to kits

The final kits do not have inventory transactions. The reason for this is that kits are “virtual items” that do not need a physical picking. It is the sub-components that are picked. Kits are still being packing slip updated and printed on the invoice. But still it is possible to see the order process flow of kits, since this can be calculated on the basis of the kit lines.  The line quantity form will therefore still give meaning as shown here.


The Kitting form letter setup form

The display of the kitting structure can be shown per item and customer on confirmation, packing slip and invoice. To handle this, a new form Kitting form letter setup is available. This form is following the standard “Table, Group, All” Microsoft Dynamics AX pattern. Here the user can specify if the kitting structure is printed on confirmation, packing slip and invoice for a particular customer.


The form is available under Sales and marketing—>Common—>Kitting—>Kitting form letter setup.

If the Show kitting structure is enabled, the form letter will show the kitting structure as follows:


Kitting FAQ

This sections covers information related to Assembly and Kitting, and is described as a FAQ.



I have a kitting line, but I don’t have any inventory transactions associated to it. Why?

All exploded kitting lines do not have any inventory transactions. It is only the real items that have inventory transactions. All statuses on the kit are based on the containing lines.

Why can’t I change sales price on a kit.

Price on a kit is based on the prices on each included item. To change the price of a kit, you need to change the prices on the included items.

How do I set up an item as a kit?

A kit needs to be a BOM. The flags ‘Phantom’ also need to be enabled. (References tab page in the Item details form)


In addition, the kit item needs to have a valid BOM associated to the kit.

How do discounts work on kits?

In AX you have 2 types of discounts. Discount amount and percent. Discount amounts need to be set on the separate kit lines, while percent can be set on the kit itself.

How do taxes work with kits?

Taxes are calculated on the kit lines, and not on the kit itself. The taxes and VAT is therefore calculated like standard AX.

I see on the confirmation and invoice that only the kit contains the sales value, and the lines are zero.

Yes. This is how kitting works. The sales value and prices are placed on the kits and not on the kit lines. This is also the perception of the customer when he receives the form letter.

Can I manually add and remove kit lines?

Kit lines cannot be manually added, but they can be manually removed The reason for this is that kitting is supported in a multilevel structure.

How can I see the kit-lines on my sales order?

You can see the kit lines by clicking on the button Show/Hide kit lines on the sales order form, or double click on the clip_image014 symbol on the lines

How can I take out statistics on sale of a kit?

The customer invoice will contain the information required. Therefore use information from here when creating additional statistics/reporting.

I see I get a total available, picked, delivered and invoiced on kits. How is this possible?

The total available is calculated on the basis of the kitting lines. The most restricting kit line will decide the total available on the kit-header.

Can I part deliver a kit?

Yes, by using the deliver now column, and then starting the picking posting. But it is only possible to part deliver whole kits. You should not part deliver sub-items in the kit.

How is returns and credit notes handled for kits ?

Since kits are items that do not have inventory transactions, all returns must be done on the kit-lines. When creating a return on kitting items, it will only be the kit-lines you can take a return on.

If this is something that is interesting for your implementation let me know.  The solution has unfortunately a too large footprint in DAX to be distributed as a product, so it is being delivered as a customization.

58 thoughts on “AX 2012–Kitting revisited

  1. Hello Sir,
    Could you please share the last working axmodel with your experience using this product?
    Also sharing more details about the installation, it would be perfect.

    Many Thanks in advance.


  2. Hi Kurt. We installed your axmodel in an R3 CU13 environment, with call center and retail enabled, and I went through your code and merged it with that AX environment. My boss said it was OK to share with you the updated axmodel file. If you would like it, I recommend creating a GitHub project for this and uploading your existing files, and I can then post fork to it.
    Alternatively, if you prefer, I can just give you the axmodel file and you can do with it what you like. (Note: I took out the changes to the PurchTable form entirely, since we don’t use kitting in purchasing.)
    Looking forward to hearing from you.

    Liked by 1 person

  3. Hi Kurt,

    Is this code still available to download from somewhere? I tried downloading the archive from the CodePlex site, but it did not include any X++ code.

    Thanks for everything you do.

    Daniel J. Zook


    • I think I found the code. The archive file downloaded from CodePlex obfuscates the files in the releases/0 folder. One has to open the releaseList.json file in the releases folder and use that to rename the files in the /0 folder, which are PO and axmodel files, plus documentation. Hope this helps anyone else who finds this page.


  4. Hi Kurt,
    Very interested in this. We are running AX 2012 Feature Pack. Is your solution compatible with our version?

    Jim Czerniak


    • Sorry. The kitting solution have a to high footprint for Dynamics 365. It would have to be completely rewritten to support extensions, and it is currently simply too much work for a freeware project.


  5. Hello Kurt,

    Can you please guide how we can print all the components defined in Retail Kit when the kit is punched in POS.

    For example a Kit A is made of 3 items, I want the item names of the 3 items in the kit.

    Please suggest.

    Eagerly waiting for your response.



  6. Hi Kurt

    Looks like your kitting solution is still in demand. I know AX now has retail kits but I don’t see a way to explode the components on the SO for picking. Std BOMs almost gets your there… Is your solution still offered or was a std process introduced into AX I am unaware of.



  7. Hi Kurt, I am interested in this topic. It seems that the solution is no longer available on the link that you posted. If you could send via e-mail, that would be great! Thanks.


  8. Hi Kurt, I’m very interested in looking at this solution, can you share it with me? The codeplex link is unavailable …


    • Hi Kurt, I’d like to have a look at the kitting solution too, if you could email the project that would be awesome. Thanks.


      • Hi Kurt, I’d like to have a look at the kitting solution too, if you could email the project that would be awesome. The codeplex link is unavailable. Thanks.


  9. Hello Kurt,

    It’s an very interesting blog, I really appreciate your efforts on this.
    Please could you mail me how much is customization and how much standard in above blog because I couldn’t see all these things in standard AX-2012 CU7.

    Thanks in advance.


  10. Hi, We want to have different barcode based on packing unit. For eg., I tem x has Outer Carton, Inner Carton and piece. Each has separate barcode and separate unit price. How can we achieve this? Thanks in advance


    • This is supported in standard AX, by having several barcodes assigned to an item, and where the unit is spesified in the barcode table. Also prices can be spesified ber unit. 100% standard.


      • Thank you for the prompt reply. Is there any simple step by step document about this? Thanks again


  11. Pingback: Kitting for AX 2012 R2 CU6 now available in Codeplex - Warehouse Management and Distribution - Microsoft Dynamics AX - Microsoft Dynamics Community

  12. Pingback: Kitting for AX 2012 now available in Codeplex | Kurt Hatlevik – Dynamics Ax Blog

  13. I received your email. Thank you.
    Are you able to set up a demo and Questions and Answers session? We are interested in the product and would like to evaluate at the next level.
    Please advise your availability. We are located in UTC-05:00 Eastern Time Zone.


  14. Hi, need this customization for a project, can you guide me how we can get it? we have our functional and technical team who can take care for it once getting the XPO if any amendment is required..


  15. I am currently looking to utilize kitting for AX 2012, is this a standard feature or an add-on? As I can not find any information and I have tried setting this up with no success in getting the item to explode on the sales line. Thanks!


Leave a Reply

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

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

Facebook photo

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

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.