Import and export of stock
Stock import – step by step
- On the Catalog › Stock › Stock Management page, click Import stock in the header — the import dialog opens.
- Optionally choose a warehouse. If you don't select one, the default warehouse is used (or the warehouse with code "ESHOP"); if no active warehouse exists, the import is skipped with an error.
- Upload a CSV or Excel file. Expected columns:
- product_id (required)
- variant_id (optional for simple products; required for products with variants — a row without it is skipped with an error)
- quantity or current_stock — the target total quantity for that product/variant (sum across all warehouses)
- position (optional) — the warehouse position (shelf / bin)
- Confirm with the Import button.
What happens: The system reads the file and, for each row, finds the matching product (and variant, if given). The quantity in the file is the target total — the system calculates the difference from the current total across warehouses and applies that difference in the chosen warehouse. Each change is recorded in history as an import; rows with no change are skipped. The result summary shows how many rows were updated, how many were skipped, and any per-row errors (e.g. invalid or missing products).
Per-warehouse stock in imports and exports
Besides a single stock number, you can also transfer a per-warehouse breakdown.
- The
stock_by_warehousecolumn (andvariant_stock_by_warehousefor variants) has the formwarehouse-code=qty|warehouse-code=qty, e.g.main-warehouse=6|supplier=4. - The breakdown is binding — warehouses not listed in it are set to zero (not deleted).
- If a warehouse code doesn't exist, the warehouse is created automatically; names/codes containing "dodávateľ", "dodavatel", "extern" or "supplier" are marked as supplier warehouses (Warehouses & Suppliers).
- The
position_by_warehousecolumn (andvariant_position_by_warehouse) transfers the warehouse position — a shelf/bin code, e.g.main-warehouse=R2/P10|supplier=A-14. Unlike stock, it is not binding: warehouses not listed in it keep their current position. The|character is not allowed in a position (it separates the pairs) and positions are shortened to 30 characters. - The
recommended_pricecolumn (recommended retail price / RRP) is transferred too — it is reference data only and does not affect the selling price.
Automatic imports
For automatic imports in Catalog › Products › Automatic Imports, ticking a field decides whether the feed may overwrite it on every run. Among others you'll find Recommended Price (in the pricing group), Stock By Warehouse (inventory) and Variant Stock By Warehouse (variant_fields). An unticked field is never overwritten by the import — your manual value stays.
Export current stock
Use the Export stock button in the header of Catalog › Stock › Stock Management to download a CSV with the columns: product_id, variant_id, sku, name, current_stock, position. The current_stock values are the stock totals across warehouses per product/variant.
Importing a whole product catalog?
This page covers stock levels only. To import an entire catalog when moving from another platform (Shoptet, Heureka, or Upgates), see Extensions & Integrations — Importing Products from Another Platform.