Help

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 watches. The Import watches drawer opens with a short How importing works summary (Worldwatch finds your watches, a watch you already have is updated instead of added twice, and nothing changes until you confirm), your existing Import from sources, and an Add a source list.

Upload your file

Under Add a source, click Website or spreadsheet. In the Add your website or a spreadsheet panel, use the Upload a spreadsheet card, 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 file it will read, with an Edit source link if you picked the wrong one. Click Connect. Nothing is written to your inventory yet; this only starts 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.

Two places set currency. During mapping you can fix Purchase currency with a literal constant (for example EUR) on the transaction records. Separately, a source has a Currency of the prices setting for any price it sends without a currency of its own. For an uploaded spreadsheet you set this from Settings → Channels: open the channel, then Advanced, and choose As the source says (euro if it does not) or a fixed currency such as USD for a US supplier.

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 Referentie column).
  • 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.

Mapping tabs

Mapping is split into tabs so related columns stay together: watch details, attributes, images, and conditions. When your sheet includes transaction columns, a Purchase & sale tab appears alongside them. It covers purchase price, purchase currency, purchase date, invoice number, country of origin, storage location, sale date, supplier name, and VAT regime. If your sheet has none of those columns, the tab does not show.

Fields you can map

The example column below shows a typical mapping for a Dutch-headed inventory sheet.

Inventory fieldMappingExample source
BrandFrom source fieldyour brand column
ModelFrom source fieldModel
Reference numberFrom source fieldReferentie
PriceFrom source fieldVerkoopprijs
BoxUnmapped(leave blank)
PapersUnmapped(leave blank)
Purchase priceFrom source fieldInkoopprijs
Purchase currencyLiteral constantEUR
Purchase dateFrom source fieldDatum inkoop
Invoice numberFrom source fieldFactuurnummer
Country of originFrom source fieldLand van oorsprong
LocationFrom source fieldLocatie
Sale dateFrom source fieldDatum verkoop
ArchivedUnmapped(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.

Match counterparties

After mapping, and before AI enrichment, the wizard shows a Counterparties step titled "Who you bought from and sold to." A counterparty is a supplier you bought from or a buyer you sold to, named in your sheet. This step links each name to one of your contacts so the transaction records point at the right person or business.

For every name you have three choices:

  • Choose an existing contact: link the name to a contact you already have.
  • Create it as a new contact: add a new contact from the name in your sheet.
  • Leave it unlinked: import the transaction without a linked contact.

Names are grouped by how confident Worldwatch is about the match:

  • Matched on an identifier: matched on an email, VAT number, or account, so the link is reliable.
  • Matched on name: matched by name alone.
  • Needs your answer: several contacts could be the same person, so Worldwatch cannot pick one for you.
  • New contacts: no existing contact matches, so these come in as new.

Resolve every name under Needs your answer, then continue to enrichment.

Names matched on an identifier or on name are already linked for you. You only have to act on the ones grouped under Needs your answer.

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.

Items imported as already sold

If a row is imported as already sold, the watch is added and its sale is recorded in the background. On the watch you may briefly see "Still being recorded": the item was imported as sold, and until the sale is recorded the item is not available to sell.

If recording fails, the watch shows "Could not be recorded" with a reason and a Try again button. Try again queues the sale for the next import run.

A watch marked "Still being recorded" is not available to sell until its sale finishes recording. If it shows "Could not be recorded", use Try again to queue it for the next import run.

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.

On this page