Desktop Tracker For Amazon Prices

Track single products, grouped carts, and block-heavy refreshes without living in the browser.

Amazon Price Tracker is a PyQt desktop app for watching product prices, bundle totals, historical lows, target thresholds, and refresh failures while keeping your data and caches in your own user profile.

Truth in the pitch: this repo is source-run today, not a packaged one-click installer.
Bundle-aware dashboard Tray sync ready
Amazon Price Tracker dashboard showing the overview strip, refresh controls, bundle panel, and dense product cards
Real app screen Overview, bundles, refresh controls, and watchlist cards in the current desktop layout.

The landing page now matches the denser app surfaces.

These screenshots reflect the current in-repo desktop UI: the compressed overview strip, the bundle panel, and the tighter product cards used for repeated buying decisions.

Amazon Price Tracker overview strip with tracked item count, potential savings, refresh all, and add product controls
Overview strip

Snapshot counts, potential savings, refresh status, and quick add actions stay visible without burning vertical space.

Amazon Price Tracker bundle card with current total, savings, average comparison, trend chart, and member products
Bundle panel

Grouped buys get their own pricing surface with current total, spread versus history, trend line, and included products.

Amazon Price Tracker product card showing low-state badge, product image, current price, freshness, and recent trend
Product card

Each tracked item keeps the price, state badge, last update, comparison deltas, and trend in one compact card.

Data ownership Per-user local storage
Background workflow Tray menu + scheduled refresh
Bundle view Avg / median / savings context
Blocked fetch recovery Embedded browser fallback

Built for repeated buying, not one-off price checks.

The app combines product tracking, bundle math, browser capture, and desktop automation so recurring purchases can be reviewed as a watchlist instead of a stack of tabs.

01 Track individual products with target alerts.

Add a direct Amazon URL, optional target price, and optional manual fallback price for cases where the live fetch is blocked or incomplete.

02 Watch whole bundles instead of isolated items.

Group products into one bundle, track combined cost over time, and compare today’s total against bundle average and median instead of guessing from memory.

03 Capture products straight from Chrome or Firefox.

The unpacked browser extensions send the active Amazon product page into the desktop app through native messaging so new tracking starts from the page you already have open.

04 Run in the tray and sync on a schedule.

Use the tray icon for show, hide, sync, settings, logs, data folder, autostart, and quit while background refreshes keep the dashboard current.

05 Keep maintenance visible to the user.

Settings and maintenance flows expose the active config, cache, logs, and data folders, with actions to clear image and recovery caches from the GUI.

06 Stay usable when the scrape path gets messy.

Refresh failures are treated as part of the normal workflow: the app records them, surfaces them, retries through browser-assisted recovery when appropriate, and falls back to manual pricing when needed.

The app does not pretend blocked fetches never happen.

Direct HTML scraping can fail because of robot checks, captchas, missing live prices, or markup changes. The recovery path is explicit and visible rather than hidden behind silent failure.

Recovery flow
1
Direct fetch runs first.

The normal refresh path attempts a direct Amazon fetch and parse for the live price and page data.

2
Blocked or price-missing responses are classified.

If the response looks blocked or no readable live price is present, the app records that failure mode instead of pretending it was a valid refresh.

3
Embedded-browser retry is queued.

A `QWebEngine` recovery attempt is scheduled. It stays hidden unless Amazon actually presents a captcha or robot check that needs the user to intervene.

4
Compact recovery window appears only when needed.

If Amazon wants human confirmation, the app opens the recovery window so the user can solve it once and continue without restarting the whole workflow.

5
Session strategy is configurable.

Recovery can reuse the app browser session, use a fresh temporary session, or auto-import Amazon cookies from a selected Chrome, Chromium, or Firefox profile before each attempt.

Fallback still matters: products can also keep an optional manual fallback price so the dashboard remains usable when Amazon does not yield a live price yet.
What this means in practice
A
No silent success.

Refresh failures are visible and can trigger notifications rather than disappearing into logs only.

B
No heavy browser babysitting during normal refreshes.

The browser-assisted path stays out of the way until Amazon forces it into view.

C
No mystery data location.

Recovery cache, image cache, config, and logs all live in the user’s app-data directories and are reachable from the app UI.

Signals go beyond “did the price change?”

The dashboard and notification system focus on states that matter for recurring buys, not only raw price snapshots.

Historical low Products can move into new low territory.

The app watches for historical lows and uses those transitions as one of the important notification cases.

Near low Close-to-best pricing is tracked as its own state.

Near-low transitions are surfaced separately so you can act before an item hits an absolute low again.

Target price Configured thresholds are checked on refresh.

Target-price hits are treated as first-class alerts alongside the app’s other important pricing signals.

Bundle analytics Grouped carts are compared against context, not isolated totals.

Bundle tiles report combined total, savings state, and comparison against bundle average and median.

Refresh health Failures are checked, stored, and surfaced.

Important-only notifications include refresh failures, which keeps blocked or degraded tracking visible.

Freshness The UI keeps the last sync state visible.

Recent update timing and current priced-state context help show whether a dashboard view is fresh or needs attention.

Want the actual app, not just the pitch?

Start with the source-run desktop workflow in the repo, then load the unpacked Chrome or Firefox capture extension if you want one-click importing from live Amazon product pages.