Automated product card uploads
Updating the range is done by hand through the admin panel: open, paste, save, repeat. A script walks the same path itself, on a schedule, and reports what it changed.
Outcome
- The catalogue pass runs on a schedule, with no manual walk through the admin
- Deletes nothing: the previous value is kept, any change can be rolled back
- If a field is missing it stops and says so, instead of carrying on blind
- One week of updating the catalogue by hand costs more than a month of the script running
- Role
- Assembled for the specific shop
- Time it took
- from 3 days
The problem
The product range is updated by hand through the shop's admin panel. Every card means: open it, paste text into several fields, save, wait for the reload, move to the next one. Across hundreds of cards that stops being "a bit of routine" and becomes half a day every week that somebody does instead of their actual job.
How it works
The script makes the same pass itself: takes the data from a spreadsheet or an export, finds the card, fills the fields, saves. It runs on a schedule and reports exactly what it updated.
⚠️ This is assembled for a specific site, not an off-the-shelf box. Every shop has its own admin panel, its own field names and its own rules, so the work starts with me looking at your catalogue. A ready-made thing that installs onto any site in an hour does not exist, and not just here.
When it fits
- Hundreds of cards get updated by hand every week. Open it, paste, save, repeat, over and over.
- The shop's API does not cover everything. Some fields live only in the admin panel, and the script has to handle both paths.
- A bad update costs more than the routine itself. This needs a safeguard, not speed for its own sake.
Why not "just use the API"
The first thing I check is whether there is an API. Usually it turns out that some fields can be updated through it and some cannot, because they live only in the admin panel.
So the work splits. Everything reachable through the API goes through the API, because that is faster and more reliable. The rest is reached through the browser. Doing all of it through the browser "for consistency" would be a deliberately slower and more fragile choice.
Safeguards
The script deletes nothing. Before writing it stores the previous value, so any change can be rolled back.
If the page structure has changed and a required field is not found, it stops and reports it. That matters more than it sounds: a script that carries on blind in that situation will spread rubbish across the whole catalogue overnight, and clearing it up means doing by hand exactly the work this was meant to remove.
Common questions
What if the page structure changes? The script stops and reports it instead of carrying on blind. A silent failure here costs more than a day's pause.
Can it delete something or break the catalogue? The script deletes nothing. Before writing it stores the previous value, so any change can be rolled back.
Stack
- Python
- Playwright
- REST API
Got a similar task?
Describe it in two sentences. I'll tell you if it can be automated and roughly what it costs.