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%
6.1 KB · 137 lines json
Raw Blame History
1{2  "id": "cdncoin",3  "displayName": "Canadian Coin & Currency (Canadian coin & banknote store, CAD)",4  "sourceId": "cdncoin",5  "sourceName": "Canadian Coin & Currency",6  "sourceType": "dealer",7  "sourceUrl": "https://www.cdncoin.com",8  "module": "api/cdncoin",9  "enginePriority": [10    "api"11  ],12  "categories": [13    "coins",14    "banknotes",15    "medals"16  ],17  "regions": [18    "CA"19  ],20  "languages": [21    "en"22  ],23  "currency": [24    "CAD"25  ],26  "supportsListings": true,27  "supportsSold": false,28  "supportsAuctions": false,29  "supportsImages": true,30  "supportsCatalog": false,31  "supportsPopulation": false,32  "supportsLookup": true,33  "refreshFrequencyMinutes": 720,34  "priority": "medium",35  "trustScore": 0.75,36  "attributionRequired": true,37  "termsUrl": "https://www.cdncoin.com/policies/terms-of-service",38  "accessNotes": "Canadian Coin & Currency (cdncoin.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 17 configured collections (certified, pcgs, canadian-collections, world-coins, us-coins, ancient-coins, pre-confederation-tokens, royal-canadian-mint-products-2 … (+9 more, see config.collections)) and /products/<handle>.json for URL lookups (~23k products; 4.7k certified (ICCS/PCGS/PMG), 4k Canadian paper money). 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. Third-party grades in titles (PSA/BGS/CGC/ICCS/PMG…) are parsed by parseGradeFromTitle; cert numbers are not extracted. 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 — bullion (silver/gold), gift/theme collections (\"for nature lovers\"…), supplies, new-arrivals umbrella. No personal data is collected; seller = the store itself.",39  "enabled": true,40  "schemaVersion": "1.0",41  "acquisitionMethod": "Shopify storefront products.json",42  "historicalDepth": "none",43  "requires": [],44  "config": {45    "currency": "CAD",46    "market": "CA",47    "seller": "Canadian Coin & Currency",48    "location": "Richmond Hill, ON, Canada",49    "collections": [50      {51        "handle": "certified",52        "categorySlug": "coins"53      },54      {55        "handle": "pcgs",56        "categorySlug": "coins"57      },58      {59        "handle": "canadian-collections",60        "categorySlug": "coins"61      },62      {63        "handle": "world-coins",64        "categorySlug": "coins"65      },66      {67        "handle": "us-coins",68        "categorySlug": "coins"69      },70      {71        "handle": "ancient-coins",72        "categorySlug": "coins"73      },74      {75        "handle": "pre-confederation-tokens",76        "categorySlug": "coins"77      },78      {79        "handle": "royal-canadian-mint-products-2",80        "categorySlug": "coins"81      },82      {83        "handle": "canadian-paper-money",84        "categorySlug": "banknotes"85      },86      {87        "handle": "pmg",88        "categorySlug": "banknotes"89      },90      {91        "handle": "world-paper-money",92        "categorySlug": "banknotes"93      },94      {95        "handle": "us-paper-money",96        "categorySlug": "banknotes"97      },98      {99        "handle": "replacement-notes",100        "categorySlug": "banknotes"101      },102      {103        "handle": "bank-of-canada-1937",104        "categorySlug": "banknotes"105      },106      {107        "handle": "dominion-province-of-canada",108        "categorySlug": "banknotes"109      },110      {111        "handle": "chartered",112        "categorySlug": "banknotes"113      },114      {115        "handle": "medals-exonumia",116        "categorySlug": "medals"117      }118    ],119    "rules": [120      {121        "match": "\\bPMG\\b|\\bbanknotes?\\b|\\bpaper money\\b|\\| (Canadian Paper Money|World Paper Money|US Paper Money|Chartered Bank Notes?|Dominion of Canada|Bank of Canada)[^|]* \\||\\bBC-\\d|\\bDC-\\d",122        "categorySlug": "banknotes"123      },124      {125        "match": "\\bmedal(lion)?s?\\b",126        "categorySlug": "medals"127      }128    ],129    "defaultCategory": null,130    "exclude": "gift card|supplies|\\balbums?\\b|\\bholders?\\b|\\bcapsules?\\b|catalogue|catalog|magnifier|cleaning|\\bflips?\\b|\\bpages?\\b|\\brolls?\\b|\\bbooks?\\b|\\btubes?\\b|\\bcases?\\b|storage|\\bbinder|\\bloupe\\b|\\bgloves?\\b|\\bscale\\b|\\bmaps?\\b|\\bframe",131    "keepOutOfStock": true,132    "fetchBarcodes": false,133    "wholeShop": false,134    "pageSize": 250135  }136}137