Troubleshooting
Find the fix
Pick what's going wrong. Each diagnostic asks one question at a time and ends with the fix, and where to make it.
- SparkLayer not showing or looking wrong?Find out whether it’s the customer, your theme or the launch step
- Wrong prices, payment methods or shipping for a customer?Check the customer’s tags and customer group
- Prices or tax looking wrong?Check your Shopify tax settings against your price lists
- Product missing, no B2B price or “Unavailable”?Find out whether it’s the product, the price list or your theme
- Product showing to the wrong customers?Check which tool should hide it
- Stock labels or numbers looking wrong?Find which setting controls what B2B customers see
- Pack sizes or quantity limits not applying?Check the metafields behind your product rules
- Sales agent having problems?Check their account, role and the customers they can see
- Trade applications not working?Check your form, approvals and customer sign-in
- Shipping not working as expected?Check which shipping your B2B customers use
- Credit limit or Pay on Account not working?Check the customer’s credit metafield and group settings
- Quote buttons greyed out?Check who acts next and what each status allows
Check these first
Most problems are fixed by one of these:
- The customer is a B2B customer. In Shopify, they have the
b2btag, plus the tag of any other customer group they belong to. - The customer's addresses are complete. Every address in their address book has a country, first line, city and postcode or ZIP code.
- The product can sync. It has a unique SKU on every variant, its status is Active, and it's included in the SparkLayer Wholesale sales channel.
- The customer has prices. Their customer group has a price list that includes the product.
- The storefront is set up. The frontend interfaces are installed on the theme you're testing.
Finding your way in the app
Check Where things moved for the full list. Some screens were renamed or moved in the new app. For example, Activity is now Orders (opens in your SparkLayer Dashboard in a new tab), Settings > General is now Settings,Configurations (opens in your SparkLayer Dashboard in a new tab), and Settings > Frontend widgets is now Storefront,Widgets (opens in your SparkLayer Dashboard in a new tab).
Shopify only
Sign in to the SparkLayer Dashboard at app.sparklayer.io (opens in a new tab) and go to Forms (opens in your SparkLayer Dashboard in a new tab). Forms and Data tables are only in the Dashboard. Everything else is in both versions. See Two versions of the same app.
Open Setup with Open Setup on Home. Open Try it out with Place a test order on Orders (opens in your SparkLayer Dashboard in a new tab), which shows until your first order. Neither has a sidebar item in the SparkLayer Dashboard. In the Shopify app, both are in the menu.
Click Unlock to see what the feature does and start a 14-day free trial. Your plan doesn't include it: for example, Quotes need Pro (or the Quoting Engine add-on) and Invoices need Growth. See Unlock a feature.
Start the free trial it offers. Sales agents start on the Starter plan, so on Basic, Sales agents opens a window that shows what they do instead. See Sales rep setup.
Shopify only
Connect the app from Integrations,Partners (opens in your SparkLayer Dashboard in a new tab) in the SparkLayer Dashboard (opens in a new tab). Partner apps, such as Xero or Cin7 Core, can't be switched on inside Shopify. In the Shopify app, each one has a Setup guide button instead. See Managing integrations.
Storefront
- Check the customer has the right tags in Shopify:
b2bby default, plus the tags for any other customer group rules. - Check the customer has a complete address. Show errors on the sync banner in Customers (opens in your SparkLayer Dashboard in a new tab) lists any customers without one.
- Check the customer has no sync errors: in Customers (opens in your SparkLayer Dashboard in a new tab), click Show errors on the sync banner. An error such as
"code":"resource-id-not-found","message":"Invalid customer group"means the customer has a tag that doesn't match any of your customer groups at Customers,Groups (opens in your SparkLayer Dashboard in a new tab). - Check you've installed the frontend interfaces.
- Check you're testing on the right Shopify theme. For example, you may have installed SparkLayer on a backup theme.
These checks are for when the SparkLayer My Account area shows, but product pages have no B2B prices. If nothing from SparkLayer shows, see Widgets don't appear.
- Check you've installed the frontend interfaces.
- Check the customer has the right tags in Shopify:
b2bby default, plus the tags for any other customer group rules. - Check the customer has no sync errors: in Customers (opens in your SparkLayer Dashboard in a new tab), click Show errors on the sync banner.
- Check the product has a SKU. To add SKUs in Shopify, edit products one by one, or in bulk with Shopify's Import or Edit products feature. A bundle from another app needs its own unique SKU too: see Do bundles from other apps get B2B prices?
- Check the product's status is Active in your Shopify admin, not Draft or Pending. SparkLayer only imports active products.
- Check the product is included in the SparkLayer Wholesale sales channel. SparkLayer only imports pricing for SKUs in that channel.
- Check you've imported a price list that includes the product, and the customer's group uses it. For example, if you have a price list called "Base", check a customer group is assigned that price list. To check a product's prices, search for its SKU in Pricing,Price editor (opens in your SparkLayer Dashboard in a new tab).
- If you use tiered pricing, check your CSV has a price for a single unit of every product.
- If the price list is automatic, check the variant has a value in the list's pricing source. An empty field means no B2B price.
- If you uploaded a CSV, check the SKUs match Shopify exactly, with no spaces before or after, and that no SKUs have changed in Shopify since. See Why a product shows Unavailable.
- If only some products are affected, check they use a product template with SparkLayer's product widget.
SparkLayer is still in preview until you finish the last launch step. In your Shopify admin, open SparkLayer Wholesale under Sales channels and click Start taking B2B orders. If the button isn't there, a setup step, such as adding SparkLayer to your theme, isn't complete yet. See the Launch checklist.
Check SparkLayer isn't loaded twice: once by the app embed and again by a copy of its script in your theme code. The second copy can override your styles. Keep the app embed and remove the hard-coded script. CSS variables start with two hyphens, for example --spark-button-color. See Customise the design.
SparkLayer's cart is separate from your theme's Shopify cart, so your header's count shows 0, or items added before the customer signed in. Hide the count for B2B customers, or have a developer keep it in step with SparkLayer's cart using the JavaScript SDK. Our team can hide it for you.
Check What you can and can't change. Text, features and colours are settings or CSS, but some parts are fixed: for example, the layout and button order of the product page widget can only be changed with a custom script, and there's no CSS variable for button width.
Newer features need a recent version of SparkLayer's storefront code on your theme. Contact us with the feature that's missing and the theme name, and we'll update it.
On product pages
- In Settings,Taxes and duties (opens in your Shopify admin in a new tab), check whether Include sales tax in product price and shipping rate (under Global settings) is turned on. SparkLayer always shows prices net (excluding tax).
- If it's on and you use an automatic price list, work out a percentage that takes the tax out too. See Tax-inclusive prices. For example, if you want a customer to pay 100 GBP in total, they see 83.33 GBP, and 16.67 GBP tax is added at checkout.
- If the automatic price list uses a different currency from your store's, set a currency conversion on the list so SparkLayer converts your Shopify prices at your exchange rate. To set exact prices in another currency, use a manual price list instead.
In the cart
- If Include sales tax in product price and shipping rate is on in Shopify, check your automatic price lists allow for tax (as above).
- If you use a manual price list, check you haven't uploaded gross prices (including tax). Upload all prices net (excluding tax), so tax is added correctly in the cart.
- To tax individual line items instead of the cart's subtotal (the default), contact our support team to turn on line-item tax.
- Check the
qtycolumn is filled in correctly in your price list CSV. - Check your CSV has a price for a single unit of every product.
- Check the product is included in the SparkLayer Wholesale sales channel in Shopify. SparkLayer only imports pricing for SKUs in that channel.
Price lists
- Check every product in Shopify has a unique SKU.
- If a product has variants (for example small, medium and large), check none of its SKUs are duplicates.
- Check the SKU exists in your Shopify catalogue.
- Check the CSV follows the format in Pricing, for example with no currency symbols in the price column.
- Check the product is included in the SparkLayer Wholesale sales channel in Shopify.
- Check the product's status is Active in Shopify. SparkLayer only imports prices for active products, not drafts.
Put the price list you want them to use first on their customer group at Customers,Groups (opens in your SparkLayer Dashboard in a new tab): when a product is in more than one of the group's price lists, the first list wins. See Price list order.
If the order is right, check the customer is in the group you expect, and has no price lists of their own in Prices for one customer.
Check the products you want B2B customers to buy have SKUs, and that they're included in the SparkLayer Wholesale sales channel in Shopify.
An empty Pricing Source list usually means SparkLayer can't find SKUs on your store. It needs them to sync product and pricing data.
Customers, sales agents and applications
Work through these in order:
- Check their tags in Shopify. The
b2btag must stay on the customer. Any other group tag needs theb2b-prefix, such asb2b-trade, and must match a customer group at Customers,Groups (opens in your SparkLayer Dashboard in a new tab). A tag that matches no group shows as an Invalid customer group sync error. See Add customers to a group. - Check every saved address is complete. Each address in their address book, not only the default, needs a country, first line, city and postcode or ZIP code.
- Check the email they sign in with. With Shopify's new customer accounts, anyone can sign in with an emailed code. A different or mistyped email address creates a separate retail account, without the
b2btag. - Try a private (incognito) browser window, to rule out an old session.
- Check SparkLayer is on your published theme, not only on a backup or unpublished copy. See Theme setup.
- If you're testing, use a real Shopify customer with the
b2btag and a complete address, not your staff account. - Still stuck? Contact support with the customer's email address and the time they tried.
For sync errors, see Fix customers or products that won't sync.
Product and customer sync
Fix the data in Shopify, usually a missing SKU, then click Sync products now at Integrations,Product sync (opens in your SparkLayer Dashboard in a new tab). Each error message and its fix is in Fix products.
Product data lookup is in Integrations,Product sync (opens in your SparkLayer Dashboard in a new tab). If it can't find a product by its SKU:
- Check the product has a valid SKU. To add SKUs in Shopify, edit products one by one, or in bulk with Shopify's Import or Edit products feature.
- Check the product's status is Active in your Shopify admin, not Draft or Pending. SparkLayer only imports active products.
- Check the product is included in the SparkLayer Wholesale sales channel. Do this for every product you want B2B customers to see.
If you still can't find it, contact our support team.
Fix the listed customer records in Shopify. The rest of your customers have synced. On Customers (opens in your SparkLayer Dashboard in a new tab), the banner reads something like Customers sync completed with 3 errors.
- Click Show errors on the banner. Customer sync errors lists each customer's name, email and problem.
- Click Open customers in Shopify and fix each customer record. They sync on the next partial sync.
Each error message and its fix is in Fix customers. The most common causes are an incomplete second address and a tag that matches no customer group.
Shopify only
Set the sales agent groups metafield to Limit to preset choices, with each of your sales agent groups as a choice. If the metafield accepts free text instead, customers who have a value in it can show sync errors.
- In your Shopify admin, go to Settings,Custom data (opens in your Shopify admin in a new tab) and click Customers.
- Open the sales agent groups definition (
sparklayer.sales_agent_groups). - Turn on Limit to preset choices and add each sales agent group as a choice.
- Click Save. The customers sync on the next partial sync.
If you can't find a customer in Customers (opens in your SparkLayer Dashboard in a new tab):
- Check the customer has the
b2btag in Shopify. Only customers taggedb2bsync to SparkLayer. - Click Show errors on the sync banner, if there is one, and check whether the customer is listed with a problem.
- Check you searched by their name, email or company.
If you still can't find them, contact our support team.
Checkout and orders
The message appears at the top right of the browser. On recent versions of SparkLayer's Core Script, it ends with a code, such as SHOPIFY:002.
If there's a code, find it in the table below.
If there's no code, the table can't tell you the cause. Try these first:
- Refresh the page and try again.
- Empty the cart, add the products again and check out.
- In your Shopify admin, 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.
- If several customers see the error at the same time, it may be a wider problem: contact support and we'll check.
- Check your Core Script version at Storefront,Widgets,Core script version (opens in your SparkLayer Dashboard in a new tab). Codes only show on recent versions, so updating it means the next error shows one.
Then check these common causes, with or without a code:
- Check none of the products in the order have a price of 0.00 in Shopify. SparkLayer relies on the Shopify price being higher than the B2B price to calculate orders correctly. A price of 0.00 causes an error and stops checkout.
- If you sell in several currencies, check you've set up Shopify Markets, with currencies and shipping methods for each market. See Shopify Markets and currencies.
- If a sales agent is placing the order, check the customer's email address is valid. Shopify may reject an invalid email, such as one with a mistyped domain.
- Ask your developer (or our support team) to check the
siteIdin your core script matches your Site ID in your account. The core script is the code that loads SparkLayer on your store.
If it still happens, contact support with the customer's email address, the time it happened, what was in the cart and a screenshot of the error.
| Error code | What it means |
|---|---|
| SHOPIFY:001 | The customer has a price list in a currency (for example AUD) that isn't enabled in your Shopify Markets. In a market with several countries or regions, SparkLayer doesn't support Show prices to customers in their local currency: turn it off so B2B customers in that market can place orders. |
| SHOPIFY:002 | The customer has a price list in a currency (for example AUD), but the shipping country isn't set up in your Shopify Markets. |
| SHOPIFY:003 | There's a problem with product data, such as a variant with no SKU. Try removing the affected product from the order. |
| SHOPIFY:005 | Shopify's DNS checks are rejecting the order's email address, so it can't check out. Check the email address is valid. |
| SHOPIFY:006 | The shipping address is in a country that isn't in any of your Shopify Markets. Check every country you ship to belongs to a market. |
| SHOPIFY:007 | The customer record is missing an email address, shipping phone number or shipping address. All 3 are required for stores using Managed Markets. |
| PRICING:001 | The customer's group has 2 price lists in different currencies (for example GBP and USD). Change the customer group so it only uses one currency. |
Add Pay by invoice (or Payment on account) to the customer's group. Customers only see the payment methods their customer group allows, so a group set to Card at checkout alone shows card payment (upfront payment) and nothing else.
- Go to Customers,Groups (opens in your SparkLayer Dashboard in a new tab) and click the customer's group.
- Override Payment methods if it's under Inherited rules, then tick Pay by invoice or Payment on account. To stop card payment for the group, untick Card at checkout.
- Click Save.
- Check every address field is filled in on the customer's record in Shopify.
- Check the customer has no incomplete addresses saved to their account.
- If you use SparkLayer's built-in shipping, check your shipping methods in Settings,Shipping (opens in your SparkLayer Dashboard in a new tab): their Available countries and Customer groups, and their bands. If the customer doesn't match any method, or the order doesn't meet any of a method's bands, no shipping method shows. Look out for bands based on weight. See Shipping rules.
- If you use Shopify's shipping methods, check they include the customer's country. For example, for a customer in the United Kingdom, a shipping method must cover the United Kingdom.
- If you use Shopify Markets, check you've set up shipping profiles (opens in a new tab) for your destination countries.
Customers see this as "Sorry, no shipping methods are available for your selected address" at the Shipping Method step.
Contact our support team. With SparkLayer shipping, the prices in the Dashboard should always match the prices customers see at checkout.
Shopify only
- Look in your Shopify draft orders, in Orders,Drafts (opens in your Shopify admin in a new tab). Unless the customer paid with Upfront Payment (by card), the order arrives as a draft order by default. To create completed orders instead, turn on Auto-complete draft orders in Integrations,Platform,Shopify order actions (opens in your SparkLayer Dashboard in a new tab).
- Check the order was placed as a B2B customer. You can see this in the order's Notes in Shopify.
This is expected: the order is waiting for you. Awaiting merchant means the customer has placed the order in SparkLayer, but it isn't a completed order in your store yet. Usually it's a Pay on Account or Pay by Invoice order that's still a draft order. Complete the draft in your store (on Shopify, at Orders,Drafts (opens in your Shopify admin in a new tab)), or turn on Auto-complete draft orders at Integrations,Platform,Shopify order actions (opens in your SparkLayer Dashboard in a new tab). The customer sees Awaiting merchant in My Account until then. See Awaiting merchant and Process orders in Shopify.
Tax
Each symptom below has its quick check. The full set-up, with net prices, exemptions and tax apps, is in Get B2B tax and VAT right.
Shopify only
In Shopify, check the customer isn't tax-exempt (Manage tax exemptions on the customer), the product has Charge tax on this product ticked, and you collect tax in the customer's country (Regional settings in Settings,Taxes and duties (opens in your Shopify admin in a new tab)). See Get B2B tax and VAT right.
Shopify only
Make the customer tax-exempt: in Shopify, open them, click Manage tax exemptions and untick Collect tax. If you use a tax app, exempt them there too: see Tax is charged although you use a tax app and Make tax-exempt customers exempt.
Shopify only
The customer is probably tax-exempt: in Shopify, open them, click Manage tax exemptions and tick Collect tax. If that's not it, check you collect tax in the country of their shipping address. See Get B2B tax and VAT right.
Shopify only
Checkout uses the lower of the SparkLayer price and the Shopify price, including tax. Check that automatic price lists based on tax-inclusive Shopify prices allow for tax, and that the SparkLayer price (in Pricing,Price editor (opens in your SparkLayer Dashboard in a new tab)) is below the Shopify price. See Make your price lists net and Tax-inclusive prices.
Shopify only
Check you collect tax in the delivery country: in Settings,Taxes and duties (opens in your Shopify admin in a new tab), find it under Regional settings and check the Collecting tax column. See Get B2B tax and VAT right.
Your B2B prices include tax, and SparkLayer adds it again at checkout. Upload manual price lists net (excluding tax), and make automatic price lists based on tax-inclusive Shopify prices take the tax out. See Make your price lists net.
Shopify only
Contact our support team to turn on line-item tax, then untick Charge tax on this product on the products that shouldn't be taxed. See Handle products with different tax rates.
Shopify only
Exempt the customer in your tax app, such as Avalara or TaxJar, as well as in Shopify: tax apps override Shopify's settings, and the two exemptions work independently. See Make tax-exempt customers exempt, and the Avalara steps.
Last updated