Export products
Export the products list to a spreadsheet whenever you need the catalog outside SKU.io — for a bulk edit round-trip, an accountant, a supplier price review, or a channel feed. You choose which records go in the file, how much goes in each row (a flat product list, or one row per product-supplier with pricing tiers), and which format (XLSX or CSV). Small selections download instantly; large catalogs export in the background so your browser never has to wait.
Before you begin
- You need the products.export permission. Without it the Export button doesn't appear on the products list, and the export endpoint rejects the request. See the product permissions reference.
- The export includes the columns currently visible in your table. Add or remove columns with the column selector before you open the export dialog — see Browse, search & filter the products list.
- Stock numbers in the export (Total Stock, Available, Allocated, Stock Value…) are point-in-time snapshots. For how those figures are derived, see the Inventory guides.
- Exporting doesn't change any data and doesn't touch sales channels. To pull edited data back in, see Import products from a spreadsheet.
Export the list
- Go to the products list.
- Set up the view you want to export — apply any search, filters, or archived scope, and use the column selector to show exactly the columns you need. The export mirrors what the table shows.
- Click Export (top-right of the list; also available from the mobile actions menu). The Export dialog opens.
- Under Records to export, choose a scope (see the table below).
- Under Content, choose Products or Products with Suppliers.
- Under File format, choose XLSX (Excel) or CSV.
- Click Export.
What happens next depends on the size of the export:
- Small export — the file is generated immediately and your browser
downloads it (for example
products-2026-07-12-14-30-00.xlsx). - Large export — SKU.io starts a background job instead, shows the toast "Export started — track progress in the job tray", and closes the dialog. Watch progress in the job tray; when it finishes, the file downloads automatically. See Large exports run in the background.
Choose which records to export
The Records to export options adapt to your current view — a scope only appears when it makes sense.
| Scope | Label in dialog | What it exports | Respects active filters? |
|---|---|---|---|
| All records | All records (N) | Every product in the catalog | No — filters and sort are ignored, you always get the whole catalog |
| Filtered results | Filtered results (N) | Only the rows matching your current search/filters | Yes — same filter pipeline as the table |
| Current page | Current page (N) | Just the rows on the page you are viewing | Yes (it's the current page) |
| Selected records | Selected records (N) | Only the rows you tick with the checkboxes | Selection only |
Notes:
- Filtered results only appears when you have an active filter. With no filters, "All records" and "Filtered" would be identical, so only All records is shown.
- Selected records only appears when you have at least one row selected.
- All records deliberately clears your filters and sort for that one export, so it's the reliable way to dump the entire catalog regardless of what the table is currently showing.
Choose the content mode
The Content section offers two shapes for the file.
| Mode | Label | Row shape | Use it for |
|---|---|---|---|
| Summary | Products | One row per product | A flat catalog list, bulk-edit round-trips, general reporting |
| Suppliers | Products with Suppliers | One row per product-supplier link, with that supplier's pricing tiers | Reviewing or re-importing sourcing data across multiple suppliers |
Products with Suppliers, in detail
When you pick Products with Suppliers:
- A product with three suppliers produces three rows — the product columns repeat, and each row carries one supplier's detail (Supplier Name, Supplier SKU, MOQ, Leadtime, Target Stock Days, Is Default) plus a column per supplier pricing tier.
- A product with no suppliers still gets one row, with the supplier columns left blank — so no product silently drops out of the file.
- The redundant product-level Default Supplier … columns are dropped in this mode. The per-link supplier columns are the authoritative, import-shaped set, so the file round-trips 1:1 with the import template — editing a supplier row and re-importing updates exactly that supplier link, with no conflicting "default supplier" copy to fight it.
For how supplier links and pricing tiers work, see Manage a product's suppliers and Manage pricing tiers.
What ends up in the columns
The export writes the visible table columns (minus the checkbox, image thumbnail, and row-actions columns), in the order they appear, using spreadsheet-friendly headings. If you have hidden all columns it falls back to the full column set.
A few column families are worth calling out:
| Column family | Example headings | Notes |
|---|---|---|
| Identity | SKU, Name, Type, Barcode, MPN | Barcode and MPN are always written as text (see below) |
| Stock snapshot | Total Stock, Available, Available to Sell, Allocated, On Hold, Inbound, In Transit, Stock Value, Avg Cost | Point-in-time; see the Inventory guides |
| Dimensions & cases | Weight, Length, Width, Height, Case Qty, Case Weight, Case Length… | |
| Taxonomy | Category, Category Path, Other Categories, Other Categories (Path) | Multi-value fields are comma-joined |
| Relationships | Parent SKU, Variations, Component SKUs, Component Of | Components render as SKU->quantity, comma-joined |
| Accounting | Taxable, Tax Rate, Sales Nominal Code, COGS Nominal Code, Inventory Nominal Code… | Nominal codes export by name |
| Dates | Archived, Created At, Updated At, Last COGS Rebuild | Converted from UTC to your account timezone, matching the UI |
| Images | Image URL, Other Images | Primary image URL, then non-primary URLs comma-joined |
Dynamic columns
Two families of columns are generated from your account's own data, so the column list is different for every tenant:
- Attributes — every attribute in your account becomes a column headed
Attr: <attribute name>, carrying that product's value. See Manage attributes. - Supplier pricing tiers — in Products with Suppliers mode, each pricing tier becomes its own price column (headed with the tier's display name). See Manage pricing tiers.
The Suppliers column expands on export
If the Suppliers column (the one that shows a supplier count in the table) is visible when you export in Products mode, it's not exported as a single count. It expands into the full default-supplier detail set — Default Supplier, Default Supplier SKU, Leadtime, MOQ, Target Stock Days — plus a column per supplier pricing tier for the default supplier. That way the count you see on screen becomes usable, editable detail in the file.
Numbers stay text — no scientific notation
Every data cell is written as an explicit text value. This stops Excel from
mangling long numeric codes — barcodes, MPNs, and HTS-style codes — into
scientific notation (for example 5.01234E+11). CSV files are written with a
UTF-8 byte-order mark so Excel opens them in the correct encoding. This is also
what lets an exported file round-trip cleanly back through
Import products, which rejects
scientific-notation barcodes.
For the exhaustive, importable list of columns and their accepted values, see the importable product columns reference and the product fields & validation reference.
Large exports run in the background
You never have to keep the tab open and wait on a spinner for a big catalog. SKU.io decides automatically:
- Current page always downloads inline — it's bounded by the page size.
- Selected downloads inline unless you selected more than 1,000 rows.
- All and Filtered run a quick count first; anything over 1,000 rows is handed to a background job.
When an export is queued:
- The dialog closes and you see "Export started — track progress in the job tray."
- The job appears in the job tray as Export Products (or Export Products with Suppliers) with a live row count and progress bar.
- You can keep working, or cancel the job from the tray — a cancelled export cleans up its partial file and leaves nothing to download.
- When the job completes, the finished file downloads to your browser automatically.
XLSX auto-falls-back to CSV on very large exports
XLSX is held entirely in memory while it's written, so extremely large catalogs can exhaust the export worker. To keep large exports reliable, a background export requested as XLSX with more than 15,000 rows is automatically switched to CSV (the CSV writer streams row-by-row and stays within memory). The job's progress message tells you when this happens. If you specifically need XLSX for a very large catalog, narrow the scope with filters first so it stays under the threshold.
Next steps
- Import products from a spreadsheet — edit the exported file and bring the changes back in.
- Bulk-edit products — change a field across many products without a spreadsheet round-trip.
- Browse, search & filter the products list — shape the view (and therefore the columns) before you export.
- Products list columns, search & filters reference — what each column and filter does.
Video transcript
To pull your catalog into a spreadsheet, open the products list and click Export. It exports the columns currently visible, so adjust the column selector first if you need more or fewer fields. Choose your scope — all records, or only the current page. Pick the content: one row per product, or one row per product-supplier pairing with pricing. Then choose XLSX or CSV, and Export downloads the file.