CSV Import
CSV import lets you add or update many products at once by uploading a spreadsheet file. This is especially useful when onboarding a new store, migrating from another system, or receiving a large shipment from a supplier.

Before You Begin
Before importing, make sure you have:
- A CSV file formatted according to the requirements below.
- Categories and brands already created in Brother POS (or plan to let the import create them).
The easiest way to get the correct CSV format is to export your existing products first. The exported file uses the exact column structure the importer expects. Use it as a template.
Accessing the Import Tool
- Navigate to Products in the top navigation bar.
- Click the Import button (or Import / Export > Import CSV).
- The import dialog opens.
CSV File Requirements
File Format
| Requirement | Details |
|---|---|
| File type | .csv (comma-separated values) or .xlsx (Excel) |
| Encoding | UTF-8 (for CSV files) |
| Delimiter | Comma (,) for CSV files |
| Header row | Required — the first row must contain column names |
Required Columns
These columns must be present and populated for every row:
| Column Name | Description | Example |
|---|---|---|
name | Product display name | Blue Dream 3.5g |
sku | Unique stock-keeping unit | BD-35-001 |
price | Pre-tax selling price | 29.99 |
Optional Columns
These columns are recognized by the importer but can be left empty:
| Column Name | Description | Example |
|---|---|---|
cost | Wholesale cost | 18.50 |
description | Product description text | Premium hybrid flower |
category_names | Category names, comma-separated for multiple (created if they do not exist) | Flower |
brand | Brand name (created if it does not exist) | Green Growers |
supplier_name | Supplier name (free text field) | Valley Distributors |
current_stock | Starting stock quantity | 50 |
low_stock_threshold | Low stock alert threshold | 10 |
active | Whether the product is active: true or false | true |
strain_type | Cannabis strain: indica, sativa, or hybrid | hybrid |
thc_content | THC potency as a decimal | 22.5 |
cbd_content | CBD potency as a decimal | 0.8 |
weight_value | Product weight value | 3.5 |
Cannabis-specific columns (strain_type, thc_content, cbd_content) are only processed if your store has cannabis features enabled. They are silently ignored otherwise.
Variation Rows
To import products with variations, use the parent_sku column to link variation rows to their parent product. Variations are linked to parent products using the parent_sku column, not by grouping rows by product name.
| Column Name | Description | Example |
|---|---|---|
parent_sku | SKU of the parent product this variation belongs to | BD-001 |
variation_name | Name for this variation | 3.5g |
Example with variations:
name,sku,price,cost,category_names,variation_name,parent_sku,current_stock
Blue Dream,BD-001,0,0,Flower,,,0
Blue Dream 1g,BD-001-1G,12.99,8.00,Flower,1g,BD-001,100
Blue Dream 3.5g,BD-001-35G,29.99,18.50,Flower,3.5g,BD-001,50
Blue Dream 7g,BD-001-7G,54.99,35.00,Flower,7g,BD-001,25
The importer uses the parent_sku value to associate each variation with its parent product.
Import Process
Step 1: Upload the File
- Click Choose File or drag and drop your CSV onto the upload area.
- The system reads the file and shows a preview of the first few rows.
Step 2: Automatic Format Detection
Brother POS auto-detects the CSV format by examining the header row. Supported formats are: WooCommerce, Shopify, Lightspeed, and standard Brother POS format. No manual column mapping is needed.
Step 3: Preview and Validate
Before importing, the system validates your data and shows:
- Total rows to be imported.
- New products that will be created.
- Updated products that match existing SKUs.
- Errors — rows with problems (duplicate SKUs, missing required fields, invalid data).
Rows with errors are skipped during import. Review and fix any flagged issues in your CSV file before proceeding. Common errors include duplicate SKUs, missing product names, and non-numeric price values.
Step 4: Run the Import
- Click Import Products.
- A progress indicator shows how many rows have been processed.
- When complete, a summary shows how many products were created, updated, and skipped.
Update vs. Create
The importer uses the SKU column to determine whether to create a new product or update an existing one:
- New SKU — A new product is created with all provided data.
- Existing SKU — The existing product is updated with the values from the CSV. Only fields present in the CSV are updated; fields not included in the CSV remain unchanged.
The importer auto-detects WooCommerce, Shopify, and Lightspeed CSV formats automatically based on the header row. You can also use .xlsx (Excel) files in addition to .csv.
The import can restore soft-deleted products by matching SKU. If a previously deleted product's SKU appears in the import file, the product is restored and updated with the imported data.
To update prices for existing products without changing anything else, create a CSV with just the sku and price columns. The importer will match by SKU and update only the price.
Tips for a Clean Import
- Remove formatting — Do not include currency symbols ($), thousands separators (,), or percentage signs (%) in numeric fields. Use plain numbers:
29.99not$29.99. - Check for trailing spaces — Spaces at the end of SKUs or names can cause duplicates.
- Use consistent category names — "Flower" and "flower" may create separate categories depending on matching rules. Use exact capitalization.
- Test with a small file first — Import 5-10 products to verify your column mapping before importing thousands.
- Save a backup — Export your existing catalog before importing. See CSV Export.
- UTF-8 encoding — If you see garbled characters after import, your file is likely not saved in UTF-8. Re-save it from your spreadsheet application with UTF-8 encoding.
After the Import
After a successful import:
- Navigate to Products to review the imported products.
- Spot-check a few products to verify names, prices, and stock levels.
- Upload images for the new products (images cannot be imported via CSV). See Images.
- Assign any additional attributes (terpenes, effects, flavors) that were not in the CSV.
Troubleshooting
| Issue | Solution |
|---|---|
| Import fails immediately | Check that the file is a valid CSV or XLSX file. Ensure proper UTF-8 encoding for CSV files. |
| Some rows skipped | Check the error report for specific row numbers and reasons. Fix the issues in your CSV and re-import the skipped rows. |
| Categories created as duplicates | Ensure category names match exactly (case-sensitive). |
| Stock levels are wrong | Verify the current_stock column has the correct values. Remember stock is set, not added. |
| Supplier name not appearing | The column name must be supplier_name (not supplier). It is a free text field, not a lookup. |
What's Next?
- CSV Export — Export your catalog as a CSV for backup or editing.
- Managing Products — Browse and manage the imported products.
- Images — Upload product images (not supported in CSV import).
- Bulk Operations — Make bulk changes after import.