
The problem
A handmade shop has an awkward catalogue problem: nothing is ever repeated. A new coaster or wall piece needs clean product photos and a short description before it can be sold, and doing that by hand for every item is exactly the kind of repetitive work that stops a maker from listing new pieces.
What I built
The store. A custom storefront at resinhomedecor.com:
- Prices are shown in Kuwaiti dinar by default, with US dollars one click away. Both come from a single exchange rate the owner can edit, and checkout settles through Stripe.
- Cart and checkout, a custom-order request flow for commissions, a journal, an FAQ, and returns and privacy pages.
- A newsletter signup ("new pieces go to the newsletter first") and a protected admin area.
The photo-to-listing flow. This is the automation:
- Raw phone photos of new pieces go into a small Chrome extension, followed by one click on Generate for all.
- The extension works inside a logged-in ChatGPT account and creates two studio-style product photos and a short description for each piece.
- An agent collects the results and turns each one into a product entry for the store.
- Nothing goes live until the new listings have been checked and the deploy is approved.
Why it works this way
Image generation needed a paid ChatGPT account in a real, logged-in browser. Current versions of Chrome block outside tools from controlling a normal browser profile, so scripting it from outside wasn't an option. An extension runs inside the browser, with the existing session, and needs no extra permissions. The design came from that constraint.
What it changes
Without it, every new piece needs its own photo shoot and its own write-up before it can be sold. With it, a phone photo is enough, and the remaining work is checking the result.
One click to generate, one approval to publish.