Guides

Listing comics on Shopify from a batch

Shopify's product importer is a CSV and an upload box, and the format is documented. What the dialog actually does with your file is not, and that is where most imports go wrong. This is written from a real import: 27 comics, 274 rows, 87 KB, into a Shopify store on 13 September 2026. It covers the import, not selling through Shopify.

The shape of the file: a row per photograph

This surprises people coming from eBay File Exchange, where one listing is one row. In Shopify's CSV a product's first row carries everything, and every further photograph is its own row with the handle, the image URL, the image position and the alt text, and the rest blank.

Ten photos of a comic is ten rows, so 27 comics came to 274 rows. Two things to know before you open the file:

  • Do not sort it in a spreadsheet. Sorting separates a product's image rows from its product row, and the import loses the pictures. Shopify warns about this, and it is the commonest way an import goes wrong.
  • 15 MB is the limit. A bigger file is refused with a message to split it. Split between products, never inside one.

The columns

ColumnWhat goes in it
URL handleThe product's identity in the store, and the only column the import matches on. We write the SKU (the eBay custom label, like 76TR-012), lowercased, with spaces and anything else that is not a letter, digit or dash folded to a dash.
TitleThe same title the eBay listing carries. Shopify has no 80-character cap, but one comic should have one title wherever it is for sale.
DescriptionHTML, and it renders as formatted text rather than arriving escaped. The creators and the characters are in here as prose.
VendorThe publisher.
Product categoryA path from Shopify's Standard Product Taxonomy. The paths are below; the path works and the id is not needed.
TypeFree text, what a shop would call this on a shelf: Comic Book, Comic Book Lot, Graphic Novel, Book, Magazine.
TagsShopify has no item specifics, so its tags are what its search, its filters and its automated collections read. Twenty of them, what the comic IS first. See below.
Published on online storefalse while the product is a draft.
Statusdraft or active. Drafts by default, and the reason is below.
SKUThe same custom label as the eBay listing, so a sale in one place names the listing in the other.
BarcodesThe UPC read off the cover, or a book's ISBN. Never a guessed one.
Option1 name"Title", Shopify's own convention for a product with one variant.
Option1 value"Default Title", as above. Confirmed on a real import.
PriceThe row's price.
Charge taxtrue. What tax that means is your store's setting, not the file's.
Inventory tracker"shopify", so the store counts the copy down when it sells.
Inventory quantityThe same quantity the eBay file carries.
Continue selling when out of stock"deny". A sold comic is sold.
Weight value (grams)The parcel's weight in grams, which Shopify displays back in ounces: the item plus its packaging, the same weight the Whatnot file's shipping band uses, so a single comic is 6 oz (170 grams).
Weight unit for display"oz", for an American store.
Requires shippingtrue.
Fulfillment service"manual".
Product image URLA public https image. Shopify downloads it during the import, so the URL has to be reachable without a sign-in.
Image position1 upwards, in the order the photographs were taken.
Image alt textThe title.
SEO titleThe title, cut at a word under 70 characters.
SEO descriptionThe description's text with the tags stripped, cut at a word under 320 characters.
Whatnot condition (product.metafields.whatnot.condition)Whatnot's condition field on the product: the same condition the Whatnot file writes, like Very Fine. A store that does not use it just keeps it.
Whatnot Buy It Now price (product.metafields.whatnot.whatnot_buy_it_now_price)Whatnot's Buy It Now price field on the product: whole dollars, rounded up as the Whatnot file does, so 2.99 is 3.00 USD.

Shopify documents these current names and still accepts the older ones (Handle, Body (HTML), Variant SKU, Image Src and the rest). The current names imported with no mapping step.

If you edit in a spreadsheet, note that Shopify's own export still writes the old names. Export the same products straight back out and you get Handle, Body (HTML), Variant SKU, Variant Inventory Policy, Variant Grams, Image Src and Published: 43 columns in the old spelling. Both work.

Every value came back exactly as written: the inventory policy as deny, the tracker as shopify, the fulfilment service as manual, the variant as Default Title, the status as draft, and the whole category path. One cosmetic exception: 85 grams came back as 85.0003751856875, Shopify converting to ounces and back. That import carried the comic alone; the weight is now the packed parcel, 170 grams for a comic, the same weight the Whatnot file ships by.

Product category: the path, not the id

