# Capsule Toronto connector (`capsule-toronto`) - Source: https://www.capsuletoronto.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 sneaker/streetwear boutique (Nike, Jordan, New Balance, adidas, ASICS, Converse). Shopify storefront; titles end with the manufacturer style code (e.g. IX3529-010). ## Collections → taxonomy | collection handle | category | brand / franchise / series | |---|---|---| | `footwear` | `sneakers` | — | | `womens-footwear` | `sneakers` | — | | `jordan` | `nike_jordan` | Jordan | | `nike` | `nike_jordan` | Nike | | `new-balance` | `new_balance_asics_other` | New Balance | | `asics` | `new_balance_asics_other` | ASICS | | `converse` | `new_balance_asics_other` | Converse | Rules (first match wins, applied to "title | product_type | tags | collection"): - `\b(air )?jordan\b|\bnike\b` → `nike_jordan` - `\badidas\b|\byeezy\b` → `adidas_yeezy` - `new balance|\basics\b|\bsalomon\b|\bhoka\b|\bpuma\b|\breebok\b|\bsaucony\b|\bconverse\b|\bvans\b|\bon running\b|\bmizuno\b` → `new_balance_asics_other` Excluded (regex): `gift card|^[^|]*\|(?![^|]*Footwear \|)[^|]*\||birkenstock|\bsandals?\b|\bslides?\b|\bclogs?\b|\bmules?\b|\bloafers?\b|\bboots?\b|\bugg\b|\bcrocs\b|\bsocks?\b|\blaces\b|insoles?|cleaner|shoe trees?` Title pattern: `^(?.+?) (?[A-Z]{1,3}\d{3,6}-\d{3}|\d{6}-\d{3}|[A-Z]{1,2}\d{3,4}[A-Z]{0,3}\d{0,3})$` (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: apparel (t-shirts, sweaters, outerwear, bottoms), headwear, accessories, bags — the exclude regex also drops anything whose product_type is not Footwear. ## Fixtures & tests `data/fixtures/capsule-toronto/` — live captures (`pnpm tsx connectors/api/_g3-shops-na-lib/capture.ts capsule-toronto`), trimmed single-product payloads incl. a sold-out variant. `pnpm vitest run connectors/api/capsule-toronto` · live probe: `pnpm tsx connectors/api/_g3-shops-na-lib/probe.ts capsule-toronto`.