Skip to content

Guide

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.

Get started free