Use Bulk Create Product & Service to create multiple Products, Parts, and Services at once using a CSV file.
For inventory rules, see Inventory – Get Started.
Before You Start #
Make sure the following setup already exists where applicable:
- Product Categories
- Warehouses
- Income and Expense Accounts
- Sales Tax Codes
Bulk Create does not automatically create missing Categories or Warehouses.
Step 1 — Download the CSV Template #
Go to:
Product & Service → Import / Bulk Create
Download the Product & Service CSV Template.
Always use the latest template from MESOS.
Do not rename the CSV headers.
The first row of the CSV must contain the column headers.
Delete the example product rows before entering your own data.
Step 2 — Complete the CSV #
Enter one Product, Parts item, or Service per row.
CSV Header Guide #
| Header | Required | What to Enter |
|---|---|---|
| SKU | Yes | Unique item SKU. Example: PROD-001 |
| Name | Yes | Product or Service name |
| Sale_Price | Yes | Selling price. Numbers only |
| Purchase_Price | Yes | Purchase/reference cost. Numbers only |
| Quantity | Yes | Starting quantity. Use 0 when there is no starting stock |
| Type | Yes | product, parts, or service |
| Sales_Tax_Code | No | Specific Sales Tax Code. Leave blank to inherit the company default |
| Category | Yes | Existing Product Category name |
| Unit_Code | Yes | Unit Code such as XUN |
| Classification_Code | Yes | MyInvois Classification Code such as 022 |
| Description | No | Product or Service description |
| Image_Link | No | Direct URL to the item image |
| Income_Account | No | Existing income account code, e.g. 4000 |
| Expense_Account | No | Existing expense/cost account code, e.g. 6001 |
| Warehouse | Product / Parts | Existing Warehouse name. Leave blank for Service |
| Inventory_Tracking | No | Enter Yes or No. Blank defaults to No |
| Inventory_Opening_Total_Value | Conditional | Required when Inventory Tracking = Yes and Quantity > 0 |
| Inventory_Opening_Date | Conditional | Required when Inventory Tracking = Yes and Quantity > 0 |
| Inventory_Opening_Reference | Conditional | Required when Inventory Tracking = Yes and Quantity > 0 |
| Low_Stock | No | Low-stock alert quantity |
| Tags | WhatsApp AI only | Comma-separated AI search keywords |
| Hide_From_AI | WhatsApp AI only | Yes or No |
Inventory Examples #
A. Inventory Tracking On With Starting Stock #
Example:
| Field | Value |
|---|---|
| Quantity | 100 |
| Inventory_Tracking | Yes |
| Inventory_Opening_Total_Value | 4500.00 |
| Inventory_Opening_Date | 2026-09-01 |
| Inventory_Opening_Reference | OPENING-PROD-001 |
MESOS creates the item with:
100 units and RM4,500 opening inventory value.
Purchase_Price is not used as the opening inventory valuation.
B. Inventory Tracking On With Zero Stock #
Example:
| Field | Value |
|---|---|
| Quantity | 0 |
| Inventory_Tracking | Yes |
The opening inventory value, date, and reference can be left blank because there is no starting stock.
C. Inventory Tracking Off With Quantity #
Example:
| Field | Value |
|---|---|
| Quantity | 100 |
| Inventory_Tracking | No |
MESOS creates 100 units as operational quantity.
It does not create an accounting Inventory Opening Balance.
D. Service #
Example:
| Field | Value |
|---|---|
| Type | service |
| Quantity | 0 |
| Warehouse | blank |
| Inventory_Tracking | No |
Services do not use Inventory Tracking or Warehouse stock.
WhatsApp AI Agent Fields #
Tags and Hide_From_AI are only relevant if your company uses the WhatsApp AI Agent module.
Tags #
Example:
mouse, wireless, office, bluetooth
Hide_From_AI #
No — item is available to the AI Agent.Yes — item is hidden from the AI Agent.
If WhatsApp AI Agent is not used, these fields can be left blank/default.
Step 3 — Upload the CSV #
After completing the file:
- Save it as a CSV file.
- Open Product & Service → Import / Bulk Create.
- Upload the CSV.
- Check the column mapping.
- Review any validation errors.
- Click Import.
MESOS validates the file before completing the import.
If a required Category, Warehouse, account, code, or opening inventory value is invalid or missing, correct the CSV and upload it again.
Important #
- SKU must be unique.
- Use
product,parts, orservicefor Type. - Do not use
part. - Category must already exist.
- Warehouse must already exist for Product and Parts.
- Do not use Purchase Price as the Inventory Opening Total Value.
- Tracked starting stock requires the opening value, date, and reference.
To modify existing Products in bulk, use Bulk Update Product & Service instead.