Help Center

Bulk Import — Items

For: Anyone setting up the product/material/service catalogue in bulk

Create many items at once from an Excel/CSV-style sheet. This flow creates the item records themselves — it does not set opening stock. Setting starting quantities is a separate step (Bulk Import — Opening Stock).

Warning: This flow creates the item only, with every warehouse at zero stock. It never sets opening quantities or posts an opening-stock journal — use Bulk Import — Opening Stock for that, after the items exist.


How it works

Every bulk upload has two steps. You run the same sheet through a Check first, fix anything it flags, then run it again to actually Create the items.

StepWhat it does
1. Check (recommended)Reviews your entire sheet and lists every row with a problem — without saving anything. Fix the issues and check again.
2. CreateOnce every row passes, upload again to actually create the items.

Danger: Creating is all-or-nothing: if even one row has a problem, no items are created — the whole batch is rolled back. Check first.

Required in every row

These must be filled in correctly on every row:

FieldWhat's needed
Item NameRequired; unique within the sheet and not already used in your company.
Item TypeOne of: RM, FG, SEMI_RM, CONSUMABLE, TRADE, SCRAP.
Item CategoryGoods or Service. (A Service item must have Track Inventory turned off.)
Unit (UOM)A valid unit code (e.g. NOS, PCS, KGS, LTR, BOX, MTR …).
Item GroupMust match an existing Item Group name for your company.
GSTRequired (free text). Note: it is stored but not linked to a tax master through this flow.
HSN/SAC CodeRequired (free text).
At least one roleEach item must be Sellable, Purchasable, or Track-Inventory — at least one.

Optional fields with rules

These are optional — but if you fill them in, they must follow these rules:

FieldRule if you fill it in
If SellableSelling Price must be greater than 0, and a Sales Account name is required.
If PurchasableCost Price must be greater than 0, and a Purchase Account name is required.
If Track InventoryAn Inventory Account name is required.
Track Inventory (default ON)If you don't set it, it defaults to ON — which then requires an Inventory Account. A Service item must set it OFF.
Fields for an OFF roleLeave price/account fields blank for any role that's off, or the row is rejected.
Description / Model No / Sub Item Group / StatusOptional.

Must match existing records

These must exactly match existing master records, case-sensitively (leading/trailing spaces are trimmed, but capitalization must match). Note that GST and HSN are accepted as free text and are not matched to any tax/HSN master.

FieldWhat it must match
Item GroupMust exactly match an existing Item Group name.
Sub Item GroupIf provided, must exist. (It is not checked to belong to the chosen Item Group.)
Sales AccountMust match an existing Income account.
Purchase AccountMust match an existing Expense / COGS / Other-Expense account.
Inventory AccountMust match an existing Stock account.

Duplicates & uniqueness

SituationWhat happens
The same Item Name appears twice in your sheetRejected — item names must be unique within the upload.
The Item Name already exists in your companyRejected — it's already on record.
Item numberNot taken from the sheet — it is always auto-generated on create.

Common mistakes

If a row is rejected, it is usually for one of these reasons:

If this happens……here's what it means
Item Name missing or duplicatedEvery row needs a unique name.
Item Type not one of the allowed valuesUse RM, FG, SEMI_RM, CONSUMABLE, TRADE, or SCRAP.
Service item with Track Inventory onA service item cannot track inventory — set Track Inventory off (it defaults to on).
Sellable but no Selling Price / Sales AccountA sellable item needs a price > 0 and a matching Income account.
Account / Item Group / Sub Item Group name doesn't matchMust match an existing record exactly (case-sensitive).
Unit or GST or Category missingThese are required — a missing one rejects the whole sheet up front.

What happens on the final step

  • Each item gets a sequential item number using your company's Item numbering (default prefix I-).
  • For every non-service item, an inventory record is created with all active warehouses seeded at zero stock and zero rate.
  • Items are created in the same order as your sheet.
  • GST is stored as text and is not linked to a tax rate through this flow; opening stock is not set here.

Recommended way to work

  1. Build your sheet with the items you want to add.
  2. Make sure Item Groups and the Sales/Purchase/Inventory accounts you reference already exist, spelled exactly.
  3. Run the Check step first and review the problem rows.
  4. Fix each issue and re-check until every row passes.
  5. Run Create to add the items. Then use Bulk Import — Opening Stock if you need starting quantities.