Shopify FAQs
Applies toShopify
Setup and plans
Under Sales channels, click SparkLayer Wholesale. It opens on Home, and the menu items below it open each area, such as Setup, Pricing and Customers. See How it works. The same screens are in the SparkLayer Dashboard at app.sparklayer.io (opens in a new tab), which also has Forms and Data tables.
Work through the steps at
SparkLayer Wholesale,Setup (in your Shopify admin): a price list, a customer group, your first buyer and your theme. Most stores finish in under 15 minutes. See Install SparkLayer on Shopify.
Any plan. SparkLayer works on every Shopify plan, from Shopify Basic to Shopify Plus, with customer accounts turned on so your B2B customers can sign in. Your Shopify plan is separate from your SparkLayer plan: see the next question.
Any of them. The free Basic plan, only on Shopify, includes 3 price lists and 5 B2B orders a month, with no sales agents. The paid plans (Starter, Growth, Pro and Enterprise) add unlimited price lists, more orders, sales agents and more features, each with a 14-day free trial. You're billed through Shopify. See Plans and features.
On a development store, such as a test account, we can turn on a developer mode, so you can use SparkLayer before you choose a plan. Contact us to set it up.
Shopify's native B2B features, such as companies, catalogs and payment terms, are on every Shopify plan, but what they can do depends on your Shopify plan: check Shopify's B2B guide (opens in a new tab). For a few wholesale accounts on simple terms, that may be enough. SparkLayer adds, on any Shopify plan:
- Pricing: price lists assigned to customer groups (3 on Basic, unlimited on paid plans), prices for one customer and quantity pricing.
- Sales team ordering: sales agents order on your store at each customer's prices, from the Starter plan.
- B2B ordering: CSV upload to the cart, shopping lists and quick reordering on every plan, plus AI file upload, discounts, SparkLayer Invoices and quotes on higher plans. See Plans and features.
- Your own theme: B2B ordering on your existing Shopify theme.
SparkLayer works alongside Shopify Companies, but SparkLayer and Shopify's native B2B checkout can't run side by side for the same customer: the ordering experience is one or the other. Using Shopify Companies may mean extra transaction costs from Shopify, so check with Shopify Support.
For a full comparison, read SparkLayer vs Shopify B2B: what you need to know (opens in a new tab).
Yes. Install SparkLayer on your existing retail store and run both from one store, a hybrid setup. Signed-in B2B customers see SparkLayer's frontend interfaces with their prices and B2B ordering; retail customers see your store as it is. To see it working, try our demo.
Retail and B2B then share one stock pool, apps and reporting, so sometimes a separate B2B store works better: see One store or a separate B2B store.
Both. Shopify has two versions of customer accounts:
- Legacy (formerly "classic"): customers sign in with an email and password. Most Shopify stores use this. It works with third-party apps, and you can customise how it looks.
- Customer accounts (new): customers sign in without a password, using a one-time code, and the account area is Shopify's own, much like the checkout.
New customer accounts need a small extra step: turning on the B2B Account Redirect. See Choose your customer accounts version.
Yes, and they're optional. SparkLayer links its draft orders to the buyer's Shopify company, contact and location, so orders show under the company in your Shopify admin, and customers at a company location can use its vaulted cards. Prices, payment methods and order rules still come from SparkLayer, not from Shopify catalogs or payment terms. See Shopify Companies.
- To stop paying but keep your setup, move to the free Basic plan at
SparkLayer Wholesale,Plan (in your Shopify admin), without uninstalling. - To cancel, uninstall SparkLayer Wholesale at Settings,Apps and sales channels (opens in your Shopify admin in a new tab). Billing stops straight away.
Treat uninstalling as deleting your SparkLayer data. Export what you need first, such as your price lists, and contact us before you uninstall if you might reinstall or move to another store. Billing and refunds go through Shopify. See Billing, trials and cancelling and Cancel, uninstall or transfer SparkLayer.
It tells SparkLayer when a customer has paid by card through the Shopify checkout. SparkLayer needs to know the order is complete, so it can clear their cart and let them place more orders. The B2B Ordering pixel is added automatically when you install SparkLayer, so you don't usually need to do anything.
To check it's there:
- In your Shopify admin, go to Settings,Customer events (opens in your Shopify admin in a new tab).
- On the App pixels tab, look for B2B Ordering. Its status should be Connected.
If it's missing, reconnect your store: go to
SparkLayer Wholesale,Integrations,Platform (in your Shopify admin) and save the page. This turns the pixel on.
Yes, once the B2B Ordering pixel is connected. Older installs added SparkLayer code (a thank-you page script or order status script) through Additional Scripts in Shopify's checkout settings. The pixel in Shopify's customer events now does that job, so the old scripts aren't needed.
- Check the B2B Ordering pixel shows Connected in Settings,Customer events (opens in your Shopify admin in a new tab), as described in the question above.
- Go to Settings,Checkout (opens in your Shopify admin in a new tab) and find Additional Scripts.
- Delete any old SparkLayer checkout or thank-you page scripts, then save.
Theme and storefront
Yes, free of charge, on every plan. Click Something not right? Install SparkLayer for me on
SparkLayer Wholesale,Setup,Theme setup (in your Shopify admin), or Request installation at
SparkLayer Wholesale,Storefront,Widgets (in your Shopify admin). We'll be in touch, usually within a working day. On a paid plan, we'll also offer an onboarding session to walk you through how everything works. Theme customisation, such as restyling the widgets or page builder pages, isn't included. See Ask our team to install it.
It works with every Shopify theme, including Online Store 2.0 and heavily customised themes. On supported themes, such as Dawn and Horizon, it adds the product page and product card interfaces automatically. You can also start with our B2B Dawn theme.
Two set-ups need checking:
- Page builder apps, such as PageFly or Shogun. Their pages use their own layout, so they may not include SparkLayer's widgets, and B2B customers can see retail prices and Add to cart buttons there.
- A theme copied from another store. It can carry that store's SparkLayer code. Remove it and set SparkLayer up again on the copy.
See Page builders and copied themes, and tell us about either when you request installation.
Go to
SparkLayer Wholesale,Setup,Theme setup (in your Shopify admin). It shows your theme's status and each SparkLayer app block: the required SparkLayer and B2B Account Redirect blocks, and the optional Product block and Product card block. Turn a missing block on with Edit or Add, which opens Shopify's theme editor at that block, or click Something not right? Install SparkLayer for me. See Theme setup.
After you update or change your theme, check again: choose the new theme under Select theme on
SparkLayer Wholesale,Setup (in your Shopify admin) first. App blocks aren't always carried across, and a theme update can remove SparkLayer code added to your theme files. SparkLayer only shows to signed-in B2B customers, so to see it on your store, use Try it out.
If SparkLayer's styles stop working after you publish a theme, it may be loaded twice: see Styles stop working after you publish a theme.
No. SparkLayer's widgets, including B2B pricing, the cart and the account area, only load when a B2B customer (tagged b2b) signs in. Retail shoppers and signed-out visitors see your store as it is, and no SparkLayer code loads for them. For B2B customers, the widgets load asynchronously, so the effect on page load times is negligible.
Not out of the box. SparkLayer's widgets replace your theme's product buying area for B2B customers, and load your variants, SKUs and product data themselves. Many themes change the main product image when a customer picks a variant, using custom JavaScript written for that theme. SparkLayer's widgets don't trigger it, so the image doesn't change for signed-in B2B customers.
A Shopify developer can connect the two for your theme using the JavaScript SDK.
SparkLayer can run alongside it, so you can test SparkLayer first. When you're happy, uninstall your previous B2B app. If that app changed your theme code, you can ask its developer to remove the changes, but you don't have to. See Move your existing wholesale customers onto SparkLayer.
We recommend one of these 2 options:
- SparkLayer Forms (recommended): our built-in, no-code form builder. Start with the ready-made Customer Registration Form template, which includes approval workflows, automatic customer tagging and email notifications, with no third-party app needed. Forms are in the SparkLayer Dashboard at Forms (opens in your SparkLayer Dashboard in a new tab), not in the Shopify app. See SparkLayer Forms.
- B2B login and registration page: a free, ready-made template that adds a B2B login and registration page to your store (for example
yourstore.com/pages/b2b-login). It has a login form for existing customers and an application form for new ones, and you can customise it in the Shopify theme editor. Our team can install it for you free of charge. See Shopify B2B registration and login.
You can also add customers by hand in your Shopify admin under Customers.
Google indexes most Shopify stores, so your Shopify (retail) prices may appear in its search results. This is standard Shopify behaviour, not something SparkLayer controls.
To stop it, you need to customise your Shopify store itself. Shopify Support can advise, and there are Shopify community articles (opens in a new tab) on the topic. Changes like this can affect your search rankings, so speak to a Shopify expert first.
Customers
Add the tag b2b to their customer record in Shopify. To put them in a customer group other than Base, add that group's tag as well, for example b2b-vip. Use no more than 2 B2B tags, and make sure they have at least one complete address. You can tag many customers at once from Shopify's customer list.
To let a new customer know they can sign in: with Legacy customer accounts, click Send account invite on their Shopify record; with new customer accounts, send them a link to your store's sign-in page. See Add B2B customers on Shopify. To change the invitation email, see Shopify email notifications.
Check these in order:
- Their tags:
b2b, plus a group tag with theb2b-prefix that matches a group at
SparkLayer Wholesale,Customers,Customer groups (in your Shopify admin), and no more than 2 B2B tags. - Their addresses: every saved address needs a country, first line, city and postcode or ZIP code.
- The email they sign in with: with new customer accounts, a different or mistyped email creates a separate retail account without the
b2btag. - An old session: try a private (incognito) window.
- Your theme: SparkLayer must be on your published theme, not only a copy.
See A B2B customer can't sign in or sees retail prices for every check.
Yes, on your online store. Make them a sales agent at
SparkLayer Wholesale,Sales agents (in your Shopify admin), from the Starter plan. They sign in on your store, choose a customer and order at that customer's B2B prices. See Sales rep setup and Order for a customer.
Our guides don't cover Shopify POS, so contact us before you plan around it.
Products
Usually the product hasn't reached SparkLayer, or the customer's price list has no price for it. Check the product:
- Has a unique SKU on every variant.
- Is Active in Shopify, not Draft.
- Is published to the SparkLayer Wholesale sales channel.
- Has a price for that SKU in a price list on the customer's group. If you uploaded a CSV, the SKUs must match Shopify exactly.
See Customers can't see B2B prices, or products say "Unavailable" and Why a product shows Unavailable.
Yes. SparkLayer uses SKUs to show the right B2B price when a customer signs in, so every product variant needs a SKU in Shopify, and each SKU must be unique.
If your products don't have SKUs yet, you can add them by editing each product, or in bulk with Shopify's import or bulk edit tools.
Use B2B Catalogs (opens in a new tab), a free SparkLayer app that controls which products each type of customer can see on your Shopify store. You can hide products from retail customers, make products B2B-only, or show different ranges to different customer groups, all with tags and no code.
Install B2B Catalogs from the Shopify App Store, then follow the B2B Catalogs documentation to set it up. To hide variants from particular customer groups, see Product settings.
No. Shopify can't hide a single variant from retail shoppers, and SparkLayer's variant settings only apply to signed-in B2B customers. To keep one variant for B2B customers only, such as a 12-pack case, make it a separate product and tag it b2b-only with B2B Catalogs. See What hides what.
Yes. An automatic price list calculates B2B prices from your Shopify prices, for example 20% off your Shopify price or your compare-at price. If your Shopify prices include tax, set a percentage that takes the tax out too, because SparkLayer shows prices net. See Managing pricing and Tax-inclusive prices.
Only if the bundle is a regular Shopify product with its own unique SKU. SparkLayer matches B2B prices to products by SKU, so it treats a bundle (or kit) like any other product.
Shopify's own Bundles app isn't supported. Shopify doesn't let you publish its bundle products to the SparkLayer Wholesale sales channel, so SparkLayer never receives them, and B2B customers get no price or buy buttons for them.
Bundle apps that create a regular product with its own SKU do work. Our support team has seen merchants use Fast Bundle and Simple Bundles & Kits (which has a free tier). Whichever app you use, check that the bundle product:
- Has its own unique SKU.
- Is Active, not Draft. Draft products don't sync to SparkLayer.
- Is published to the SparkLayer Wholesale sales channel.
- Has a price for that SKU in the customer's price list.
Also check the app builds bundles from your existing Shopify products and adjusts their stock when a bundle sells. To keep a B2B bundle away from retail shoppers, tag it b2b-only with B2B Catalogs.
In Shopify, open the product or variant, tick Track quantity and Continue selling when out of stock, and set the available quantity to 0 or less. B2B customers then see a pre-order message, and you can show a restock date. "Continue selling when out of stock" applies to retail customers too, so to keep pre-orders for B2B customers only, make them separate B2B-only products. See Allow pre-orders and back-orders.
If you run retail and B2B on one store, both use the same stock pool. SparkLayer can reserve stock for your retail customers, so B2B customers can't order too much of a product. See Reserve stock for retail customers.
You can't stop retail customers ordering from your stock, because Shopify has no way to do this. If you need to, consider:
- Creating B2B-only products on your store. See B2B-only content.
- Creating a separate store just for B2B customers, so your stock is completely separate. See One store or a separate B2B store.
The limits most stores meet are:
- Shopify discounts can't be used alongside SparkLayer. Use SparkLayer's own discounts instead.
- Carts hold up to 350 line items by default. Our support team can raise this to 500.
- Tax-inclusive prices, duties and orders that mix taxable and tax-exempt products need a workaround, often a separate B2B store.
- Product options added by other apps, such as a text-entry field, don't show in SparkLayer's widgets. A developer can add them with the JavaScript SDK.
- Subscriptions from subscription apps aren't supported in SparkLayer's B2B cart.
See Shopify limitations for each one and its workaround.
Payments
You choose the B2B payment methods for each customer group. Card payments go through the Shopify checkout and arrive as paid orders. Pay on Account and Pay by Invoice orders arrive as draft orders for you to complete. The diagram shows how they work with Shopify. See Payment methods and Shopify payment methods.
Yes, when they choose Pay Online by Card in the SparkLayer checkout. This takes them to the Shopify checkout, where the payment methods you've set up in Shopify are available, such as PayPal, Shop Pay or a manual method like bank transfer. Shopify gift cards also only work this way. Each order has one payment method, so a customer can't split an order between, say, card and on account. See Which payment methods work with the SparkLayer checkout?
To show B2B customers only some of these methods, see Hide payment methods in the checkout.
It comes from Shopify, not SparkLayer. Pay on Account orders arrive in Shopify as draft orders with Payment due later and payment terms filled in. Once the order is completed, Shopify treats it as an order with a balance to pay, and can show a Pay now button on the order status page. Your customer doesn't have to use it: they can pay on their agreed terms. See Set net payment terms.
Yes, if you use Shopify Payments and the customer is a contact of a Shopify company (at Customers,Companies (opens in your Shopify admin in a new tab)). A card saved by anyone at a company location, at checkout or in their customer account, can be used by every customer at that location. There's nothing to set up in SparkLayer.
- Pay Online by Card: the saved cards appear in the Shopify checkout.
- Pay by Invoice or Pay on Account: you can charge a saved card on the draft order from your Shopify admin, with Collect payment.
Not directly. For example, SparkLayer can't add 2% when a customer pays by credit card.
One workaround is to let the customer order with an offline payment method, such as Pay by Invoice:
- When the order arrives in Shopify as a draft order, adjust the total.
- On the draft order, click Collect payment and enter the customer's card details to take the payment.
Orders
Orders paid by card are regular Shopify orders. Orders paid with other methods (such as Pay by Invoice or Pay on Account) are saved as draft orders, and so is a card order the customer didn't finish paying for:
- Find them in your Shopify admin at Orders,Drafts (opens in your Shopify admin in a new tab).
- To ask the customer to pay online, open the draft and click Send invoice. See Send an invoice from a draft order, or for automatic PDF invoices, SparkLayer Invoices (Growth plan and above).
- To turn a draft into a completed order, mark it as paid or add payment terms. See Shopify's guide to accepting payment (opens in a new tab).
- To complete draft orders automatically, turn on Auto-complete draft orders at
SparkLayer Wholesale,Integrations,Platform,Shopify order actions (in your Shopify admin).
It's waiting for you. Awaiting merchant means the customer has placed the order in SparkLayer, but it isn't a completed order in Shopify yet: usually it's a Pay on Account or Pay by Invoice order that's still a draft. Complete the draft at Orders,Drafts (opens in your Shopify admin in a new tab), or turn on Auto-complete draft orders at
SparkLayer Wholesale,Integrations,Platform,Shopify order actions (in your Shopify admin). Until then, it shows as Awaiting merchant in the SparkLayer Orders screen and in your customer's My Account. See Awaiting merchant.
If the message ends with a code, such as SHOPIFY:002, look it up in Error codes. If there's no code:
- Refresh the page, or empty the cart and add the products again.
- Look in Orders,Drafts (opens in your Shopify admin in a new tab) for an open draft order for that customer. Delete it, then try again.
- Check no product in the order has a price of 0.00 in Shopify, and, if you sell in several currencies, that Shopify Markets has a market for each currency and shipping country.
See Customers see "An unknown error occurred" at checkout for every check, and what to send us if it keeps happening.
SparkLayer applies B2B prices to orders placed through its cart. A draft order you create yourself in your Shopify admin doesn't go through SparkLayer, so it uses your Shopify prices, unless you change them on the draft.
To order for a customer at their B2B prices, make yourself or your team sales agents (from the Starter plan) and place the order on your store. See Order for a customer. To show orders made outside SparkLayer in the customer's order history, see Show imported or manual orders.
Yes. If SparkLayer creates draft orders, you can open a draft order in Shopify and change it. After you complete it by hand (for example with Mark as paid), you can still edit it until it's fulfilled.
The exception is when Auto-complete draft orders is on at
SparkLayer Wholesale,Integrations,Platform,Shopify order actions (in your Shopify admin). Because of a Shopify limitation, orders completed this way can't be edited afterwards, and Shopify shows "Unable to edit order". The only fix is to turn off the auto-complete setting.
Yes. By default, B2B customers see your Shopify shipping, including live carrier rates and shipping apps. From the Starter plan, you can use SparkLayer shipping rates instead, priced by customer group, order total or weight. B2B customers get one or the other, never both: Use SparkLayer shipping rates at
SparkLayer Wholesale,Settings,Shipping (in your Shopify admin) decides. See Shipping rules.
If customers see "Sorry, no shipping methods are available for your selected address", see No shipping methods show at checkout.
A line can arrive at its Shopify price with a "Custom discount" that brings it down to your B2B price, so customer emails show the original price struck through.
- To show only the final price in emails, see Hide discount pricing.
- To change how prices are sent to Shopify, contact our team.
- To change the "Custom discount" wording, go to Online Store,Themes (opens in your Shopify admin in a new tab), click the ... menu next to your theme, choose Edit default theme content and search for "Custom discount".
Yes. You can set minimum (and maximum) quantities for each product or variant: see Quantity rules. For the whole order, set order limits on a customer group: a minimum or maximum order total, such as $500, or a minimum or maximum number of items. See Set order limits.
For a product range, one workaround is:
- Create a new product in Shopify with the products you want to include as its variants.
- Use the minimum product quantity setting so customers must order at least a set number, for example 3.
- Use quantity pricing to set the discounted rate, for example 10% cheaper when buying 3.
Create a Shopify market for each currency, with Shopify Payments active, then a price list in that currency, and assign it to a customer group. SparkLayer doesn't convert prices: you set the exact price in each currency. Shopify's "Use local currencies" setting, duties and market catalogs aren't supported. See Shopify Markets and currencies.
Shopify doesn't send a notification when a draft order is created, so you need a workaround.
- Your team: import our ready-made Send an email with order details workflow into Shopify Flow, a free Shopify app. See Shopify Flow for B2B.
- Customers: send a Shopify invoice from the draft order with Send invoice.
- Both: turn on Auto-complete draft orders at
SparkLayer Wholesale,Integrations,Platform,Shopify order actions (in your Shopify admin), so drafts become completed orders.
To change Shopify's emails for B2B customers, see Shopify email notifications.
Yes. See Import order history into SparkLayer.
Not in Shopify: it uses one order number sequence (for example #123456) for retail and B2B orders. To tell them apart, use the b2b tag SparkLayer adds to every B2B order. You can filter by it in Shopify, and in connected systems such as shipping apps or 3PLs, to separate your workflows. See Shopify reporting and filtering.
To show customers your own order numbers in their account, see Set a custom order number.
Discounts
No. Shopify discounts, including discount codes and automatic discounts, don't apply to orders placed through SparkLayer, and can't be used alongside it. To give B2B customers a discount, create it in SparkLayer: see Discounts.
Use SparkLayer's own discounts at
SparkLayer Wholesale,Pricing,Discounts (in your Shopify admin), on the Growth plan and above, including its 14-day trial. A discount can apply automatically or when the customer enters a coupon code at checkout. You can set requirements such as:
- An order total or number of items, for example spend over $400 and get 5% off.
- Customer groups and dates, so only some customers get it, for a set time.
- Products, collections or tags: under Rules, click New rule, for example to discount only products tagged
dog-toy. See Restrict a discount to certain products.
On every plan, you can also give a customer group a percentage off your Shopify prices with an automatic price list.
Last updated