Scotch & Soda UK
The Studio
What started as "can you organise some images" became a complete product data pipeline — image sourcing, SEO generation, and Shopify migration for a fashion retailer.
How it started
A friend introduced me to the client. The first job was simple: their e-commerce site had product images in random order — flat lays mixed with back shots, detail images appearing first. Could I just arrange them consistently and fix the backgrounds?
I built a small script. Job done.
Then: "By the way, can we get better SEO titles? We're just using the generic supplier copy." Another script.
Then they decided to migrate from Square to Shopify, and everything got more complicated.
What I walked into
The product data had evolved over three years across multiple systems and team members. Square imports, image management, and tagging were all handled separately. This is normal for a growing business — but it meant no single person had full visibility.
The data had the usual signs of organic growth: duplicate barcodes, inconsistent SKUs, sizing options out of sequence. Around 150 products weren't live due to sync issues between Square and the e-commerce platform. All fixable — but it needed untangling first.
Everyone believed there was a master data file somewhere with everything. Like most growing businesses, the reality was more fragmented.
"It's a nightmare. It takes me days and days to find images. I have to search Bynder manually, download each one into a ZIP, extract them, then upload..." — the person who did the image work
I did that workflow once myself. Searching Bynder for each product code, waiting for the ZIP to download, extracting, renaming, uploading. My hands were aching after an hour. She was spending 3-4 days on this every drop.
What I built
Three services running together: a React dashboard the client can use, an image processor that automates Bynder searches, and an SEO generator that writes product copy.
Step 1
Upload the supplier CSV. The system parses product codes, validates barcodes, and flags duplicates automatically.
Step 2
Click "Search." Browser automation logs into Bynder (no public API exists), searches each product code, downloads the ZIP files, and extracts images. If a search fails, it retries with the base code. Screenshots are captured for debugging.
Step 3
Images are processed through Cloudinary — resized to 1000×1300, converted to WebP, backgrounds handled. GPT Vision then classifies each image: front, back, detail, flat lay.
Step 4
SEO titles and descriptions are generated via GPT-4o using a Style Master cache (so we don't regenerate copy for products we've already processed).
Step 5
Output is a Matrixify-ready CSV. Drag it into Shopify, wait for the import to complete. Done.
System overview
Each stage includes validation, mutex locking, and failure handling.
Constraints
- Seasonal drops happen on fixed schedules. The system had to be faster than doing it manually.
- Bynder has no public API. Session-based auth only. Required browser automation with cookie management.
- Image order matters for conversion. Front shot first, then back, then detail. Consistent across 700+ products.
- Non-technical users need to operate this. Drag-and-drop interface, not command line.
The result
A senior team member had been handling product imports as a favour — work that sat well outside his core role. That responsibility has been removed from his workload entirely.
The person who spent 3-4 days manually finding images now spends around an hour reviewing what the system found. This happens every month, per product drop, across multiple stores.
What mattered most
"This started as a small job organising images. Then SEO. Then migration. Each piece revealed the next problem."
The system exists because I did the manual process once and felt how painful it was. But the real win wasn't time savings — it was people no longer doing work that felt beneath their role. Senior staff reclaimed their attention. Frustration turned into oversight. The effect compounds every month.