# Limitations

URL: https://docs.sparklayer.io/help/platforms/bigcommerce/limitations
Applies to: BigCommerce

What works differently on BigCommerce: unique SKUs, variant-level stock, no pre-orders, modifier options, multi-storefront, promotions, tax and shipping.

> **Quick summary**
>
> - The biggest differences on BigCommerce: no pre-orders, no BigCommerce promotions, and no modifier options in the widgets.
> - Every product needs a unique SKU, and SparkLayer works best with stock tracked per variant.
> - SparkLayer shipping only works if you turn off card payment through the BigCommerce checkout (**Card at checkout** in your customer groups).
> - BigCommerce multi-storefront isn't officially supported, though it works in most cases.

Some SparkLayer features depend on what BigCommerce supports. This page lists what works differently on BigCommerce. To check a feature across all platforms, see [Compare platforms](https://docs.sparklayer.io/help/platforms/compare.md).

## Products and stock

| Limitation | Details |
| --- | --- |
| **Product SKUs** | Every product must have a SKU, and it must be unique to that product. |
| **Product-level stock** | SparkLayer works with stock tracked per variant, so avoid tracking stock at product level where you can. If a product with several variants tracks stock at product level, SparkLayer shows the whole product's stock level against each variant. If a customer then adds variants whose total quantity is more than the product's stock, they see a "Something went wrong" error and can't continue. |
| **Negative stock and pre-orders** | BigCommerce doesn't allow stock to go below zero, so SparkLayer can't take pre-orders for stock that isn't available yet. The same applies to [quotes](https://docs.sparklayer.io/help/ordering/quoting.md): a quote can't be placed without enough stock to fulfil it. |
| **Modifier options** | BigCommerce modifier options (in the **Customizations** section when you edit a product) don't appear in the [frontend interfaces](https://docs.sparklayer.io/help/storefront/interfaces.md). SparkLayer only shows the variants set up in the product's **Variations** section, such as size or colour. |
| **Custom line items** | SparkLayer's custom line items feature isn't supported on BigCommerce. |

## Pricing and discounts

| Limitation | Details |
| --- | --- |
| **Price lists** | Price lists can only be managed in SparkLayer. Changes to price lists in BigCommerce don't apply to SparkLayer. |
| **Promotions** | BigCommerce discounts, such as order-level discounts and promotional codes, can't be used with SparkLayer. Use the SparkLayer [Discount Engine](https://docs.sparklayer.io/help/pricing/discounts.md) instead. We're reviewing this for a future update. |

## Customers and sales agents

| Limitation | Details |
| --- | --- |
| **Company users** | When a customer invites a team member as a [company user](https://docs.sparklayer.io/help/customers/company-users.md), the team member doesn't get a confirmation email. Tell them which email address to sign in with, and ask them to use **Forgot password** on your store to set a password. |

## Multi-storefront

SparkLayer doesn't officially support BigCommerce [multi-storefront](https://support.bigcommerce.com/s/article/Multi-Storefront?language=en_US). It works in most cases, with these limits:

- Only one customer with a given email address can exist across all the storefronts (channels) you use with SparkLayer.
- Products, customers and orders from every storefront share one SparkLayer site.
- A customer shares one SparkLayer site across all storefronts. To avoid invalid BigCommerce carts, either assign each customer to one storefront at a time, or make sure they finish checking out on one storefront before adding products on another.
- Each storefront needs its own numeric `igniteCheckoutContext.channel_id` value, set in an extra field in the SparkLayer Core Script options. This is a code change for your developer.

## Checkout, shipping and tax

| Limitation | Details |
| --- | --- |
| **Multi-zone tax** | SparkLayer supports multi-zone tax set up in BigCommerce, as long as at least one of these is true: **Prices entered with tax** is set to **No, I will enter prices exclusive of tax**, or **When calculating the taxes on sales made outside this storefronts default tax zone** is set to **Update product prices to reflect applicable tax rates**. |
| **Tax price display setting** | The **How are prices displayed on your storefront** setting affects how shipping costs appear in the cart. SparkLayer updates it automatically when you install the app or change the **Prices entered with tax** setting. If you change it on its own, SparkLayer isn't updated and shipping costs display incorrectly. [Contact us](https://docs.sparklayer.io/help/support.md) before you change it. |
| **SparkLayer shipping and card payments** | You can only use [SparkLayer shipping](https://docs.sparklayer.io/help/ordering/shipping-rules.md) on BigCommerce if **Card at checkout** is turned off in your customer groups' **Payment methods**. When an order goes through the BigCommerce checkout to pay online by card, BigCommerce replaces SparkLayer's shipping methods with your store's default shipping rules. |
| **Shipping cost display** | If your tax zone shows prices including tax, the costs in the SparkLayer cart's shipping method list use the cart's overall tax rate, not any shipping-specific tax rate. This only affects the costs shown in that list. The shipping cost in the cart summary comes from BigCommerce and is correct. |
