Shelfie

First sync

Run your initial product sync after install

After installing Shelfie you'll see an empty dashboard with a Sync Products call-to-action.

What the first sync does

  1. Pulls every active product from your store (paginated 50 at a time)
  2. For each product, records: title, vendor, type, tags, cost, price, inventory level, image
  3. Pulls the last 365 days of orders to determine each product's lastSoldAt
  4. Computes agingDays (days since lastSoldAt, or days since the product was added to your store if it has never sold) and assigns a risk level

For a 1,000-product store the first sync typically takes 30–90 seconds. A 10,000-product store may take 5–10 minutes.

What to do during the sync

The dashboard shows a progress banner. You can navigate away — the sync continues server-side. Refresh the page when you come back.

After the sync completes

The KPI tiles populate and the at-risk table fills with any product aging past your warning threshold. If everything in your catalog is fresh, you'll see "No at-risk products" and Value at Risk = $0. Come back in a few weeks.

Re-syncing

Click Sync Products or Re-sync any time to refresh your catalog and recompute aging.

Each manual sync re-pulls products from Shopify page by page. If a sync fails or stalls, Shelfie saves a checkpoint after every page. Click Re-sync within 30 minutes and it resumes from where it stopped — products already imported are not re-fetched from Shopify.

After 30 minutes the checkpoint expires and the next sync starts fresh from page 1 (existing DB rows are updated via upsert, not duplicated).

Most stores run a manual sync 1–2× per week.

What updates automatically (without a full sync)

A full manual sync is still required to refresh order history, recompute aging across your whole catalog, and update the Recovered KPI.

Individual products are updated in the background when:

  • A product is changed in Shopify (products/update webhook) — title, price, inventory, tags
  • A new order is placed (Pro plan) — real-time Recovered attribution for that product

These per-product updates do not replace a full sync for catalog-wide aging and KPI refresh.