← All work

Job Catalogue importClient Motorcycle-gear retailerPlatform ShopifySource Brand website, no feed

A manufacturer's full catalogue into a retailer's shop

No usable feed from the brand. 694 products and 1,605 variants collected, normalized and validated into the retailer's Shopify store, imported with every item, then given a path to refresh prices and stock.

products
694
variants
1,605
items missing
0
projects for this client
3

On the brand's siteOne model spread over several pages, with sizes and colours on separate pages

In the shopOne product per model, its variants grouped by colour and size

Situation

A motorcycle-gear retailer wanted to carry a manufacturer's full range in its Shopify store. The manufacturer had no feed, no API and no spreadsheet it would share. The only reliable source was the brand's public website, where the same product often lived at several addresses and sizes and colours were spread across pages.

Problem

Typing 694 products with 1,605 variants by hand wasn't realistic, and a quick scrape would have produced duplicates, missing variants and prices the shop couldn't trust. The retailer needed one product per model with its variants grouped correctly, prices in its own currency, and a way to check the result before anything went live.

What I built

A repeatable pipeline rather than a one-off script:

  • Discover the product pages from what the brand's site publishes, with polite limits.
  • Collect with checkpoints, so a run can resume instead of starting over.
  • Normalize titles, options, images and tags into the shop's structure, and merge the pages that describe the same model into one product with variants, with rules the retailer can adjust.
  • Validate before export: errors stop the import, warnings get listed, so bad rows don't hide in a spreadsheet.
  • Export standard import files the merchant can open, sort and spot-check, then a dry run on a development store before the production import.

Around that: field maps, a dry-run checklist, and notes on what was a data fix and what was a conscious trade-off.

Result

The full range is in the shop: 694 products and 1,605 variants, every item imported. The retailer has a method it can run again when the brand changes something, and a second phase added fixed local prices and a scheduled service to refresh prices and stock from the supplier's system without a full collection each time.

About the client's name

The retailer and the brand aren't named here yet, and neither are the import files or screenshots of the catalogue shown. They appear once the client agrees to be named.

Send me your catalogue or shop address

Within a few days you get 3 to 5 concrete findings in writing, free, no call needed. If they're useful, the next step is a fixed quote.