Plugin: Supplementary Products

From iDempiere en


This plugin is for adding supplementary products functionality to idempiere (We think it should be into the trunk but we made it is a plugin to not break current implementations).

So what's a supplementary product?

A supplementary product is a product that's added to a main product to make it complete.

Let's say you need to sell a bottle of milk, but you know that the bottle of milk is one product and the empty bottle is another product and the customer has to pay for both. Then the empty bottle is the supplementary product for the bottle of milk. You can not sell the first one without the second one.

This functionality can also be used for setting up promotions or kits. If you have a promotion like when someone purchases 20 bottles of milk you get a free glass. The glass is the supplementary product and will be added by default.

This functionality adds:

  • Two fields in Related tab in product's window: UOM and Qty.
  • One field in sales order line and purchase order: Master Order Line.
  • One field in invoice (customer)/(Vendor) line: Master Invoice Line.

Note: This plugin was thought as a complement to a bigger feature to support deposit and refunds. If you're interested in that or have suggestions feel free to contact us

If you want to provide additional comments, please use the Discussion page


We will guide you through an example. If you prefer you can just check the Configuration Steps

In this guide a product "The crazy cow milk" product will be created and two supplementary products will be used for two different cases. Your company sells "The crazy cow milk" in two presentations. A 6 pack of milk and single bottles. If a single bottle is purchased the empty bottle product will be add to the purchase. If the 6 pack is sell then you charge for 6 empty bottles and an empty 6 pack case.

So assuming than the three products are already created (Empty bottle, 6 pack case and The crazy cow milk). In this case the 6 pack case is a BOM product non stocked that is made of an empty 6 pack and 6 empty bottles.

To create the supplementary products you have to follow this steps:

In the product window select the product that will be the master record (In this case The crazy cow milk).


As you can see in the image the main UOM is bottle and there's an UOM conversion to a 6 pack. So now go to the Related tab and select Supplemental as the related product type. You can see the UOM field (This field is for conditional purpose).

  • The selected UOM defines that only the lines where this UOM is set this product will be added
  • The quantity field defines how many of this product will be added per each master product. In this case 1 six pack will be added per each Milk 6 pack selected in an order/invoice line.


So now in this case a 6 pack case will be added when someone wants to get a 6 pack of milk.

That's all. Now you have your supplementary products.

Configuration Steps

  • Create all the products, master product and supplementary products.
  • In the main product go to the related tab and create a new record for each supplemental products related to the master product.
    • Select Supplemental as the Related Product Type.
    • Fill the UOM field if this product will be added only when this UOM is selected in the Invoice/Order line.
    • Fill the Qty field to set up the quantity of related products that are add per each master product. If the qty is set to 0 then only one product will be add.


Once you have all your related products set up you can create the invoice(Customer/(Vendor), Purchase/Sales order lines of the main product and the supplementary products lines will be created automatically.

For the example use above we created a line with a six pack selected as a UOM


When we click the save button one additional line is created with the supplementary product with a reference to its master product.


Additionally when the master line is deleted, the supplemental lines are deleted also.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.