What is Bill of Materials?
Bill of Materials is where you combine one or more existing inventory items into a single sellable package, multi-UOM, bundle, or recipe item.
It has differentiated into 4 different type of package:-
Pre-Pack: to set package item such as sauce, take away pack, or a fixed hamper set (e.g. for festival season). The items inside are fixed and cannot be exchanged during sales — quantity is packed ahead of time. Barcode can be printed based on the Package Code.
Post Pack: to set multiple UOM for 1 single item, e.g. item in box, item in bag — such as Twin Pack, Box, Dozen. User sets the quantity fraction for how many single units make up the pack (e.g. 1 Box = 24 pcs); this is also referred to as a Child Code. Barcode can be printed based on the Package Code.
Bundle: to create package item for camera, user may change the item during sales, suitable for retail POS. Unlike Pre-Pack, the items inside a Bundle can be exchanged for other items at the point of sale.
Recipe: to set menu item for front end F&B POS
How to find Bill of Material
Go to Inventory → Bill of Materials
Screen Overview
Every Package Type shares the same base layout:
- Top toolbar — New, Save, Search bar, Delete (top right)
- Package Code — the item code that will represent this package/recipe
- Package Name — the display name of the package/recipe
- Package Type — dropdown on the top right corner: Pre-Pack, Post-Pack, Bundle, Recipe
- Find Item (green button) — search and select raw material item(s) from inventory to add to the grid
- Delete (red button) — remove a selected row from the grid
- Add Item — search field with barcode scanner icon to quickly add an item by code/barcode
The columns available in the item grid, and the totals shown at the bottom, differ depending on the Package Type selected — see each section below.
To Create Pre-Pack
- On the top right corner, click the drop down on Package Type. Select Pre-Pack.

- Fill in Package Code by creating an Item Code
- Fill in Package Name as Item Name
- Click Find Item to search the item code. A list of all the items in your inventory will appear for you to choose from. You may search by item name or code. Select the item and Add the item (multiple items can be selected at one go).
- At Quantity & Unit Price, click to edit the quantity of raw material and the unit price of the raw material.
- Key in the percentage (%) for Yield and Cost Propotion of the raw material (if any).
- When the desired has been altered, click Save (located at the top left corner).
Pre-Pack Grid Fields
| Field |
Description |
| Item Code / Item Name |
The raw material item added via Find Item / Add Item |
| Cost |
Last cost of the raw material item (system value) |
| Unit Price |
Selling price of the package (editable) |
| Quantity |
Quantity of the raw material required to make 1 package unit (editable) |
| Average Cost |
Weighted average cost of the raw material item (system value) |
| Yield % |
% of the raw material that is usable after preparation, e.g. 100% = no loss (editable) |
| Cost Proportion |
% this item contributes towards the total package cost, used for cost allocation across items (editable) |
| Waste Quantity |
Quantity lost during preparation, derived from Yield % |
| Actual Quantity |
Quantity actually required after accounting for Yield % / wastage (editable) |
| Subtotal Cost |
Cost × Actual Quantity for this line |
| Item UOM |
Unit of measurement of the raw material item |
Bottom of screen: Total Cost, Total Price, Total AVG Cost for the whole package.
To Create Post-Pack
- On the top right corner, click the drop down on Package Type. Select Post-Pack.

- Create a Package Code by creating an Item Code
- Create a Package Name as Item Name
- Click Find Item to search the item code. A list of all the items in your inventory will appear for you to choose from. You may search by item name or code. Select the item and click Add to add the item.
- At Quantity, click to edit the quantity of raw material to make the Post-pack item. Additionally, update the UOM Name for this Postpack.
- When the desired has been altered, click Save (located at the top left corner)
Post-Pack Grid Fields
| Field |
Description |
| Item Code / Item Name |
The raw material item added via Find Item / Add Item |
| Cost |
Last cost of the raw material item (system value) |
| Unit Price |
Selling price of the package (editable) |
| Quantity |
Quantity of the raw material used per package unit (editable) |
| UOM |
Unit of measurement to be printed on the receipt/label, e.g. Box, CTN, TP |
| Average Cost |
Weighted average cost of the raw material item (system value) |
| Subtotal Cost |
Cost × Quantity for this line |
Note: Post-Pack does not use Yield %, Cost Proportion, Waste Quantity or Actual Quantity — those fields only apply to Pre-Pack and Recipe.
Bottom of screen: Total Cost, Total Price, Total AVG Cost for the whole package.
To Create Bundle Item
- On the top right corner, click the drop down on Package Type. Select Bundle Item.

