Bulk import your inventory from a spreadsheet
Upload a CSV or Excel inventory sheet, map its columns to inventory fields, enrich with AI, and import watches in bulk: nothing is written until you confirm.
Got a question about this guide? Use Open to continue it in Claude or ChatGPT.
Importing a catalog brings many watches into your inventory at once from a spreadsheet. Worldwatch scans the file, shows you every product it finds, and lets you map each column to an inventory field before anything is saved. You review, enrich missing details with AI, and confirm. Nothing is written to your inventory until that final step.
Importing from a URL instead? To pull from your website as a one-time snapshot, see import your stock from a website URL. To pull from a hosted product feed on a live schedule, see connect a hosted product feed.
Before you start
- Your inventory as a CSV, Excel (XLSX), JSON, or XML file, up to 50 MB.
- A column for each detail you want to import (brand, model, reference, prices, dates). Missing columns are fine; you can leave a field blank or set a fixed value during mapping.
Start the import
Open the importer
On the inventory page, click Import catalog.
Upload your file
In the Connect a custom channel dialog, open the Upload a file tab, click Choose file, and pick your inventory sheet. CSV, Excel (XLSX), JSON, and XML are accepted, up to 50 MB.
Confirm and start
Worldwatch shows the source it will scan (for example, Import from your-sheet.xlsx). Review it and click Start import. Nothing is written to your inventory yet; this only kicks off the scan.
Wait for the scan
Worldwatch works through the file in stages: Preparing → Fetching products → Extracting details → Filtering products → Mapping fields → Wrapping up. Larger catalogs take longer.
Review and map fields
When the scan finishes, you review what Worldwatch found and decide exactly what lands in your inventory. Each inventory field is set one of three ways:
- From source field: pull the value from a column in your sheet (for example, Reference number from your
Referentiecolumn). - Literal constant: set the same fixed value on every watch (for example, Purchase currency =
EUR). - Unmapped: leave the inventory field blank.
Worldwatch auto-detects the obvious matches; correct any that are wrong. You can also enrich with AI to fill in details the sheet doesn't contain (for example, deriving specifications from the reference number) before you import.
Fields you can map
The example column below shows a typical mapping for a Dutch-headed inventory sheet.
| Inventory field | Mapping | Example source |
|---|---|---|
| Brand | From source field | your brand column |
| Model | From source field | Model |
| Reference number | From source field | Referentie |
| Price | From source field | Verkoopprijs |
| Box | Unmapped | (leave blank) |
| Papers | Unmapped | (leave blank) |
| Purchase price | From source field | Inkoopprijs |
| Purchase currency | Literal constant | EUR |
| Purchase date | From source field | Datum inkoop |
| Invoice number | From source field | Factuurnummer |
| Country of origin | From source field | Land van oorsprong |
| Location | From source field | Locatie |
| Sale date | From source field | Datum verkoop |
| Archived | Unmapped | (leave blank) |
Set a currency once with a literal constant. If every row is priced in the same currency, map Purchase currency to a literal EUR rather than adding a currency column to your sheet.
Import
Once the mapping looks right, confirm the import to write the selected watches to your inventory. Up to this point nothing has been added, so you can go back and adjust the mapping without touching your live data.
Matching by SKU
Worldwatch matches incoming watches to your existing inventory by SKU. When a watch you import carries a SKU that already exists, whether that record first came from Shopify, WooCommerce, or another spreadsheet, Worldwatch recognizes it as the same watch and links the two instead of creating a duplicate. The same physical watch stays a single record across every source that lists it, so your stock count and prices don't split across near-identical copies.
For this to work, the SKU has to come through on import: keep a SKU or unique stock code in your sheet and map it during review and mapping. Rows with no SKU can't be matched, so they come in as new watches.
Verify
Open Inventory → Manage watches. The imported watches appear in the list. Spot-check a few against your sheet: reference numbers, prices, and purchase details should match the columns you mapped.
Troubleshooting
"File too large"
Catalog files are capped at 50 MB. Remove unused columns or embedded images, or split the sheet into parts. If your catalog lives online, import it from a website URL or a hosted product feed instead of uploading a file.
Unsupported file type
Only CSV, Excel (XLSX), JSON, and XML are accepted. Export your spreadsheet to one of these; XLSX or CSV are the most reliable for tabular data.
A column didn't map
Worldwatch couldn't match that column automatically. In the mapping step, set the inventory field to From source field and pick the column yourself, set a Literal constant, or leave it Unmapped.
Prices or dates look wrong after import
Check the source column's format. Mixed currency symbols, thousands separators, or non-ISO dates can misparse. Fix the column in your sheet and re-import, or correct the affected watches individually.