A new range lands and someone loses a week
A supplier sends a spreadsheet with four hundred products. The columns are in their order, not yours. Sizes are written three different ways. Some rows have weights in grams and some in kilos. There are no descriptions, just a code and a name in capitals. Images are in a separate zip, named by a number that does not match anything in the sheet.
So someone sits with Shopify in one window and the spreadsheet in the other, creating products one at a time, picking the variants, pasting the price, uploading photos. The work is dull, which makes mistakes likely, and by the time it is finished the supplier has sent an updated price list.
Why the Shopify CSV import does not solve it
Shopify has a product CSV import, and people try it. It fails for a predictable reason: it expects data already in Shopify's shape. Supplier data never is. Variants have to be on separate rows grouped by handle, options have to be named consistently, and a single mistake in the handle column creates duplicates.
The actual problem is translation. Each supplier has its own layout, units, naming and gaps, and the translation into your catalogue is being done by a person, every time, from memory.
The cost of doing it by hand
- New ranges go live later than they could, so you miss the start of a season or a trend.
- Typos in prices and weights cause undercharging or wrong shipping rates.
- Inconsistent option names break collection filters and search.
- Thin or missing descriptions leave product pages with little for search engines or customers to read.
- Price updates from suppliers sit in an inbox because applying them is another manual job.
And the person doing it is usually someone whose time is worth more on buying, merchandising or customer service.
How we automate product uploads
We build a pipeline per supplier, with the mapping written down once and reused for every file they send.
- Read the supplier file. Spreadsheets, CSVs, feeds or an API, whatever they provide, picked up from an inbox or a shared folder.
- Map columns to your catalogue. Supplier fields are matched to Shopify fields and metafields, with the mapping stored so it does not need redoing.
- Clean and normalise. Units are converted, sizes and colours are standardised to your option names, and variants are grouped under the right parent product.
- Match images. Files are linked to products by code, name or order, and anything unmatched is listed rather than guessed.
- Draft missing content. Where descriptions or tags are missing, we can use a model such as OpenAI or Anthropic Claude to draft them from the specification, following your house style. Drafts are marked as drafts.
- Stage for approval. New and changed products appear in a review screen, or are created in Shopify as drafts, so a person approves before anything goes live.
- Apply updates. Later files from the same supplier update prices and stock on existing products instead of creating duplicates.
| Step | Handled by |
|---|---|
| Reading and mapping the file | The pipeline |
| Unit and option clean-up | The pipeline, using your rules |
| Description drafts | An AI model, marked for review |
| Checking and publishing | A person on your team |
| Price and stock updates | The pipeline, with changes logged |
What your catalogue work looks like afterwards
A supplier file arrives and, shortly after, a batch of draft products is waiting for review with photos attached and options named the way your store expects. The job changes from typing to checking, which is faster and catches more.
Because the data is consistent, filters work, feeds to Google and marketplaces stop rejecting products, and price changes are a file drop rather than an afternoon.
Does this sound like your store?
- You add products in batches of dozens or hundreds from supplier sheets.
- Someone creates products in the Shopify admin one at a time.
- Option names like sizes and colours are inconsistent across the catalogue.
- Supplier price changes take days to reach the site.
- Many products have no proper description.