Skip to content

Products & Inventory

Import products and suppliers from a CSV file

Use Settings, then Import, to create products or suppliers from a CSV file, with opening stock for new products. Covers the file, the checks, the switches, the results and the permissions you need.

You can create products and suppliers in bulk from a CSV file.

How to import products or suppliers

  1. Open Settings, then Import, in the Data & Integrations section of the settings menu. The page is called Import data.
  2. Choose Products or Suppliers under What to import.
  3. In Step 1, Get the template, select Download. The template has the correct header row and example rows for your selection.
  4. In Step 2, fill in one row per product or supplier in your spreadsheet program. Leave the header row exactly as it is.
  5. Save the file as CSV UTF-8. In Excel, select Save As, then CSV UTF-8.
  6. Set the switches under When the file contains… to suit your file. See the switch descriptions below.
  7. In Step 3, Upload and review, drop the file on the upload area or select it with Choose CSV file. The file is checked as soon as you choose it; nothing is saved until you confirm. Changing a switch afterwards checks the file again.
  8. Review the results. Ready to import, With a warning and Need fixing count rows, and a line below them counts rows already in StockBold that will be skipped.
  9. Click any of those counts to see the corresponding rows, or select Show all rows to open every checked row in a window where you can use Find in rows.
  10. Select the import button, which names the number of rows.
  11. Select Yes, Import in the confirmation.

Under the page, Column reference lists every column, what to enter and what happens if it is empty. Use Find a column to search it, or click a column name to copy it.

Import switches

The switches under When the file contains…
SwitchStartsOnOff
New suppliers, categories or units (products)OffThey are created during the import and listed for you beforehand.Rows naming one that does not exist fail.
Codes already in StockBold (products)OnRows whose product code already exists are skipped with a warning.Those rows are reported as errors and left out.
The same code on several rows (products)OffThe rows are combined into one product, with quantities and values added together and unit prices averaged.A repeated code inside the file is an error on those rows.
Supplier names already in StockBold (suppliers)OnRows whose company name already exists are skipped with a warning.Those rows are reported as errors and left out.

Whatever the switches, only the rows concerned are left out; the rest of the file still imports. Importing never updates an existing product or supplier. To change existing records, edit them in the product or supplier screens.

File requirements

The file must be a CSV no larger than 10 MB. A spreadsheet saved as .xlsx is refused; export it as CSV first. Commas and semicolons both work as separators.

A file that is not UTF-8 is read as Windows text (Western European), and you get a warning. Check accented letters in the preview, or save the file as CSV UTF-8 and upload it again.

A products file must contain name, product_code, supplier, category and unit. A suppliers file must contain company_name and can contain that one column alone. If a required column is missing, the whole file is rejected and nothing is checked row by row.

Columns the import does not recognise are reported as a warning and ignored, so an extra column of your own notes does not stop the import. Empty rows are ignored. A row with more cells than the header, usually because a value contains a comma and is not in quotes, fails on its own; the rest of the file is still checked.

Product row checks

Rows are checked one at a time. A product row fails and is left out if a required field is empty, or if the supplier, category or unit does not exist and creating them is switched off.

A product row also fails if the currency code is unknown, unit_price is above zero but currency is empty, lead_time_days or safety_stock is negative or not a number, or a barcode fails its format check or is not unique.

ean must be 13 digits with a valid check digit, upc must be 12 digits with a valid check digit, and barcode may be up to 50 letters, digits or hyphens. Each of the three must be unique among your products and within the file. A value already on another product or on an earlier row of the file fails the row.

In Excel, format the ean and upc columns as Text before typing them. Otherwise, Excel turns them into numbers such as 5.9E+12 and drops leading zeros.

Number formats in products files

The import decides once for the whole file whether a comma or a full stop is the decimal separator, using every number in unit_price, lead_time_days, safety_stock, reorder_cover_days and the opening stock columns. Write every number the same way, for example 1234.56 throughout or 1.234,56 throughout.

Thousands separators are allowed. lead_time_days and safety_stock follow the same rule, so a thousands separator there is read correctly instead of cutting the number short.

For an ambiguous value, write whole numbers without a thousands separator, as 1234, or make sure another number in the file has decimals, such as a price written 2.50. Then upload the file again.

Supplier row checks and departments

A supplier row fails only if the company name is empty, the name repeats an existing supplier and Supplier names already in StockBold is switched off, the same name appears twice in the file, or email or contact_email is not an email address.

A country, payment terms code, incoterm, currency or department that does not match your settings does not fail the row. The field is left empty and you get a warning. Write countries by their English name, for example Italy or Germany, and read warnings before assuming those fields arrived.

Names and codes are matched in upper or lower case alike. Deleted products and suppliers do not count: their codes and names can be used again, and a row cannot name a deleted supplier.

If you belong to departments, you import only into your own. A row with an empty departments cell is placed in all of your departments, and a row naming a department you do not belong to fails. For everyone else, departments lists department names separated by commas; a name that does not match is ignored with a warning.

Opening stock and reorder cover

The product template includes optional opening stock columns: initial_stock_quantity, initial_stock_value, initial_stock_location, initial_stock_comment and initial_stock_date.

A quantity of 0 means no opening stock. A quantity that is negative or not a number fails the row.

The date must be written as YYYY-MM-DD, must be today or earlier, and must not be in a locked year. A date that breaks any of these rules fails the row. An empty date means today in your organisation's time zone.

initial_stock_location is the warehouse name. If it does not match one of your warehouses, your default warehouse is used and you get a warning. If your organisation has no warehouses set up at all, the product is still created without its opening stock, and you get a warning.

When a row has a quantity, the value is required. If it is empty or is not a number of 0 or more, the row is refused with an error naming initial_stock_value. Enter 0 only if the stock genuinely cost nothing.

The optional reorder_cover_days column sets how many days of use a suggested order should cover beyond the reorder point. It must be a whole number from 1 to 365. Leave it empty or leave the column out to give the product the default of 30. Any other value, such as a fraction or 400, makes the row fail.

Import results

Failed rows do not stop the good ones. Every valid row is imported, and if a row is refused while it is being saved, only that row is left out. If no row is valid, nothing is imported at all.

After the import, Rows to look at lists every row that was not imported or was saved without part of it, such as its opening stock. It gives the row number and reason so you can correct the rows and import a second file containing just those rows.

Permissions and plan limits

The Import entry appears in the settings menu only for people with the Import Products permission. Every action on the page needs this permission, including downloading templates.

Creating opening stock also needs Import Movements because it writes a stock movement. Without it, products are still imported but their opening stock is skipped. The results tell you how many rows this affects before you confirm, and the confirmation repeats it. The organisation owner has both permissions automatically.

Your plan may cap how many products or suppliers you can hold. If you are already at the cap, the upload area is replaced by an invitation to upgrade.

Otherwise, the cap is checked against your current count plus the rows that passed the check, at the moment the file is checked. If the total would go over, the file is rejected immediately with a message giving your current count and limit, and you never reach the import button. Trim the file or upgrade first. When you are inside the cap, the results show your current count, limit and the count you would reach.