# Prices for one customer

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

Give individual B2B customers an extra percentage discount or their own price lists, set on the customer's record in Shopify or your other eCommerce platform.

> **Quick summary**
>
> - Give a single customer their **own price lists**, which replace their customer group's, or an **extra percentage discount** on top of their prices. Both are included on every plan.
> - Both are set on the customer's record in your eCommerce platform, in 2 SparkLayer fields called metafields: the customer's **price lists** and their **discount percentage**.
> - On Shopify, SparkLayer can add these fields to your store for you from **Integrations > Platform > Metafields** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/configuration/integrations/platform)), or **SparkLayer Wholesale > Integrations > Platform > Metafields** in the Shopify app. You then fill them in on the customer in the Shopify admin. Wix doesn't support metafields, so customer pricing isn't available on Wix.

## How it works

A customer's prices usually come from the [price lists](https://docs.sparklayer.io/help/pricing/managing-pricing.md) assigned to their [customer group](https://docs.sparklayer.io/help/customers/customer-groups.md). Customer pricing goes a step further for individual customers:

- **Customer-specific price lists** replace the customer group's price lists for that customer. For example, you have a standard B2B price list, but some customers should get lower prices on some or all products. You create another price list, upload its prices in SparkLayer, then set it on those customers.
- A **customer percentage discount** takes an extra percentage off the customer's prices. For example, your B2B customers are on a price list, and you want some of them to get an extra 25% off those prices.

How a customer's price is worked out:

1. **Customer group price lists**: The default for everyone in the group
2. **Customer price lists**: Override the group's, if set
3. **Customer discount**: An extra percentage off, if set

To choose between these, and a customer group of their own, step by step, follow [Give a key account their own prices](https://docs.sparklayer.io/help/guides/key-account-prices.md).

### Where customer pricing is stored

Customer pricing is stored in **metafields** (sometimes called attributes). A metafield is an extra field on a customer's record in your eCommerce platform, like a custom box on the customer's page, which SparkLayer reads. You set the field up once for your store, then fill it in for each customer who needs it.

See [Shopify metafields and data mapping](https://docs.sparklayer.io/help/platforms/shopify/metafields.md), and for other platforms, [Metafields](https://docs.sparklayer.io/developers/data/metafields.md) in the developer docs.

To check what a customer has, open their page at **Customers** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/customers/list)), or **SparkLayer Wholesale > Customers** in the Shopify app: **Price list override** is under **Basic information**, and **Discount percentage** under **Financial details**. Both are read-only there, because they come from your store.

## Give a customer their own price lists

A customer's own price lists replace their customer group's price lists.

1. Create the price list and add its prices. See [Price lists](https://docs.sparklayer.io/help/pricing/managing-pricing.md) and [Upload prices by CSV](https://docs.sparklayer.io/help/pricing/csv-upload.md).
2. Note the price list's handle, shown under its name 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, for example `vip-pricing`.
3. Make sure the `price_lists` metafield is set up in your store. On Shopify, you can add it from **Integrations > Platform > Metafields** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/configuration/integrations/platform)), or **SparkLayer Wholesale > Integrations > Platform > Metafields** in the Shopify app by clicking **Configure** next to **SparkLayer metafields**.
4. In the form below, enter the price list handles. It writes the value for you, for example `["vip-pricing","base-list"]`.
5. Click **Copy**, open the customer in your store admin (on Shopify, the customer's **Metafields** card), paste the value into the price lists field and save.

**Lots of customers? Fill them in one table (Shopify):** in your Shopify admin, go to **Customers**, tick the customers and click **Edit customers**. Click **Columns**, tick the SparkLayer field under **Metafields**, type the values and click **Save**. See [Shopify's guide](https://help.shopify.com/en/manual/custom-data/metafields/bulk-edit-metafields).

**Metafield settings, if you create the field by hand**

The settings are the same on every platform:

| Setting | Value |
| --- | --- |
| **Custom data type** | Customers (on Shopify, at **Settings > Custom data > Customers** ([open in the Shopify admin](https://admin.shopify.com/settings/custom_data/customer/metafields))) |
| **Metafield type** | `json` |
| **Namespace** | `sparklayer` |
| **Key** | `price_lists` |
| **Value** | A JSON list of price list handles, as above |

For platforms other than Shopify, see the [SparkLayer developer docs](https://docs.sparklayer.io/developers.md).

## Give a customer an extra percentage discount

A customer discount takes an extra percentage off the customer's prices.

**Shopify:**

1. Set up the discount field once: go to **Integrations > Platform > Metafields** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/configuration/integrations/platform)), or **SparkLayer Wholesale > Integrations > Platform > Metafields** in the Shopify app, click **Configure** next to **SparkLayer metafields** and enable the customer discount. See [Add metafields automatically](https://docs.sparklayer.io/help/platforms/shopify/metafields.md#add-metafields-automatically).
2. In your Shopify admin, go to **Customers** ([open in the Shopify admin](https://admin.shopify.com/customers)) and open the customer.
3. In the customer's **Metafields** card, find **Customer % Discount** (click **Show all** if you can't see it).
4. Enter the percentage, for example `25` for an extra 25% off, and save the customer.

**Lots of customers? Fill them in one table (Shopify):** in your Shopify admin, go to **Customers**, tick the customers and click **Edit customers**. Click **Columns**, tick **Customer % Discount** under **Metafields**, type the values and click **Save**. See [Shopify's guide](https://help.shopify.com/en/manual/custom-data/metafields/bulk-edit-metafields).

**Metafield settings, if you create the field by hand**

| Setting | Value |
| --- | --- |
| **Custom data type** | Customers, at **Settings > Custom data > Customers** ([open in the Shopify admin](https://admin.shopify.com/settings/custom_data/customer/metafields)) |
| **Metafield type** | `number_decimal` |
| **Namespace** | `sparklayer` |
| **Key** | `discount_percentage` |
| **Value** | A decimal number, for example `10`, `22.5` or `50.25` |

**Other platforms:**

Set the `discount_percentage` metafield (or attribute) on the customer to the percentage, for example `25` for an extra 25% off. Your developer or agency can set this up with these settings:

| Setting | Value |
| --- | --- |
| **Custom data type** | Customers |
| **Metafield type** | `decimal` |
| **Namespace** | `sparklayer` |
| **Key** | `discount_percentage` |
| **Value** | A decimal number, for example `10`, `20` or `50` |

For more information, see the [SparkLayer developer docs](https://docs.sparklayer.io/developers.md).

For promotions such as coupon codes or spend thresholds, use [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md) instead.

## FAQs

**Does a customer's own price list replace their customer group's price lists?**

Yes. Price lists set on a customer override the price lists of their customer group.

**Can I set customer pricing from my ERP?**

Yes. Customer-specific price lists set with metafield data are designed for more advanced setups, such as pricing managed in an ERP. See [Send prices from another system](https://docs.sparklayer.io/help/pricing/managing-pricing.md#send-prices-from-another-system).

**Can I assign several price lists to a customer group instead?**

Yes. A customer group can have several price lists. See [Assign a price list to customers](https://docs.sparklayer.io/help/pricing/managing-pricing.md#assign-a-price-list-to-customers).
