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%
5.7 KB · 127 lines json
Raw Blame History
1{2  "id": "mondo",3  "displayName": "Mondo (US vinyl & collector-toy & poster store, USD)",4  "sourceId": "mondo",5  "sourceName": "Mondo",6  "sourceType": "dealer",7  "sourceUrl": "https://mondoshop.com",8  "module": "api/mondo",9  "enginePriority": [10    "api"11  ],12  "categories": [13    "music",14    "action_figures",15    "designer_toys",16    "movie_posters"17  ],18  "regions": [19    "US"20  ],21  "languages": [22    "en"23  ],24  "currency": [25    "USD"26  ],27  "supportsListings": true,28  "supportsSold": false,29  "supportsAuctions": false,30  "supportsImages": true,31  "supportsCatalog": false,32  "supportsPopulation": false,33  "supportsLookup": true,34  "refreshFrequencyMinutes": 720,35  "priority": "medium",36  "trustScore": 0.75,37  "attributionRequired": true,38  "termsUrl": "https://mondoshop.com/policies/terms-of-service",39  "accessNotes": "Mondo (mondoshop.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 9 configured collections (soundtracks, mondo-music, exclusive-colored-vinyl, non-soundtrack, new-vinyl-records, collectibles, statues, soft-vinyl-1 … (+1 more, see config.collections)) and /products/<handle>.json for URL lookups (~1.8k vinyl soundtracks, 460 collectibles (1/6 & 1/12 figures, soft vinyl), 75 posters). 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=US cookie — the shop's own home market, exactly what a US visitor gets — so prices are always the declared USD (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 USD (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 — apparel & pins, tiki mugs, the \"fees-products\"/\"archive\" umbrella collections, wholesale collections. No personal data is collected; seller = the store itself.",40  "enabled": true,41  "schemaVersion": "1.0",42  "acquisitionMethod": "Shopify storefront products.json",43  "historicalDepth": "none",44  "requires": [],45  "config": {46    "currency": "USD",47    "market": "US",48    "seller": "Mondo",49    "location": "Austin, TX, USA",50    "collections": [51      {52        "handle": "soundtracks",53        "categorySlug": "music",54        "brand": "Mondo"55      },56      {57        "handle": "mondo-music",58        "categorySlug": "music",59        "brand": "Mondo"60      },61      {62        "handle": "exclusive-colored-vinyl",63        "categorySlug": "music",64        "brand": "Mondo"65      },66      {67        "handle": "non-soundtrack",68        "categorySlug": "music",69        "brand": "Mondo"70      },71      {72        "handle": "new-vinyl-records",73        "categorySlug": "music",74        "brand": "Mondo"75      },76      {77        "handle": "collectibles",78        "categorySlug": "action_figures",79        "brand": "Mondo"80      },81      {82        "handle": "statues",83        "categorySlug": "action_figures",84        "brand": "Mondo"85      },86      {87        "handle": "soft-vinyl-1",88        "categorySlug": "designer_toys",89        "brand": "Mondo"90      },91      {92        "handle": "posters",93        "categorySlug": "movie_posters",94        "brand": "Mondo"95      }96    ],97    "rules": [98      {99        "match": "\\| (1/6 Scale|1/12 Scale|Figures?|Statues?) \\|",100        "categorySlug": "action_figures",101        "brand": "Mondo"102      },103      {104        "match": "\\| Soft Vinyl \\||\\bsoft vinyl\\b|\\bsofubi\\b",105        "categorySlug": "designer_toys",106        "brand": "Mondo"107      },108      {109        "match": "\\| (Vinyl|Cassettes?|CDs?) \\||\\bsoundtrack\\b",110        "categorySlug": "music",111        "brand": "Mondo"112      },113      {114        "match": "\\| Posters? \\||screen ?print|\\bposter\\b|\\bgiclee\\b",115        "categorySlug": "movie_posters",116        "brand": "Mondo"117      }118    ],119    "defaultCategory": null,120    "exclude": "gift card|mystery|\\| (Apparel|Pins?|Enamel Pins?|Tiki Mugs?|Accessories|Puzzles?|Books?) \\||t-shirt|hoodie|\\bshirt\\b|\\bhat\\b|\\bcap\\b|enamel pin|\\bpin set\\b|tiki mug|\\bmug\\b|\\btote\\b|puzzle|blanket|\\bsocks?\\b|\\bpatch\\b|slipmat|\\bsticker",121    "keepOutOfStock": true,122    "fetchBarcodes": false,123    "wholeShop": false,124    "pageSize": 250125  }126}127