A computer screen with a bunch of blue circles around it.
Clients:

Smart Payment Solutions

Category:

Bespoke Software

POS Asset Generator — batch product images for point-of-sale software

Client: Smart Payment Solutions · Sector: Payment & POS hardware reseller · Location: United Kingdom

1 | Brief

Paul at Smart Payment Solutions sells POS hardware, and every product on his till interface needs a clean image. His workaround was to ask ChatGPT for ten images at a time, wait for a single collage to come back, then cut each product out by hand before loading it into his POS software. For every new product added, the whole process started again.

He wanted a private internal tool that could take a plain list of products and produce one ready-to-use image per item, correctly named and sized, with no manual cutting involved. The tool needed to stay private (it sits on a paid API key), give him control over generation cost, and let him download a whole batch in one go.

2 | Key Goals

  • Turn a pasted or uploaded product list into one separate, clean image per product
  • Produce images at the exact size the POS software expects, named so they drop straight in without renaming
  • Remove the manual step of cutting individual products out of a collage
  • Keep the tool private behind a passphrase, since it holds a paid API key
  • Let the owner choose a quality level per run to keep routine work cheap
  • Package a whole batch as a single download so it loads in one pass

3 | Solution Snapshot

Problem Solution Implemented
Asking a chatbot for ten images returned one collage that had to be cut apart by hand Built a tool that calls the image model once per product from a list, so each item arrives as its own file with nothing left to cut out
Product images needed to arrive at a fixed size and be named consistently before loading Each image is produced to a fixed square size and auto-named from the product name, then packaged as a ZIP with a CSV map so a full batch loads in one pass
Image generation costs money and the owner needed a way to control spend Offered draft, standard and high quality levels per run; the cheapest option costs a fraction of the highest, so day-to-day work can stay inexpensive
The tool holds a paid API key and should not be publicly accessible Put the whole tool behind a passphrase gate with a durable rate limiter that survives server restarts and cannot be bypassed by rotating request headers
Saving several products at once could silently drop images through a race condition Serialised the saves so parallel writes to the shared index could not overwrite each other, stopping the silent image loss that had been happening
A configuration rule blocked the app from reading back the generated image and still billed for it Reworked the image handling to decode the result directly from the response, so a real generation no longer failed after the paid API call had already gone out

4 | Impact

  • Paul now pastes in a product list and gets back a ZIP containing one named image per item, ready to load directly into his POS software
  • The manual collage-cutting step is gone entirely
  • A passphrase gate and restart-proof rate limiter mean the API key is protected without needing a full user account system
  • Three quality tiers give Paul direct control over what each run costs, with no guesswork
  • A live usage meter, backed by Cloudflare R2 object storage, lets him see what is being stored and generated at any point
  • The batch download, ZIP writer, CSV parser and file naming are all hand-rolled with no extra libraries, keeping the dependency footprint small and the tool straightforward to maintain
Get in touch about a similar project

What are you waiting waiting for?

Start Your Project Today
Book a FREE Call
footer shape