To quickly import products and format product data, you can use a spreadsheet (.CSV, .XSLX, or .XLS) to upload inventory in bulk to your Retail POS store.
The product import template spreadsheet has recently been updated for easier navigation and use. If you wish to continue using the previous version, it will still work.
What you'll need
- Names of your products
- Any variations, such as sizes, colors, and flavors
- Retail prices of your products
- Supply prices of your products
- Existing barcode/SKU numbers
- Exact names of the taxes you set up in Retail POS
Downloading the Retail POS product import template
- Download the product import template spreadsheet. This is a pre-formatted template that includes all the relevant information needed to import products into Retail POS.
- Open the product import template spreadsheet in Excel or Google Sheets.
To avoid import errors, don't change or delete any of the column headers in the template, except where indicated (STORE_NAME).
Adding standard products
A standard product is a single product with a single SKU and its own inventory.
To create a standard product, you only need to action on the fields mentioned in this section. You can leave all other fields blank.
id
An automatically generated, unique product identification number.
- Leave this field blank.
- If this field has any data, the products will be ignored and not created.
Mandatory
handle
Unique identifier primarily used for the Shopify eCommerce integration.
- Leave this field blank to populate auto-generated handles.
- To create handles manually, hyphenate each word (i.e. “notebook-lightspeed”).
-
Handles link products between Retail POS and Shopify to ensure product information is synced correctly. Shopify uses the product’s handle to form the product URL for your SEO (Search Engine Optimization).
To link pre-existing handles correctly, you should import existing products from Shopify into Retail POS, then treat Retail POS as the primary record for creating future products (and adding them to Shopify).
Mandatory
sku
Every product must have a unique SKU.
You can capture multiple SKUs in one product.
- Leave blank if you don’t have existing SKUs. Unique SKUs will be auto-populated.
- Use an existing barcode number or enter your own SKU.
- Can only contain letters and numbers, with no spaces or symbols (i.e. “LSNB1”).
-
SKUs allow you to scan a product’s barcode and add it to a sale. They add a uniquely identifiable metric in reporting that allows you to track a specific product.
Mandatory
name
Displayed on the Sell screen, receipts, labels, reporting, and stock orders/transfers.
Each name must be unique (ex. “Lightspeed Black Notebook” instead of just “Notebook”).
- Type in your product's name.
- Cannot contain the symbols #, $, or &.
description
Optional field.
- Enter a description of your product.
- This field can have letters, numbers, and symbols.
type
Optional field. Category your item belongs to (“Stationary,” “Clothing,” etc.).
- Type in a category for your product.
- If left blank, your product will not be sorted into a category.
tags
Lower-level categories the product belongs to (“Notebook,” “Cotton,” etc.).
No limit to the number of tags that can be added to a product.
- Type in your tags, separating each by a comma (“Notebook, Stationary”).
- Tags can have letters, numbers, and symbols.
- Leaving this column blank for existing products will overwrite any existing types.
Mandatory
supply_price
Your purchase cost, per unit. It can be tax exclusive or inclusive.
If your product’s price fluctuates, you can later specify the exact supply price for each order when completing a new purchase order.
- Enter the current purchase cost of your product.
- Must be entered as a numerical value, no currency signs.
-
It's strongly recommended to include a supply price when creating products. This enables accurate reporting/accounting, as supply price directly affects the cost of goods sold and average cost.
If the supply price isn’t added before an inventory movement/sale is made with the product, the cost of goods sold will be calculated at 0.
Mandatory
retail_price
Amount the product will be sold for.
For tax-exclusive stores, this is the price of your product before tax is added.
For tax-inclusive stores, this is the price of your product including tax.
- Must be entered as a numerical value, no currency signs.
- Leaving this field blank will result in the product being priced at 0.
loyalty_value
Assigned to a product to change the default loyalty value of the product.
- Type in your desired loyalty value.
- If left blank, the product will be automatically assigned the default loyalty value.
- If you don't have loyalty set up and enter a custom loyalty value, the product will remain set at the default loyalty value.
Mandatory
Outlet_Tax_ STORE_ NAME
Tax rate name you want to use for the product.
In the header column, replace STORE_NAME with the name of your store, using underscores ( _ ) in place of spaces.
- If left blank, it will use your outlet's default tax rate.
- If your store is tax-inclusive, type No Tax.
- If this product is taxed differently than other products, copy the exact tax name found in Setup > Sales taxes. 1 tax name per product only.
-
To change the tax rate from the default tax rate, you need to create an alternative tax rate. Add and manage in Setup > Sales taxes.
brand_name
Optional field.
- Type in the brand name of your product.
- This field can have letters, numbers, and symbols.
supplier_name
Optional field. You can only add 1 supplier using this spreadsheet. Adding multiple suppliers for a single product can be done manually after the product has been imported.
- Type in the name of the supplier for this product.
- For products with multiple suppliers, leave this field blank.
- Can have letters, numbers, and symbols.
supplier_code
Optional field. Code used by a supplier to identify the product (provided by the supplier).
Not all suppliers use their own codes. They may be the same as the SKU or product barcode.
- Type in the supplier code.
- Can have letters, numbers, and symbols.
Mandatory
active
Determines whether a product is available to be sold in your outlet ("active").
- Type in 1 if you want the product to be available to be sold.
- Type in 0 if you don’t want the product to be available to be sold.
- Leaving this field blank will default the product to Active.
-
Making a product inactive allows you to keep the product in your catalog but unable to be sold. This is particularly useful for seasonal products and for reporting on older products that are no longer sold.
Adding products with variants
A product with variants is a product offered in different variations, like size or color. Each variant product must have a unique SKU and its own inventory.
Creating a variant product involves the same fields and steps as creating a standard product, with some differences:
Mandatory
handle
Handles for variant products must be identical for each variant.
- Leave this field blank to auto-generate handles.
- To create handles manually, hyphenate each word (i.e. “notebook-lightspeed”).
Mandatory
name
Each variant product must have the same name.
Variant names that don’t match will not be imported.
- Type in your product's name.
- Cannot contain the symbols #, $, or &.
description, type, brand_name, supplier_name, supplier_code
Optional fields.
- Enter in the first variant field in a group.
- Subsequent variants in the same group don't need these fields filled in.
- Filling in a field other than the first variant field will not save to your catalog.
tags
First variant in the group must have at least one tag.
- Type in your tags, separating each by a comma (“Notebook, Stationary”).
- Subsequent variants in the same group don't need these fields filled in.
- Filling in a field other than the first variant field will not save to your catalog.
Mandatory
variant_option_#_name
Attribute of the variant of the product (i.e. “Color,” “Size,” etc.).
Product can have up to three individual attributes.
- This field must match for each variant of the same product.
- If the fields don't match, the product and variants will not be imported.
Mandatory
variant_option_#_value
Type of variation for the attribute (i.e. “Red,” “Large,” etc.).
Each variant product can have up to 200 values.
- These fields don't need to match for each variant of the same product.
- These fields cannot be left blank.
Adding composite products
A composite product is made up of specified quantities of one or more standard products or products with variants. These are typically used for creating multi-packs or bundles.
A composite product is made up of the composite product in the first row, followed by components in the next row(s).
Creating a composite product involves the same fields and steps as creating a standard product, with some differences:
Mandatory
handle
The handle for each product within the composite product must be the same as the composite product’s handle.
- Leave this field blank to auto-generate handles.
- To create handles manually, hyphenate each word (i.e. “notebook-lightspeed”).
Mandatory
sku
Composite products must have a unique SKU.
- In the composite product row, enter the SKU identifying the composite product in your catalog.
- This field cannot be left blank. If left blank, the product will not be created.
- The component product SKU must match the SKU of the composite product.
description, type, brand_name, supplier_name, supplier_code
Optional fields.
- Enter in the composite field.
- The component fields in your composite product don't need to be filled in.
- Filling in a component field will not save to your catalog.
Mandatory
composite_name
Exact name of the existing product (found in the name column) to be included in the composite product.
- Copy/paste or type the exact name of the existing product.
Mandatory
composite_sku
Exact SKU of the existing product (found in the sku column) to be included in the composite product.
- Copy/paste or type the exact name of the existing product SKU.
Mandatory
composite_quantity
Quantity of each product that will be included in the composite product.
- Type the quantity of the product you want to include in a single composite product.
- Can be a whole number or a decimal.
You don't need to specify pricing or inventory information (supply_price, retail_price, track_inventory, inventory_STORE_NAME_#, reorder_point_STORE_NAME_#, restock_level_STORE_NAME_#) for component products within a composite product.
Activating products for eCom (E-Series)
This section is only for merchants using Retail POS (X-Series) with eCom (E-Series). If you're not selling your products online with eCom (E-Series), skip to the next section.
Once your products are activated to sell online, you can list them in your eCom (E-Series) online catalog. Importing your products for online sale involves the same fields and steps as creating a standard product, with some differences:
Mandatory
active_online
Shows if the product is enabled (ready to sell) on your online storefront.
- Type in 1 if you want the product to be enabled on your eCom (E-Series) storefront.
- Type in 0 if you don’t want the product to be enabled on your eCom (E-Series) storefront.
- If left blank for existing products, no changes will be made.
weight, height, width, length
Adding weight and dimension values to products helps to calculate shipping costs when providers and postal services offer variable pricing based on weight and/or size. You can add this information when creating a product for the first time.
- Type in numerical values for your product.
- Can be a whole number or a decimal.
weight_unit, dimension_unit
Accepted weight units their inputs:
- Gram: g
- Kilogram: kg
- Ounce: oz
- Pound: lb
- Carat
Accepted dimension units and their inputs:
- Millimeter: mm
- Centimeter: cm
- Inch: in
- Foot: ft
Customizing products for Xero integration
This section is only for merchants using the Xero integration. If this does not apply to your store, skip to the next section.
Using a Xero integration requires some additional information for your product:
Mandatory
account_code
Used if you want sales of this product to post to a Xero account other than your default sales account.
- Type in the account code you would like the product’s sale to post to.
- If you want your product’s sales to post to the default account, leave this field blank.
Mandatory
account_code_purchase
Used if you want stock orders of this product to post to an account other than your default purchases account.
- Type in the account code you would like the product’s purchase to post to.
- If you want your product’s purchases to post to the default account, leave this field blank.
Adding inventory management information
Inventory information is used when creating purchase orders and maintaining inventory management.
Mandatory
track_inventory
Allows you to enable inventory management.
- Type in 1 if you want Retail POS to keep track of your inventory levels.
- Type in 0 if you don’t want Retail POS to keep track of your inventory levels.
Mandatory
inventory_STORE_NAME_#
Quantity of a product available at the specified outlet. Inventory must be added at the same time or after a supply price is added.
In the header columns, replace STORE_NAME_# with the name(s) of your store(s), using underscores ( _ ) in place of spaces.
- Type in the quantity of the inventory for your outlet. Must be a numerical value.
Adding purchase order information
Purchase orders can be used to maintain a record of ordered products, keep track of orders across all of your suppliers, and ensure your inventory numbers stay accurate.
Integrating imported items into future purchase orders requires some additional information:
Mandatory
supplier_name
You can only add 1 supplier in the field. Adding multiple suppliers for a single product can be done manually after the product has been imported.
- Type in the name of the supplier for this product.
- For products with multiple suppliers, leave this field blank.
- Can have letters, numbers, and symbols.
supplier_code
Optional field. Code used by a supplier to identify the product (provided by the supplier).
Not all suppliers use their own codes. They may be the same as the SKU or product barcode.
- Type in the supplier code.
- Can have letters, numbers, and symbols.
Mandatory
reorder_point_STORE_NAME_#
This is not an automatic reorder function. Reorder points allow you to add products from recommendations and enhance your advanced inventory reporting.
In the header column, replace STORE_NAME_# with the name of your store, using underscores ( _ ) in place of spaces.
- Type in the minimum inventory level you wish a product to reach before it needs to be reordered. Must be a numerical value.
Mandatory
restock_level_STORE_NAME_#
This is not an automatic reorder function.
In the header column, replace STORE_NAME_# with the name of your store, using underscores ( _ ) in place of spaces.
- Type in the quantity you wish to reorder for a product once it reaches the reorder point. Must be a numerical value.
Validating your data before import
Before importing your file, there are some checks you can make to prevent potential import errors, saving time and frustration later:
- Make sure there are no duplicates in the name and sku fields, except for duplicate sku values for composite products.
- Check that Mandatory fields are present and filled out for your products.
- Check that Outlet_Tax_STORE_NAME tax names are entered exactly as they appear in Retail POS.
- Make sure handle fields are formatted properly (hyphens between words, no other punctuation).
- Check that STORE_NAME_# was replaced with the name of your outlet, as spelled in Retail POS with spaces replaced by underscores ( _ ).
- Make sure that your spreadsheet is a .CSV, .XLSX, or .XLS file.
Importing the product template spreadsheet file
Once complete, you're ready to import the product import template spreadsheet into Retail POS. To validate and import your spreadsheet:
- Navigate to Catalog > Products and then click Import.
- Drag and drop your file, or click Choose a file to upload to search for and add the file.
- The spreadsheet checker will review for common import errors.
- If the validation is successful, continue to the next step.
- If you receive an error message, see Fixing common import errors below.
- Once successful, you will be taken to a confirmation screen. Click Continue with Import to finish importing the products into your store.
Import time can range from a few minutes to a few hours, depending on the number of products in your file. You can navigate away from this page and the import will not be affected.
-
When the import is completed, you will see a notification (a dot on the bell icon) at the top of your screen. Click on the icon.
- If all of your products have successfully imported, you’re done!
-
If any of your products have been ignored, click View ignored products (CSV) to download the ignored products list. Correct any errors outlined in this document and reupload. See the Fixing common import errors section below for more information.
You may need to refresh to view newly-imported products in your product list.
Fixing common import errors
Your products may not import properly at different stages of the import process. To resolve and finalize your import, find the error below.
Resolving errors on the Import screen
-
Columns that have not matched will be labeled as Unmatched Column.
Click into the Please select an option dropdown and select the appropriate name for all instances.
Double-check that your column names match. If any don't match, click on Change this match? and select the appropriate name.
You can also choose to not include a specific column by clicking Don’t Import. Make sure that it's not a required column or your products may not import successfully.
Once all of the columns match, click Continue.
-
If any mandatory columns are missing, an error screen will appear.
You can click Go Back to Match Columns to edit the column matches as described above.
Alternatively, you can click Download CSV to Fix, which will download a copy of your CSV and allow you to make the required changes. If you choose to do this, you will need to reupload your file.
-
Non-alphanumeric characters such as apostrophes (‘), grave accent (`), parentheses, square brackets ( [ ] ), quotation marks (“ ”), and/or ampersands (&) in the sku or handle field may cause the file to be rejected.
Double-check your file for these instances by using Ctrl+F (Windows) or Cmd+F (Mac) to search for them in your document.
-
The handle field cannot have spaces or special characters. Hyphens are the exception and are auto-generated at the time of creation.
To search only the handle column in Microsoft Excel, enter Ctrl+F. In the Within dropdown, choose the handle column.
To search only the handle column in Google Sheets, enter Ctrl+F (Windows) or Cmd+F (Mac). In the Search drop-down, select Specific range and then specify the handle column.
Your product’s handle must be unique, unless your product is a variant product.
Double-check that there are no spaces or special characters in the handle field and that all handles are unique.
-
Retail POS may suggest improvements to your spreadsheet. You can choose to Download Spreadsheet to Fix… to make the recommended changes and reupload your spreadsheet when you're done.
Alternatively, you can Continue Anyway to ignore the recommendations and upload your spreadsheet.
-
If you see the message, “Sorry, we couldn’t read that file. Please upload a valid .CSV, .XLS or XLSX file,” the file type you tried to import is either incorrect or corrupt.
If you are using Google Sheets, go to File > Download > Comma Separated Values (.csv).
If you are using Microsoft Excel, go to File > Save As. Click the Save as type drop-down and select CSV (Comma delimited).
Resolving ignored product errors
-
If some of your products were ignored, you will receive a link to download a list of the ignored products in a .CSV file.
There are several reasons this may occur:
- Tax names not matching: Make sure your products in the Outlet_Tax_STORE_NAME column have exactly matching tax names as set up in your store, with no extra spaces after the tax name. You can find these in Setup > Sales taxes.
- Handle does not match: Make sure that you are using the product’s original handle for any variant and/or composite products.
- Duplicate names: Product names must be unique. This includes ensuring that product names are not duplicated with products already in your catalog. You can search your product list in the Products tab.
- Duplicate SKUs: Except in the case of composite products, each SKU must be unique.
- Product ID belongs to deleted product: Delete the contents of the id column for the specified product. Make sure to leave the column header intact.
Make sure that your file does not have any of the errors above and re-import the file.
The ignored products file is only available for download for 30 days.
-
Check that numbers in the sku column are not truncated (rounded or changed to integers when not appropriate). This can sometimes occur with long SKU numbers, especially in Excel.
You can fix this by formatting the affected SKU cells as text.
In Excel, select all of the affected cells. In the Number section of the Home tab, click into the Number Format box > Text.
In Google Sheets, select all of the affected cells. Click the option reading 123 in the toolbar for text format options > Plain text.
Export your spreadsheet as a .CSV file and re-import the file.
-
Double-commas and commas in unusual places (like before an entry) may cause the product file to be rejected.
Double-check your file for these characters by using Ctrl+F (Windows) or Cmd+F (Mac) to search for them in your document.
What's next?
Adding and editing scannable barcodes
Add barcodes that can be scanned alongside the SKU.
Learn more