The role of custom product in manufacturing

In companies that are manufacturing custom products (and most of them are depending on high number of different parameter combinations), the main question is how long does it take to make a quote?

One of the example is manufacturing ALU/PVC windows and doors.

The cost depends on infinite combination of entry parameters (height, width, glass type, color, material, etc.). And, on number of positions in very bill of materials. Since each offer is unique, companies are losing hours and hours of engineering just to calculate the cost in order to make an adequate quote. The biggest problem are the small errors that can adversely affect the profit margin. Usually people ‘recycle’ the quotes! They are giving to customers quotes with similar parameters by default, without being aware that a lot of things have changed on the market.

There are ‘specialized’ solutions on the market that cover only a single type of manufacturing vertically. Such solutions are extremely expensive, so usually that’s not enough for the company. In our example we would need 2 solutions. One for PVC and another one for ALU manufacturing program.

One of such solutions is to enlist a software developer that will program the solution or upgrade the existing one. Not only that this solution is more expensive than the previous one, but the maintenance of such system will become a nightmare in a few years!

ERPAG has a solution to make the most complicated quote in just a few seconds.

That solution is ‘Custom product‘ item type.

In this blog we will explain how to use this option step by step. And, you can test it out on your own with demo data on this link: .

Defining parameters for custom product

The first thing we need to do is to define ‘parameters’.

In our example, the parameters will be ‘window’ type (wood, aluminum), ‘glass type’ (standard, tempered). And also, two parameters with unlimited number of combinations – ‘width’ and ‘height’.

custom fields

Enter these parameters in ERPAG in Custom fields that are Quotation type. To check more information about custom fields follow this link:

Note: You can only enter the custom field in Quotation! You can convert it manually to BOM (bill of materials). Or automatically when you create a Sales Order from the Quote. This is why we link the parameters to custom fields – quotation type.

custom fields quotation

Define them in ‘Document items’ section.

After setting up custom fields, the newly created fields will appear in Quotation. In section where you select items!

Note: The newly created fields will appear as last columns. So you probably have to set them to wanted position or even enable them to be visible. You can do that in More > Columns (in the very items table/section).

Defining logic of a custom product

We are defining logic through Blockly Script.

Note: Blockly is a Google Visual Programming Language ( ). You can check one of the blockly script integration with ERPAG on this link:

In order to implement logic, we have to create ‘Custom product’ item type (Creating from Products and Services list).

create custom product

You enter the logic in a blockly script in a separate panel.

blockly script

More options in BLOCKLY

Besides standard Blockly options (Logic, Loops, Math, Text, etc), we added special options linked to manipulation through ERPAG.


blockly script parameters

Here are blocks that mark the entry parameters – ‘custom fields’ (we previously explained in this blog how to define them), the elementary item data from quotation (SKU, Description, Unit of measure, Requested quantity). These blocks return value like text or numeric.

Generated item

blockly generated item

This menu contains blocks that are used for logic check and setting value of generated product.

In picture above, the blocks marked red show the logic check of entry parameters. This disables generating new product if the logic requirement is not correct. In our example, ERPAG will show an error if width is less than 40. Which in practice means that this custom product’s width can’t be less than 40 cm. In order for this to function, you have to set ‘Error’ block value to ‘true’. And optionally, you can define ‘Error Message’ for easier managing.

The blocks marked green set product description. In our example, ERPAG will add width x height to the product description from Quotation. Which is actually the description of the custom product. For example, ‘Casement window double (180×150)’.

ERP – Functions

ERP blockly functions

The special functions to create BOM (Bill of materials) are in this menu.

The block that adds product (component) based on SKU and quantity is marked green (in picture below).

add sku and quantity blockly

In our example (on picture above, marked green) we are adding two times item (SKU 0116 – Float glass 3 mm) with calculated square meters. We are adding it two times because dual panel consists of 2 glasses. The square meters are calculated based on entry parameters and we are adding the result in ‘qt_m2’ variable.

With blue color we marked blocks that calculate girth based on entry parameters, and we are adding SKU 0118 (‘Spacer bar’).

If we record now this ‘custom product’ and activate BOM (Bill of materials) generating with entry parameters ‘Width (cm) = 180’ and ‘Height (cm) = 150’, we would get a new product with corresponding data.

blockly bill of materials
product bill of materials

Adding work operations

We can add work operations based on the same principle. But, as a parameter, we would take the work operation key and required time in days, hours and minutes.

