TypeScript 61.9%
HTML 37.2%
SQL 0.7%
1{2 "id": "fusion-gaming",3 "displayName": "Fusion Gaming (Canadian TCG & board-game store, CAD)",4 "sourceId": "fusion-gaming",5 "sourceName": "Fusion Gaming",6 "sourceType": "dealer",7 "sourceUrl": "https://www.fusiongamingonline.com",8 "module": "api/fusion-gaming",9 "enginePriority": [10 "api"11 ],12 "categories": [13 "magic_the_gathering",14 "pokemon",15 "star_wars_tcg",16 "disney_lorcana",17 "one_piece_card_game",18 "other_tcg",19 "board_games"20 ],21 "regions": [22 "CA"23 ],24 "languages": [25 "en"26 ],27 "currency": [28 "CAD"29 ],30 "supportsListings": true,31 "supportsSold": false,32 "supportsAuctions": false,33 "supportsImages": true,34 "supportsCatalog": false,35 "supportsPopulation": false,36 "supportsLookup": true,37 "refreshFrequencyMinutes": 720,38 "priority": "medium",39 "trustScore": 0.75,40 "attributionRequired": true,41 "termsUrl": "https://www.fusiongamingonline.com/policies/terms-of-service",42 "accessNotes": "Fusion Gaming (fusiongamingonline.com) runs on Shopify. The connector reads ONLY the public, unauthenticated storefront JSON that every Shopify shop serves to any visitor: /collections/<handle>/products.json?limit=250&page=N for the 10 configured collections (mtg-singles, mtg-sealed-products, pokemon-singles, pokemon-all-sealed, star-wars-unlimited-singles, lorcana-singles-1, one-piece-singles, riftbound-singles-in-stock … (+2 more, see config.collections)) and /products/<handle>.json for URL lookups (~256k products; MTG singles 52k, Pokémon singles 9k+). robots.txt (verified 2026-09-08, User-agent *): standard Shopify rules — Disallow /admin, /cart, /checkout(s), /orders, /account, /services, /sf_*, /cart.js, /recommendations/products, /cdn/wpm/*.js and the filter/sort crawl traps (/collections/*sort_by*, /collections/*+*, /collections/*filter*&*filter*); no Crawl-delay for *. The /collections/<handle>/products.json and /products/<handle>.json paths we read carry none of those patterns and are allowed. Sitemap declared at /sitemap.xml (not needed). Access behaviour: plain HTTP 200 JSON with the honest RareIndexBot UA, no anti-bot challenge, no login, no key. Market pinning: Shopify Markets localises products.json prices by the requester IP as soon as an Accept-Language header is present (observed on Markets-enabled shops: a Canadian crawler receives CAD-converted prices with content-language en-CA while the JSON carries no currency field). Every request therefore sends the public localization=CA cookie — the shop's own home market, exactly what a CA visitor gets — so prices are always the declared CAD (verified 2026-09-08: 30.00 vs 43.00 on a Markets shop). Politeness: 1 request per 1.5 s, concurrency 1 per host (connectors/domains.d/g3-shops-na.json), crawlDepth pages per collection per incremental run, backfill bounded by backfillMaxPages. Data: asking prices in CAD (the shop's declared currency) — these are LISTINGS, never sales (§111); one listing per variant (condition/size/edition), variant SKU kept as identifier, out-of-stock variants kept as 'ended' listings, 0.00-priced placeholders dropped. Dates: published_at only; no fetch time is ever used as a sale date. Deliberately NOT fetched: cart/checkout/account/customer endpoints, per-product .js barcode enrichment (fetchBarcodes=false: one extra request per product is not worth it for listings), the whole-shop /products.json, and unmapped collections — accessories/playmats/sleeves/dice collections, event tickets, \"items-with-noprice\" collection. No personal data is collected; seller = the store itself.",43 "enabled": true,44 "schemaVersion": "1.0",45 "acquisitionMethod": "Shopify storefront products.json",46 "historicalDepth": "none",47 "requires": [],48 "config": {49 "currency": "CAD",50 "market": "CA",51 "seller": "Fusion Gaming",52 "location": "Winnipeg, MB, Canada",53 "collections": [54 {55 "handle": "mtg-singles",56 "categorySlug": "magic_the_gathering",57 "franchise": "Magic: The Gathering"58 },59 {60 "handle": "mtg-sealed-products",61 "categorySlug": "magic_the_gathering",62 "franchise": "Magic: The Gathering"63 },64 {65 "handle": "pokemon-singles",66 "categorySlug": "pokemon",67 "franchise": "Pokémon"68 },69 {70 "handle": "pokemon-all-sealed",71 "categorySlug": "pokemon",72 "franchise": "Pokémon"73 },74 {75 "handle": "star-wars-unlimited-singles",76 "categorySlug": "star_wars_tcg",77 "franchise": "Star Wars Unlimited"78 },79 {80 "handle": "lorcana-singles-1",81 "categorySlug": "disney_lorcana",82 "franchise": "Disney Lorcana"83 },84 {85 "handle": "one-piece-singles",86 "categorySlug": "one_piece_card_game",87 "franchise": "One Piece"88 },89 {90 "handle": "riftbound-singles-in-stock",91 "categorySlug": "other_tcg",92 "franchise": "Riftbound"93 },94 {95 "handle": "riftbound-sealed-product",96 "categorySlug": "other_tcg",97 "franchise": "Riftbound"98 },99 {100 "handle": "board-games-all",101 "categorySlug": "board_games"102 }103 ],104 "rules": [],105 "defaultCategory": null,106 "exclude": "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",107 "keepOutOfStock": true,108 "fetchBarcodes": false,109 "wholeShop": false,110 "pageSize": 250,111 "titlePattern": "^(?<name>.+?) \\[(?<set>[^\\]]+)\\]$"112 }113}114