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.
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 Import → SKUs. 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 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.
The easiest way to get correct identifiers is to start from an export: ⋮ → Export → SKUs, 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.
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.
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.
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.
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.
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.







