Case study

How a home goods store stopped updating stock by hand.

Three vendors, three different ways of sharing stock, and two people spending their days checking one against the other. Here's what I built, what it changed, and what still breaks now and then.

  • Home goods e-commerce
  • Shopify
  • 3 vendors
  • Runs nightly
  • Live since May 2026

Alex Atuel AI & Automation Specialist

800+products synced every night
80+hours of checking a week, handed back
2people back on work that needs a person
0oversells since launch

01 · The setup

Three vendors, three ways of doing it.

The client is a home goods e-commerce brand on Shopify, selling products from three vendors. None of them share stock the same way.

Keeping the store honest meant doing all three by hand. For the emailed file, someone on the team opened it, filtered it down to the products the store actually carries, exported the store's current inventory, compared the two in Excel, then updated every product that had changed. For the other two, someone visited each vendor's site, checked each product against the live store, and updated whatever was different.

Two people did this, 8 to 10 hours a day each, five days a week. The time set aside for it kept falling short as the catalogue grew, so the long days turned into overtime.

Vendor A

Emails a stock file every night.

Checked by hand

Vendor B

Shows stock on its own site, behind a trade login.

Checked by hand

Vendor C

Same again, on a different site with a different login.

Checked by hand

Two people, 8 to 10 hours a day each, five days a week.

02 · What it was costing

The task was the problem, not the people.

Checking hundreds of products by hand, every day, is exactly the kind of work people get wrong now and then, through no fault of their own. Every so often the store sold something a vendor no longer had, or a quantity got typed in wrong.

The bigger cost was quieter. The client's team had admin work piling up that genuinely needed a human decision, and two people were spending their time on a job that was tedious, slow and the same every single day. Nobody enjoyed it, and it wasn't using what they're actually good at. That's when the owner decided it had to go.

Oversells

Now and then the store sold something a vendor no longer had.

Typos

A quantity typed in wrong, found only when it caused a problem.

Time

80 to 100 hours a week of checking between two people, while decision work waited.

Before and after

Nine steps by hand, every day. Now it's one run.

Scroll and watch the manual routine fold into the build that replaced it.

Before · by hand, every day

  1. Open the vendor's stock emailBy hand
  2. Filter it to the products the store carriesBy hand
  3. Export the store's current inventoryBy hand
  4. Compare the two in ExcelBy hand
  5. Update each changed product, one by oneBy hand
  6. Log in to vendor B's siteBy hand
  7. Check every product against the storeBy hand
  8. Repeat for vendor CBy hand
  9. Fix what changed, hope nothing was missedBy hand

After · one nightly run

Nightly sync

Every vendor checked, the store updated, a summary posted to the team chat. Nobody awake.

9 manual steps, 2 people1 automated run, 0 people

The team · now

Nothing left to do by hand.

Two extra pairs of hands, and two extra minds, back on work that actually needs a person.

2 people · on more meaningful work

03 · What I built

One pipeline per vendor, all ending in the same place.

Each vendor got its own route in, because each one shares stock differently. All three end the same way: the right number on the store by morning, and a note to the team saying so.

Vendor AEmails a fileVendor BTrade loginVendor CTrade loginScraperto a sheetNightly syncStore inventoryUpdated, drafts setTeam chatSummary of each run

Vendor A

The emailed file

Overnight, the build picks the vendor's email up from the shared inbox, reads the file, keeps only the products the store carries, and updates just the ones whose quantity changed. Discontinued items get skipped instead of zeroed out. If the connection drops, it retries on its own before giving up.

Vendors B and C

Stock behind a login

There's no file to read, so a scraper logs in the way a person would, checks every product's stock, and writes the results to a sheet. A cloud workflow then reads that sheet and updates the store. When something sells out at the vendor, the product goes to draft on the store automatically, and it comes back when stock does.

Every run

It reports back

After each run, a short summary lands in the team's chat: what was checked and what changed. If anything looks off, the team sees it first thing in the morning, not when a customer complains.

Built with

  • Shopify Admin API
  • Python
  • Playwright
  • Google Sheets
  • GitHub Actions
  • A scheduled local job
  • Team chat notifications

04 · What changed

Two people got their time back.

The stock updates now happen every night without anyone opening a laptop. The client's team got 80 to 100 hours a week back, two people's full working days, and that time went straight to the admin work that needs judgement, the work nobody could get to before.

The part I'm happiest about: the people who used to do the checking are happier too. They moved on to work that's more meaningful and actually builds their skills, instead of comparing spreadsheets all day.

0oversells since the syncs went live
800+products checked every night, across all three vendors
2people moved on to work that needs a person
80+hours a week handed back to the team

05 · What still breaks, and how it's handled

Apps change. The output can't.

No automation runs untouched forever. Shopify updates its systems, vendors change their websites, and every so often one of those changes breaks a step. That's normal, and it's why every run reports back. When a summary looks wrong or doesn't arrive, I find what changed upstream, adjust the build, and it's back on track.

  1. What happened

    Partway through, a vendor's site started blocking automated visits from cloud servers.

  2. How it showed up

    The nightly summary flagged it, so it was caught the next morning.

  3. The fix

    That step moved to a scraper that runs on a regular machine and logs in like a normal browser.

  4. The result

    No going back to checking by hand. The store never noticed.

The owner doesn't care how it runs. They care that the numbers on the store are right every morning. Everything in the build serves that.

The takeaway

If your stock comes from more than one place, this is probably your build too.

Different vendors, different formats and a store that has to be right every morning is one of the most common setups I see in e-commerce. You don't need three vendors for this to be worth it. One vendor and one person spending an hour a day on it is enough.

Book a free callSee all services

Free 30-minute call on Google Meet. If it's not worth automating, I'll tell you.