Drive the Real Catalog, Right Here

The actual extension UI, loaded with a sample catalog (placeholder data, not real listings). Search, filter, multi-select groups, then "Open IDs" — the panel shows exactly which PDPs would open (nothing really launches). Try it freely — the full source is on GitHub.

Live demo

How to try it

  1. Search or filter the group list (try the 🔍 Filter / ↕ Sort icons, or press F / S).
  2. Click groups to select them — the badge counts your selection.
  3. Hit "Open IDs" (or switch Platform to Walmart/Target) and watch the panel list every PDP it would open.

Free & open-source. Clone or download the repo, then load it unpacked in Chrome — full install steps are in the README.

Solo Developer
JavaScript · Chrome APIs · Manifest V3 · CSV data layer
126 groups · 650+ IDs · 4 retailers
🟢 In daily production use

Some products don't travel alone — a "Magic Bullet blade set" or an "Ab Wheel Roller" maps to several product IDs across retailers that always need to be checked together. This extension encodes those relationships once, so opening an entire product group across four marketplaces becomes a single click instead of a manual hunt through a spreadsheet.

126
Product groups
650+
Mapped IDs
4
Retailers
2
Global shortcuts

A Spreadsheet Is Not a Workflow

The first extension I built — the Multi-Marketplace Opener — solved opening a list of IDs. But a lot of catalog work isn't about loose lists; it's about groups:

  • Products belong to families. A single retail "product" often spans multiple Amazon ASINs (variants, bundles, parent/child) plus matching Walmart, Target, and Home Depot IDs. They always need to be reviewed as a set.
  • The mapping lived in a spreadsheet. Every audit started with hunting for the right rows, copying a scattered set of IDs, and pasting them somewhere to open — slow and error-prone, every single time.
  • Scale made it worse. Across two brands and 126 groups, "just look it up" added up to real minutes of friction on every check.
  • Cross-retailer context was lost. Comparing how a group appears on Amazon vs Walmart vs Target meant rebuilding the same ID set by hand on each platform.
The reframe

The catalog relationships were already known — they just lived in a spreadsheet nobody wanted to navigate. So I made the spreadsheet the data layer and built the workflow on top of it. The extension loads the group→ID map and exposes it as a searchable, clickable interface.

A Catalog Cockpit in a Popup

The extension reads a CSV catalog at load, groups every ID by product and brand, and renders a fast, keyboard-driven interface for finding and opening them:

🔎

Search, Filter & Sort

Live search across all group names, a brand dropdown, filters (Has ID / No ID / Single ID / Multi ID), and sorting by name or ID-count. Each group shows its live ID count for the currently selected platform.

Multi-Select & Manage

Click to select any number of groups, with a live badge counter and a "selected groups" dropdown of removable chips. Select-all-filtered and clear-all make bulk operations effortless.

🚀

Four Open Modes

Open IDs launches every PDP in new tabs · One-Page Open combines all IDs into a single search · Open Group Search runs a separate search per group · Copy puts every group-and-ID pair on the clipboard.

⌨️

Keyboard-First UX

Press F/S to open Filter/Sort menus, and global Ctrl+Shift+C / Ctrl+Shift+O to copy or open selected IDs from anywhere — no mouse required.

🏬

Multi-Retailer Routing

Switch the platform between Amazon (with 12 region domains), Walmart, Target, and Home Depot — every open/search/copy action re-routes to the correct URL pattern for that retailer.

⚙️

Power-User Settings

Optional auto-copy on select, auto-open on double-click, and a "PDP by group names" text box for opening groups by pasting names. View preferences and platform choice persist across sessions.

Architecture

A bundled CSV is the single source of truth. On load the popup parses it into an in-memory group model, then every interaction is a filter/sort/route over that model — no network, no backend.

Data
📄 data.csv (brand · group · Amazon/Walmart/Target/Home Depot IDs)
Model
CSV → grouped, de-duped map
Per-platform ID resolver
View
Search + Filter + Sort engine
Multi-select state
chrome.storage prefs
Actions
🗂 Open PDPs
🔍 One-page / per-group search
📋 Copy group + IDs

Engineering details worth calling out

  • CSV as a config layer. Keeping the catalog in a CSV means the group mapping can be updated without touching code — drop in a new export and the whole interface reflects it.
  • De-duplication at parse time. The loader collapses repeated rows into unique ID sets per group and per platform, so a group with five Amazon ASINs and one Walmart ID always resolves cleanly.
  • Platform-aware ID resolution. A single resolver returns the right ID list for whatever platform is active, so filters, counts, and every open mode stay consistent when you switch retailers.
  • Persistent view state. Active filter, sort, brand, platform, and region all save to chrome.storage.local and restore on next open.
  • Global commands. Manifest V3 commands wire copy/open to system keyboard shortcuts that fire even when the popup isn't focused.

Before vs. After

Open all PDPs for one product group
Before
Find rows, copy IDs, paste, open
After
Search → select → one click
Cross-retailer check (Amazon → Walmart → Target)
Before
Rebuild ID set per platform
After
Flip platform, same selection
Finding the right IDs
Before
Manual spreadsheet hunt, copy errors
After
Single source of truth, zero copy errors

This is the tool I reach for first on any catalog review. Once the groups were encoded, the spreadsheet hunt simply disappeared from the workflow.

— Post-launch observation

Hard-Won Lessons

  • Encode the relationships, not just the data. The value wasn't the IDs — it was the grouping. Capturing that structure once is what made every later action one click.
  • Separate data from code. A CSV data layer meant non-engineers could update the catalog and the tool kept working — the interface and the data evolve independently.
  • Keyboard shortcuts signal "this is a daily tool." Adding global commands and F/S menu keys changed how it felt to use — from "open a popup" to "muscle memory".
  • Persisted state removes re-work. Remembering filter, sort, and platform between sessions means the tool always opens exactly where the last task left off.

Part of my Chrome Extension Productivity Suite — see the companion Multi-Marketplace Opener & Scraper →

Got catalog relationships trapped in a spreadsheet?

If your team keeps re-deriving the same product groupings by hand, that structure belongs in a tool. I build exactly this kind of internal automation.

Let's Talk → See Other Projects