blockly work operations

In our example we added work operation ‘W002’ (‘Bonding glass’) which lasts for 1 hour and 15 minutes. But, only if the surface (variable ‘qt_m2’) is higher than 3, or 45 minutes if it’s not.

If entry parameters are ‘Width (cm) = 210’ and ‘Height (cm) = 160’ then the generated BOM would look like this:

bom based product

Eg, the work operation ‘Bonding glass’ would last for 75 minutes (1 hour and 45 minutes). Because the square footage is higher than 3 m2.

Block ‘Custom product’ is for adding previously defined ‘Custom product’. With this block you are achieving a multilevel feature. Eg, You can add new custom product with appropriate parameters in existing Custom BOM based product.

blockly multilevel bom

Note: Adding custom product to a custom product is an advance option. We will try to explain it in one of our future blogs!

Generating BOM based custom product

You can’t use custom products in Sales Orders or Work Orders directly. However, there are two other ways! One is through Quotations (which we will explain further in this blog), or, to generate a BOM item from the custom product itself.

custom product bom

As you could see from previous examples, you do that through “Bill of materials’ button (picture above).

That’s when you will get a window to enter parameters.

enter parameters

And a new ‘tab’ with newly suggested item!

new product

Note: Each item that you generate from Custom product is unique. It has it’s own SKU and corresponding BOM (bill of materials).

The new product will ‘inherit’ some data from custom product. Such as ‘tax category’ and ‘product category’.

product category

We also set that the selling price is formed by ‘Markup/Margin’. The selling price is automatically calculated based on the estimated cost.

Further, you can use this generated product in Sales Orders, Work orders. And manipulated like all other, regular items!

Quotation and custom product

Another way of using is in when forming a quotation. Like we mentioned in the beginning of this blog – this is the most common way of using custom products.

You simply enter custom product items (like regular items), and set up corresponding custom fields value!

quotation custom product

And that’s it! Once you save it, ERPAG will automatically recalculate cost! And if the selling price is set to ‘margin/markup’ – it will be automatically calculated as well.

cost and selling price

Note: In order to avoid unnecessary ‘piling’ of items (coming from the assumption that not every quotation will be accepted, or, at least, not immediately), ERPAG won’t automatically create BOM (bill of materials) product! ERPAG will save such items as ‘drafted’.

By activating ‘link’ on the item you will open a drafted custom product.

drafted product

Here you can define the product description. And, eventually, make some corrections!

Depending on the business type, closing a quotation can take months. During that time, prices can change on the market. For example, the price of aluminum can rise up! So, we also have update option (green arrow on the picture bellow). This option will recalculate all custom products. It will update the cost and price according to the new parameters.

update bill of materials

Before we convert quotation to a Sales Order (‘Copy to new’ option), you have to convert custom product to BOM based product (red arrow on the picture above).

closing a quote

Then you can generate a Sale Order and start the production!

Note: You can individually convert each custom product from quotation to a BOM based product. Simply go to ‘draft’ product via hyperlink and hit ‘convert to – Bill of materials’ button.

Custom products on the customer portal

You can also use custom product in customer portal! They will appear like all regular items (if it’s allowed through the search scope). The only difference is that these items don’t have a selling price. Which is logical as we don’t know the parameters yet.

customer portal

But, once the customer clicks on ‘add to cart’ button, then he will be able to choose the parameters. After that, he can ‘calculate’ the price!

customer portal

Note: You will only have offered the data used in the custom product in the customer portal.

After the price is calculated, the customer can add the item to the cart!

add to cart

Once the customer checks out, or places the order, the Sales Order will have BOM based products generated directly.

This option is also available in Customer Portal mobile app!

mobile app customer portal

Erpag Support

October 2020.

Start NOW

Read More

Related Posts

How Great Inventory Software Can Help Fight Inflation

In today's rapidly fluctuating economy, businesses face the daunting challenge of fighting inflation. Rising costs can erode profits and disrupt operations, making it essential to adopt strategies that mitigate these impacts. One powerful tool in this battle is...

read more
​ERPAG API – Xero OAuth 2.0 authorization

​ERPAG API – Xero OAuth 2.0 authorization

In this instruction blog, we will describe how to create OAuth 2.0 API keys on your Xero account. These API keys are necessary in order to make API calls from ERPAG via Blockly scripts. The instructions show how the process itself currently looks. If in the meantime...

read more