Migrating a trading card & collectibles store from WooCommerce to Shopify (2026)
How to migrate a Pokémon, Magic: The Gathering, or sports cards WooCommerce store to Shopify — single card variants, set/condition metafields, sealed vs singles collections, graded card handling, and TCG retail Shopify setup.
Trading card game (TCG) and sports card retail has a unique product structure unlike most ecommerce categories: single cards have multiple condition grades that are functionally different products; sealed product (booster packs, booster boxes, Elite Trainer Boxes) is inventory-tracked like any other product; and the collectibles market is driven by scarcity signals — "in stock" vs "out of stock" is a primary purchase trigger, and pre-order and pre-release handling is a regular part of the trading cycle. WooCommerce TCG stores typically use either a catalogue system (one product per card, condition as variant) or a flat product structure (one product per card-condition combination). Shopify handles both approaches.
Trading card product categories
- Sealed product: Booster packs, booster boxes, Elite Trainer Boxes (ETBs), theme decks, starter decks, blisters, tins, premium collections. The most straightforward category — each product is a physical sealed item.
- Single cards: Individual cards sold from opened packs. Condition variants. The most complex category for product structure.
- Graded cards: Cards that have been graded and slabbed by PSA, BGS (Beckett), or CGC. Grade number is a key metafield. Higher grades command significantly higher prices.
- Accessories: Sleeves, deck boxes, binders, playmats, storage boxes, card trays. Brand and size variants.
- Bundles: Curated sets (e.g., "50-card holo bundle", "Full art trainer set"). Custom bundles.
- Pre-releases and sealed events: Pre-release kits, early access products. Available for limited time before wider retail release.
Game systems (example metafield values)
- Pokémon TCG: Sets by expansion name (Surging Sparks, Stellar Crown, Paradox Rift). Card number, rarity (Common, Uncommon, Rare, Holo Rare, Ex, Full Art, Special Illustration Rare, Hyper Rare). Language (English, Japanese, German).
- Magic: The Gathering: Sets by set code (MKM, BLB, DSK). Rarity (Common, Uncommon, Rare, Mythic Rare). Foil vs non-foil. Commander format legality.
- Yu-Gi-Oh!: Set name, rarity (Common, Rare, Super Rare, Ultra Rare, Secret Rare). Edition (1st Edition vs Unlimited).
- Sports cards: Sport, year, player name, brand (Topps, Panini, Upper Deck), parallel/refractor variants, serial number (for numbered cards).
Single card product structure
Single cards are the most complex product type. Options for Shopify:
Option A: One product per card, condition as variant
- Product: "Charizard ex — 006/064 — Pokémon 151"
- Variant: Condition (Near Mint, Lightly Played, Moderately Played, Heavily Played, Damaged)
- Each condition variant has its own price and inventory
- Pros: Single product page consolidates all conditions; good for SEO (one URL per card)
- Cons: If a card is sold out in all conditions, the product remains on site with all variants unavailable. Use "continue selling when out of stock: false" on each variant.
Option B: One product per card-condition combination
- Product: "Charizard ex 006/064 Pokémon 151 — Near Mint"
- Separate product for each grade
- Pros: Simpler inventory, cleaner individual product management
- Cons: Duplicate product pages, SEO dilution if canonical tags are not set correctly
Option A is recommended for most TCG retailers because it consolidates the SEO value of the card name and keeps the product catalogue manageable (one page per card rather than 5).
Trading card metafields
product.metafields.tcg.game(single_line_text) — "Pokémon", "Magic: The Gathering", "Yu-Gi-Oh!", "Sports"product.metafields.tcg.set_name(single_line_text) — "Pokémon 151", "Surging Sparks", "Murders at Karlov Manor"product.metafields.tcg.set_code(single_line_text) — "MEW", "SV08", "MKM"product.metafields.tcg.card_number(single_line_text) — "006/064", "165/167"product.metafields.tcg.rarity(single_line_text) — "Common", "Rare", "Holo Rare", "Special Illustration Rare", "Hyper Rare", "Mythic Rare"product.metafields.tcg.card_name(single_line_text) — "Charizard ex", "Black Lotus", "Pikachu"product.metafields.tcg.language(single_line_text) — "English", "Japanese", "German", "French"product.metafields.tcg.foil(boolean) — true for foil/holo versionsproduct.metafields.tcg.first_edition(boolean) — for Yu-Gi-Oh first edition cardsproduct.metafields.tcg.grading_company(single_line_text) — "PSA", "BGS", "CGC" — for graded cardsproduct.metafields.tcg.grade(single_line_text) — "PSA 10", "BGS 9.5", "CGC 9" — for graded cardsproduct.metafields.tcg.serial_number(single_line_text) — for numbered cards "001/025"product.metafields.tcg.player_name(single_line_text) — for sports cardsproduct.metafields.tcg.sport(single_line_text) — for sports cards "Football", "Cricket", "F1"
Sealed product handling
- Sealed products are high-demand, often pre-orderable, and subject to allocation limits (preventing one customer from buying an entire allocation).
- Per-customer purchase limits: use Shopify order limits apps (Order Limits ‑ MinMaxify, Limit Purchases) to cap booster box orders at 2–3 per customer during launch windows.
- Pre-orders: enable pre-order on sealed products before the release date. Use a pre-order app (Pre‑Order Now, Timify) or set inventory to negative (continue selling when out of stock) with a dispatch date note.
- Pre-release kits: available for a limited window, typically 1–2 weeks before wider retail. Create as a time-limited product with Shopify's availability scheduling (Shopify Plus) or use a pre-order app.
Scarcity and FOMO signals
- Low stock badges: display "Only 3 left" when inventory falls below a threshold. Many themes include this natively; configure the threshold in theme settings.
- Sold out with restock notification: for out-of-stock cards, enable "Email me when back in stock" using a restock notification app (Back in Stock, Klaviyo). This is particularly valuable for highly sought-after cards.
- Recently sold/popular signal: "X customers have this in their cart" or "Sold 12 in the last 24 hours" — use social proof apps if appropriate for your brand tone. More effective for sealed product than singles.
TCG migration checklist
- Create TCG metafield namespace: game, set_name, set_code, card_number, rarity, card_name, language, foil, grading_company, grade
- Decide single card structure: one product per card (condition as variant) vs one product per card-condition combination
- Set up condition variants for singles: Near Mint, Lightly Played, Moderately Played, Heavily Played, Damaged — with correct pricing per condition
- Create sealed vs singles collections — separate browsing experience
- Install purchase limit app for high-demand sealed product
- Set up pre-order flow for upcoming releases
- Enable restock notifications for out-of-stock high-value singles
- Enable game, set, rarity, and language filters in Search & Discovery
- Test: single card — condition variant changes price correctly
- Test: booster box — per-customer purchase limit enforced
- Test: out-of-stock card — restock notification email captures correctly
Trading card retail is one of the few ecommerce categories where real-time inventory accuracy is a fundamental trust signal — not just a nice-to-have. When a customer searches for a specific card, sees it listed, clicks through, and finds it is actually out of stock, they do not return. The stores that dominate TCG retail online are those with the tightest inventory systems: immediate stock removal on sale, restock notification that fires within minutes of inventory being added, and pre-order flows that convert waiting customers into guaranteed orders rather than lost sales. The product data investment (set names, rarity levels, card numbers as searchable metafields) is what makes those tight inventory systems visible to customers — allowing them to search specifically for what they need rather than browsing through hundreds of pages hoping to find it.
Migrate your store with k-sync
Connect your WooCommerce store, validate your products, and push to Shopify in minutes. Free for up to 50 products.
Get started freeRelated reading
Migrating a luggage and travel accessories store from WooCommerce to Shopify (2026)
How to migrate a luggage, travel bags, or travel accessories WooCommerce store to Shopify — luggage specifications, airline compliance, TSA lock, warranty and durability claims, and luggage retail Shopify setup.
Migrating a motorcycle accessories store from WooCommerce to Shopify (2026)
How to migrate a motorcycle accessories, biker gear, or motorbike parts WooCommerce store to Shopify — helmet safety standards, CE-rated protective clothing, type approval for parts, fitment compatibility, and motorcycle retail Shopify setup.