Serhii NezhyhaiShopify developer

Work Integration & migration

Supplier price sync

A desktop app that pulls prices and stock from eight suppliers, re-prices them, and bulk-updates the store and its marketplace feeds.

Client
Informatica
My role
Sole developer · employee
Period
2024 — present
Outcome
Supplier sources8
Sync pathsuppliers → re-price → Shopify bulk API
Feeds regeneratedRozetka + Google Merchant

Problem

The catalogue's prices and availability come from eight suppliers, each in a different format — some an API, some a Google Sheet, some only a web page behind a login. Keeping the store current by hand was a daily few hours and still always slightly stale.

Constraints

Runs on the store operator's own machine, against the live store. A bad bulk update is expensive, so a run has to be reviewable before anything is pushed.

Hard part

Reconciling eight supplier catalogues against the store's products when SKUs and naming don't line up between any two of them.

Stack

Stack:
  • Electron
  • React
  • TypeScript
  • GraphQL Admin API (bulk operations)
  • Puppeteer
  • Google Sheets API

The run

Each supplier has its own adapter — a direct API call, a Google Sheets read, or a Puppeteer session against a login-gated page — behind one interface. A run fetches the store’s products, pulls each supplier’s current data, merges them, and applies the pricing rules: margins per category, an exchange-rate setting, rounding. The result is written out as an Excel sheet and a JSONL file for the operator to look at before it goes anywhere.

Pushing it back

Approved changes go to Shopify through GraphQL bulk operations rather than per-product calls, which keeps a full-catalogue update inside the rate limits, and the same merged data regenerates the Rozetka and Google Merchant feeds so the marketplace listings don’t lag the store.

Why it’s a desktop app

It’s an operator tool, not a store feature: it runs occasionally, needs a folder of credentials, produces files to review, and belongs on the machine of the person who owns the decision. A hosted service would have been more infrastructure for something one person runs a few times a week.