# KanZen Games connector (`kanzen-games`) - Source: https://www.kanzengames.com · dealer · CA · CAD · Shopify storefront - Acquisition: public `/collections//products.json?limit=250&page=N` (shared `ShopifyStoreConnector` adapter wrapped by `MarketPinnedShopifyConnector`, which adds a `localization=CA` cookie so Shopify Markets never geo-converts prices; no store-specific code) - Records: `listing` (asking prices, one per variant; out-of-stock variants → `ended`) - Refresh: every 12 h (ACTIVE→NORMAL boundary, large catalogue) · history: none (listings only) Toronto TCG shop with a dedicated PSA "slabs" collection (Japanese Pokémon heavy), Lorcana/Gundam/Digimon singles and sealed product. ## Collections → taxonomy | collection handle | category | brand / franchise / series | |---|---|---| | `slabs` | `pokemon` | Pokémon | | `graded-card-in-stock` | `pokemon` | Pokémon | | `ebay-pokemon-singles` | `pokemon` | Pokémon | | `pokemon-tcg-mega-evolution` | `pokemon` | Pokémon | | `japanese-sealed` | `pokemon` | Pokémon | | `magic-the-gathering` | `magic_the_gathering` | Magic: The Gathering | | `disney-lorcana-singles-1` | `disney_lorcana` | Disney Lorcana | | `gundam-singles-all` | `other_tcg` | Gundam Card Game | | `digimon-single` | `digimon_tcg` | Digimon | | `digimon-sealed` | `digimon_tcg` | Digimon | | `one-piece-tcg-singles-all` | `one_piece_card_game` | One Piece | | `dragon-ball-tcg` | `dragon_ball_tcg` | Dragon Ball Super | | `hololive-tcg-sealed` | `other_tcg` | hololive | | `football-sealed` | `football_cards` | — | | `basketball-sealed-all` | `basketball_cards` | — | Rules (first match wins, applied to "title | product_type | tags | collection"): - `\bone piece\b|\bOP\d{2}\b` → `one_piece_card_game` (franchise One Piece) - `\bmagic\b|\bmtg\b` → `magic_the_gathering` (franchise Magic: The Gathering) - `yu-?gi-?oh` → `yugioh` (franchise Yu-Gi-Oh!) - `\blorcana\b` → `disney_lorcana` (franchise Disney Lorcana) - `\bdigimon\b` → `digimon_tcg` (franchise Digimon) - `\bdragon ball\b` → `dragon_ball_tcg` (franchise Dragon Ball Super) - `\bweiss\b` → `weiss_schwarz` (franchise Weiß Schwarz) Excluded (regex): `gift card|sleeves?|deck box|binder|playmat|toploader|top loader|storage box|dice|tokens? only|bundle of|mystery|buylist|submission|event ticket|\bentry\b|tournament|store credit|pre-?release event|supplies|card savers?|\brepack|bulk lot|\blot of\b|\bpaints?\b|primer|brushes|online (pack|code)|digital code|code card|unused digital|ptcgo|ptcg live` Title pattern: `^(?:PSA|BGS|CGC|TAG|ACE|SGC)\s*[\d.]+\s*-\s*(?.+?)\s*-\s*(?.+?)\s*-\s*#(?\S+)` (name / set / number) ## Access & compliance See `accessNotes` in meta.json: robots.txt verified 2026-09-08 (standard Shopify rules, products.json paths allowed), honest UA, 1 req / 1.5 s, listings only, no personal data. Not fetched: deck-box/sleeve/binder collections, "all products" umbrella collections, tournament entries. ## Fixtures & tests `data/fixtures/kanzen-games/` — live captures (`pnpm tsx connectors/api/_g3-shops-na-lib/capture.ts kanzen-games`), trimmed single-product payloads incl. a sold-out variant and a graded item. `pnpm vitest run connectors/api/kanzen-games` · live probe: `pnpm tsx connectors/api/_g3-shops-na-lib/probe.ts kanzen-games`.