Upload prices by CSV
How it works
Upload a CSV file to set exact prices on a manual price list, or to set specific prices for some products on an automatic price list. For single changes, the Price editor is quicker.
A CSV (comma-separated values) file is a plain spreadsheet format. Any spreadsheet tool can save a sheet as a CSV file, usually from its File menu. In Google Sheets, for example, go to File > Download > Comma Separated Values (.csv).
Prepare the file
Choose the file
Check your upload
Import
Prepare your CSV file
Start from a template:
You can also get a template in the upload window: click Download template.
The simplest file has 2 columns, SKU and Price. It has a header row (the column names), then one row per SKU. Prices are per unit, for example 14.99:
sku,price
123-abc,14.99
124-abc,12.99
125-abc,15.99
126-abc,99.99The template writes the column names as SKU and Price. Column names aren't case-sensitive, so sku and price work too.
Before you upload, check that:
- The price list exists. If not, create a price list first.
- Every SKU matches a product SKU in your store exactly, and the product is active.
- No SKU has spaces before or after it. A space stops the SKU matching. In Excel or Google Sheets, the
TRIMfunction removes them. - The header row is the first row, and uses the column names shown below.
- Prices are numbers only, such as
14.99, with no currency symbol. - The file is saved as CSV, not as a spreadsheet file such as .xlsx.
CSV columns
Most uploads need only SKU and Price. Add the other columns for specific features.
| Column | What it contains | Required |
|---|---|---|
sku | The product SKU as set up in your eCommerce platform or backend system. | Yes |
price | The unit price for the SKU, for example 14.99. Don't include a currency symbol such as $ or £. | Yes |
qty | The quantity this price applies from, for quantity pricing. If you use it, every row needs a quantity, and every SKU needs a row with a quantity of 1. An empty cell fails the import. Leave the column out and every price applies from a quantity of 1. | No (defaults to 1) |
unit_of_measure | The unit the quantity belongs to, such as box or pallet, for unit of measure pricing. Letters and numbers only, with underscores as separators, such as pallet_box. | No |
price_list_slug | The handle of the price list to update, for bulk uploads. | Only for bulk uploads |
display_tax_rate | The tax percentage (0 to 100) used to show prices with tax included, for tax-inclusive price display. It applies to the whole SKU on the price list, so use the same rate on every row for a SKU: conflicting rates fail the import. A blank cell leaves the SKU's rate as it is, so you can give it on just one of its rows. | No |
For example, a file with price breaks, units and display tax rates:
sku,price,qty,unit_of_measure,display_tax_rate
ABC-123,10.00,1,each,20
ABC-123,9.00,10,each,20Upload prices to a price list
- Go to Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab) and click Upload next to the price list (or Upload CSV in its ⋯ menu). The Upload prices to window opens, named after the list.
- Choose your CSV file, or drop it into the window.
- Under Check your upload, check the number of rows ready, and the reasons for any rows that will be skipped (see Skipped rows).
- Click Import. The button shows how many prices it imports, for example Import 240 prices.
More detail
- Importing sets the prices for the SKUs in the file. Everything else on the list stays as it is.
- To fix a problem first, click Choose another file.
- If the price list isn't assigned to a customer group yet, assign it so customers can see the prices.
Upload prices to several price lists at once
Use Bulk upload to update several price lists from one CSV file, for example the same products in several currencies.
-
Find the handle of each price list you want to update. It's shown under the price list's name at Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab), for example
Handle: base-uk. -
Add a
price_list_slugcolumn to your CSV file and enter the handle on each row. You can add as many rows as you need for each price list:example.csv sku,price,price_list_slug 123-abc,7.99,base-uk 123-abc,10.99,base-us 789-abc,5.99,base-uk 789-abc,7.99,base-us -
At Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab), click Bulk upload at the top of the page. The Bulk upload prices window opens.
-
Choose your file, check the rows under Check your upload, then click Import.
Under Check your upload, the ready banner shows how many prices go to each list.
Once the prices are imported, assign the price list to a customer group if it isn't already.
Skipped rows
Rows with a problem are skipped, and the rest still import. Check your upload shows your file's name and how many rows are ready, for example "238 of 240 rows ready", and lists each skipped row with a reason.
| Reason | What to do |
|---|---|
| No SKU | Add the SKU to the row. |
| SKU … isn't in your catalogue | Check the SKU exists in your store, matches exactly and the product is active. |
| Price "…" isn't a number (no currency symbols) | Enter the price as a number only, such as 14.99. |
| No price list with the handle "…" | In a bulk upload, check the price_list_slug matches a list's handle exactly. |
If you see This file can't be used, the first row doesn't have the right column names. The first row needs SKU and Price (or SKU, Price and price_list_slug for a bulk upload). Click Download template to see the layout, then Try another file.
Update or remove some prices
| To | Do this |
|---|---|
| Update some prices | Upload a CSV file with only the SKUs and prices you want to change. SparkLayer updates those prices and keeps the rest. |
| Remove one product's price | In the Price editor, open the variant and click Remove next to the price. |
| Remove every price from a price list | Open the ⋯ menu next to the price list and click Clear, then Clear prices. On an automatic list, the automatic rule stays. |
| Download a price list's prices | Open the ⋯ menu next to the price list and click Download CSV. |
A row with a blank price doesn't remove that SKU's price. To remove a price, use the Price editor, or clear the price list.
Troubleshooting
SparkLayer matches prices to products by SKU, so each product (variant) needs a unique SKU in your store. Check that:
- The SKU exists in your product catalogue and matches exactly.
- The SKU is unique.
- The product is active, not a draft.
See Pricing FAQs.
The SKUs in the file probably don't match your products exactly. Check for:
- Spaces before or after a SKU. The upload can still look successful, but nothing matches. Clear the price list (⋯ > Clear), trim the spaces from the SKU column, then upload the file again.
- SKUs that changed in your store. If you change a SKU after uploading its price, the price list keeps the old SKU and the product has no price. Upload the prices again against the new SKUs.
For other causes, see Why a product shows Unavailable.
Check the price column contains numbers only, without a currency symbol, and that the header row is the first row of the file.
See the troubleshooting guide for ways to solve common issues.
Next steps
Last updated