# Pricing

URL: https://docs.sparklayer.io/help/pricing

How B2B pricing works in SparkLayer: price lists, the three ways to fill them, how customer groups decide who sees which prices, and where to set each up.

> **Quick summary**
>
> - B2B prices live in **price lists**: a set of prices for your products, matched by SKU, in one currency. Manage them at **Pricing > Price lists** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/pricing/lists)), or **SparkLayer Wholesale > Pricing > Price lists** in the Shopify app.
> - A price list gets its prices **automatically** from your store's prices (for example 50% off retail), **manually** by CSV upload or the Price editor, or from another system such as an ERP through an **integration**.
> - Customers see a price list's prices when they sign in, once it's assigned to their **customer group** or them individually.
> - The free Basic plan includes up to 3 price lists; Starter and above have unlimited price lists. [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md) need the Growth plan. See [Plans and features](https://docs.sparklayer.io/help/plans-and-features.md).

Pricing builds up in layers. You start with a price list, choose who sees it, then add quantity pricing and discounts where you need them. This page explains each layer in that order, and how they combine into the price a customer pays.

## How pricing works

A [price list](https://docs.sparklayer.io/help/glossary.md#price-list) holds your B2B prices. Each price is set against a product SKU (at variant level), so every product you sell to B2B customers needs a unique SKU.

You assign price lists to [customer groups](https://docs.sparklayer.io/help/customers/customer-groups.md), and every B2B customer belongs to a group. When customers sign in, the SparkLayer widgets on your store show them the prices from their group's price lists.

How a price reaches a B2B customer:

1. **Prices go in**: Automatic, CSV upload or an integration
2. **Price list**: Prices per SKU, in one currency
3. **Customer group**: Each group is assigned one or more price lists
4. **Customer signs in**: They see their group's prices on your store

Prices are always shown to B2B customers **net** (excluding tax). Tax is added at checkout, depending on how tax is set up in your store. If your buyers expect to see prices with tax included, see [tax-inclusive price display](https://docs.sparklayer.io/help/pricing/pricing-display.md#show-tax-inclusive-prices). If your store's own prices include tax, see [If your store's prices include tax](https://docs.sparklayer.io/help/pricing/managing-pricing.md#tax-inclusive-prices) before you set up automatic pricing.

## Automatic, manual or integration

Prices get into a price list in 3 ways. Choose the one that matches where your trade prices come from today.

| Way | What it means | Example | Set it up |
| --- | --- | --- | --- |
| **Automatic** | SparkLayer works out prices from a pricing source, such as your store's own prices, with a percentage increase or decrease. Prices update when your store's prices change. | 50% off your store's retail prices | [Set up automatic pricing](https://docs.sparklayer.io/help/pricing/managing-pricing.md#set-up-automatic-pricing) |
| **Manual** | You set exact prices per SKU by uploading a CSV file, or edit single prices in the Price editor. | A CSV of specific trade prices | [Upload prices by CSV](https://docs.sparklayer.io/help/pricing/csv-upload.md) |
| **Integration** | A backend system such as an ERP, PIM or CRM sends prices to SparkLayer through the API. Available on the Pro and Enterprise plans. | Sync prices from NetSuite | [Send prices from another system](https://docs.sparklayer.io/help/pricing/managing-pricing.md#send-prices-from-another-system) |

You can combine them. For example, an automatic price list at 50% off retail can also hold exact prices for a few products, set by CSV upload or with **Override for this SKU** in the [Price editor](https://docs.sparklayer.io/help/pricing/price-editor.md).

## Who sees which prices

Customer groups set the prices for most customers. When one business or person needs something different, you can go a level further:

| Level | Set it at | Guide |
| --- | --- | --- |
| **Customer group** | **Customers > Groups** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/customers/groups)), or **SparkLayer Wholesale > Customers > Customer groups** in the Shopify app. One or more price lists per group. | [Assign a price list to customers](https://docs.sparklayer.io/help/pricing/managing-pricing.md#assign-a-price-list-to-customers) |
| **One customer** | Their own price lists, or an extra percentage discount, on their record in your store. | [Prices for one customer](https://docs.sparklayer.io/help/pricing/customer-pricing.md) |

To give one key account their own prices, step by step, follow [Give a key account their own prices](https://docs.sparklayer.io/help/guides/key-account-prices.md).

## Quantity pricing and discounts

Once customers have the right price list, 2 features can lower what they pay:

- **[Quantity pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md)** lowers the unit price as the quantity rises, for example buy 1 at $10 or 10 at $8. You set it in a price list. Quantities can be counted per variant or across the parent product.
- **[Discounts](https://docs.sparklayer.io/help/pricing/discounts.md)** add promotions on top of price lists: order discounts, volume tiers and coupon codes. They need the Growth plan.

To set up both for bigger orders, follow [Run volume pricing and promotions for trade customers](https://docs.sparklayer.io/help/guides/volume-discounts.md).

## How it all fits together

SparkLayer works out a customer's price in this order:

| Step | What happens | Guide |
| --- | --- | --- |
| 1. Price list | The most specific price list applies: the customer's own price lists, then their customer group's. If a product is in several of the group's lists, the first one wins. | [What overrides what](https://docs.sparklayer.io/help/customers.md#who-sets-what) and [Which price list wins](https://docs.sparklayer.io/help/pricing/managing-pricing.md#price-list-order) |
| 2. Quantity price | If the price list has price breaks, the unit price comes from the break the quantity falls into. | [Quantity pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md) |
| 3. Customer discount | A customer's extra percentage discount, if set, is taken off the unit price. | [Prices for one customer](https://docs.sparklayer.io/help/pricing/customer-pricing.md#give-a-customer-an-extra-percentage-discount) |
| 4. Discounts | Any discounts the cart qualifies for apply on top, for example an amount off the order's sub-total. | [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md) |
| 5. Tax | Tax is added at checkout. | [Tax and shipping](https://docs.sparklayer.io/help/ordering/tax-and-shipping.md) |

## Set up B2B pricing for the first time

B2B pricing takes 4 steps to set up, and needs no code.

1. Check that every product you sell to B2B customers has a **unique SKU** in your store. SparkLayer matches prices to products by SKU.
2. Create a price list at **Pricing > Price lists** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/pricing/lists)), or **SparkLayer Wholesale > Pricing > Price lists** in the Shopify app. See [Create a price list](https://docs.sparklayer.io/help/pricing/managing-pricing.md#create-a-price-list).
3. Fill it with prices: a percentage off your store's prices ([automatic pricing](https://docs.sparklayer.io/help/pricing/managing-pricing.md#set-up-automatic-pricing)), or exact prices from a spreadsheet ([upload prices by CSV](https://docs.sparklayer.io/help/pricing/csv-upload.md)).
4. Assign the price list to a customer group at **Customers > Groups** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/customers/groups)), or **SparkLayer Wholesale > Customers > Customer groups** in the Shopify app. To give every B2B customer the same prices, assign it to the **Base customer group**. See [Assign a price list to customers](https://docs.sparklayer.io/help/pricing/managing-pricing.md#assign-a-price-list-to-customers).

Then sign in to your store as a test B2B customer to check the prices. See [Test as a B2B customer](https://docs.sparklayer.io/help/customers/add-customers-to-a-group.md#test-as-a-b2b-customer). For the same setup as one guide, from price list to first buyer, follow [Set up wholesale prices for your trade customers](https://docs.sparklayer.io/help/guides/set-up-wholesale-prices.md).

## Supported pricing rules

Everything SparkLayer's pricing engine supports, and where to set it up:

| Rule | What you can do | Guide |
| --- | --- | --- |
| **Currencies** | Set up price lists in different currencies. | [Price lists](https://docs.sparklayer.io/help/pricing/managing-pricing.md) |
| **Customer rules** | Assign one or more price lists to a customer group or a single customer, and give individual customers an extra percentage discount. | [Prices for one customer](https://docs.sparklayer.io/help/pricing/customer-pricing.md) |
| **Quantity pricing** | Lower the unit price as the quantity rises. Count quantities per variant or across the parent product. | [Quantity pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md) |
| **Discounts and promotions** | Add order discounts, volume tiers and coupon codes on top of price lists. Needs the Growth plan. | [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md) |
| **Pricing display** | Show RRP (MSRP), quantity price breaks, unit costs and tax-inclusive prices. | [How prices are shown](https://docs.sparklayer.io/help/pricing/pricing-display.md) |
| **Quantity rules** | Set minimum and maximum order quantities and pack sizes per customer group. | [Quantity rules](https://docs.sparklayer.io/help/storefront/quantity-rules.md) and [storefront features](https://docs.sparklayer.io/help/storefront.md) |

## Pricing guides

- [Price lists](https://docs.sparklayer.io/help/pricing/managing-pricing.md): Create automatic and manual price lists and assign them to customers
- [Upload prices by CSV](https://docs.sparklayer.io/help/pricing/csv-upload.md): Prepare a CSV file and upload exact prices to one or more price lists
- [Price editor](https://docs.sparklayer.io/help/pricing/price-editor.md): Find a product and change or override its prices without a CSV file
- [Prices for one customer](https://docs.sparklayer.io/help/pricing/customer-pricing.md): Give individual customers their own price lists or an extra discount
- [Quantity pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md): Set price breaks by quantity and price boxes, cases or pallets
- [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md): Set up order discounts, volume tiers and coupon codes (Growth plan)
- [How prices are shown](https://docs.sparklayer.io/help/pricing/pricing-display.md): Control how prices, RRP, savings and tax appear on your store
- [Pricing FAQs](https://docs.sparklayer.io/help/pricing/faqs.md): Answers to common questions, and how to diagnose pricing issues
