How to import a supplier invoice into Shopify

Supplier documents · 7 min read · Updated · By the Box to Shelf team

Short version: Shopify can't read a supplier invoice by itself. You either type the lines in, turn the invoice into a CSV and import it, or use an app that reads the invoice for you. Whichever route, the same four checks catch nearly every mistake: match on SKU or barcode, convert pack sizes, check the arithmetic, and update cost as well as stock.

A supplier invoice contains two things your store needs: what arrived (quantities) and what you paid (unit costs). Getting both into Shopify accurately is the whole job. Here are the three ways to do it, from slowest to fastest.

What you're turning the invoice into

Every invoice line has to end up as one or two changes in Shopify:

  • Stock: add the quantity received to the product's on-hand count at the location where it arrived.
  • Cost: set the product's Cost per item to the new unit cost, if it changed.

Some lines aren't products at all: freight, pallet charges, deposits, discounts and tax. They don't go into stock, but you may want to spread freight and duty into unit costs (see landed cost).

Route 1: Type it in

For a short invoice with a few lines:

  1. Open Products › Inventory, choose the location, and for each line find the product by SKU or barcode.
  2. Add the received quantity to On hand using Adjust by, with the reason Received where your admin offers it.
  3. Open each product whose price changed and update Cost per item in the Price section. Products with variants need the cost set per variant.

Simple, but it's two edits per line and easy to slip on a digit. A 40-line invoice can take most of an hour.

Route 2: Convert to CSV and import

For longer invoices, build a spreadsheet and use Shopify's imports. Two different CSVs are involved, because Shopify keeps stock and cost in different places:

WhatWhich CSVKey columns
StockInventory CSV (Products › Inventory › Export / Import)SKU, location, On hand (new)
CostProduct CSV (Products › Export / Import)Handle, option values, Cost per item
  1. Get the lines into a spreadsheet. If the supplier sends CSV or Excel, start there. From a text PDF you can often copy the table; from a scan or photo you'll have to type it.
  2. Map supplier codes to your SKUs. Use barcode (EAN/UPC) where both sides have it. Keep a mapping sheet for suppliers whose codes differ from yours.
  3. Convert pack sizes. "5 × case of 24" means 120 units. A case price of 7.20 means a unit cost of 0.30.
  4. Stock: export the inventory CSV for the receiving location, add each received quantity to the current on-hand figure in On hand (new), leave other rows blank, and import.
  5. Cost: export products, update Cost per item for the changed variants, and import with Overwrite products with matching handles. Read the warnings in our bulk cost guide first: blank cells overwrite data.

If you already raise native purchase orders, you can also import invoice lines into a purchase order with its CSV import and receive them on the linked transfer. That records what arrived, but you'll still need to update cost per item separately.

Route 3: Use an invoice import app

Several Shopify apps now read supplier invoices and propose the stock and cost updates for you. They save the most time when your suppliers send PDFs, scans or photos rather than spreadsheets. When you compare them, test with your hardest real invoice and check:

  • Document types: text PDFs are easy. Scans, phone photos, multi-page catalogues and two-column layouts separate the good tools from the rest.
  • Languages and number formats: European invoices use comma decimals (1.234,50) and local column headings.
  • Matching: by SKU and barcode first. What happens when a line doesn't match? It should wait for you, not guess.
  • Checks: does it verify quantity × price against the line total, and the lines against the subtotal?
  • Pack sizes: does it convert case pricing to unit costs?
  • Approval and undo: can you review every change before it hits your store, and reverse it?
  • Costs and locations: does it update Cost per item, and let you choose the receiving location?
  • Data handling: how long are invoices kept, and are they used to train AI models?

The four checks, whichever route you take

  1. Identity: every line matched to the right variant by SKU or barcode, never by a similar-looking name alone.
  2. Units: pack sizes converted, so stock is in the units you sell.
  3. Arithmetic: quantity × unit price = line total on every line; lines add up to the subtotal. A mismatch almost always means a misread or a typo.
  4. Both halves: stock and cost updated. Updating only stock leaves your profit reports using stale costs.

Where Box to Shelf helps

Box to Shelf is an invoice import app built around those four checks. Upload the invoice or forward the supplier's email to your store's private address. It reads PDFs, scans, phone photos, CSV and Excel files in English, German, French, Spanish, Italian, Dutch and Romanian, matches lines by SKU, barcode or name, checks line totals and the subtotal, converts case prices, and shows each quantity and cost change with its margin impact. Lines it isn't sure about wait for you. Press Apply to update stock at your chosen location and Cost per item together, and undo the last apply if you need to.

Questions

Can Shopify read a supplier invoice by itself?

No. Shopify admin has no built-in invoice reader. You type the lines in, import a CSV you prepare, or use an app that reads the invoice.

Should stock and cost be updated from the same invoice?

Usually yes. The invoice is the most reliable record of what arrived and what you paid, so updating both from it keeps stock and margins consistent.

Sources

Shopify changes its admin often. Steps were checked against the Shopify Help Center in November 2026; if a menu has moved, the help center links above have the current version.