Importing trading cards into Shopify by CSV
Your own store needs one product per card. By hand that is one form per card, by file it is one import for the whole stack. Shopify reads a product CSV for this, and some of its columns behave differently than you would expect.
The import in Shopify
In the Shopify admin, “Products” has an “Import” option. There you choose the CSV, see a preview and start the import. Shopify provides a sample file that shows which columns exist and what they are for.
The handle holds a product together
Every row carries a handle, an ID made of lowercase letters and hyphens that also becomes the product’s address. Shopify reads rows with the same handle as one product with several variants. For single cards that means every printing needs its own handle, for example from name, set, number and language. If the same handle appears twice in the file and you did not want variants, two cards end up in one product.
Condition as a variant or as its own product
The same card in two conditions can be set up in two ways. As one product with condition as an option: both rows share the handle, “Option1 Name” is “Condition” and “Option1 Value” is the condition. Or as two products with their own handles, so each row stands on its own. Either way, price, stock and SKU belong to the variant.
A second import overwrites
The import has an option to overwrite products with matching handles. With it set, Shopify updates existing products instead of skipping them. Note that an empty column in the file also empties the field in the store. And the handle should come from the card itself, not from a date or a running number, so the same card gets the same handle next time.
Metafields for set, language and number
Set, language, card number and illustrator have no column of their own in the product CSV. Metafields cover them: columns with a header such as “Set name (product.metafields.custom.set_name)”, that is name, namespace and key. Create the matching metafield definitions in your store before the first import, under Settings → Custom data, and use exactly their namespace and key in the file.
Images, status, price
The image column takes a publicly reachable https address, and Shopify downloads the image during the import. With status “draft”, products arrive as drafts; without a status column they are active straight away. Drafts are worth it on the first import: you look at everything in the store before a buyer does. You set the price yourself. A value from market data such as the Cardmarket trend is a reference, not a selling price.
What CardEntry takes on
CardEntry includes a starter template for the Shopify import that you adopt and adjust in an export profile. It builds the handle from name, set, number, language and condition, with a suffix for foil and first edition, so the same stack gives the same handles on the next export. It creates the products as drafts, fills in the card’s catalogue image and prefills the price with the Cardmarket trend. The metafield columns are a suggestion: adjust the keys to the definitions in your store.
Import, overwriting, handle, status, images and metafields follow Shopify’s public help on importing products by CSV as of 20 October 2026. Interfaces and column names change; when in doubt, Shopify’s help and its sample file apply, not this page. CardEntry is an independent tool with no business relationship to Shopify.
Try the capture part.
Process 500 card images for free. No subscription, no credit card. You see the finished file before you commit to anything else.
More guides
- Importing a CSV into TCG PowerTools
- Listing bulk on Cardmarket
- Is a card scanner worth it?
- When is a single listing worth it?
- What does TCG PowerTools cost?
- Listing cards on Cardmarket in bulk quantities
- Selling Yu-Gi-Oh on Cardmarket
- TCG PowerTools explained in plain terms
- Finding the right card version
- Grading card condition correctly
- Selling cards on Cardmarket
- CardEntry and its alternatives compared
- Listing trading cards on eBay by CSV
- Using CardEntry in Claude and ChatGPT