Dragon Ball Super: Fusion World Importer Technical Overview
The Fusion World importer fetches card data from TCGCSV (category 80) and produces cards + printings with TCGplayer product IDs attached per finish. It extends BaseImporter and closely models the OnePiece importer.
Data Sources
| Source | Role | Data Provided |
|---|---|---|
| TCGCSV | Primary | Groups (sets), products, attributes, images, TCGplayer product IDs (category 80) |
TCGCSV category 80 is a clean Fusion-World-only catalogue — every group belongs to Fusion World, so the importer needs no group filtering (unlike Masters, whose category 27 mixes in legacy and Fusion-World content). This is why Fusion World is import-ready while Masters is held.
Expansion = Group Mapping
Each TCGCSV group maps directly to a CardNexus expansion. The expansion releaseDate comes from group.publishedOn, and the set code is derived (and de-duplicated) from the group — Fusion World sets use FBxx codes (e.g. FB01).
Finishes
Fusion World has a simple two-finish model:
| Finish | Source (TCGCSV subtype) | Global CardFinish |
|---|---|---|
| Standard | Normal | STANDARD |
| Holofoil | Foil/Holofoil | HOLOFOIL |
HOLOFOIL was added to the global CardFinish enum specifically for Fusion World. The game→global mapping is by exact string identity. See the per-finish externalIds + HOLOFOIL ADR.
Each printing stores its TCGplayer product ID in a per-finish externalIds array — { TCGplayer: [{ finish: "Standard", id: ... }, { finish: "Holofoil", id: ... }] } — so a single indexed query resolves a product by marketplace ID regardless of finish.
Import Flow
Pricing
TCGplayer category 80 is wired in tcg-csv.service.ts and tcgplayer-importer.ts, and getGameFinishValues maps Fusion World to its Standard/Holofoil finishes.
TCGplayer pricing is currently gated off (price-importer-service.ts sets [DbsFusion]: []). Once the catalogue is imported and products carry TCGplayer external IDs, flip the entry to [tcgPlayerPriceImporter] to turn pricing on — no cron change is needed.
Cardmarket is not wired for Fusion World. Cardmarket lumps all Dragon Ball products under one marketplace (idGame 13), with no separate Fusion World game, so Cardmarket matching is a code-level split-by-set-code project (FBxx → dbs-fusion), not a config flip.
Code Locations
| Component | Location |
|---|---|
| Importer | packages/games/game-importer/src/dbs-fusion-importer.ts |
| Staging importer | packages/games/game-importer/src/dbs-fusion-staging-importer.ts |
| Game config | packages/games/game-configuration/src/lib/games/dbs-fusion/dbs-fusion.game.ts |
| Types | packages/games/game-configuration/src/lib/games/dbs-fusion/dbs-fusion.types.ts |
| DTO schemas | packages/core/api-dtos/src/lib/product/games/dbs-fusion.schema.ts |
| TCGCSV category config | packages/games/game-importer/src/lib/tcg-csv/tcg-csv.service.ts — category 80 |
| Price importer config | packages/games/price-importer/src/tcgplayer-importer.ts — category 80 |