Skip to main content

Importing SKUs

Mass-update SKU-level data from the Excel template — per-SKU prices, SKU numbers, SKU codes and SKU custom fields — plus adding SKUs to existing articles, with the format of every column.

The SKU import mass-updates data on the SKU level of articles you already have: per-SKU prices, SKU numbers, SKU codes and SKU-level custom fields — and it can add SKUs to existing articles. For creating products and articles (including their sizes), use the article import instead; this import never creates products or articles.

Downloading the SKU import template from the ⋮ menu on the Products page: Import, then SKUs, then Template

Running an import

The SKU import lives in the same place as the article import: the menu next to New Product on the Products page, under ImportSKUs. Template downloads the template; Upload opens a file picker and runs the import.

The template is generated from your brand's configuration — your price lists, in-price steps and SKU-level custom fields appear as their own columns — so always start from a freshly downloaded template. Headers live in the second row, inside the pre-built Excel table; one row per SKU. Columns the import doesn't recognize stop the import with an error.

The first columns of the SKU import template's header row

💡 The import validates the whole file first and saves nothing until every row passes — if there are errors, fix them and upload again.

The general rules match the article import: an empty cell means leave untouched, #NOTHING# clears a value, names are matched without caring about case, and both 10.5 and 10,5 work as decimals. Nothing is ever removed by this import — SKUs can be added and updated, never deleted.

Identifying the SKU

Every row must point at one SKU, in one of two ways:

  • Article Number + Size — the article's number and one of its size values.

  • Sku Number — the SKU's own number. If you fill this in, Article Number and Size are optional; when given they're cross-checked and must match.

Example rows: one SKU identified by article number and size, one by its SKU number

The easiest way to get correct identifiers is to start from an export: ExportSKUs, edit the file, and upload it as the import.

Adding and renumbering SKUs

Sku Number (new) has two uses:

  • #ADD# — adds a new SKU to an existing article. The row must have Article Number and Size, and the size must exist in the product's size system. Put a number in Sku Number to control the new SKU's number, or leave it empty to let the system generate one. The new SKU copies its prices from the closest existing size.

  • A number — renumbers the SKU identified by Sku Number. The new number must be unique.

Example rows: adding a SKU with #ADD# and renumbering an existing SKU

Statuses that lock numbers block renumbering, and SKU-code values locked by the article's status can't be changed either.

Active Season and Active Supplier

These two columns don't set data themselves — they decide where the row's prices and seasonal custom values are written. Active Season is the season the values land on; if the article isn't on that season yet, the import activates it there (copying from the article's latest season). Empty means the article's latest season. Active Supplier is the supplier the cost side is written to; empty means the season's first supplier. All rows of the same article must use the same active season and supplier.

Example row: the active season and active supplier the row's prices are written to

Cost price, freight and duties

Unlike the article import — which writes the same price to all of an article's SKUs — this import sets prices per SKU. It requires SKU-level pricing to be enabled in your price configuration (see Price configurations); with it disabled, rows carrying price data fail the import.

  • Cost Price + Cost Price Currency — the purchase price as a plain number plus a 3-letter currency code. Cost Price Target uses the same currency.

  • Freight (%) and Duties (%) — writing a value sets a manual override, unlinking it from the calculated default; #NOTHING# clears it and links it back. Freight + Freight Currency set a fixed charge instead.

  • In-price steps — any other steps in your price configuration get their own columns, charge steps with a companion currency column.

Example rows: per-SKU cost price with currency, manual freight and duties percentages, and #NOTHING# linking freight back to its default

Cost-side values need a cost-price currency to attach to — either on the row or already on the SKU. On a SKU with no cost price at all, freight, duties and steps can't be set.

Sell prices

Every out-price in your configuration gets its column set: the amount, … Currency, and optionally … Markup Target and … Margin Target as numbers. Setting an amount requires the currency; writing an amount detaches the price from its calculation template; #NOTHING# clears the value. A target on its own updates just the target. Use one of markup or margin per price — not both.

Example rows: per-SKU sell prices with currencies and a markup target

SKU codes

You can set SKU code values — EAN and any other code types configured for your brand — by adding a column named exactly after the code type, with one value per row. Strict validation and uniqueness follow the code type's settings (see SKU codes); #NOTHING# removes a value; values locked by the article's status can't be changed.

Custom fields

SKU-level custom fields appear as columns named after the field. Formats follow the field type, same as the article import: select fields take option values (semicolon-separated for multi select), 100.50 EUR for money, 1 pcs for number-with-unit. Seasonal fields land on the row's active season. File-type fields can't be set through this import.

Example rows: a SKU-level money field set on one SKU and cleared with #NOTHING# on another

When the import fails

Nothing was saved — the import is all-or-nothing. The error messages point at the failing rows; the most common causes are identifiers that don't match an existing article, size or SKU number, price data on a brand without SKU-level pricing, amounts without a currency, and extra columns the import doesn't recognize. Fix the file and upload again — and if you can't get a file through, reach out to us in the chat.

Did this answer your question?