The formats at a glance
This table summarizes Shopify’s documentation for the columns that most often cause trouble. Column names vary between the current and older templates; both styles are shown where they differ.
| Column (current / older name) | What Shopify expects | Typical wrong input | If left blank |
|---|---|---|---|
| Price / Variant Price | Number only, such as 9.99, with no currency symbol | $14.50, 14,50, 12.5 USD | Documented default is 0.00, but Shopify also lists a “price can’t be blank” error (see below) |
| Compare-at price / Variant Compare At Price | Number only. It is the original price shown next to a reduced price, so it should be higher than the price | $12.00, or a value lower than the price | No comparison shown |
| Cost per item | Number only, no currency symbol | €7.20 | Not specified in Shopify’s documentation |
| Weight value (grams) / Variant Grams | Whole number of grams with no unit and no decimals. Shopify’s examples: 5.125 kg becomes 5125, and 4 lb becomes 1814 | 0.5 kg, 5.125, 2 lb | Imported as 0 |
| Weight unit for display | g, kg (default), lb or oz | Writing the weight unit in the grams column | kg |
| Inventory quantity / Variant Inventory Qty | Whole number of items in stock. Applies only to stores with a single location | 1,200, 5.5, N/A | Imported as 0 |
| Inventory tracker / Variant Inventory Tracker | shopify, shipwire, amazon_marketplace_web, or blank when inventory isn’t tracked | Free-text values | Not tracked |
| Continue selling when out of stock / Variant Inventory Policy | deny (default) or continue | yes, true | deny |
Blank prices: an error or a $0.00 product
Shopify’s column documentation says the price defaults to 0.00 when no value is entered. Its troubleshooting page also lists the error “Validation failed: price can’t be blank”. Shopify doesn’t say which one you will meet in which situation (template versions and file layouts probably matter), so the safe approach is the same either way: fill in every price. If a blank does import as 0.00 and the product is active and published, it can go on sale for free.
draft for the first import, sort the products by price in the admin, fix anything at 0.00, and only then activate them. Shopify’s Status column accepts active, draft and archived.Error messages you may see for these columns
These are the messages Shopify lists on its troubleshooting page for the columns in this guide:
| Error message | What Shopify says to do |
|---|---|
| Validation failed: price can’t be blank | Add a price to that line. |
| Inventory quantity can’t be blank | Set a quantity. If you aren’t tracking inventory, leave the Inventory tracker column blank. |
| Inventory quantity is not a number | Enter a number for the quantity in stock. |
| Inventory policy is not included in the list | Set it to deny or continue. |
| Fulfillment service can’t be blank | Enter the fulfillment service you use, or manual if you don’t use one. |
Inventory columns that depend on each other
Some inventory columns are linked. Shopify’s documentation gives this example: when Inventory tracker is set to shopify, the “Continue selling when out of stock” and “Fulfillment service” columns can’t be left blank. Filling in only some of a related group of columns causes an import error, and the error message tells you which columns need values.
The Inventory quantity column applies only to stores with a single location. If your store has multiple locations, Shopify says to use its separate inventory CSV file instead of the product CSV.
Converting messy values before you import
If your numbers carry symbols, units or regional formats, convert them in a spreadsheet first. These formulas assume values in cell A2; check the results on a few rows before filling down.
// Currency symbol and a decimal comma (use only if the whole column uses a decimal comma)
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"$","")," ",""),",",".")
// Weight in kilograms, pounds or ounces to whole grams
=ROUND(A2*1000,0) // kg to g
=ROUND(A2*453.592,0) // lb to g
=ROUND(A2*28.3495,0) // oz to g
Checks that catch most problems: filter the price column for blanks, filter the quantity column for anything that is not a whole number, and confirm the weight column contains only digits.
What ShopiClean converts, and what it only flags
Disclosure: ShopiClean is our own product. Everything in this guide can be done by hand in a spreadsheet; the tool simply automates the checks. The scan and the on-screen 5-row preview are free, and downloading the repaired file needs a 7-Day Pass ($9).
What it does:
- Strips currency symbols and trailing currency text from prices (for example
$14.50becomes14.50and12.5 USDbecomes12.5) and converts decimal commas (24,90becomes24.90). - Converts quantities written with thousands separators (
1,200becomes1200) and converts weights written in kg or lb to whole grams (for example 0.5 kg becomes 500 and 2 lb becomes 907). - Rounds decimal quantities to the nearest whole number (in our test, 5.5 became 6). It reports these as repairs, so look at those rows to make sure the rounding is what you want.
- Flags variants with a blank or 0.00 price, and a compare-at price that is not higher than the price.
- Flags quantities that are not numbers, such as
N/A, for you to fix.
What it does not do:
- It does not know whether your store has one location or several, and it does not check that related inventory columns are filled in consistently.
- It cannot know whether “1,200” in a price column means one thousand two hundred or one point two, so review regional number formats on a sample.
Sources and how this guide was checked
The Shopify behaviors described above were checked against the Shopify Help Center pages below on 19 October 2026. Shopify can change how imports work, so if something here differs from what you see, trust Shopify’s documentation.