Skip to content

Price lists

Steps for

How it works

You create price lists, then assign them to customers through customer groups. When customers sign in to your store, they see the prices you've set for them.

From pricing source to customer

Pricing source

Your store's prices, a CSV file or another system
(this flows forward)

Price list

A rule such as 50% off, or exact prices per SKU
(this flows forward)

Customer group

Assign one or more price lists
(this flows forward)

Customer

Signs in and sees their prices
TypeHow it worksBest for
AutomaticYou choose a pricing source, such as your Shopify prices, and apply a percentage decrease or increase, such as 50% off.A simple B2B pricing structure based on percentage discounts
ManualYou upload exact prices for your product SKUs by CSV, or edit them in the Price editor.Precise pricing, where you need control over every price a customer sees
IntegrationA backend system such as an ERP, PIM or CRM sends price data to SparkLayer automatically.Prices that are already managed in another system

You can combine them: an automatic list at 50% off retail can also hold exact prices for a few products.

Prices are always shown net (excluding tax), and tax is added at checkout. To show prices with tax included, see tax-inclusive price display. If your store's own prices include tax, see If your store's prices include tax before you set up automatic pricing.

Create a price list

Start with an empty price list, then add its prices. Before you start, check that:

  • Every product you sell to B2B customers has a unique SKU in your store. Prices are matched to products by SKU.
  • Those products are active in your store, not drafts. SparkLayer only imports prices for active products.
  • You know the currency of the prices. You need one price list per currency.
Try itPricing > Price lists
Guided tour

Pricing > Price lists

Walk through a working copy of Pricing > Price lists, step by step. Nothing you do here changes your store.

To create a price list:

  1. Go to Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab) and click Create price list.
  2. Under Details, enter a Name, such as "Wholesale GBP".
  3. Check the Handle. It's filled in from the name. You can change it now, but not later.
  4. Choose a Currency. You can't change it later either.
  5. Choose how the list gets its prices. Tick Enable automatic pricing for a percentage off your store's prices (see Set up automatic pricing), Enable manual pricing to upload exact prices, or both.
  6. Click Save in the save bar at the top of the page.
More detail
  • Not sure which to choose? Automatic pricing is quickest if your B2B prices are a set percentage off your retail prices. Choose manual if you already have a spreadsheet of trade prices. You can upload exact prices to an automatic list later, so ticking both keeps your options open.
  • If you've connected a backend system such as an ERP to SparkLayer, only create price lists by hand if they aren't imported from that system.

The new price list appears on the Price lists screen. Next:

  1. Add its prices: set up automatic pricing, or upload prices by CSV.
  2. Assign the price list to a customer group, so customers see it.

Price list settings

The price list form has 3 cards: Details, Automatic pricing and Manual pricing.

Every setting on the form
SettingWhat it does
NameThe name shown in SparkLayer, for example "Wholesale pricing". It must be unique. You use it to assign the price list to a customer group.
HandleThe list's unique ID, for example wholesale-pricing. It's used in bulk CSV uploads, customer pricing and the API. It can't be changed once the list is created.
CurrencyThe currency of the prices in the list, for example GBP. It can't be changed once the list is created.
Enable automatic pricingWorks out prices from a pricing source and your percentage, for example 50% off Shopify prices.
Enable manual pricingLets you set specific prices for each product by uploading a CSV file. Once a list is created, this card shows "Manual pricing is managed by uploading a CSV file on the price lists page." instead.

If you're on the Basic plan

Basic includes 3 price lists. If you save a 4th, you'll see Basic includes 3 price lists. Click Try Starter free to start a 14-day Starter trial with unlimited price lists, or click Not now and delete a list you don't use. See Your plan and usage.

Set up automatic pricing

An automatic price list works out its prices from a pricing source and a percentage, so you don't set each price yourself. It's the quickest setup when your B2B prices are a set percentage off retail.

  1. Create or edit a price list and tick Enable automatic pricing.
  2. Choose a Pricing source: Shopify Price, or one of your other price lists.
  3. Leave Apply a percentage variation ticked.
  4. Choose Decrease or Increase, and enter the percentage. For example, to take 50% off, choose Decrease and enter 50.
  5. Click Save in the save bar.
More detail
  • Shopify Price is the Price field on a product in the Shopify admin: the price your regular customers see on your store. When you change a price in Shopify, your automatic price lists update too.
  • A decrease can be between 0% and 99%, and an increase between 0% and 500%.
  • If the price list is in a different currency from its pricing source, set a currency conversion. If your store's prices include tax, adjust the percentage for tax.
  • On other platforms, the pricing source is that platform's product price.

An automatic price list covers every product

