Josh Cannon
Back to projects

Shopify Catalog Automation

A distributor-to-Shopify product pipeline for a niche e-commerce retailer — scrapes the supplier catalog, cleans it up, and pushes draft products into their store, with a hosted control panel the owner runs herself.

Founder & Engineer, Cannon AI LLC

2026

PythonShopify APIFastAPIRailwayBeautifulSoup

A small retailer was hand-entering hundreds of products from a distributor into Shopify — slow, error-prone, and a daily tax on the person running the business. Two prior vendors had taken the work and not delivered.

I built a scraper that pulls the distributor catalog, maps it to Shopify's product schema, and creates draft products ready for review — plus a hosted control panel so the owner runs imports on her own, without me in the loop.

Live on the client's store, cutting roughly two hours a day of manual catalog entry — delivered, in daily use, and grown into ongoing retainer work.

Problem

A small e-commerce retailer was rebuilding her Shopify catalog by hand — hundreds of products copied from a distributor, one at a time. It was the slowest, most annoying part of her week, and the most error-prone. She'd already paid two other people to fix it and gotten nothing she could use.

Build

  • A scraper pulls the distributor's catalog and cleans it up into a consistent format.
  • A mapping layer translates that into Shopify's product structure — titles, variants, images, pricing, metafields.
  • Products land as drafts, so nothing goes live without a human review.
  • A hosted control panel lets the owner run imports herself, watch progress, and re-run on demand — she keeps using it after I'm gone.

Technical Signal

  • Built to be handed off, not hovered over: the owner operates it without me.
  • Drafts-first by design — the system never publishes to a live store without review.
  • Covered by a deep test suite, because a catalog tool that silently corrupts product data is worse than no tool.
  • Won the work by leading with a working build, not a pitch — to a client who'd been burned twice before.

Current State

Live on the client's store and in daily use. The build is delivered; follow-on work — pre-order flow, shipping logic, storefront integrations — is in progress as a retainer.

Why It Matters

This is the whole pitch in one project: find a real cost a business is paying every day, build the smallest thing that removes it, and hand over a tool they own. They kept using it and brought me back for more — that's the signal in services.