CHROME EXTENSION · 2026
SALESBAR
FOR EBAY
WORKS ON ALL CHROMIUM BROWSERS
THE PROBLEM
eBay resellers need sales velocity data to decide whether a product is worth listing. That data — how many units sold in the last 7, 15, or 30 days — exists inside eBay's purchase history endpoint. But accessing it means navigating away from the listing, running a manual lookup, and copying numbers into a spreadsheet.
Multiply that by hundreds of listings per sourcing session and it becomes the bottleneck that slows every reseller's workflow.
THE SOLUTION
SalesBar injects a compact, always-visible analytics bar at the top of every eBay listing page. No setup, no account, no redirect. Open a listing, the data is there.
One sync pulls and caches the purchase history. Every subsequent visit is instant — the extension reads from cache, not the network.
WHAT THE BAR SHOWS
SALES VELOCITY
7 · 15 · 30 day units sold
Three rolling windows pulled from eBay's purchase history. Updated on demand, cached locally.
ALL-TIME SALES
Total units ever sold
Full lifetime sales count — useful for gauging whether demand is recent or historically deep.
CURRENT PRICE
Buy It Now or auction
Live price extracted from the listing — no extra request needed.
CATEGORY
eBay item classification
Item category pulled from listing metadata — helps spot miscategorised listings instantly.
SELLER LOCATION
Ship-from country
Visible at a glance — critical for resellers calculating delivery costs and lead times.
WATCHERS
Live watcher count
Demand signal. High watchers on a slow-selling item often indicates price sensitivity.
Delivery time estimates — extracted from the listing's shipping section. No separate lookup. No calculator. The bar shows estimated delivery range alongside everything else.
HOW IT WORKS
Three phases: inject, sync, cache. Most users only see the first and last.
INJECT
When you open an eBay listing, the content script fires. It detects the listing ID from the URL, checks localStorage for a cached entry, and renders the bar immediately if a cache hit exists. Cold-path render time: under 50 ms.
SYNC
On first visit or manual refresh, the extension hits eBay's purchase history endpoint. This requires the user to be logged into eBay in the same browser — the request is made with the existing session cookie, so no credentials are stored or handled by the extension. The MV3 service worker manages the request lifecycle from the background.
CACHE
Sales data is written to localStorage keyed by listing ID. Subsequent visits to the same listing skip the network entirely. The sync button is always visible if the user wants fresher data — but the default behaviour is instant from cache.
TECHNICAL DECISIONS
Every choice was made to keep the extension small, fast, and reliable on a dynamic single-page app.
MV3 SERVICE WORKERS
Chrome's Manifest V3 replaces persistent background pages with service workers that spin up on demand. This forced a stateless architecture for background tasks — which turned out to be the right constraint. The extension doesn't need persistent state in the background; it needs fast per-request processing.
Side effect: smaller memory footprint. The service worker sleeps when not needed.
MUTATIONOBSERVER
eBay is a React SPA. Navigating between listings doesn't trigger a full page reload —
the URL changes but the DOM is patched in place. A standard DOMContentLoaded listener
would miss 90% of navigations.
The content script attaches a MutationObserver to the document body and
watches for URL changes. When a new listing ID is detected, the bar re-renders with
the new data. No polling, no timers — just reactive DOM observation.
ZERO LIBRARIES
The extension is 50 KB including all assets. That's the full package — no React,
no Vue, no utility libraries. The UI is built with vanilla DOM APIs, the data
layer is plain fetch and localStorage.
Dependencies in browser extensions are a liability — they increase review surface, add to bundle size, and introduce maintenance overhead for something that doesn't benefit from a full component model.
PRIVACY BY DESIGN
The extension collects no personal data. It stores only anonymous session IDs and item-specific sales snapshots in localStorage — nothing is sent to an external server except the eBay API request made with the user's own session.
No eBay credentials are handled, stored, or transmitted by the extension. The purchase history request uses the cookie already in the browser — the same one eBay's own pages use.
READ FULL PRIVACY POLICY →OUTCOME
INSTALL SIZE
50 KB
Full extension — no CDN dependencies
RENDER TIME
<50ms
Cache-hit bar render on listing open
DATA WINDOWS
4×
7d · 15d · 30d · all-time in one bar
Live on the Chrome Web Store. Built for eBay resellers who need sourcing decisions in seconds, not minutes. The extension ships no tracking, requires no account, and adds zero overhead to listing pages that don't trigger a sync.
FREE · NO ACCOUNT REQUIRED