An automatic price list always applies its percentage to all your products. You can't limit it to some SKUs, a brand or a collection. To price only some products, use a manual price list: upload a CSV with a sku and a price for just those products, or set them in the Price editor. To add more SKUs later, upload a CSV with only the new ones. If a group has both kinds of list, the order of its lists decides which price wins. For discounts by brand, see Move brand discounts from another wholesale app.

To set an exact price for a few products on an automatic list, upload them by CSV, or use Override for this SKU in the Price editor. The Type column then shows how many, for example Automatic + 12 SKU.

Set a currency conversion

If the price list is in a different currency from its pricing source, you can set a fixed exchange rate. For example, if your pricing source is in USD and the price list is in EUR:

  1. Tick Currency conversion ("Use a manual exchange rate").
  2. Enter the rate, for example 1 USD = 1.1 EUR.

If the price list is in the same currency as the pricing source, you can't set a currency conversion.

If your store's prices include tax

SparkLayer treats the prices in a price list as net (excluding tax), and adds tax at checkout. An automatic price list takes its percentage off your store's own prices. So if your store's prices include tax, the result still contains tax, and tax is then added again at checkout. SparkLayer has no button to correct this for you: work out the percentage by hand, and enter that instead.

To find the percentage to enter as a Decrease:

  1. Take your discount from 100. For 20% off: 100 − 20 = 80.
  2. Divide that by 1 plus your tax rate. With 20% VAT: 80 ÷ 1.2 = 66.67.
  3. Take the result from 100: 100 − 66.67 = 33.33. Enter 33.33 as the Decrease.
Worked example: 20% off, with 20% VAT
PriceAmount
Your store's price, including 20% VAT£120.00
Net price (excluding VAT)£100.00
What you want trade customers to pay: 20% off the net price£80.00 + VAT
With a Decrease of 20, the price list price£96.00 + VAT (20% off £120, treated as net)
With a Decrease of 33.33, the price list price£80.00 + VAT

For trade prices with no discount, only the tax taken out, the decrease is 100 − (100 ÷ 1.2) = 16.67%.

On Shopify, your prices include tax when Include sales tax in product price and shipping rate is turned on at Settings,Taxes and duties (opens in your Shopify admin in a new tab). If it's off, your prices are already net and you can enter the percentage you want as it is. If your Shopify store uses line item tax (specific tax rates per SKU), automatic price lists don't take this into account.

On other platforms, the same applies whenever your platform's product prices include tax.

Add manual prices

A manual price list holds the exact prices you set for each SKU. Choose the tool that fits the job:

ToUse
Add or update prices in bulkClick Upload next to the price list at Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab). See Upload prices by CSV.
Change a few pricesThe Price editor.
Set price breaks by quantity (for example buy 1 for $10.00, buy 5 for $8.00)See Quantity pricing.

You can add exact prices to an automatic price list too. That way you automate most of your pricing and still set specific prices for some products.

Send prices from another system

If your prices are managed in a backend system such as an ERP, it can send them to SparkLayer automatically through the SparkLayer API. This is available on the Pro and Enterprise plans, and is usually set up by your developer or integration partner. Some systems have a ready-made integration that does this for you.

Assign a price list to customers

A price list takes effect once you assign it to a customer group. This is how you decide which customers see which prices when they sign in.

  1. Go to Customers,Groups (opens in your SparkLayer Dashboard in a new tab) and click the group's name. To set prices for every B2B customer, click Edit on the Base customer group card instead.
  2. Find Price lists. If it's under Inherited rules, click + Override next to it (on the base group, + Customize) to move it up to Customized rules.
  3. Choose a price list. To add another, click Add price list.
  4. Click Save in the save bar.
More detail
  • You can also choose a price list when you create a group, in the Create customer group window.
  • Reset next to a customized rule hands it back to the base customer group.
  • See Customer groups for everything else a group controls.

Which price list wins

A customer group can have several price lists, numbered in the order you add them. When a product is in more than one of them, the first list wins. As the group page puts it: "If a SKU is in more than one list, SparkLayer uses the first list it's in." So the order of the lists is their priority.

For example, if ABC-123 is $10 in price list 1, $8 in price list 2 and $12 in price list 3, customers in the group see $10. A product that's only in list 3 gets its price from list 3.

If a customer sees the wrong price, check the price list order on their group first. See A customer gets prices from the wrong price list.

Prices for one customer

Customer groups set the prices for most buyers. When one business or person needs something different, set their prices at a lower level:

ForDo this
One customerGive them their own price lists, or an extra percentage discount, on their record in your store (on Shopify, in the Shopify admin). See Prices for one customer.

For the whole job, step by step, follow Give a key account their own prices.

Once your price lists are set up and assigned, you manage them from the Price lists screen.

The Price lists screen

Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab) is where you manage every price list. It lists them in a table, with Bulk upload and Create price list at the top.

