Catalog

Import and Re-import Items from CSV

Item import reads a CSV immediately after selection. Use the supplied 18-column template: new name-and-SKU pairs are created, while exact name-and-SKU matches are updated in place.

Menu path
Inventory -> Items -> Import
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/modules/items.html import action, frontend/modals/import_customer.html shared import dialog, frontend/static/script/js/core/PosnicPro.js importTableFile CSV parser aliases 330 KB limit and result table, frontend/static/Import_sample_files/items.csv current 18-column template, api/src/controllers/items.controller.js itemsImport permission and context, api/src/repositories/item.repository.js importItems validation matching master-data creation in-place update and history, demo.posnic.io Inventory -> Items import dialog reviewed on 2026-09-05

Import Items DetailsDownload CSV Sample before preparing data. Choosing a file starts parsing and import; there is no separate column-mapping screen.
Understand the destination fieldsUse one manually verified item to establish the correct price, tax, stock, SKU, barcode and unit conventions before bulk import.

Before You Import

Import can create products and supporting master data, and a re-import can overwrite prices and stock on matching products. Prepare and approve the file away from the live till.

  • You need Item write permission; the Import control is hidden from users without it.
  • Create one representative item manually, sell and scan it, then use its values as the catalog standard.
  • Take a backup and export the current catalog before a re-import.
  • Import only into the intended branch. Matching and newly created supporting records are branch- and license-scoped.
  • Keep an untouched copy of the approved CSV so every change can be traced.

Download the Posnic Template

  1. Open Inventory -> Items.
  2. Select the down-arrow Import icon above the item list.
  3. In Import Items Details, select CSV Sample.
  4. Open items.csv in a spreadsheet editor without renaming or deleting its header row.
  5. Remove the sample product rows before inserting the shop's real products.
  6. Save as comma-separated CSV. The live browser importer accepts .csv files smaller than approximately 330 KB.

Use the 18 Template Columns

Template columnWhat to enterImport rule
nameCashier-facing product name.Required; name plus itemid identifies an existing row for re-import.
itemidInternal SKU, such as V23-128.May be blank, but blank SKUs make name matching and audit less reliable.
barcode_idScanner code used at the till.May differ from SKU; this is not automatically validated as a GS1 GTIN.
category_nameExact catalog category name.Required; Posnic creates the category if it does not exist in this branch.
supplier_nameExact supplier name.Required; Posnic creates a minimal supplier record when missing.
discount_amount / discount_percentageNumeric discount values; use 0 when unused.Both columns are required, including zero values.
hsncode / hsndescriptionReal HSN code and description when applicable.Optional; a real HSN switches the imported item's tax method to HSN.
tax_name / taxTax label and numeric rate.Tax is required; missing tax records or groups can be created during import.
tax_typeinclusive or exclusive.Required; verify the choice against displayed and receipt prices.
mrp_priceMaximum retail price.Required numeric value.
company_priceCost price.Required numeric value and used for margin reporting.
selling_priceNormal checkout price.Required numeric value.
available_quantityCounted opening/current stock.Required numeric value; re-import replaces the matching item's quantity.
unitExisting unit value such as qty, bottle or pack.Required; Posnic creates a unit with this name/value if missing.
sort_orderNumeric catalog order.Required; use a deliberate sequence or a consistent fallback.

What Counts as New or Existing

Within the import file, Posnic keeps the first occurrence of each exact name-and-itemid pair. It then looks for that same pair in the current branch and license.

CSV rowResultImportant consequence
Name + SKU does not existA new regular, stock-tracked item is created.Sales channel starts enabled; ecommerce and negative stock start disabled.
Exact name + SKU already existsThe existing item is updated in place.Prices, quantity, codes, category, supplier, tax, unit and sort order can change.
Same SKU but different nameIt is not the same match key.Do not use import as a casual rename tool; it can create a second item.
Duplicate name + SKU inside one CSVOnly the first row is retained.Later corrections for the same pair are silently ignored, so deduplicate first.

What Re-import Preserves

When a name-and-SKU match is found, Posnic updates only fields carried by the CSV. It deliberately preserves data the template cannot represent.

  • The item cover photo and additional images are preserved.
  • Track inventory, item status, sales channel, ecommerce, negative-stock behavior and description are preserved.
  • Original creation date and creator are preserved; updated date and user are refreshed.
  • Tracked field changes are written to the item's price/history trail with process Import.
  • The available_quantity cell still replaces current stock, so never re-import an old quantity column.

Import the File

  1. Reopen Inventory -> Items -> Import and select Choose File.
  2. Select the reviewed .csv file. Do not double-click or choose it twice while the request is running.
  3. Wait for the result table. Successful rows show name, category, selling price, quantity and Import status.
  4. If required fields are missing, correct every named field in the source CSV and retry the corrected file.
  5. Close the dialog only after recording the added/updated result and any rejected rows.

Verify Before Staff Use the Catalog

  • Search samples by product name, SKU and barcode.
  • Open new and updated items and inspect category, supplier, tax, unit, MRP, cost, selling price and quantity.
  • Scan representative labels into New Sale and confirm the intended product and price appear.
  • Review item History for re-imported price changes and Inventory Logs for later stock movements.
  • Run a test sale, return it where applicable, and reconcile stock before enabling the catalog for all cashiers.

Troubleshooting

ProblemLikely causeCorrection
Only these file types are acceptedThe selected file is not lowercase .csv.Export or Save As CSV and select that file.
File is rejected before parsingThe file exceeds the browser import limit.Split it into smaller approved batches, keeping each name + SKU unique across the plan.
Missing required fieldsA required header was removed, renamed beyond a recognized alias, or a required cell is blank.Return to a fresh Posnic sample and restore every required column, including zero values.
Unexpected new category, supplier, tax or unitThe CSV text did not exactly match the intended master record.Correct spelling/case, review the newly created record, then clean up only after checking item usage.
Old stock replaced current stockA re-import carried a stale available_quantity.Recount and correct stock using an approved inventory workflow; do not repeatedly re-import guesses.
Product was duplicatedIts name or SKU differed from the existing match pair.Compare both records, move activity deliberately, then retire the wrong record using the documented delete/restore workflow.