# SparkLayer Docs > SparkLayer is a B2B eCommerce platform that adds wholesale ordering, customer-specific pricing, quoting, payment terms and self-service account features to existing online stores (Shopify, BigCommerce, Wix, WooCommerce, Magento) or to custom storefronts via its APIs, JavaScript SDK and the Ignite integration framework. This file lists every page of the SparkLayer documentation with a short summary. Each link points to a Markdown version of the page. The complete documentation in one file is at https://docs.sparklayer.io/llms-full.txt, or one file per section: - [Help Center](https://docs.sparklayer.io/llms/help.txt): Set up, configure and run SparkLayer on your store. - [Developers](https://docs.sparklayer.io/llms/developers.txt): APIs, JavaScript SDK, templates and integration guides. - [Ignite](https://docs.sparklayer.io/llms/ignite.txt): Build a SparkLayer integration for any commerce platform. - [Developers: guides and API index](https://docs.sparklayer.io/developers/llms.txt): Every developer and Ignite guide in full, the facts for calling the APIs and a list of every API operation. Start here to build an integration. - [API operations](https://docs.sparklayer.io/llms-api.txt): Every SparkLayer API operation in one compact list: method, path, summary, parameters and body fields, with links to the full reference and the OpenAPI specs. ## Using these docs - Every page has a Markdown version: add `.md` to its URL, or request the page with `Accept: text/markdown`. - Building on the APIs or SDK? Read https://docs.sparklayer.io/developers/llms.txt (developer guides in full plus every API operation) or the compact https://docs.sparklayer.io/llms-api.txt, and follow the facts below. - Search and read the docs from an AI assistant or agent with the MCP server at https://docs.sparklayer.io/mcp (tools: `search_docs`, `get_page`, `list_pages`, `list_operations`, `get_operation`, `get_openapi_spec`). - Help Center pages open with a "Quick summary" that answers the page's question; read it first. - Pages marked with platforms in brackets (for example "Shopify only") apply only to those eCommerce platforms. Everything else applies to every platform. - New to SparkLayer? Start with [How SparkLayer works](https://docs.sparklayer.io/help/get-started/how-sparklayer-works.md), then [Get started](https://docs.sparklayer.io/help/get-started.md). Terms are defined in the [Glossary](https://docs.sparklayer.io/help/glossary.md). - Dashboard locations are written as **Area > Screen** with a link to https://app.sparklayer.io. ## Facts for building integrations These apply to every call to the SparkLayer APIs. Use only what the docs and OpenAPI specs define. - **Base URLs:** Live `https://app.sparklayer.io`, test `https://test.app.sparklayer.io`. Each environment has its own data and its own API keys. - **Access:** API access needs the Pro or Enterprise plan. Create credentials (Site ID, Client ID, Client Secret) in the SparkLayer Dashboard at Settings > API. - **Access token:** `POST {base}/api/auth/token` with a `Site-Id` header and a JSON body (not form-encoded): `{"grant_type":"client_credentials","client_id":"…","client_secret":"…"}`. It returns `access_token`, valid for 3,600 seconds. There is no refresh token: cache the token and request a new one shortly before it expires. - **Every request:** `Authorization: Bearer ` and `Site-Id: `, plus `Content-Type: application/json` when there is a body. Set a `User-Agent` that names your integration. - **Errors:** RFC 7807 problem details: `title`, `status`, `detail` and an optional `errors[]` of `{ code, message, property }`. Some error responses have no body. Retry `5xx`, `429` (honouring `Retry-After`) and concurrent-update `409`s with exponential backoff; on `401`, get a new token once and retry; don't retry other `4xx` without changing the request. - **Pagination:** Most list endpoints return everything. `GET /api/v2/price-lists` pages with `page` and `page_size` (up to 250) until `pagination.current_page` equals `total_pages`. `GET /api/v1/purchases` uses `limit` (up to 500) and `offset`: stop when a page has fewer than `limit` results. - **Ground rules:** Use only endpoints, fields and SDK methods that the docs or OpenAPI specs define. Prefer `GET /api/v2/price-lists` over the deprecated v1. Products are matched by SKU. Keep credentials in environment variables or a secrets manager, never in code. - **Ignite:** With Ignite, SparkLayer calls endpoints that your service implements (the Ignite spec), and your service calls the SparkLayer APIs above for everything else. - **Read the docs as Markdown:** Add `.md` to any page URL. Index of every page: https://docs.sparklayer.io/llms.txt. Every API operation, compactly: https://docs.sparklayer.io/llms-api.txt. The developer guides in full: https://docs.sparklayer.io/developers/llms.txt. - **OpenAPI specs:** `core`, `ordering`, `pricing`, `purchasing`, `stock`, `files`, `sync-log`: https://docs.sparklayer.io/openapi/.yaml (also `.json`). Ignite: https://docs.sparklayer.io/openapi/ignite.yaml. - **MCP:** Search and read these docs from your assistant with the docs MCP server at https://docs.sparklayer.io/mcp. OpenAPI specs (index: https://docs.sparklayer.io/openapi/index.json; each is also published as `.json`): - Core API: https://docs.sparklayer.io/openapi/core.yaml - Ordering API: https://docs.sparklayer.io/openapi/ordering.yaml - Pricing API: https://docs.sparklayer.io/openapi/pricing.yaml - Purchasing API: https://docs.sparklayer.io/openapi/purchasing.yaml - Stock API: https://docs.sparklayer.io/openapi/stock.yaml - Files API: https://docs.sparklayer.io/openapi/files.yaml - Sync Logging API: https://docs.sparklayer.io/openapi/sync-log.yaml - Ignite endpoints: https://docs.sparklayer.io/openapi/ignite.yaml ## Help Center Set up, configure and run SparkLayer on your store. - [Welcome to SparkLayer](https://docs.sparklayer.io/help.md): SparkLayer adds B2B ordering, customer pricing and payment terms to Shopify, BigCommerce, Wix, WooCommerce and Magento. - [Get started](https://docs.sparklayer.io/help/get-started.md): Set up SparkLayer with the five-step Setup checklist: create a price list, assign it to a customer group, add a buyer, then add SparkLayer to your theme. - [Your setup guide](https://docs.sparklayer.io/help/get-started/setup-guide.md): Answer 4 quick questions about your store and get a setup guide made for you: the SparkLayer guides you need, in order, to tick off as you go. - [How SparkLayer works](https://docs.sparklayer.io/help/get-started/how-sparklayer-works.md): How SparkLayer adds B2B ordering to your store, from data sync to orders, and the key ideas it's built on: price lists, customer groups, widgets and more. - [Try our demo](https://docs.sparklayer.io/help/get-started/demo.md): See SparkLayer in action: try the B2B ordering experience on your own website, or sign in to our Shopify demo store and place test B2B orders. - [Launch checklist](https://docs.sparklayer.io/help/get-started/launching.md): Work through the SparkLayer launch checklist: test as a B2B customer, check SKUs, pricing and payments, invite your first customers, then go live for everyone. - [Guides](https://docs.sparklayer.io/help/guides.md): Step-by-step guides to common B2B goals in SparkLayer, from setting trade prices and payment terms to shipping, tax, sign-up and moving customers across. - [Set up wholesale prices for your trade customers](https://docs.sparklayer.io/help/guides/set-up-wholesale-prices.md): Create a B2B price list, add your trade prices, assign it to a customer group and add your buyers, then sign in as a buyer to check the prices they see. - [Give a key account their own prices](https://docs.sparklayer.io/help/guides/key-account-prices.md): Give one company or customer prices different from their customer group: their own price list, an extra percentage off, or a group of their own. - [Move brand discounts from another wholesale app](https://docs.sparklayer.io/help/guides/migrate-brand-discounts.md) (Shopify only): Recreate brand-by-brand trade discounts from another wholesale app in SparkLayer, with a manual price list per brand and a customer group per mix. - [How payments work](https://docs.sparklayer.io/help/guides/how-payments-work.md) (Shopify only): Follow Pay Online by Card, Pay by Invoice and Pay on Account from checkout to payment on Shopify, and choose which to offer each customer group. - [Let trusted customers pay later on Net 30](https://docs.sparklayer.io/help/guides/net-terms.md): Let trusted B2B customers order now and pay later: turn on Pay on Account for their group, set credit limits and Net 30 terms, and choose how to invoice. - [Process your B2B orders in Shopify](https://docs.sparklayer.io/help/guides/process-orders-in-shopify.md) (Shopify only): Find SparkLayer orders in Shopify, review and complete draft orders, take payment or mark them as paid, automate the routine parts and give buyers invoices. - [Show imported or manual orders in My Account](https://docs.sparklayer.io/help/guides/show-imported-orders.md) (Shopify only): Show orders created outside the SparkLayer checkout, such as Shopify draft orders or imported history, in My Account with a tag and an order metafield. - [Keep wholesale prices and products hidden from retail shoppers](https://docs.sparklayer.io/help/guides/hide-wholesale-from-retail.md) (Shopify only): Hide B2B-only products from retail shoppers with B2B Catalogs, hide prices from signed-out visitors, or make everyone sign in before they see your store. - [Let new trade customers apply, and approve them](https://docs.sparklayer.io/help/guides/approve-trade-applications.md) (Shopify only): Add a B2B login and registration page to your Shopify store, collect trade account applications with SparkLayer Forms, and approve each buyer into a group. - [Charge the right shipping on B2B orders](https://docs.sparklayer.io/help/guides/b2b-shipping.md): Choose your store's shipping rates or SparkLayer's own, set B2B shipping methods and bands by order total or weight, pre-select a method and test the costs. - [Get B2B tax and VAT right](https://docs.sparklayer.io/help/guides/tax-and-vat.md): Make sure B2B customers pay VAT or sales tax once: show net prices, allow for tax-inclusive store prices, exempt customers and check the tax at checkout. - [Fix customers or products that won't sync](https://docs.sparklayer.io/help/guides/fix-sync-problems.md): Find products and B2B customers that haven't reached SparkLayer, fix missing SKUs, incomplete addresses and tag errors in your store, then check they sync. - [Move your existing wholesale customers onto SparkLayer](https://docs.sparklayer.io/help/guides/move-existing-customers.md) (Shopify only): Bring the trade customers already in your Shopify store onto SparkLayer: tag them into groups, import their terms and order history, then ask them to sign in. - [Run volume pricing and promotions for trade customers](https://docs.sparklayer.io/help/guides/volume-discounts.md): Reward bigger B2B orders with quantity price breaks and pack sizes, then run discounts such as volume tiers and coupon codes for chosen customer groups. - [Show RRPs to your trade customers](https://docs.sparklayer.io/help/guides/show-rrp.md) (Shopify, BigCommerce, WooCommerce, Magento): Show each product's RRP (MSRP) beside the B2B price: copy your Shopify prices with a ready-made Flow, or fill in your whole catalogue from a spreadsheet. - [Pricing](https://docs.sparklayer.io/help/pricing.md): 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. - [Price lists](https://docs.sparklayer.io/help/pricing/managing-pricing.md): Create automatic or manual B2B price lists in SparkLayer, upload or override prices, and assign each list to the customer groups that should see it. - [Upload prices by CSV](https://docs.sparklayer.io/help/pricing/csv-upload.md): Prepare a CSV file of SKUs and prices, upload it to one or several SparkLayer price lists, check the rows before you import, and update or remove prices. - [Price editor](https://docs.sparklayer.io/help/pricing/price-editor.md): Use the SparkLayer Price editor to find a product or variant, see its price on every list, and edit, remove or override a price without a CSV file. - [Prices for one customer](https://docs.sparklayer.io/help/pricing/customer-pricing.md): 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. - [Quantity pricing](https://docs.sparklayer.io/help/pricing/quantity-pricing.md): Set up tiered quantity pricing and unit of measure pricing for boxes or pallets in SparkLayer, by CSV or in the Price editor, including rules for variants. - [Discounts](https://docs.sparklayer.io/help/pricing/discounts.md): Set up B2B discounts in SparkLayer on the Growth plan: money off orders, volume tiers, coupon codes, customer group limits, scheduling and other requirements. - [How prices are shown](https://docs.sparklayer.io/help/pricing/pricing-display.md): Control how B2B prices appear on your store: RRP (MSRP), quantity price break tables, savings, price labels, unit costs, RRP-only mode and tax-inclusive prices. - [Pricing FAQs](https://docs.sparklayer.io/help/pricing/faqs.md): Answers to common SparkLayer pricing questions on automatic and manual price lists, tiered pricing, gross prices and currencies, plus diagnosing pricing issues. - [Customers and customer groups](https://docs.sparklayer.io/help/customers.md): How your B2B customers, the customer groups they belong to and their prices fit together in SparkLayer, and where to manage each one in the app. - [Find and manage customers](https://docs.sparklayer.io/help/customers/managing-customers.md): Find a B2B customer, check their access, customer group, credit and addresses, and fix customer sync errors in SparkLayer. - [Customer groups](https://docs.sparklayer.io/help/customers/customer-groups.md): Set the price lists, payment methods, order limits and other rules for each B2B customer group, and see how groups inherit from the Base group. - [Add customers to a group](https://docs.sparklayer.io/help/customers/add-customers-to-a-group.md): Put B2B customers in the right customer group with a tag or label in your eCommerce platform, check they've synced, then sign in as one to test. - [Company users](https://docs.sparklayer.io/help/customers/company-users.md): Let B2B customers invite colleagues to one company account to share orders, shopping lists and addresses, with Limited users whose orders need approval. - [Customise My Account](https://docs.sparklayer.io/help/customers/account-and-addresses.md): Customise the SparkLayer My Account area: add custom My Details fields, rename order statuses, control address editing, show tracking and set login redirects. - [Order timeline and messages](https://docs.sparklayer.io/help/customers/timeline.md): Turn on the order timeline so customers and sales agents can message each other, keep internal notes and see order events and edits on B2B orders and quotes. - [Ordering & checkout](https://docs.sparklayer.io/help/ordering.md): Configure how B2B customers build carts, check out, pay and reorder in SparkLayer, from payment methods and net terms to quoting, shipping rules and invoices. - [Cart and checkout](https://docs.sparklayer.io/help/ordering/cart-and-checkout.md): How the SparkLayer checkout works, step by step, and how to customise it: the PO number field, payment and checkout messages, terms link and order limits. - [Checkout fields](https://docs.sparklayer.io/help/ordering/checkout-fields.md): Collect extra details at checkout, such as a PO number, delivery date or file, with standard and custom checkout fields, and see where the data is saved. - [Payment methods](https://docs.sparklayer.io/help/ordering/payment-methods.md): Choose how each B2B customer group can pay (on account, by invoice or by card), see how each method affects the order, and rename or reorder them at checkout. - [Credit limits and net terms](https://docs.sparklayer.io/help/ordering/credit-net-terms-and-invoicing.md): Give B2B customers credit limits, account balances and net terms such as Net 30 using SparkLayer metafields, and choose how to send or attach their invoices. - [Invoices](https://docs.sparklayer.io/help/ordering/invoices.md): Turn on SparkLayer Invoices so B2B customers can download PDF invoices from My Account, then add payment details, checkout data and your branding to them. - [How tax works at checkout](https://docs.sparklayer.io/help/ordering/tax-and-shipping.md): See how SparkLayer shows net prices and adds tax at checkout, set up tax on Shopify and other platforms, and fix common tax and shipping cost issues. - [Shipping rules](https://docs.sparklayer.io/help/ordering/shipping-rules.md): Use your store's shipping rates or SparkLayer's own B2B shipping methods, with bands by order total or weight for each customer group, and pre-select a method. - [Set up quotes](https://docs.sparklayer.io/help/ordering/quoting.md): Set up the SparkLayer Quoting Engine so B2B customers can request quotes from their cart: turn it on, prepare your sales team, statuses, emails and groups. - [Work on a quote](https://docs.sparklayer.io/help/ordering/work-on-a-quote.md): Review, assign, edit and message B2B quotes as a sales agent or Sales administrator, then complete them, and see how a quote moves from request to order. - [Shopping lists](https://docs.sparklayer.io/help/ordering/shopping-lists.md): Let B2B customers save named shopping lists, add products from the cart or product page, edit quantities, add whole lists to the cart and export them to CSV. - [Favourites](https://docs.sparklayer.io/help/ordering/favourites.md): Let B2B customers save products with a heart icon as they browse and add them to the cart from My Account, and see how Favourites differ from shopping lists. - [Intelligent Cart (AI)](https://docs.sparklayer.io/help/ordering/intelligent-cart.md): Build B2B orders with SparkLayer Intelligent Cart by uploading a PDF, spreadsheet or photo, forwarding an email or scanning barcodes to fill the cart. - [Complete draft orders automatically](https://docs.sparklayer.io/help/ordering/automation-and-workflows.md) (Shopify only): Turn SparkLayer draft orders into completed orders in Shopify automatically, and get email alerts for new draft orders with Shopify Flow. - [Storefront](https://docs.sparklayer.io/help/storefront.md): What the SparkLayer frontend adds to your store for signed-in B2B customers, and how to control its design, product display, stock, quantity rules and language. - [Storefront widgets](https://docs.sparklayer.io/help/storefront/interfaces.md): See every SparkLayer frontend interface your B2B customers use, from product pricing and the matrix to My Cart and My Account, and where each appears. - [My Cart](https://docs.sparklayer.io/help/storefront/interfaces/my-cart.md): What B2B customers see and do in the SparkLayer My Cart interface: search, file uploads, shopping lists and discount codes, then a four-step checkout. - [My Account](https://docs.sparklayer.io/help/storefront/interfaces/my-account.md): Learn what B2B customers can do in the SparkLayer My Account interface: track and export orders, reorder, manage lists and addresses, and hide sections. - [Product detail](https://docs.sparklayer.io/help/storefront/interfaces/product-detail.md): Add the SparkLayer product detail interface to product pages so B2B customers see their price, stock and pack sizes and order one or many variants. - [Product matrix](https://docs.sparklayer.io/help/storefront/interfaces/product-matrix.md): Use the SparkLayer product matrix to show every colour and size of a product in one table so B2B customers can order in bulk, and apply it with tags. - [Product card](https://docs.sparklayer.io/help/storefront/interfaces/product-card.md) (Shopify, BigCommerce, WooCommerce, Magento): Add the SparkLayer product card interface to collection pages so B2B customers see their price, variants and stock and order without opening a product. - [Product price](https://docs.sparklayer.io/help/storefront/interfaces/product-price.md): Show signed-in B2B customers their own price or the RRP anywhere on your product or collection pages with the SparkLayer product price snippet. - [Custom slots (targets)](https://docs.sparklayer.io/help/storefront/interfaces/custom-slots.md): Add your own messages, promotions and links inside SparkLayer's My Account, My Cart and checkout with custom slots, with ready-made examples to copy. - [B2B Catalogs](https://docs.sparklayer.io/help/storefront/b2b-catalogs.md) (Shopify only): Show or hide Shopify products for B2B and retail customers with tags, using the free B2B Catalogs app. - [Show or hide products](https://docs.sparklayer.io/help/storefront/b2b-catalogs/configuring-your-catalogs.md) (Shopify only): Tag Shopify customers as b2b and products as b2b-only or b2c-only to control who sees each product with B2B Catalogs, and hide variants per customer group. - [Catalogs per customer group](https://docs.sparklayer.io/help/storefront/b2b-catalogs/configuring-advanced-catalogs.md) (Shopify only): Show or hide product variants for particular B2B customer groups with sparklayer.settings metafield rules, the base group and b2b- customer tags in Shopify. - [Customise the access denied page](https://docs.sparklayer.io/help/storefront/b2b-catalogs/configuring-access-denied-view.md) (Shopify only): Change the access denied page customers see when they open a product hidden from them, by editing the B2B Catalogs Liquid snippet in your Shopify theme. - [B2B Catalogs limitations](https://docs.sparklayer.io/help/storefront/b2b-catalogs/limitations.md) (Shopify only): B2B Catalogs limitations: variants and retail shoppers, grid and filter counts, the 250-variant limit, carts, permalinks, third-party apps and Liquid errors. - [B2B Catalogs FAQs](https://docs.sparklayer.io/help/storefront/b2b-catalogs/faqs.md) (Shopify only): Answers on B2B Catalogs pricing, setup, SEO and sitemaps, customer group and variant-level visibility, disabling on a theme, getting help and uninstalling. - [Uninstall B2B Catalogs](https://docs.sparklayer.io/help/storefront/b2b-catalogs/removing-b2b-catalogs.md) (Shopify only): Uninstall B2B Catalogs safely: disable it on every Shopify theme where it's enabled first, and what to do if you removed the app before disabling it. - [Storefront options](https://docs.sparklayer.io/help/storefront/storefront-options.md): Change SparkLayer's storefront without code: checkout, My Account, pricing display, text overrides, custom slots and analytics, then save and publish. - [Customising the design](https://docs.sparklayer.io/help/storefront/customising-design.md): Match SparkLayer's storefront to your brand by changing 4 lines of CSS for colours and fonts, turn on dark mode, and fine-tune elements with CSS variables. - [What you can and can't change on the storefront](https://docs.sparklayer.io/help/storefront/what-you-can-change.md): See which parts of SparkLayer's storefront widgets you can change in settings, with CSS or custom slots, which need a developer, and which are fixed. - [How products are shown](https://docs.sparklayer.io/help/storefront/product-display.md): Change how B2B customers see products: table and variant views, SKUs and barcodes, hidden variants, quick buy mode, favourites and 1-click ordering buttons. - [Stock display](https://docs.sparklayer.io/help/storefront/stock-display.md): Show live stock levels to B2B customers, allow pre-orders and back-orders, add restock dates, choose stock locations and reserve stock for retail customers. - [Quantity rules](https://docs.sparklayer.io/help/storefront/quantity-rules.md) (Shopify, BigCommerce, WooCommerce, Magento): Control how many units B2B customers can order: set pack sizes, minimum and maximum quantities per variant or product, and order limits per customer group. - [Languages and international](https://docs.sparklayer.io/help/storefront/languages-and-international.md): Show SparkLayer in 28 languages, translate Shopify product data, set a locale for date and currency formats, and change any text in the B2B interfaces. - [Product rules per customer group](https://docs.sparklayer.io/help/storefront/product-settings.md) (Shopify, BigCommerce, WooCommerce, Magento): Give customer groups their own pack sizes, quantity limits, reserved stock and product visibility with the sparklayer.settings metafield on each variant. - [Forms](https://docs.sparklayer.io/help/forms.md): Build B2B forms such as trade account applications and credit requests in SparkLayer Forms, embed them on your store and act on entries with workflows. - [Build a form](https://docs.sparklayer.io/help/forms/setup.md): Create a SparkLayer form, organise it into pages, fields and groups, add internal fields for your team and set its title, success message and notifications. - [Field types](https://docs.sparklayer.io/help/forms/field-types.md): Choose the right field for each question in SparkLayer Forms, from text, email and date inputs to selects, file uploads, signatures, addresses and groups. - [Conditional logic](https://docs.sparklayer.io/help/forms/conditional-logic.md): Show or hide fields, groups and pages in SparkLayer Forms based on answers or the logged-in customer, using AND/OR conditions and condition groups. - [Validation rules](https://docs.sparklayer.io/help/forms/validation.md): Check answers in SparkLayer Forms before they're submitted, with built-in format checks and custom rules using text, number, length and cross-field conditions. - [Versions and publishing](https://docs.sparklayer.io/help/forms/versions.md): Edit a SparkLayer form as a draft, preview it, publish it as the live version and understand how new versions affect existing and in-progress entries. - [Embed and style a form](https://docs.sparklayer.io/help/forms/embedding-and-styling.md): Add a SparkLayer form to your store with the Shopify theme block or an embed code, set embed attributes and match it to your brand with CSS variables. - [Form entries](https://docs.sparklayer.io/help/forms/entries.md): Review SparkLayer form entries, approve or reject trade applications into a customer group, export entries to CSV, and edit entries or check workflow runs. - [Form workflows](https://docs.sparklayer.io/help/forms/workflows.md): Automate SparkLayer Forms with workflows: run steps such as emails, conditions, API requests and customer creation when an entry is submitted or updated. - [Data references](https://docs.sparklayer.io/help/forms/data-references.md): Use data references in SparkLayer Forms to pull answers, logged-in customer data, customer groups, purchases and data tables into logic, options and templates. - [Data tables](https://docs.sparklayer.io/help/forms/data-tables.md): Keep reusable lists in SparkLayer Forms data tables, import rows from CSV and use them as options for choice fields or as lookup data in workflows. - [Account credit request form](https://docs.sparklayer.io/help/forms/account-credit-request-form.md): Build an account credit request form in SparkLayer Forms: customers pick a purchase and line items, give reasons and upload photos for your team to approve. - [Find your way around SparkLayer](https://docs.sparklayer.io/help/dashboard.md): A tour of the SparkLayer Dashboard and the SparkLayer Wholesale app in Shopify: the menus in each, what Home shows, and where older screens moved to. - [Orders](https://docs.sparklayer.io/help/dashboard/orders.md): See the B2B orders placed through SparkLayer on the Orders screen: compare sales with the period before, filter by type and open each order in Shopify. - [Settings](https://docs.sparklayer.io/help/dashboard/settings.md): SparkLayer's Settings: feature switches and store details in Configurations, B2B shipping methods, API keys for your ERP, and email and invoice templates. - [Test mode](https://docs.sparklayer.io/help/dashboard/test-mode.md): Use test mode to switch the SparkLayer Dashboard between your live store and a test store, so you can try out pricing and customer changes safely. - [Your plan and usage](https://docs.sparklayer.io/help/dashboard/plan-and-features.md): Check your SparkLayer plan and this month's usage, start a 14-day free trial, unlock a paid feature, and browse everything SparkLayer does in Explore features. - [Billing, trials and cancelling](https://docs.sparklayer.io/help/dashboard/billing.md): How SparkLayer bills you on each platform, what happens when your free trial ends, and how to upgrade, downgrade or cancel, and what uninstalling deletes. - [Your account and team](https://docs.sparklayer.io/help/dashboard/account.md): Manage your SparkLayer account: find your Site ID, change your password, invite team members, set up a team for another store and change the team owner. - [Features we turn on for you](https://docs.sparklayer.io/help/dashboard/features-on-request.md): See which SparkLayer features our team turns on or sets up for you, what each one does, what to tell us, and how to ask from the Dashboard or Help Center. - [Sales rep ordering](https://docs.sparklayer.io/help/sales-ordering.md): How sales reps order on behalf of B2B customers: switch to a customer, build the order at their prices, then check out or raise a quote for them. - [Order for a customer](https://docs.sparklayer.io/help/sales-ordering/order-for-a-customer.md): Switch to a B2B customer in your store, build their order at their prices, change unit prices or shipping, then check out or submit a quote on their behalf. - [Sales rep setup](https://docs.sparklayer.io/help/sales-reps.md): Add a sales agent so a member of your team can order for your B2B customers, choose which customer groups they can see, and change or remove their access. - [Roles and permissions](https://docs.sparklayer.io/help/sales-reps/roles.md): Control what each sales agent can do with roles: use the built-in Sales agent and Sales administrator roles, or create custom roles with your own permissions. - [Platforms](https://docs.sparklayer.io/help/platforms.md): SparkLayer runs on Shopify, BigCommerce, Wix, WooCommerce and Magento. - [Shopify](https://docs.sparklayer.io/help/platforms/shopify.md) (Shopify only): Add B2B and wholesale ordering to any Shopify plan with the SparkLayer Wholesale app: how it works, how to get set up and what's specific to Shopify. - [Install SparkLayer on Shopify](https://docs.sparklayer.io/help/platforms/shopify/install.md) (Shopify only): Install the SparkLayer Wholesale app on Shopify, work through Setup and Theme setup, then place a test order as a buyer before you go live. - [Theme setup](https://docs.sparklayer.io/help/platforms/shopify/theme-setup.md) (Shopify only): Check SparkLayer's app blocks on your Shopify theme in Theme setup, add the optional product blocks, or ask our team to install SparkLayer for you, free. - [Add B2B customers on Shopify](https://docs.sparklayer.io/help/platforms/shopify/invite-customers.md): Make a customer a B2B customer on Shopify: tag customers you already have, or add a new one from scratch, so they see your trade prices when they sign in. - [B2B Dawn theme](https://docs.sparklayer.io/help/platforms/shopify/dawn-theme.md) (Shopify only): Install SparkLayer's B2B version of Shopify's Dawn theme and set up its B2B login page, forced login, hidden prices, B2B-only products and Quick Buy mode. - [Shopify Companies](https://docs.sparklayer.io/help/platforms/shopify/companies.md) (Shopify only): How SparkLayer works alongside your Shopify B2B companies: draft orders linked to the right company, contact and location, vaulted cards and limitations. - [Markets and currencies](https://docs.sparklayer.io/help/platforms/shopify/markets-and-currencies.md) (Shopify only): Show B2B prices in more than one currency on one Shopify store: set up Shopify Markets, create a price list per currency and assign it to a customer group. - [Metafields and data mapping](https://docs.sparklayer.io/help/platforms/shopify/metafields.md) (Shopify only): Let SparkLayer add its Shopify metafields, fill them in for many products at once in the bulk editor, map order data and import order history. - [Shopify FAQs](https://docs.sparklayer.io/help/platforms/shopify/faqs.md) (Shopify only): Answers to common Shopify questions: plans, Shopify B2B, themes, customers who see retail prices, products, payments, draft orders and checkout errors. - [Limitations](https://docs.sparklayer.io/help/platforms/shopify/limitations.md) (Shopify only): Check what SparkLayer can't do on Shopify: no Shopify discounts, unique SKUs, a 350-line cart limit, tax and duties handling, app customisations and Companies. - [Error codes](https://docs.sparklayer.io/help/platforms/shopify/error-codes.md) (Shopify only): Fix the SHOPIFY:001 to SHOPIFY:007 and PRICING:001 errors in the My Cart interface, caused by Markets currencies, missing SKUs or incomplete customer data. - [Cancel, uninstall or transfer SparkLayer](https://docs.sparklayer.io/help/platforms/shopify/uninstall.md) (Shopify only): Cancel SparkLayer on Shopify by uninstalling the app, see what happens to billing and your data, move SparkLayer to another store or extend your trial. - [Shopify customisations](https://docs.sparklayer.io/help/platforms/shopify/customisations.md) (Shopify only): Customise your Shopify B2B store with SparkLayer: login and registration, B2B-only content, Shopify Flow, payments, emails, reporting and landing pages. - [One store or a separate B2B store](https://docs.sparklayer.io/help/platforms/shopify/customisations/store-setup.md) (Shopify only): Decide between running B2B and retail from one Shopify store or a separate B2B store, what to check for each, and how to set up and sync an additional store. - [B2B registration and login](https://docs.sparklayer.io/help/platforms/shopify/customisations/registration-and-login.md) (Shopify only): Add a B2B login and registration page to Shopify, choose how account applications work, translate it, make customers sign in and add a B2B onboarding page. - [B2B-only content](https://docs.sparklayer.io/help/platforms/shopify/customisations/b2b-only-content.md) (Shopify only): Show or hide Shopify content for B2B customers: B2B-only products, hidden prices, B2B content, metafields, menus and banners, and redirects by customer type. - [B2B landing page](https://docs.sparklayer.io/help/platforms/shopify/customisations/b2b-landing-page.md) (Shopify only): Send Shopify B2B customers to a landing page of your choice when they sign in: a B2B collection, a custom Shopify page or a page built with a page builder app. - [Shopify payment methods](https://docs.sparklayer.io/help/platforms/shopify/customisations/payment-methods.md) (Shopify only): Manage B2B payments on Shopify: review Pay on Account and Pay by Invoice orders as draft orders, send Shopify invoices, and hide checkout payment methods. - [Email notifications](https://docs.sparklayer.io/help/platforms/shopify/customisations/email-notifications.md) (Shopify only): Customise Shopify emails for B2B customers: show B2B-only content and order details, hide discount pricing, rename payment methods and edit invites. - [Shopify Flow for B2B](https://docs.sparklayer.io/help/platforms/shopify/customisations/flow.md) (Shopify only): Import ready-made Shopify Flow workflows for SparkLayer to mark B2B orders as paid, tag orders and customers, keep RRP metafields in sync and email your team. - [Reporting and filtering](https://docs.sparklayer.io/help/platforms/shopify/customisations/reporting-and-filtering.md) (Shopify only): Report on SparkLayer B2B sales in Shopify by filtering on the SparkLayer Wholesale sales channel, the b2b order tag and the sparkPaymentType order attribute. - [Wix](https://docs.sparklayer.io/help/platforms/wix.md) (Wix only): Add B2B and wholesale ordering to your Wix store with the SparkLayer app: what works on Wix, how setup works, its limitations and the demo store. - [Install SparkLayer on Wix](https://docs.sparklayer.io/help/platforms/wix/install.md) (Wix only): Install SparkLayer on Wix: allow site members and add SKUs, install the app, label B2B contacts, style the widgets, then set up prices and test an order. - [Wix FAQs](https://docs.sparklayer.io/help/platforms/wix/faqs.md) (Wix only): Answers to common questions about SparkLayer on Wix: plans and billing, setup, themes, currencies, B2B-only products, stock and managing B2B orders. - [Limitations](https://docs.sparklayer.io/help/platforms/wix/limitations.md) (Wix only): What works differently on Wix: no product card pricing or metafields, one-time address sync, single-currency orders, Wix discounts, fees and tax exemptions. - [Error codes](https://docs.sparklayer.io/help/platforms/wix/error-codes.md) (Wix only): Fix the SparkLayer error wix-checkout-out-of-stock on Wix, which appears when a product doesn't sync from Wix, for example because two products share a SKU. - [Metafields](https://docs.sparklayer.io/help/platforms/wix/metafields.md) (Wix only): Wix doesn't support SparkLayer metafields, so settings that rely on them, such as pack sizes and RRP pricing, aren't available on Wix stores. - [Cancel or uninstall SparkLayer](https://docs.sparklayer.io/help/platforms/wix/uninstall.md) (Wix only): Cancel SparkLayer on Wix by deleting the app in Manage Apps, see what happens to billing and your data, and set SparkLayer up again on a new Wix store. - [BigCommerce](https://docs.sparklayer.io/help/platforms/bigcommerce.md) (BigCommerce only): Add B2B and wholesale ordering to BigCommerce with the SparkLayer app: what works on BigCommerce, how setup works, its limitations and the demo store. - [Install SparkLayer on BigCommerce](https://docs.sparklayer.io/help/platforms/bigcommerce/install.md) (BigCommerce only): Install SparkLayer on BigCommerce: check requirements, add the app, set up B2B customer groups, add the widgets to your Stencil theme, then test an order. - [FAQs](https://docs.sparklayer.io/help/platforms/bigcommerce/faqs.md) (BigCommerce only): Answers to common questions about SparkLayer on BigCommerce: plans and billing, development stores, themes, B2B-only products and managing B2B orders. - [Limitations](https://docs.sparklayer.io/help/platforms/bigcommerce/limitations.md) (BigCommerce only): What works differently on BigCommerce: unique SKUs, variant-level stock, no pre-orders, modifier options, multi-storefront, promotions, tax and shipping. - [Metafields and data mapping](https://docs.sparklayer.io/help/platforms/bigcommerce/metafields.md) (BigCommerce only): Use BigCommerce metafields and customer attributes with SparkLayer for pack sizes, RRP and credit limits, import past orders and set custom order numbers. - [Cancel, uninstall or transfer SparkLayer](https://docs.sparklayer.io/help/platforms/bigcommerce/uninstall.md) (BigCommerce only): Cancel SparkLayer on BigCommerce by uninstalling the app, see what happens to billing and your data, take a break or move SparkLayer to another store. - [WooCommerce](https://docs.sparklayer.io/help/platforms/woocommerce.md) (WooCommerce only): Add B2B and wholesale ordering to WooCommerce with the SparkLayer plugin: what works on WooCommerce, how setup works, its limitations and the demo store. - [Install SparkLayer on WooCommerce](https://docs.sparklayer.io/help/platforms/woocommerce/install.md) (WooCommerce only): Install the SparkLayer plugin on WooCommerce: connect your store with REST API keys, assign B2B roles, add the widgets, then set up prices and test an order. - [FAQs](https://docs.sparklayer.io/help/platforms/woocommerce/faqs.md) (WooCommerce only): Answers to common questions about SparkLayer on WooCommerce: plans and billing, the plugin, themes, B2B-only products, stock, site speed and B2B orders. - [Limitations](https://docs.sparklayer.io/help/platforms/woocommerce/limitations.md) (WooCommerce only): What works differently on WooCommerce: unique SKUs, price lists managed only in SparkLayer, company user invites, HTTPS and the permalink setting. - [Metafields and data mapping](https://docs.sparklayer.io/help/platforms/woocommerce/metafields.md) (WooCommerce only): Turn on SparkLayer product, customer and order metafields for WooCommerce in Integrations > Platform, to add pack sizes, RRP prices and credit limits. - [Cancel, uninstall or transfer SparkLayer](https://docs.sparklayer.io/help/platforms/woocommerce/uninstall.md) (WooCommerce only): Cancel SparkLayer on WooCommerce by deactivating the SparkLayer B2B plugin, see what happens to billing and your data, or move SparkLayer to another store. - [Magento](https://docs.sparklayer.io/help/platforms/magento.md) (Magento only): Add B2B and wholesale ordering to Magento or Adobe Commerce with SparkLayer: what works on Magento, how setup works, its limitations and the demo store. - [Install SparkLayer on Magento](https://docs.sparklayer.io/help/platforms/magento/install.md) (Magento only): Install SparkLayer on Magento or Adobe Commerce 2.4.2+: add the module, connect the integration, assign B2B groups, add the widgets, then test an order. - [FAQs](https://docs.sparklayer.io/help/platforms/magento/faqs.md) (Magento only): Answers to common questions about SparkLayer on Magento: the Enterprise plan, getting the module, theme impact, B2B-only products, stock and B2B orders. - [Limitations](https://docs.sparklayer.io/help/platforms/magento/limitations.md) (Magento only): What works differently on Magento: unique product SKUs, price lists managed only in SparkLayer, company user invites and the required MSI module. - [Metafields and data mapping](https://docs.sparklayer.io/help/platforms/magento/metafields.md) (Magento only): Turn on SparkLayer product, customer and order attributes for Magento in Integrations > Platform, to set pack sizes, RRP prices and credit limits. - [Cancel or uninstall SparkLayer](https://docs.sparklayer.io/help/platforms/magento/uninstall.md) (Magento only): Cancel SparkLayer on Magento by deleting the SparkLayer B2B integration, see what happens to billing and your data, and remove the frontend widgets. - [Compare platforms](https://docs.sparklayer.io/help/platforms/compare.md): Check which SparkLayer features and integrations work on Shopify, BigCommerce, Wix, WooCommerce and Magento, and the plans and platform versions each supports. - [Integrations](https://docs.sparklayer.io/help/integrations.md): See which ERP, inventory, accounting and shipping apps work with SparkLayer, what data each one syncs and how often, and how to connect it in the Dashboard. - [Managing integrations](https://docs.sparklayer.io/help/integrations/managing-integrations.md): Connect your eCommerce platform, set Shopify order actions and metafields, and connect or disconnect partner apps on the Platform and Partners screens. - [Product and customer sync](https://docs.sparklayer.io/help/integrations/data-sync.md): Check your products are syncing to SparkLayer in Product sync, look up a product's data, and find and fix customer sync errors on the Customers screen. - [ERPs and operations](https://docs.sparklayer.io/help/integrations/erps.md): Connect SparkLayer to Brightpearl, Cin7 Core, Linnworks, Unleashed or Katana so B2B customers and prices sync from your ERP, or use Patchworks or Zynk. - [Brightpearl](https://docs.sparklayer.io/help/integrations/erps/brightpearl.md) (Shopify only): Connect Brightpearl to SparkLayer on Shopify to sync B2B customers and price lists from Brightpearl, and map Brightpearl contact tags to customer groups. - [Cin7 Core](https://docs.sparklayer.io/help/integrations/erps/cin7-core.md) (Shopify only): Connect Cin7 Core to SparkLayer on Shopify to sync B2B customers, contacts and sell price tiers, set sync tags and tax-exempt codes, and fix sync issues. - [Katana](https://docs.sparklayer.io/help/integrations/erps/katana.md) (Shopify only): Connect Katana to SparkLayer on Shopify to sync B2B customers and price lists, map customer categories to customer groups, and fix common sync issues. - [Linnworks](https://docs.sparklayer.io/help/integrations/erps/linnworks.md): Connect Linnworks to SparkLayer to sync B2B prices, price breaks and units of measure from extended properties, and route wholesale orders into Linnworks. - [Unleashed](https://docs.sparklayer.io/help/integrations/erps/unleashed.md) (Shopify only): Connect Unleashed to SparkLayer on Shopify to sync customers by customer type, with sell price tiers, customer pricing and discounts, and fix sync issues. - [Accountancy](https://docs.sparklayer.io/help/integrations/accountancy.md) (Shopify only): Connect SparkLayer to Xero or QuickBooks Online so B2B orders become invoices automatically and customers can download them from their account. - [QuickBooks Online](https://docs.sparklayer.io/help/integrations/accountancy/quickbooks.md) (Shopify only): Connect QuickBooks Online to SparkLayer on Shopify to create invoices, sales receipts and customers from B2B orders, and set tax codes and income accounts. - [Xero](https://docs.sparklayer.io/help/integrations/accountancy/xero.md) (Shopify only): Connect Xero to SparkLayer on Shopify to turn B2B orders into invoices and contacts, set account codes and tracking categories, and track invoice payments. - [Shipping and invoicing apps](https://docs.sparklayer.io/help/integrations/customer-experience.md): Add Sufio invoices or Intuitive Shipping rates to your SparkLayer B2B store, with what each app needs, which platforms it works on and how to set it up. - [Intuitive Shipping](https://docs.sparklayer.io/help/integrations/customer-experience/intuitive-shipping.md) (Shopify, BigCommerce): Show your Intuitive Shipping rates to B2B customers in the SparkLayer checkout on Shopify or BigCommerce, with setup steps, testing and known limitations. - [Sufio invoicing](https://docs.sparklayer.io/help/integrations/customer-experience/sufio.md) (Shopify only): Connect Sufio to SparkLayer on Shopify so B2B customers can view and download their Sufio invoices from My Account, with setup, testing and limitations. - [Plans and features](https://docs.sparklayer.io/help/plans-and-features.md): Compare SparkLayer's Basic, Starter, Growth, Pro and Enterprise plans: order allowances, sales agents, add-ons and which B2B features each plan includes. - [Contact support](https://docs.sparklayer.io/help/support.md): Contact SparkLayer support by email or Dashboard chat, see how fast we reply, get free widget installation or an onboarding session, and check what we cover. - [Troubleshooting](https://docs.sparklayer.io/help/troubleshooting.md): Fix common SparkLayer problems by symptom: missing B2B prices, widgets not loading, price list and sync errors, checkout errors, wrong tax and missing orders. - [General FAQs](https://docs.sparklayer.io/help/faqs.md): Answers to common SparkLayer questions: plans and trials, setup, the storefront, B2B customers and prices, payments, shipping, tax, integrations and support. - [Glossary](https://docs.sparklayer.io/help/glossary.md): Plain-English definitions of the SparkLayer terms used in these docs, from customer groups and price lists to sales agents, quotes and net terms. - [Policies](https://docs.sparklayer.io/help/policies.md): Find SparkLayer's privacy, security, business continuity, incident management, terms of service and refund policies, most of them in the Trust Center. - [Refund policy](https://docs.sparklayer.io/help/policies/refund-policy.md): SparkLayer's refund policy: when monthly and annual plans can be refunded, trial overruns, what isn't refundable, how to ask for a refund and Shopify billing. ## Developers APIs, JavaScript SDK, templates and integration guides. - [Developer documentation](https://docs.sparklayer.io/developers.md): Build on SparkLayer with the REST APIs, JavaScript SDK, storefront templates and Ignite, and make your first authenticated API call in a few minutes. - [How SparkLayer connects](https://docs.sparklayer.io/developers/architecture.md): How SparkLayer sits alongside your eCommerce platform and backend systems: B2B data syncs through the SparkLayer API while the Frontend adds wholesale features. - [Building integrations](https://docs.sparklayer.io/developers/building-integrations.md): Choose how to connect your ERP or CRM to SparkLayer: build a direct integration with the SparkLayer API or use a middleware partner such as an iPaaS. - [Quickstart](https://docs.sparklayer.io/developers/quickstart.md): Make your first SparkLayer API call in about five minutes: create an API key in the Dashboard, request an access token and list your price lists. - [Build with AI](https://docs.sparklayer.io/developers/build-with-ai.md): Build SparkLayer integrations with Claude, ChatGPT, Cursor or Claude Code: prompts for common jobs, Markdown docs, OpenAPI specs and the docs MCP server. - [Authentication](https://docs.sparklayer.io/developers/authentication.md): Authenticate with the SparkLayer APIs using OAuth 2.0 client credentials: request a Bearer token from /api/auth/token and send it with your Site-Id header. - [Errors](https://docs.sparklayer.io/developers/errors.md): HTTP status codes the SparkLayer APIs return, the JSON error body and its fields, validation error details, and which errors you can safely retry. - [Pagination](https://docs.sparklayer.io/developers/pagination.md): Page through large result sets in the SparkLayer APIs: page-based pagination for price lists, offset paging for purchases, and which lists return everything. - [SparkLayer API](https://docs.sparklayer.io/developers/api.md): Overview of the SparkLayer REST APIs: what each API covers, base URLs for live and test, authentication, request format and which plans include access. - [Core API](https://docs.sparklayer.io/developers/api/core.md): Manage customer groups, discounts, shipping methods and settings with the Core API, delete customers and look up customer-specific pricing. - [Ordering API](https://docs.sparklayer.io/developers/api/ordering.md): Create, update, calculate and complete carts with the Ordering API to place orders for customers, check their pricing first and handle validation errors. - [Pricing API](https://docs.sparklayer.io/developers/api/pricing.md): The Pricing API syncs price lists and SKU pricing from your ERP or PIM into SparkLayer, including customer-specific pricing. - [Purchasing API](https://docs.sparklayer.io/developers/api/purchasing.md): Store orders, quotes and carts shown in My Account with the Purchasing API, using purchase identifiers, packages and purchase transactions. - [Stock API](https://docs.sparklayer.io/developers/api/stock.md): The Stock API reads, batch updates and deletes stock levels by SKU and manages stock locations for your SparkLayer site. - [Files API](https://docs.sparklayer.io/developers/api/files.md): Upload, update and download files with the SparkLayer Files API using expiring URLs, and retrieve order file attachments from their GIDs. - [Sync Logging API](https://docs.sparklayer.io/developers/api/sync-log.md): The Sync Logging API records full and partial data syncs, sync errors and status between your systems and SparkLayer. - [Frontend integration guide](https://docs.sparklayer.io/developers/frontend.md): Install the SparkLayer Frontend: add the Core Script or Shopify app embed, add product page widgets, hide retail elements with data-spark and style with CSS. - [Technical information](https://docs.sparklayer.io/developers/frontend/technical-information.md): How the SparkLayer Frontend loads asynchronously, supported browsers and devices, and how to track B2B events in GA4 or Google Tag Manager via sparkOptions. - [JavaScript SDK](https://docs.sparklayer.io/developers/javascript-sdk.md): What the SparkLayer JavaScript SDK is, what you can build with it, how it loads with the Core Script, and a first example that fetches a customer's price. - [Set up the SDK](https://docs.sparklayer.io/developers/javascript-sdk/setup.md): Load the SparkLayer Core Script, add your own sparkOptions and hooks without overwriting others, and wait for SparkLayer to be ready before calling it. - [Products and pricing](https://docs.sparklayer.io/developers/javascript-sdk/products-and-pricing.md): Show each B2B customer's own price, RRP and price breaks in your theme, price a quantity as it changes, and swap the product image when a variant is selected. - [Cart](https://docs.sparklayer.io/developers/javascript-sdk/cart.md): Add, update and remove cart items with updateCart, set PO numbers and cart fields, attach custom attributes and files, and open the cart drawer from code. - [Checkout](https://docs.sparklayer.io/developers/javascript-sdk/checkout.md): Block SparkLayer checkout until your own rules are met with the onCheckoutValidation hook, from a simple product quota check to rules chained together. - [Customers and accounts](https://docs.sparklayer.io/developers/javascript-sdk/customers-and-accounts.md): Check whether a B2B customer is logged in, switch customers as a sales agent, change company section, refresh customer data and run GraphQL queries. - [Events and analytics](https://docs.sparklayer.io/developers/javascript-sdk/events-and-analytics.md): Run your own code from SparkLayer's hooks and DOM events, send B2B events to Google Analytics or Tag Manager, and push cart changes to any analytics tool. - [Headless and React](https://docs.sparklayer.io/developers/javascript-sdk/headless.md): Run SparkLayer on a headless storefront: load the Core Script, start it with initSpark, authenticate the customer, and use it from Next.js and React. - [SDK reference](https://docs.sparklayer.io/developers/javascript-sdk/reference.md): Look up every sparkOptions setting, hook, window.spark method, DOM event and web component in the SparkLayer JavaScript SDK, and download its types. - [Options](https://docs.sparklayer.io/developers/javascript-sdk/reference/options.md): Every window.sparkOptions setting for the SparkLayer Core Script: site and platform, redirects, button selectors, display, translations, checkout and auth. - [Hooks](https://docs.sparklayer.io/developers/javascript-sdk/reference/hooks.md): The SparkLayer SDK hooks, from onReady and onCartUpdate to preCartUpdateListener and onCheckoutValidation: when each runs, what it receives and returns. - [Methods](https://docs.sparklayer.io/developers/javascript-sdk/reference/methods.md): Every window.spark method in the SparkLayer SDK, such as getCart, updateCart, getPricingForVariant and fetch, with parameters, return values and examples. - [Types](https://docs.sparklayer.io/developers/javascript-sdk/reference/types.md): Every TypeScript type in the SparkLayer JavaScript SDK, from Cart, Product and UpdateCart to SparkLayerOptions and Spark, and where each one is used. - [Events and components](https://docs.sparklayer.io/developers/javascript-sdk/reference/events-and-components.md): SparkLayer's web components, such as spark-pdp and spark-product-card, and the DOM events they dispatch, with each event.detail and an example of each. - [Templates](https://docs.sparklayer.io/developers/templates.md): Build custom SparkLayer invoice, quote and email templates in Liquid, using the currency, translate, ldate and country filters, sections and language files. - [Template objects](https://docs.sparklayer.io/developers/templates/template-objects.md): Properties of the objects available in SparkLayer Liquid templates, including Merchant, Purchase, LineItem, Customer, Address, Money and invoice content zones. - [Data and limits](https://docs.sparklayer.io/developers/data.md): Reference for how SparkLayer stores extra product, customer and order data in metafields, and the recommended and hard limits on the data you send. - [Metafields](https://docs.sparklayer.io/developers/data/metafields.md): Every SparkLayer product, customer and order metafield key and type, such as pack_size, rrp, price_lists and payment_on_account, and how to auto-configure them. - [Data limitations](https://docs.sparklayer.io/developers/data/data-limitations.md): Recommended and hard limits for SparkLayer data, including products, customers, customer groups, price lists, cart line items, addresses and discounts. ## Developers: API endpoints - [Get an access token](https://docs.sparklayer.io/developers/api/core/get-an-access-token.md): `POST /api/auth/token` — Exchanges an API key's Client ID and Client Secret for an access token (the OAuth 2.0 client credentials grant). - [Delete a customer](https://docs.sparklayer.io/developers/api/core/delete-a-customer.md): `DELETE /api/v1/customers/{lookupBy}/{id}` — Permanently deletes a customer and returns `204`. - [Get customer-specific pricing](https://docs.sparklayer.io/developers/api/core/get-customer-specific-pricing.md): `POST /api/v1/fetch-customer-pricing` — Returns the net unit price, line total and quantity price breaks a customer would get for each SKU, based on their price lists and any customer discount percentage. - [List customer groups](https://docs.sparklayer.io/developers/api/core/list-customer-groups.md): `GET /api/v1/customer-groups` — Returns every customer group with its `slug`, `name` and `parent_slug` as a single array. - [Create a customer group](https://docs.sparklayer.io/developers/api/core/new-customer-group.md): `POST /api/v1/customer-groups` — Creates a customer group and returns the full, updated list of groups. - [Delete a customer group](https://docs.sparklayer.io/developers/api/core/delete-customer-group.md): `DELETE /api/v1/customer-groups/{slug}` — Deletes a customer group, along with any settings specific to it, and returns `204`. - [Update a customer group](https://docs.sparklayer.io/developers/api/core/update-customer-group.md): `PATCH /api/v1/customer-groups/{slug}` — Sets the group's `name` and `parent_slug` and returns the full, updated list of groups. - [List discounts](https://docs.sparklayer.io/developers/api/core/list-of-discounts.md): `GET /api/v1/discounts` — Returns every discount that hasn't been deleted, both active and inactive, as a single array ordered by calculation group and then priority (highest first). - [Create a discount](https://docs.sparklayer.io/developers/api/core/create-a-discount.md): `POST /api/v1/discounts` — Creates a discount and returns it with its generated UUID. - [Update discount priorities](https://docs.sparklayer.io/developers/api/core/update-discount-priorities.md): `PATCH /api/v1/set-discount-priorities` — Sets the `priority` of several discounts in a single transaction and returns the full list of discounts. - [Get a discount](https://docs.sparklayer.io/developers/api/core/get-a-discount.md): `GET /api/v1/discounts/{id}` — Returns a single discount by its UUID. - [Delete a discount](https://docs.sparklayer.io/developers/api/core/delete-a-discount.md): `DELETE /api/v1/discounts/{id}` — Deletes a discount so it no longer applies to carts or appears in the API, and returns `204`. - [Update a discount](https://docs.sparklayer.io/developers/api/core/update-a-discount.md): `PATCH /api/v1/discounts/{id}` — Replaces the discount with the object you send, so include every required field, not just the ones you're changing. - [List shipping methods](https://docs.sparklayer.io/developers/api/core/list-of-shipping-methods.md): `GET /api/v1/shipping-methods` — Returns every shipping method configured for the store, including its bands, as a single array. - [Create a shipping method](https://docs.sparklayer.io/developers/api/core/create-a-shipping-method.md): `POST /api/v1/shipping-methods` — Creates a shipping method, including its bands, and returns it with its `sm_`-prefixed ID. - [Get a shipping method](https://docs.sparklayer.io/developers/api/core/get-a-shipping-method.md): `GET /api/v1/shipping-methods/{id}` — Returns a single shipping method by its `sm_`-prefixed ID. - [Delete a shipping method](https://docs.sparklayer.io/developers/api/core/delete-a-shipping-method.md): `DELETE /api/v1/shipping-methods/{id}` — Permanently deletes a shipping method along with its bands, costs and platform mappings, and returns `204`. - [Update a shipping method](https://docs.sparklayer.io/developers/api/core/update-a-shipping-method.md): `PATCH /api/v1/shipping-methods/{id}` — Updates a shipping method and returns it. - [List global settings](https://docs.sparklayer.io/developers/api/core/list-global-settings.md): `GET /api/v1/settings` — Lists Global settings (minus settings which include authentication details) - [Update global settings](https://docs.sparklayer.io/developers/api/core/update-global-setting.md): `PATCH /api/v1/settings` — Updates one or more store-wide settings, sent as an array of `key`/`value` pairs, and returns `204`. - [List customer group settings](https://docs.sparklayer.io/developers/api/core/list-customer-group-settings.md): `GET /api/v1/settings/{slug}` — Lists Customer Group settings by Customer Group - [Update customer group settings](https://docs.sparklayer.io/developers/api/core/update-customer-group-setting.md): `PATCH /api/v1/settings/{slug}` — Updates one or more settings for the customer group identified by `slug`, sent as an array of `key`/`value` pairs, and returns `204`. - [Create a cart](https://docs.sparklayer.io/developers/api/ordering/create-cart.md): `POST /api/v1/carts` — Creates an empty cart for a customer and returns its `cart_id` with a `201`. - [Get a cart](https://docs.sparklayer.io/developers/api/ordering/get-cart.md): `GET /api/v1/carts/{id}` — Returns the cart's line items, addresses, totals and any `validation_errors` (such as minimum order or stock rules) that you need to resolve or ignore before completing it. - [Delete a cart](https://docs.sparklayer.io/developers/api/ordering/delete-cart.md): `DELETE /api/v1/carts/{id}` — Deletes a cart and returns `204`. - [Update a cart](https://docs.sparklayer.io/developers/api/ordering/update-cart.md): `PATCH /api/v1/carts/{id}` — Updates the cart and returns it along with a result for each line item. - [Complete a cart](https://docs.sparklayer.io/developers/api/ordering/complete-cart.md): `POST /api/v1/carts/{id}/complete` — Places the order: checks the shipping rate and payment method, creates a purchase, deletes the cart and returns the new `purchase_id` with a `201`. - [Calculate a cart](https://docs.sparklayer.io/developers/api/ordering/calculate-cart.md): `POST /api/v1/carts/{id}/calculate` — Calculates the cart's totals, tax, available shipping methods and allowed payment methods, optionally for the shipping rate given in `shipping_rate_handle`. - [List price lists](https://docs.sparklayer.io/developers/api/pricing/get-price-lists.md): `GET /api/v1/price-lists` — Returns every price list for the site as a single, unpaginated array (up to 25,000 price lists from all sources, ordered by name). - [Create a price list](https://docs.sparklayer.io/developers/api/pricing/create-a-price-list.md): `POST /api/v1/price-lists` — `slug`, `name` and `currency_code` are required, and `currency_code` must be a valid ISO 4217 code. - [Get a price list](https://docs.sparklayer.io/developers/api/pricing/get-price-list.md): `GET /api/v1/price-lists/{slug}` — Returns a single price list, including its rules. - [Delete a price list](https://docs.sparklayer.io/developers/api/pricing/delete-a-price-list.md): `DELETE /api/v1/price-lists/{slug}` — Deletes the price list together with its rules and all of its prices. - [Update a price list](https://docs.sparklayer.io/developers/api/pricing/update-a-price-list.md): `PATCH /api/v1/price-lists/{slug}` — Updates only the fields you send (`name`, `currency_code`, `rules` and `tax_inclusive_display`); the slug and source cannot be changed. - [List price lists (v2)](https://docs.sparklayer.io/developers/api/pricing/get-price-lists-v2.md): `GET /api/v2/price-lists` — Returns price lists one page at a time. - [List prices in a price list](https://docs.sparklayer.io/developers/api/pricing/get-pricing-by-price-list.md): `GET /api/v1/price-lists/{slug}/pricing` — Returns every price stored on the price list, one entry per SKU and quantity break, ordered by SKU. - [Update prices in a price list](https://docs.sparklayer.io/developers/api/pricing/update-pricing-by-price-list.md): `PATCH /api/v1/price-lists/{slug}/pricing` — Accepts a JSON array or a CSV file (`Content-Type: text/csv`). - [Get prices for a SKU](https://docs.sparklayer.io/developers/api/pricing/get-pricing-by-sku.md): `GET /api/v1/pricing/{sku}` — Returns the prices stored for the SKU on every price list, grouped by price list. - [Update prices for a SKU](https://docs.sparklayer.io/developers/api/pricing/update-pricing-by-sku.md): `PATCH /api/v1/pricing/{sku}` — This patch endpoint will remove all pricing for the __price list slugs__ provided and apply provided pricing against the provided price lists. - [Update prices across price lists](https://docs.sparklayer.io/developers/api/pricing/update-pricing-for-multiple-price-lists.md): `PATCH /api/v1/batch-update-pricing` — Accepts a JSON array or a CSV file (`Content-Type: text/csv`); each entry names a SKU, a `price_list_slug` and the prices for that combination. - [Calculate prices for SKUs](https://docs.sparklayer.io/developers/api/pricing/calculate-pricing.md): `POST /api/v1/calculate-pricing` — Works out the price of each SKU in `skus` from the price lists in `price_list_slugs`, checked in the order given. - [List price lists with manual price counts](https://docs.sparklayer.io/developers/api/pricing/get-price-lists-with-manual-price-counts.md): `GET /api/v2/price-lists-num-manual-prices` — Works like `GET /api/v2/price-lists`, with the same pagination, ordering and `source` filter, but each price list also includes `num_manual_prices`: the number of SKUs with prices… - [Get a purchase](https://docs.sparklayer.io/developers/api/purchasing/get-purchase.md): `GET /api/v1/purchases/{lookupBy}/{identifier}` — Returns a purchase: a cart, quote, purchase awaiting approval or confirmation, or placed order. - [Create or update a purchase](https://docs.sparklayer.io/developers/api/purchasing/create-update-purchase.md): `PUT /api/v1/purchases/{lookupBy}/{identifier}` — Creates the purchase if none matches `lookupBy` and `identifier`, otherwise replaces it, and returns the stored purchase. - [Delete a purchase](https://docs.sparklayer.io/developers/api/purchasing/delete-purchase.md): `DELETE /api/v1/purchases/{lookupBy}/{identifier}` — Deletes the purchase that matches `lookupBy` and `identifier`, and returns `204`. - [List purchases](https://docs.sparklayer.io/developers/api/purchasing/get-purchases.md): `GET /api/v1/purchases` — Lists purchases, filtered by customer, company, status, type, quote status, search term and date ranges. - [List purchase history](https://docs.sparklayer.io/developers/api/purchasing/get-purchase-history.md): `GET /api/v1/purchases/{lookupBy}/{identifier}/history` — Returns the history of the purchase that matches `lookupBy` and `identifier`: its message, note, email and update events. - [Create a purchase history entry](https://docs.sparklayer.io/developers/api/purchasing/create-a-purchase-history-entry.md): `POST /api/v1/purchases/{lookupBy}/{identifier}/history` — Adds an event to the history of the purchase that matches `lookupBy` and `identifier`. - [List purchase transactions](https://docs.sparklayer.io/developers/api/purchasing/get-purchase-transactions.md): `GET /api/v1/purchases/{lookupBy}/{identifier}/transactions` — Returns the transactions, such as payments and refunds, recorded against the purchase that matches `lookupBy` and `identifier`, including those stored for information only. - [Create or update a purchase transaction](https://docs.sparklayer.io/developers/api/purchasing/create-or-update-a-purchase-transaction.md): `PUT /api/v1/purchases/{lookupBy}/{identifier}/transactions` — Records a transaction, such as a payment or refund, against the purchase that matches `lookupBy` and `identifier`. - [Get the store currency](https://docs.sparklayer.io/developers/api/purchasing/get-store-currency.md): `GET /api/v1/store-currency` — Returns the store's base currency as an ISO 4217 `currency_code`, such as `GBP`. - [Update the store currency](https://docs.sparklayer.io/developers/api/purchasing/update-store-currency.md): `PUT /api/v1/store-currency` — Sets the store's base currency to the ISO 4217 `currency_code` you send, such as `GBP`, and returns it. - [Get a customer's SKU order stats](https://docs.sparklayer.io/developers/api/purchasing/get-order-stats-for-a-customer.md): `GET /api/v1/purchases/stats/order/sku` — Returns how many units of each SKU a customer ordered between `start_date` and `end_date`, grouped by `week`, `month` or `quarter`. - [Get stock levels for multiple SKUs](https://docs.sparklayer.io/developers/api/stock/get-stock-levels.md): `POST /api/v1/batch-fetch-stock` — Returns stock levels for the SKUs in `skus`, grouped by SKU. - [Update stock levels for multiple SKUs](https://docs.sparklayer.io/developers/api/stock/update-stock-levels.md): `POST /api/v1/batch-update-stock` — Creates or updates the stock level for each SKU and stock location pair in the array. - [Delete stock levels for multiple SKUs](https://docs.sparklayer.io/developers/api/stock/delete-stock-levels.md): `POST /api/v1/batch-delete-stock` — Deletes the stock levels at every stock location for the SKUs in `skus`. - [List stock locations](https://docs.sparklayer.io/developers/api/stock/list-stock-locations.md): `GET /api/v1/stock-locations` — Returns all stock locations for the site. - [Create a stock location](https://docs.sparklayer.io/developers/api/stock/create-a-stock-location.md): `POST /api/v1/stock-locations` — `name` and `external_id` are required, and `external_id` must be unique for the site: a duplicate returns `409`. - [Get a stock location](https://docs.sparklayer.io/developers/api/stock/get-a-stock-location.md): `GET /api/v1/stock-locations/{StockLocationID}` — Looks up a stock location by its SparkLayer ID or its `external_id`. - [Delete a stock location](https://docs.sparklayer.io/developers/api/stock/delete-a-stock-location.md): `DELETE /api/v1/stock-locations/{StockLocationID}` — Deletes the stock location, identified by its SparkLayer ID or `external_id`, together with all stock levels held at it. - [Update a stock location](https://docs.sparklayer.io/developers/api/stock/update-a-stock-location.md): `PATCH /api/v1/stock-locations/{StockLocationID}` — Replaces the location's `name` and `external_id`, which are both required. - [Get multiple files](https://docs.sparklayer.io/developers/api/files/get-bulk-files.md): `GET /api/v1/files` — Returns the files whose IDs you pass in `ids`; repeat the parameter for each ID (`?ids=…&ids=…`). - [Create a file](https://docs.sparklayer.io/developers/api/files/create-a-new-file.md): `POST /api/v1/files` — Registers a file and returns a signed upload URL. - [Delete all files](https://docs.sparklayer.io/developers/api/files/delete-all-files.md): `DELETE /api/v1/files` — Permanently deletes every file for the site in the current environment (live or test), including the stored contents. - [Search files by metadata](https://docs.sparklayer.io/developers/api/files/query-files-by-metadata.md): `POST /api/v1/search-files` — Returns every file whose `metadata` contains the JSON object you send (PostgreSQL JSON containment). - [Get a file](https://docs.sparklayer.io/developers/api/files/get-a-file.md): `GET /api/v1/files/{id}` — Returns the file. - [Delete a file](https://docs.sparklayer.io/developers/api/files/delete-a-file.md): `DELETE /api/v1/files/{id}` — Deletes the file and its stored contents. - [Update a file](https://docs.sparklayer.io/developers/api/files/update-a-file.md): `PATCH /api/v1/files/{id}` — Returns a new signed upload URL for an existing file so you can replace its contents: upload with an HTTP `PUT` to `url`, sending the `required_headers`, within 15 minutes. - [Delete multiple files](https://docs.sparklayer.io/developers/api/files/delete-multiple-files.md): `POST /api/v1/batch-delete-files` — Deletes the files whose IDs you send as a JSON array. - [Delete all sync logs](https://docs.sparklayer.io/developers/api/sync-log/delete-a-stores-sync-logs.md): `DELETE /api/v1/sync-log` — Deletes the sync status and logged errors for every integration and data type on the site, in the current environment (live or test). - [Get a sync status](https://docs.sparklayer.io/developers/api/sync-log/get-sync-logging-status.md): `GET /api/v1/sync-log/{integration}/{data_type}` — Returns the sync timestamps and the number of logged errors for the integration and data type. - [Record a full sync](https://docs.sparklayer.io/developers/api/sync-log/update-sync-logs-with-a-full-sync.md): `PUT /api/v1/sync-log/{integration}/{data_type}` — Sets `started_full_sync` and `last_full_sync` (a timestamp you omit is cleared) and replaces all previously logged errors for the integration and data type with the `errors` you s… - [Record a partial sync](https://docs.sparklayer.io/developers/api/sync-log/update-sync-logs-with-a-partial-sync.md): `PATCH /api/v1/sync-log/{integration}/{data_type}` — Updates `last_partial_sync`, removes logged errors whose `external_id` is listed in `successfully_synced`, and adds or updates the `errors` you send, matched by `external_id`. - [List sync errors](https://docs.sparklayer.io/developers/api/sync-log/get-sync-logging-status-errors.md): `GET /api/v1/sync-log/{integration}/{data_type}/errors` — Returns the sync status for the integration and data type together with its logged errors (at most 5,000). ## Ignite Build a SparkLayer integration for any commerce platform. - [SparkLayer Ignite](https://docs.sparklayer.io/ignite.md): SparkLayer Ignite connects any eCommerce platform or CMS to SparkLayer. - [Platform connection](https://docs.sparklayer.io/ignite/platform-connection.md): Handle new and removed Ignite platform connections, whether started from a platform app store or the SparkLayer Dashboard, including redirect_url and full sync. - [Ignite authentication](https://docs.sparklayer.io/ignite/authentication.md): How Ignite verifies platform customer sessions: SparkLayer passes a token such as a BigCommerce JWT to /authentication/verify and issues an access token. - [Ignite data sync](https://docs.sparklayer.io/ignite/data-sync.md): Sync products, pricing, customers, orders and store settings from your platform to SparkLayer with full syncs, webhook-driven updates and the sync-log API. - [Endpoints overview](https://docs.sparklayer.io/ignite/endpoints-overview.md): Every endpoint an Ignite integration implements, for platform connection, customers, addresses, checkout, data sync, metafields and authentication. - [Ignite endpoints](https://docs.sparklayer.io/ignite/api.md): Reference for the endpoints your Ignite service implements for SparkLayer to call: platform connection, customers, addresses, checkout, sync and authentication. ## Ignite: API endpoints - [Connect a platform](https://docs.sparklayer.io/ignite/api/new-platform-connection.md): `POST /v1/{siteEnv}/{siteId}` — The SparkLayer Ignite platform will call this endpoint when the merchant connects SparkLayer on the specific platform. - [Disconnect a platform](https://docs.sparklayer.io/ignite/api/remove-platform-connection.md): `DELETE /v1/{siteEnv}/{siteId}` — SparkLayer Ignite platform will call this endpoint when the merchant disconnects SparkLayer on the specific platform. - [Create or update a customer](https://docs.sparklayer.io/ignite/api/create-update-a-customer.md): `PUT /v1/{siteEnv}/{siteId}/customers` — Create or update a "customer" on the eCommerce platform. - [Create a sub-account](https://docs.sparklayer.io/ignite/api/create-a-new-customer-sub-account.md): `POST /v1/{siteEnv}/{siteId}/sub-accounts` — Create a new "customer" on the eCommerce platform and designates it as a sub-account with `parent_customer_id` as an attribute. - [Delete a sub-account](https://docs.sparklayer.io/ignite/api/remove-a-customer-sub-account.md): `DELETE /v1/{siteEnv}/{siteId}/sub-accounts/{customer_external_id}` — Remove a customer sub-account from the specific platform, ensuring the account can no longer interact with the parent account. - [Update a sub-account](https://docs.sparklayer.io/ignite/api/update-an-existing-customer-sub-account.md): `PATCH /v1/{siteEnv}/{siteId}/sub-accounts/{customer_external_id}` — Update the details of an existing customer sub-account. - [Create a customer address](https://docs.sparklayer.io/ignite/api/create-a-new-customer-address.md): `POST /v1/{siteEnv}/{siteId}/customers/{customer_external_id}/addresses` — Create a new "address" for a customer on the specific platform. - [Update a customer address](https://docs.sparklayer.io/ignite/api/update-a-customer-address.md): `PUT /v1/{siteEnv}/{siteId}/customers/{customer_external_id}/addresses/{customer_address_external_id}` — Update a customer address on the specific platform. - [Delete a customer address](https://docs.sparklayer.io/ignite/api/remove-a-customer-address.md): `DELETE /v1/{siteEnv}/{siteId}/customers/{customer_external_id}/addresses/{customer_address_external_id}` — Remove a customer address from the specific platform. - [Calculate tax and shipping](https://docs.sparklayer.io/ignite/api/calculate-tax-and-shipping.md): `POST /v1/{siteEnv}/{siteId}/checkout/calculate` — This endpoint is called at the final step of the checkout process in order to show tax and shipping methods available to the customer. - [Complete checkout](https://docs.sparklayer.io/ignite/api/complete-checkout.md): `POST /v1/{siteEnv}/{siteId}/checkout/complete` — This endpoint is called at the final step once the customer attempts to complete the order. - [List entities for a sync](https://docs.sparklayer.io/ignite/api/list-entities.md): `GET /v1/{siteEnv}/{siteId}/sync/{syncDataType}` — SparkLayer calls this endpoint during a full sync to page through every entity of the given type. - [Fetch an entity](https://docs.sparklayer.io/ignite/api/fetch-entity.md): `POST /v1/{siteEnv}/{siteId}/sync/{syncDataType}/{entityId}` — Fetch an entity from the platform. - [Trigger a data sync](https://docs.sparklayer.io/ignite/api/trigger-a-data-sync.md): `POST /v1/{siteEnv}/{siteId}/status/{syncDataType}` — Allow internal users (e.g. - [Get metafield configuration](https://docs.sparklayer.io/ignite/api/get-metafield-configuration.md): `GET /v1/{siteEnv}/{siteId}/metafield-configuration` — Returns a list of all SparkLayer metafield schema keys supported by the platform and the current configuration state for each key - [Enable a metafield](https://docs.sparklayer.io/ignite/api/enable-a-metafield.md): `POST /v1/{siteEnv}/{siteId}/metafield-configuration/enable` — Enables the specified key within the platform - [Verify storefront authentication](https://docs.sparklayer.io/ignite/api/verify-authentication.md): `POST /v1/{siteEnv}/{siteId}/authentication/verify` — Verifies authentication data, such as a JWT, provided by the platform on the front end. ## Optional Release notes: what changed and when. Skip them unless the question is about a change or a release. - [What's new](https://docs.sparklayer.io/help/whats-new.md): Monthly SparkLayer release notes listing new B2B features and improvements by version, such as dark mode, favourites and tax-inclusive price display. - [Release archive](https://docs.sparklayer.io/help/whats-new/archive.md): SparkLayer release notes from June 2022 to September 2025, including the Quoting Engine launch, the BigCommerce integration and barcode support.