# Linnworks

URL: https://docs.sparklayer.io/help/integrations/erps/linnworks

Connect Linnworks to SparkLayer to sync B2B prices, price breaks and units of measure from extended properties, and route wholesale orders into Linnworks.

> **Quick summary**
>
> - The Linnworks integration makes Linnworks the source of truth for your B2B prices. You enter them as **extended properties** (custom fields) on each Linnworks inventory item.
> - Prices sync one way, from Linnworks, every hour. Customers stay on your eCommerce platform, and orders reach Linnworks through your existing Linnworks integration.
> - Connect it in the SparkLayer Dashboard at **Integrations > Partners** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/configuration/integrations/partners)), or **SparkLayer Wholesale > Integrations > Partners** in the Shopify app, under **Multi-channel management**, with a token from the SparkLayer app in Linnworks.
> - Needs the Pro or Enterprise plan and an approved Linnworks account. It works with every eCommerce platform.

## What it does

[Linnworks](https://www.linnworks.com/) is a multi-channel platform for running eCommerce operations, from inventory and stock to order management and fulfilment.

SparkLayer has a direct integration with Linnworks. You keep your B2B prices, including price breaks and units of measure, on your Linnworks inventory items, and SparkLayer adds them to your price lists.

How data flows between Linnworks, SparkLayer and your store:

1. **Linnworks**: B2B prices in extended properties named b2b-…
2. **SparkLayer**: Imports prices into your price lists every hour
3. **Your store**: Signed-in B2B customers see their prices
4. **Linnworks**: Orders arrive through your existing Linnworks integration

## What syncs and in which direction

Only prices sync, one way, from Linnworks into SparkLayer **every hour**. Orders go to Linnworks through your own Linnworks integration, not through SparkLayer.

| Data | Direction | Details |
| --- | --- | --- |
| Prices | Linnworks to SparkLayer | Product prices come from **extended properties** on Linnworks inventory items. |
| Orders | SparkLayer to your store to Linnworks | Orders placed through SparkLayer reach Linnworks through your **existing** Linnworks integration, with your B2B prices. |
| Customers | Not synced | You manage customers on your eCommerce platform as usual. |

To check the prices SparkLayer has received for a product, use **Product data lookup** in [Product sync](https://docs.sparklayer.io/help/integrations/data-sync.md#look-up-a-products-data).

## Set up Linnworks

Check the requirements and connect Linnworks. Then create your price lists in SparkLayer, add their prices in Linnworks and assign them to customers.

### Requirements

- **The Pro or Enterprise plan.** See [Plans and features](https://docs.sparklayer.io/help/plans-and-features.md).
- **Any eCommerce platform** connected to SparkLayer. 
- **An approved Linnworks account.** See the [Linnworks website](https://www.linnworks.com/).

### Connect Linnworks

1. Sign in to your Linnworks account.
2. [Open the SparkLayer app authorisation page](https://apps.linnworks.net/Authorization/Authorize/d4d9f57c-ea0e-4ecf-8c6d-eaa5632d4581) to install the SparkLayer app. You're given an **authorisation token**.
3. In the SparkLayer Dashboard, go to **Integrations > Partners** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/configuration/integrations/partners)), or **SparkLayer Wholesale > Integrations > Partners** in the Shopify app.
4. Under **Multi-channel management**, turn on the switch next to **Linnworks**.
5. Paste the authorisation token into **Token** and click **Save**.

### Create price lists in SparkLayer

With Linnworks, you create the price lists in SparkLayer first, then add prices to them from Linnworks. Price lists decide which prices each customer sees when they sign in.

1. In the Dashboard, go to **Pricing > Price lists** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/pricing/lists)), or **SparkLayer Wholesale > Pricing > Price lists** in the Shopify app.
2. Click **Create Price List**.
3. Enter a **Handle** (a short, unique ID you'll use in Linnworks) and a **Name**, then save. 
4. Repeat for each price list you need.

Make a note of each handle: you'll use it in Linnworks.

### Add B2B prices in Linnworks

You add B2B prices with Linnworks' **extended properties** feature. See Linnworks' guide to [extended properties](https://assets.linnworks.com/support/inventory/my-inventory/edit-inventory-item/extended-properties/).

1. In Linnworks, open a product and go to the **Extended properties** tab.
2. Click **Add New**.
3. Fill in the **Name**, **Value** and **Type** as shown below.
4. Repeat for each price list the product belongs to.

| Field | What to enter |
| --- | --- |
| **Name** | `b2b-` followed by the price list's handle in SparkLayer. For example, for the handle `base-list`, enter `b2b-base-list`. |
| **Value** | The prices, separated by commas (see below). |
| **Type** | `Other` |

#### Format the price value

Separate prices with commas. The first price is always the price for one item.

| To set | How to write it | Example |
| --- | --- | --- |
| A single price | The price for one item. | `7.00` |
| Price breaks (tiered pricing) | Add each tier as the quantity, a plus sign and the price. | £7.00 for one item and £5.00 for 10 or more: `7.00,10+5.00` |
| Units of measure | Add a plus sign and a unit key after a tier. See [unit of measure pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md). | 10 items make a box at £5.00 each and 100 make a crate at £4.00 each: `7.00,10+5.00+box,100+4.00+crate` |

For example, a product on 2 price lists could have these extended properties:

| Name | Value | Type |
| --- | --- | --- |
| `b2b-base-list` | `10,5+7.50` | Other |
| `b2b-uk-vip` | `7.50,10+5.75,50+5` | Other |

#### Update prices in bulk

To change many prices at once, use Linnworks' bulk import tools. See Linnworks' guide to [importing and exporting data](https://assets.linnworks.com/support/settings/import-and-export-data/).

### Assign prices to customers

Customers see the Linnworks prices once their [customer group](https://docs.sparklayer.io/help/customers/customer-groups.md) uses the right price list. Set this up in **Customers > Groups** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/customers/groups)), or **SparkLayer Wholesale > Customers > Customer groups** in the Shopify app.

To test it, sign in to your store as a B2B customer and open a product. You should see the price you set in Linnworks.

## Limitations

- Customers don't sync. You manage them on your eCommerce platform.
- Orders don't go through SparkLayer. They reach Linnworks through your existing Linnworks integration.
- Price changes take up to an hour to reach SparkLayer, because prices sync every hour.

## Troubleshooting

**Prices from Linnworks aren't showing**

Check that:

- **The extended property Name** is `b2b-` plus the exact price list handle in SparkLayer.
- **The Type** is `Other`.
- **An hour has passed** since the change. Prices sync every hour.
- **The customer's group uses that price list** in **Customers > Groups** in the SparkLayer Dashboard ([open](https://app.sparklayer.io/customers/groups)), or **SparkLayer Wholesale > Customers > Customer groups** in the Shopify app.

**Price breaks aren't working**

Check the value format: the single-item price first, then each tier as quantity, plus sign and price, separated by commas, for example `7.00,10+5.00`.
