ShopiClean
✓ 7-Day Pass Active Open CSV Auditor →
Number Formats

Shopify CSV Price, Weight and Inventory Formats: What Shopify Expects

Last updated: 19 October 2026 • 7 min read

Short answer

Prices, compare-at prices and costs should be plain numbers with no currency symbol (for example 9.99). Weight goes in as whole grams with no unit. Inventory quantity is a whole number and only applies to single-location stores. A blank price can either raise an import error or import as 0.00, so fill in every price before you import.

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 expectsTypical wrong inputIf left blank
Price / Variant PriceNumber only, such as 9.99, with no currency symbol$14.50, 14,50, 12.5 USDDocumented default is 0.00, but Shopify also lists a “price can’t be blank” error (see below)
Compare-at price / Variant Compare At PriceNumber 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 priceNo comparison shown
Cost per itemNumber only, no currency symbol€7.20Not specified in Shopify’s documentation
Weight value (grams) / Variant GramsWhole number of grams with no unit and no decimals. Shopify’s examples: 5.125 kg becomes 5125, and 4 lb becomes 18140.5 kg, 5.125, 2 lbImported as 0
Weight unit for displayg, kg (default), lb or ozWriting the weight unit in the grams columnkg
Inventory quantity / Variant Inventory QtyWhole number of items in stock. Applies only to stores with a single location1,200, 5.5, N/AImported as 0
Inventory tracker / Variant Inventory Trackershopify, shipwire, amazon_marketplace_web, or blank when inventory isn’t trackedFree-text valuesNot tracked
Continue selling when out of stock / Variant Inventory Policydeny (default) or continueyes, truedeny

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.

Practical safeguard (our suggestion): set the Status column to 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 messageWhat Shopify says to do
Validation failed: price can’t be blankAdd a price to that line.
Inventory quantity can’t be blankSet a quantity. If you aren’t tracking inventory, leave the Inventory tracker column blank.
Inventory quantity is not a numberEnter a number for the quantity in stock.
Inventory policy is not included in the listSet it to deny or continue.
Fulfillment service can’t be blankEnter 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.50 becomes 14.50 and 12.5 USD becomes 12.5) and converts decimal commas (24,90 becomes 24.90).
  • Converts quantities written with thousands separators (1,200 becomes 1200) 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.

Related guides