Shopify app

Supplier stock and prices,
on a schedule you control

Point the app at a CSV, XML or JSON URL, a public Google Sheet, FTP, or an upload. Map SKU or barcode, stock, cost and price. Preview the first diff, then let hourly or daily runs write with inventorySetQuantities.

Four steps

Nothing is written to the catalog until you approve the first preview.

1

Add a feed

HTTPS CSV, XML or JSON, a public Google Sheet, FTP, or paste a file. SFTP settings are stored; use an HTTPS export of the same file, or FTP, until SSH fetch is enabled.

2

Map columns

SKU or barcode, stock, cost and price. Selling price can copy the supplier price or be cost plus a percent or a fixed amount, then rounded.

3

Preview, then approve

The first run shows which variants would change. Unmatched SKUs are skipped, never created. Approve once; later runs write only what still differs.

4

Schedule the writes

Daily on Starter. Hourly on Growth and Scale. A Worker cron checks due feeds every hour and writes only rows that still differ.

What gets updated

Inventory quantity at your chosen location, selling price, cost per item, and optional draft or continue-selling when the feed says zero. Products are never deleted.

Good to know

  • First run is a preview. Scheduled writes start only after you approve the diff.
  • Match, don’t create. Rows that do not match a SKU or barcode are skipped and listed in the log.
  • SFTP. Connection settings are stored. Fetch the same file over HTTPS or FTP until SSH is enabled on the Worker.
  • Plan caps. Starter is daily and one feed. Growth and Scale add hourly runs and more SKUs.

What you get

Admin in English, Portuguese, Spanish, French, German or Italian. Plans by feeds, frequency and SKUs.

The files you already have

CSV, XML and JSON URLs, a public Google Sheet, FTP, or an upload kept for later runs.

Markup that matches how you sell

Copy the supplier price, or cost plus a percent or a fixed amount, rounded to two decimals, .99 or .95.

Out-of-stock handling

Zero the quantity, set the product to draft, or keep selling. Optionally set it active again when stock returns.

Preview before the first write

See stock and price diffs, skipped rows and errors before anything is sent to the Admin API.

Bulk GraphQL writes

inventorySetQuantities in 250-row batches, plus price, cost and status mutations. JSONL helpers for bulk operations on Scale.

A schedule that fits the plan

Daily on Starter. Hourly on Growth and Scale. A Worker cron checks due feeds every hour.

Three plans, 14-day trial

Starter

$15

per 30 days

  • 1 feed
  • Daily sync
  • Up to 1,000 SKUs
  • Preview before first write
  • Email support
Start free trial
Scale

$99

per 30 days

  • 20 feeds
  • Hourly or daily
  • Up to 100,000 SKUs
  • Bulk JSONL helpers
  • Email support
Start free trial

Questions

Do I need Shopify Plus?

No. The app uses the Admin GraphQL API (inventorySetQuantities, productVariantUpdate, inventoryItemUpdate, productUpdate), which is available on Shopify plans that can install public apps.

Will it create products?

No. It only updates variants that already exist and match a SKU or barcode. Unmatched rows are skipped and listed in the sync log.

What happens on the first run?

You get a preview of planned stock, price and cost changes. Nothing is written until you approve. Later scheduled runs write without asking again.

How is out of stock handled?

You choose: set quantity to zero, set the product to draft, or continue selling. You can set the product back to active when stock returns.

Can I change plan without reinstalling?

Yes. Open billing in the app and pick Starter, Growth or Scale. Shopify shows the new charge to approve.

Does the app read orders or customers?

No. Scopes are products, inventory and locations only. Privacy webhooks are registered and answer with HMAC verification.

What about FTP passwords?

They are stored in Cloudflare D1 (encrypted at rest) and never written to the sync log or returned to the browser after save.

What happens when I cancel?

Cancel in Settings or uninstall. Shopify stops the charge. Feeds stay until you uninstall; shop/redact then deletes the store’s data.