Plan: Merchants must be signed up to the Professional or Enterprise plan
Platform: Merchants must be using Shopify
Introduction
Cin7 Core is a powerful inventory management system designed for retailers, wholesalers, and manufacturers. From inventory and stock control, to order management and fulfilment, Cin7 Core helps automate and streamline your eCommerce operations. You can learn more about Cin7 Core here.
How it works
The Cin7 Core integration for SparkLayer is available for all Shopify merchants that already use Cin7 Core and allows you to bring B2B pricing and B2B ordering into SparkLayer and your Shopify store.
The integration works in the following ways:
Item
Details
Customers
Cin7 becomes the 'master' of your B2B customer data, and any changes to customer records that have the assigned Customer Type will automatically be synchronised to Shopify and SparkLayer.
Orders
Orders placed via SparkLayer are synchronised from Shopify into Cin7 using your existingCin7 integration. Prices that show on orders will be the special B2B pricing as set up in Cin7.
Pricing
Price lists and product prices are imported into SparkLayer via pricing rules you set up in Cin7
Sync
The automatic sync is carried out every 6 hours.
Please note
We recommend also familiarising yourself with the "Known limitations" below
Configuring the integration
Before you begin
You'll need to have an approved account with Cin7 Core - Please visit the Cin7 website to learn more.
To get started, the integration needs to be enable within the SparkLayer Dashboard Go to the Settings section, click Integrations, and then click the Partner Integrations tab. Under Multi-channel management, click the toggle on the right to activate the Cin7 Core integration.
You'll then be prompted to enter the following details:
Item
Details
API ID
You can find this within your Unleashed admin under Integration, API
API Key
You can find this within your Unleashed admin under Integration, API
Customer Tags
The customer tag should match a customer group that exists in SparkLayer. This would be the customers within Cin7 that SparkLayer will synchronise to Shopify.
Please note: The tag must match the SparkLayer customer group exactly and be seperated by a comma with no space (e.g. GROUP1,GROUP2). For the purposes of testing, we recommend creating a new group and testing with a dummy customer first before using an existing group.
Tax-Exempt Codes
This is the code that you want to sync across the customer across as tax-exempt.
Configuring Customers
Broadly speaking, Cin7 Core is your central location for managing B2B customer data. When customers are configured in Cin7 as B2B customers, SparkLayer can automatically retrieve this data and then enable the B2B ordering experience on your Shopify site.
When you have set up the integration with SparkLayer within your Cin7 Dashbaord, go to Sale and then Customer. In this page you are able to set up the customer account
Next, navigate to your SparkLayer Dashboard and Customer Groups. Here you'll need to create the customer groups and once you have done this, you are then able to create the same tags within your customer in Cin7 under "Tags".
In our example below, we have Base and Gold. Within Cin7, and add the tag "b2b-gold".
You will also need to select the Tax Rule. Once you have done this, take the tax exemption rule and add this into the final stage of the SparkLayer integration. This means any customers that have been set as tax exempt in Cin7 will automatically be tax exempt in Shopify.
Next, go to the Partner Integrations section of SparkLayer and click Modify within the Cin7 integration. Finally, add the Customer Tags you have created for your customer groups that you want to sync across the customer from Cin7 to SparkLayer/Shopify. In our example, we've added them for b2b and b2b-gold.
Please note
Customer Tags must be seperated by a comma with no spacing to sync correctly e.g. b2b,b2b-gold
To sync your customers, you'll need to create your customers in your Cin7 Dashboard if you haven't already. When doing this you are able to allocate them add a Tag. This will assign them into the specific customer group within SparkLayer when they are synced across.
The Tag that you assign must match a customer group that you have created in your SparkLayer dashboard already. For example, if you are using the tags in the above screenshots, your customer groups would look like th below
Please note: The customer would not be tagged with this customer group as the normal SparkLayer function this will be assigned to them through a metafield (which is automatically created in your Shopify)
When setting up your customers in Cin7, please ensure you set up:
General:
Name
Currency
Sale Price Tier
Tax Rule
Tags
Addresses
A full address
Contacts
Name
Assign a valid email address. This must be set up in order to sync to SparkLayer and Shopify.
Tick main contact as "Default"
Syncing across to SparkLayer and Shopify
First, you'll need to add the customer tag to match that entered in the Customer Tag field (as noted above). SparkLayer is then configured to synchronise every 6 hours, and any new and updated records will automatically be synchronised with Shopify.
Customers are mapped between the systems based on the default contact email set within Cin7 Core. Once this is mapped, SparkLayer will then synchronise the following data into Shopify.
Cin7 Core
Shopify / Spark Layer
Address
Shows against customer record in Shopify
Primary Telephone
Shows against customer record in Shopify
First / Last Name
Shows against customer record in Shopify
Customer Group
Shown via metafields in Shopify (see above)
Credit Limit / On hold
Shown via metafields in Shopify
Tax Codes (using the mapping in config)
Shows against customer record in Shopify
Cin7 Core Price List Tier / Customer specific prices
Shown via metafields in Shopify to show the correct pricing for the customer
Please note
All customer data is managed via Cin7 and any amends made directly in Shopify will not synchronise back to Cin7.
Since Cin7 is the central source for customer data, any new customers created in Cin7 will automatically be added to Shopify (following the above steps).
When new customer records are added to Shopify, they will by default be added as Pending customer accounts and receive an automatic email to enable their account by setting a password.
If you prefer not to send the customer account invite automatically, you can easily check if this option has been activated. Simply go to your SparkLayer Dashboard, navigate to Partner Integrations. When modifying your Cin7 integration, you can enable or disable this via the setting at the bottom.
Configuring Pricing
In Cin7, you can utilise up to 10 price lists, allowing you to create multiple pricing tiers tailored to your various customer levels. On top of this limit, you have the flexibility to set customer-specific and product-specific discounts, providing even more granular control over your pricing strategy.
In Cin7, navigate to Settings > General Settings> Sell Price Tier Names. Here, you can customise the names of your price tiers, which are initially labelled as "Sell Price Tier 1" through to "Sell Price Tier 10".
Please note
SparkLayer does not support the custom names meaning they will show in SparkLayer as "Sell Price Tier X"
When you view a product within your Cin7 Dashboard, under the Prices tab you’ll see the available price tiers listed. For products offered to your wholesale customers, you can specify the exact price for each tier, depending on which pricing list is assigned to the customer.
Within your Cin7 Dashboard, navigate back to the customer account that you are working on. You are then able to assign them a price list directly to the customer account within Sell Price Tier. This means when they login they will see the product pricing you've assigned to them.
Please note
These price lists will be asigned directly to the customer account through the SparkLayer price list metafield which is set up differently to standard price lists. You can learn more in Metafields
Within the Cin7 Dashboard, navigate to a customer record and click Product Prices. Here you are able to set product specific pricing for this customer account.
You are able to search for a product, specify a fixed price on the product. When doing this, it will create a new price list within the SparkLayer Price Lists section.
Once you have finished configuring your customers pricing and a sync has taken place, you can then check the customer account in Shopify to ensure they have been assigned the correct pricing.
The price list will be assigned directly to the customer account in a Price List metafield (this gets added automatically when you first set up the SparkLayer integration). It will also create the price list within your SparkLayer Dashboard > Price lists as an "Integration" Price List.
With this metafield it will always work in a hierarchy order, which means when a customer searches a SKU it will check the first price list and will cascade through the price lists untill it finds a price.
In the example below you are able to see a number of price lists.
Any customer product specific discounts you have created within the customer in Cin7.
The normal price list that you have assigned to the customer
Data mapping
We've detailed how data is mapped between SparkLayer and Unleashed.
Item
Details
Creating Price Lists
SparkLayer generates several types of price lists based on the product prices available in Cin7.
Sell Price Tiers
If Cin7 has specific Sell Price Tiers set up (e.g., "Sell Price Tier 1", "Sell Price Tier 2", etc.), SparkLayer creates separate price lists for these tiers. Unleashed supports up to 10 Sell Price Tiers that you can assign to different groups of customers.
Customer-Specific Prices
If any customer has unique prices specified under the Customer/Product Price tab in Cin7, SparkLayer creates a Customer-Specific Price List for that customer. This ensures that individual customer agreements or special pricing arrangements are captured.
Handling Different Currencies
If a customer uses a currency other than the base currency, SparkLayer will automatically create Alternative Currency Price Lists based on the existing price lists.
Assigning Price Lists to Customers
When assigning prices to customers, SparkLayer follows this order of priority:
First, the Customer-Specific Price List (if available).
Then, a Sell Price Tier (if assigned in Cin7).
If a customer has multiple currencies or discounts, they will get additional price lists accordingly.
Why Prefixed Price Lists?
SparkLayer may apply generic "prefixed" price lists to every customer. This is to ensure that a basic Sell Price Tier is always in place, even if the customer’s Unleashed configuration doesn’t explicitly assign one.
Known limitations
The following limitations apply:
Internally SparkLayer will use the internal SellPriceTier naming for simplicity between mapping, not the custom naming that can be setup via the Unleashed Settings
Changing the customers email address, will create an additional customer in Shopify. The old account will need to be disabled manually.
Primary Customer Contacts will only be synced. If a new primary contact is selected, the existing Shopify customer on the store should be manually disabled.
A customer that is removed by removing the tag will not be disabled within Shopify.
Default addresses in Cin7 Core will be mapped to Shipping and Billing address in Shopify (Shopify doesn't support independent addresses).
Addresses are a 1-way sync from Cin7 Core into Shopify. It's recommended to not allow address editing in SparkLayer otherwise new addresses added won't appear in Cin7 Core and will be replaced on next integration run.
Troubleshooting
Ensure that customers in Cin7 Core have been assigned the correct Tags matching the SparkLayer Customer Groups.
Confirm the tag formatting: tags must be separated by commas without spaces (e.g., b2b,b2b-gold).
Check that the customer has a valid Default Contact with a valid email address.
By default, Shopify will send a Customer Account Invite email when a new customer is created.
Check if automatic invitations are disabled in the SparkLayer Partner Integration settings.
After updating pricing, allow up to 6 hours for the next sync to complete.
Verify that the correct Price List metafield exists against the Shopify customer record.
The integration is one-way (Cin7 Core ➔ Shopify). Changes must always be made in Cin7 Core.
If you update customer information directly in Shopify, it will be overwritten by the next sync.
Double-check that the customer is assigned to the correct Sell Price Tier or Product-Specific Pricing.
In Cin7 Core, ensure that price tiers have the expected values for your products.
Confirm that no old price lists or tags are incorrectly linked to the customer in SparkLayer.
Double-check that the customer is assigned to the correct Sell Price Tier or Product-Specific Pricing.
In Cin7 Core, ensure that price tiers have the expected values for your products.
Confirm that no old price lists or tags are incorrectly linked to the customer in SparkLayer.