- Create a Package Code by creating an Item Code
- Create a Package Name as the Item Name.
- Click Find Item to search the item code. A list of all the items in your inventory will appear for you to choose from. You may search by item name or code. Select the item and Add the item.
- At Quantity, click to edit the quantity of raw material.
- When the desired has been altered, click Save (located at the top left corner)
Bundle Grid Fields
| Field |
Description |
| Item Code / Item Name |
The item added via Find Item / Add Item |
| Cost |
Last cost of the item (system value) |
| Unit Price |
Selling price of the bundle package (editable) |
| Quantity |
Quantity of the item included in the bundle (editable) |
| Average Cost |
Weighted average cost of the item (system value) |
| Subtotal Cost |
Cost × Quantity for this line |
| Item UOM |
Unit of measurement of the item |
Bottom of screen: Total Cost, Total Price, Total AVG Cost for the whole bundle.
To Create Recipe Item
- On the top right corner, click the drop down on Package Type. Select Recipe Item.

- Create a Package Code by creating an Item Code
- Create a Package Name as the Item Name
- Click Find Item to search the item code. A list of all the items in your inventory will appear for you to choose from. You may search by item name or code. Select the item and Add the item.
- At Quantity & Unit Price, click to edit the quantity of raw material and the unit price of the raw material.
- Key in the percentage (%) for Yield and Cost Propotion of the raw material.
- When the desired has been altered, click Save (located at the top left corner)
Recipe Grid Fields
| Field |
Description |
| Item Code / Item Name |
The raw material item added via Find Item / Add Item |
| Cost |
Last cost of the raw material item (system value) |
| Unit Price |
Selling price of the recipe/menu item (editable) |
| Quantity |
Quantity of the raw material required to make 1 recipe unit (editable) |
| Average Cost |
Weighted average cost of the raw material item (system value) |
| Sale Type |
Dropdown — All, Dine In, Take Away, Delivery. Determines which sales channel this raw material line applies to. |
| Yield % |
% of the raw material that is usable after preparation, e.g. 100% = no loss (editable) |
| Cost Proportion |
% this item contributes towards the total recipe cost (editable) |
| Waste Quantity |
Quantity lost during preparation, derived from Yield % |
| Actual Quantity |
Quantity actually required after accounting for Yield % / wastage (editable) |
| Subtotal Cost |
Cost × Actual Quantity for this line |
| Item UOM |
Unit of measurement of the raw material item |
Because Recipe supports different Sale Types, the totals at the bottom of the screen are split by channel:
- Total Cost (Dine In) / Total Cost (Take Away)
- Total Price
- Total AVG Cost (Dine In) / Total AVG Cost (Take Away)
How to Set difference Sales Typed Recipes
In F&B POS, can had difference Sales Typed such as Dine In, Take Away and Delivery.
Set the Sale Type column on each raw material row to control which channel it applies to:
Example: Dine in Recipe will had the Normal Raw Material, NOT had Packing Material
Example: Take Away Recipe need to provide the Sauce and Cutlery.
Example: Delivery Recipe needs to provide the Sauce, Cutlery and Packing Material
FAQ
1. Can i check Xilnex bundle item can bundle serialize item in?
Answer: Yes can, in Xilnex can add serial item into the Bundle and sell to customer.
2. Is it possible to make the changes by using an import file? Would like to know if update item price via Import Item, is it the expected behaviour if the price is not reflected?
Answer: Yes possible, the price for BOM item is similar as normal item so item import able update the price of BOM/Package item. Its should be update price through import, please consult with our team if there are any issue happen.
3. How to create bundle item and sub items?
Answer: The bundle item can be create from Bill of materials module or from Item form and Stock Type as Bundle, but the process to add sub item into the bundle will only able to proceed in Bill of material (for user using Classic only, if using Portal can direct add from Item form).
4. When selling a bundle item, does it deduct stock from the bundle item itself or the sub-item's stocks?
Answer: Bundle item itself don't have stock keeping unit so the stock deduction for Bundle item will be happen with the subitem's stocks only, the parent item / bundle item will not have any stock deduction records.
5. Whether Xilnex has a feature that allows us to create a Combo Set (bundle package), while automatically deducting the individual inventory items.
Answer: The expected scenario above can be achieve by using either Bundle package type or Recipe package type, bundle item will mainly used for retail sales scenario while recipe item more on F&B sales scenario, but the Recipe item type able to use for retail item as well.
6. How to handle as per scenario: one individual pack of tissues is priced at RM2.40, and there are 10 individual packs bundled together in one bag. I would like to set it up so that when I scan the barcode on the bag, the system automatically records it as 10 packs, rather than requiring me to scan each pack individually. Could you please advise me on how to configure this in the system?
Answer: Suggest to use Postpack package type to create the package item for 10 packs of item into 1 bigger pack. From the sample scenario, the postpack need to contain the individual pack as sub-item and set as 10 quantities. In POS level, the cashier can scan the barcode printed with Postpack package item to sell as 1 quantity with stock deduction with subitem.