SPB Git forge

spb/rareindex

Public
54commits 1branches 0releases
7.1 MBsize
maindefault branch
10 days agolast push
TypeScript 61.9% HTML 37.2% SQL 0.7%

# Capsule Toronto connector (capsule-toronto)

  • Source: https://www.capsuletoronto.com · dealer · CA · CAD · Shopify storefront
  • Acquisition: public /collections/<handle>/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: ^(?<name>.+?) (?<number>[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.