Pro Cool 4: How we built a shop with 24,021 products
This one's a bit different to the rest of the series, more of a "here's what we actually built" story. But it's one of my favourite jobs, so bear with me.
Pro Cool sells industrial air con parts, the gear that keeps the cabins cool on mining trucks and earthmovers out in the Hunter. Troy wanted an online store. The catch with any parts store is the products. Thousands of them, each with codes, specs, prices, images and spec sheets. Loading that lot by hand is the kind of job that kills a project before it launches.
So Troy loaded none of it.
Instead I wrote scrapers for his five suppliers and pulled the catalogue straight off their systems. Five different systems too, all built differently: one on Magento (10,751 parts), two on an old Pronto platform (8,070 and 4,684), one a static site (449), and one a little WooCommerce store (67). 24,021 parts all up, imported and cleaned, without Troy touching a spreadsheet.
The store itself is all custom, built on Cloudflare Workers rather than a cookie-cutter platform. Trade pricing stays hidden unless you're a logged-in trade customer, stripped out on the server so there's no peeking at the code, and a freight calculator works out postage by weight and state. Standard shop stuff, done properly.
The interesting part is the three jobs we ran on that pile of data, because being straight about what's AI and what isn't is the better story.
The descriptions were AI, built to not make things up. 24,021 parts don't describe themselves, and nobody's writing that by hand. So I had Gemini do it, but not from memory, which is the important bit. For each part it searched the web first for that exact code, read what it found, and wrote a short technical description from that. The instruction, near enough word for word: do not invent specifications, only use what you actually found. Close to 20,000 parts got a description that way, and 9 in 10 of them have a real source stored behind them. Built to be accurate, not impressive, because the people ordering are mechanics and fleet managers who'll order the wrong part if a spec's made up.
Here's one part, because it's the whole idea in miniature. It came into the store as "A/C Hose Ultra Star", four words and a code, no brand attached. The AI went and worked out it was a Manuli Ultra Star hose, and wrote up the real spec: rated from minus 40 to 125 degrees, good to 35 bar, compatible with the newer refrigerants, right down to the matching crimp fitting. It even named the manufacturer, which wasn't in the data anywhere. Four words in, a datasheet a mechanic would actually trust to order off.
And it did that across the catalogue. Hand it a cryptic condenser listing off a Lexus and it dug out the OEM cross-reference number, 88460-30B40, which is the single most useful thing to anyone ordering the right part.
The supplier matching wasn't AI at all. The same part turns up across two or three suppliers under slightly different names, and linking those up sounds like an AI job. It isn't. It's plain code, matching on OEM part numbers and comparing the names, and it found around 700 of those cross-supplier matches in seconds. No model, no API bill. You don't need AI for everything, and knowing when a bit of well-written code is the right tool is half the job.
And the shop itself, Claude can run. The back office is wired up so I can operate it by talking to Claude, about thirty actions in all, locked down by role so an admin can do everything and a trade customer can only ever touch their own slice. A shop you run by talking to it, safely.
Credit where it's due. Marianne ran the project and helped shape the design, and Lenmark rebuilt the main Pro Cool website, the WordPress side, while I built the custom shop and the scraping engine.
One honest war story. Partway through, one of the suppliers flagged us for scraping too fast and throttled us. So I slowed the crawlers right down, put proper delays between requests, and ran them gently overnight instead. The internet doesn't love being hammered, fair enough.
The point of all this isn't really the shop. It's that the boring, backbreaking part of building one, typing in 24,021 products, just didn't happen. Some of it AI did, some of it plain code did, and the trick was knowing which. That's the same thread running through everything I've been banging on about this series: not AI everywhere, just the right tool doing a job you'd never get to yourself.
Cheers,
Jez
Want to dig in? Cloudflare Workers, what the shop and the scrapers are built on.