Catalog: per-variant (alt-art) images — each printing shows the base card art #316

Open
opened 2026-08-03 20:24:35 +00:00 by gambit-admin · 0 comments
Owner

Problem

The catalog now explodes each card into one entry per printing (Normal, Alt Art, etc.) with its own price — but every printing of a card currently shows the SAME image. canonical_card.image_url / card_cache.image_url is card-grain (one URL per card number, e.g. images.scrydex.com/onepiece/OP16-001/large); we never stored the distinct alt-art artwork. Confirmed in prod: one-piece has 2633 distinct image URLs for 2633 cards (exactly one per card), while card_variant holds ~4713 variants.

So an alt-art entry displays the correct name + correct price, but the base card picture instead of its real art.

What is needed

  • Confirm Scrydex exposes a per-variant / per-art image URL (it likely serves alt-art images at a distinct path or under the variant id).
  • Ingest those per-variant image URLs (new nullable column on card_variant, or a per-finish image_url in card_cache.price_variants).
  • Surface them so each exploded catalog entry uses its own art (backend catalog_set_cards → item image_url; mobile already renders per-entry image_url).

Context

Follow-up to the variant-grain catalog PR (feature/catalog-variant-grain) which fixed the set-total undercount (One Piece sets were showing <$100 because only the cheapest base printing was summed). Prices are complete; only the per-art image is missing.


Filed from a Claude Code session

## Problem The catalog now explodes each card into one entry per printing (Normal, Alt Art, etc.) with its own price — but every printing of a card currently shows the SAME image. `canonical_card.image_url` / `card_cache.image_url` is card-grain (one URL per card number, e.g. `images.scrydex.com/onepiece/OP16-001/large`); we never stored the distinct alt-art artwork. Confirmed in prod: one-piece has 2633 distinct image URLs for 2633 cards (exactly one per card), while `card_variant` holds ~4713 variants. So an alt-art entry displays the correct name + correct price, but the base card picture instead of its real art. ## What is needed - Confirm Scrydex exposes a per-variant / per-art image URL (it likely serves alt-art images at a distinct path or under the variant id). - Ingest those per-variant image URLs (new nullable column on `card_variant`, or a per-finish `image_url` in `card_cache.price_variants`). - Surface them so each exploded catalog entry uses its own art (backend `catalog_set_cards` → item `image_url`; mobile already renders per-entry `image_url`). ## Context Follow-up to the variant-grain catalog PR (feature/catalog-variant-grain) which fixed the set-total undercount (One Piece sets were showing <$100 because only the cheapest base printing was summed). Prices are complete; only the per-art image is missing. --- Filed from a Claude Code session
gambit-admin added the enhancementapi labels 2026-08-03 20:24:35 +00:00
Sign in to join this conversation.