Import Product Costs from a CSV or Excel File

Updated October 3, 2026

With many products, a spreadsheet is faster than typing costs one by one. Download a template with all your variants, fill in the costs in Excel or Google Sheets, and upload the file. The import checks every row before anything is saved.

Where
In the sidebar, open Product Costs. The import sits in the menu next to Cost sync.
Who
Stores with many products, or anyone who keeps costs in a spreadsheet.
Time
About 10 minutes, most of it filling in the file.
Updates
With All orders, past orders are recalculated in the background. Large stores take a few minutes.

Step 1: Download the Template#

Step 1: Download the Template
Products

Step 2: Fill In Your Costs#

Each row is one variant. Fill in unit_cost and, if you have one, handling_cost. Leave the other columns as they are.

ColumnWhat it holds
variant_idIdentifies the variant. Filled in by the template.
skuThe variant's SKU from Shopify. A file without variant_id is matched by this column.
product_titleFor your reference. Not imported.
variant_titleFor your reference. Not imported.
unit_costWhat one unit costs you, as a plain number. Rows without it are skipped.
handling_costOptional extra cost per unit for packing and preparing, see What Is the Handling Cost?. Empty means 0.
currencyYour store currency, filled in by the template. Costs are always saved in the store currency, whatever this column says.

A filled-in row:

variant_idskuproduct_titlevariant_titleunit_costhandling_costcurrency
3100000101NW-PIL-SANDLinen Throw PillowSand8.400.60USD

Only variant_id or sku and unit_cost are needed. If you build the file from your own SKU list, the columns sku and unit_cost are enough.

Step 3: Upload the File#

Open Import Costs from the same menu and click Next.

Step 3: Upload the File

To import different costs per region, upload one file per zone. Several files for the same zone are merged.

A file that cannot be used stays in the list with the reason under its name, for example a missing variant_id or sku column, or more than half of its rows with errors. Remove it with the cross, fix the file and drop it in again.

Step 4: Resolve Problems#

When some rows need a decision, the Resolve step shows them one at a time. Without problems, this step is skipped.

Step 4: Resolve Problems
ProblemWhat you can do
Repeated SKUThe same SKU or variant appears more than once. Pick the cost to keep, or Skip this SKU.
SKU not in your storeNo variant has this SKU. Pick one of the closest SKUs from your store, or search for the right variant.
Cost is not a numberFor example €8,90. Accept the suggested reading (Use 8.90), or type the cost into Or enter it.

Step 5: Review the Rows#

The Review step lists every row of every file with what will happen to it.

Step 5: Review the Rows
StatusMeaning
ReadyThe cost is applied.
FixedYou repaired the row in the Resolve step. It is applied.
MergedAnother file for the same zone has the same cost. It is saved once.
ReplacedAnother file for the same zone has a different cost, and that one is kept.
No costunit_cost is empty. Skipped.
DuplicateThe variant appears again in the file, and the other row is kept. Skipped.
Not foundNo variant in your store has this SKU. Skipped.
InvalidThe cost or the match column cannot be read. Hover the badge for the reason.

A row whose currency differs from your store currency shows Will be stored as with your currency: the number is saved as it is, without conversion.

Step 6: Apply the Costs#

Step 6: Apply the Costs
OptionWhat it does
New orders onlyThe imported cost applies from today. Past orders keep the cost they had, and orders of products that had no cost stay without one.
All ordersReplaces the current cost and applies the imported cost to every past order. Use it for products that had no cost or had a wrong cost.

Example

The Linen Throw Pillow (Sand) had a cost of $8.00. You import $8.40. An order from last month with 2 pillows:

OptionProduct cost of that order
New orders only2 × $8.00 = $16.00
All orders2 × $8.40 = $16.80

What Happens Next#

  • The wizard shows Costs imported with how many costs were created and updated, per zone. Rows that matched nothing when saving are listed by SKU or variant ID.
  • Imported costs show the
    CSV
    badge (CSV) in the Source column. In the order details, the items show CSV Import.
  • With All orders, the affected orders are recalculated in the background and the progress shows in the header. With New orders only, nothing is recalculated.

Limits#

Common questions

Related articles

Was this article helpful?

We value your privacy
We use cookies to enhance your experience. By continuing to use our site, you consent to our use of cookies.

By clicking "Accept All", you consent to our use of cookies.

Learn more
Import Product Costs from a CSV or Excel File - Profitario