ColumnWhat it shows
NameThe price list's name, with its handle underneath (for example "Handle: trade-20"). Click it to edit the list.
CurrencyThe list's currency, such as USD.
TypeManual (n): a manual list with n SKU prices. Automatic + n SKU: an automatic list with n SKUs set by hand. Automatic: an automatic list with no SKUs set by hand.

Each row has an Upload button, for uploading prices by CSV, and a ⋯ menu.

The ⋯ menu
Menu itemWhat it does
Upload CSVUploads prices to this list. See Upload prices by CSV.
Download CSVDownloads the list's SKU prices as a CSV file. It's unavailable for an automatic list with no SKUs set by hand.
EditOpens the list's settings.
ClearRemoves every SKU price uploaded to the list. See Clear or delete a price list.
DeleteDeletes the list. See Clear or delete a price list.
Tips and shortcuts on the screen
  • A tip banner appears at the top of the screen when something needs attention, for example "Trade has no price list, so those buyers see retail prices." or "Trade 20% isn't used by any customer group yet."
  • The Common tasks card links to the usual jobs: create a price list, change prices on a list, set the price of one product, choose who sees a price list, and upload prices from a spreadsheet.

Edit a price list

  1. Go to Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab) and click the list's name (or Edit in its ⋯ menu).
  2. Change the Name or the automatic pricing. The Handle and Currency are read-only.
  3. Click Save in the save bar.

The More actions menu at the top of the page has Download CSV, Clear and Delete.

Clear or delete a price list

Clearing empties a list but keeps it; deleting removes it.

ActionWhat happens
ClearRemoves every SKU price uploaded to the list. On an automatic list, the automatic rule stays. Confirm with Clear prices.
DeleteDeletes the list. Customer groups using it go back to your base pricing. This can't be undone. Confirm with Delete price list.

Both are in the list's ⋯ menu at Pricing,Price lists (opens in your SparkLayer Dashboard in a new tab), and in More actions when you're editing the list.

Tax and discounts

For how tax is calculated on B2B orders, see Tax and shipping.

To add promotions on top of price lists, use Discounts (Growth plan). They apply automatically or with a coupon code, for all customers or specific customer groups. They include an amount off an order, and volume tiers (more off as the quantity goes up).

Show "price on application"

To show "Price on application" instead of a price, so customers contact you for one:

  1. Leave the product out of the customer's price lists. With no B2B price, it shows Unavailable instead of a price and quantity box, and can't be added to the order. This needs manual price lists, because an automatic list covers every product. To do it for one group whatever its price lists, make the variant un-sellable for that group instead: see Hide variants or make them unavailable.
  2. Rename "Unavailable". At Storefront,Options,Translation overrides (opens in your SparkLayer Dashboard in a new tab), add overrides for pdp.messaging.un-sellable (product pages) and product-card.messaging.un-sellable (product cards), for example Price on application. See Change the "Unavailable" message.
More detail
  • The new text shows wherever a product has no price, including products missing from a price list by mistake. Check your other products have prices first: see Why a product shows Unavailable.
  • To let customers ask for a price, use the Quoting Engine: your sales agents can add price on application (POA) products to a quote and set the price.

Troubleshooting

Why a product shows Unavailable

B2B customers see Unavailable instead of a price and quantity box when SparkLayer has no price it can use for them.

CauseFix
No B2B price for the SKU on the customer's price lists. This is the most common cause.Add a price for the SKU, by CSV or in the Price editor. If B2B customers shouldn't buy it, hide it from them with the free B2B Catalogs app and the b2c-only tag.
The automatic list's pricing source is empty for that variant. For example, the list is based on the compare-at price and the variant has no compare-at price, so there's nothing to take the percentage from.Fill in the field in your store, then wait a few minutes for it to sync.
The SKU in the price list doesn't match the product, because of spaces in the CSV or a SKU that's changed.See If prices show as Unavailable after an upload.
The product isn't in SparkLayer. The Price editor says no product was found.Publish the product to the SparkLayer Wholesale sales channel, and check it's Active. See Add prices for a product that isn't found.
The variant has been made un-sellable on purpose, with sell: false in its sparklayer.settings metafield.Remove the setting if customers should be able to order it. See Hide variants or make them unavailable.

If prices show as Unavailable after an upload

An upload can look successful and still match nothing. Two things cause this:

  • Spaces before or after a SKU. ABC-123 (with a space) doesn't match ABC-123. Clear the price list (⋯ > Clear), trim the spaces from the SKU column, then upload the file again. In Excel or Google Sheets, the TRIM function removes them.
  • SKUs changed in your store after the upload. The price list still holds prices for the old SKUs, so the products with new SKUs have no price. Upload the prices again against the new SKUs. See Upload prices by CSV.

FAQs

Next steps

Was this page helpful?

Last updated