What it isProduct categoryHow far it has been
A single issue, or a lot of themArts & Entertainment > Hobbies & Creative Arts > Collectibles > Comic BooksLanded as Comic Books in Collectibles on a real import.
A novel or a nonfiction bookMedia > Books > Print BooksWritten from the published taxonomy; no book has been imported.
A magazineMedia > Magazines & Newspapers > MagazinesWritten from the published taxonomy; none has been imported.
A recordMedia > Music & Sound Recordings > VinylNot written at all yet. Records, video games, Funko Pops, movies and CDs go to eBay and Whatnot, not Shopify, until one has been through an import.

The column wants the path. The category ids (ae-2-2-12 for comic books) are not needed.

It will look like it failed. The import preview shows Product Category blank even when the column is filled. On the product page afterwards the category reads Comic Books in Collectibles, with six category metafields Shopify adds itself. Judge the import by the product page, not the preview.

The dialog, step by step

  1. Products, then Import. Choose the Shopify-formatted CSV.
  2. Add file, then Upload and preview. Nothing is written to your store yet.
  3. Read the count. The preview says how many products and images it will import. Ours said 27 products and 274 images, exactly what the file held. If the numbers are wrong, the file is wrong, and this is the last cheap moment to find out.
  4. Then Import products. It runs in the background and you can close the dialog; ours finished in a couple of minutes. Shopify says an import cannot be cancelled once started and that the store is emailed when it finishes.

Two settings that are not what their names suggest

Leave "Overwrite products with matching handles" unticked. Shopify's help describes this box. The dialog in our import did not show it, and its preview said it will not overwrite a product with the same handle. Unticked, a product whose handle is already in your store is skipped, and since the handle is the SKU, re-importing a batch changes nothing. Ticked, every column in the file replaces what the store has, blanks included: a comic that sold in the store goes back to the file's quantity, and its status goes back to the file's, which is draft unless the file was made to publish on import.

"Publish new products to all sales channels" is ticked by default, and it does not make products live. It decides which sales channels a product is on. All 27 landed as drafts with it ticked, because the file said Status: draft. The file wins.

Drafts, and why to keep them

A wrong row that lands as a draft costs nothing; a wrong row that lands live is a wrong product in your shop. Start with Status: draft and Published on online store: false, check a few, and publish the ones you want. One setting flips it once you trust the files.

Tags are your item specifics

Shopify has no item specifics. Tags are what the store's search, filters and automated collections read, so every fact about a comic becomes a tag or is lost: series, publisher, era, characters, each creator, the grade, whether it is a lot.

  • Do not tag your box number. A bare 70 beside Marvel Comics and Modern Age means nothing to a buyer. Point and Sell leaves it off unless you turn it on.
  • One tag per creator. "Val Mayerik, Roger Salick" as one tag is Val Mayerik Roger Salick, who is nobody. Point and Sell splits on the comma. Building the file yourself, watch the reverse: "Lee, Stan" is one man written surname first.
  • Put what the comic IS before the lists of names. A product page reads only so many tags well. Fill it with six characters and four creators first and Signed and lot fall off the end.

Take eBay out of the description

If you sell the same comics on eBay, your description probably ends with your eBay boilerplate: your return policy, your combined shipping offer, your shipping service, a link to your eBay store. On a Shopify product that is a shop telling its own customer about a marketplace they are not on. Keep a separate closing paragraph for the store.

Selling the same comic in two places

The moment a comic is both a Shopify product and an eBay listing, one of them is an order waiting to be cancelled. If it sells in the store, end the eBay listing the same day; if it sells on eBay, set the product's quantity to zero in Shopify. The same SKU in both files is what makes that quick. If the comics are already live on eBay, moving eBay listings into Shopify is in the crosslisting guide.

If you would rather not build the file

Point and Sell writes this file from a box of photos: one product per comic, a row per photo in the order shot, the item specifics as tags, and your store paragraph in place of your eBay boilerplate. It refuses to write the file if a description still carries a link to eBay, one of your eBay policy names or your eBay user ID. It splits at 15 MB between products. Records, video games, Funko Pops, movies and CDs go to eBay and Whatnot, not Shopify, for now.

Try it on a box · More guides for comic sellers

See it on one of yours. Take one photo of a comic's front cover. Point and Sell shows you the eBay listing it makes, with no email and no sign-up.

Try one comic free, no email

Search help
Every answer