Shopify Integration FAQs
Here are some error messages that our users have experienced while using Cin7 Core with Shopify integration and how to solve them. If your problem does not appear here, do not hesitate to get in touch with Cin7 Core Support and we will do our best to resolve your issue!
Prerequisites
Connection and syncing
Is there a limit to the number of Shopify stores I can connect with Cin7 Core?
The number of stores you can connect will depend on the number of integrations allowed in your subscription plan. You can view the number of allowed integrations and add extra integrations from the My Subscriptions page.
How long does syncing with Shopify normally take?
Orders are synced immediately when the order capture threshold (created, paid, fulfilled) is reached.
Product information sync is triggered manually by listing/relisting products from the Catalog or can be triggered automatically by stock level changes. We recommend automating the process by enabling the Update stock levels setting on the Shopify integration page. Please make sure that stock levels are correct in Cin7 Core before enabling this setting.
Time taken to sync varies significantly depending on the number of items synced and amount of information, images, etc. that are being processed. If you can see the synced items count increasing, everything is processing correctly. If the count has been stuck on the same number for a while you are probably experiencing an error.
Can updates to product information (not stock availability) be synced automatically?
No, this feature is not available in our Shopify integration and is not a planned future development.
Product information sync is triggered manually by listing/relisting products from the Catalog or can be triggered automatically by stock level changes. We recommend automating the process by enabling the Update stock levels setting on the Shopify integration page. Please make sure that stock levels are correct in Cin7 Core before enabling this setting.
I can't seem to connect to Shopify, is the Shopify API down?
There might be a problem with your connection to your Shopify store. Go to the Bulk Listing tab on the Cin7 Core Shopify Integration page and check if there is an Update Shopify Connection button displayed at the top of the page. If there is such a button, click on it and wait for Cin7 Core and Shopify to be reconnected. Once the connection is working, that button should disappear. If the connection still is not working there may be a problem on the Shopify side.
Why is my integration with Shopify is no longer there after setting my preferences?
Generally, the store can only be disconnected by clicking the Disconnect from the Shopify store button at the bottom of the setup screen. You can check and see if reconnecting your store will resolve the issue and return your information.
Catalog and stock
Can we stop stock levels being affected by Shopify while we complete a stocktake?
Once you create a stocktake task in the required location in Cin7 Core and start it, Shopify sales will still load into Cin7 Core, but they won't be processed and will stay as pending until the stocktake has been completed. There is no need to temporarily disable the integration between Cin7 Core and Shopify - stock levels will not be affected by the pending orders.
Can Cin7 Core handle Shopify products and sales with multiple currencies?
Shopify has a multi-currency feature, giving sellers the capability to sell in multiple currencies. Cin7 Core already supports multi-currency setups. Thus, if you're already selling or if you're planning to sell in multiple currencies, Cin7 Core is perfect for your needs.
Is it recommended to update my stock levels from Cin7 Core?
On the Shopify integration page, there is a setting to enable/disable Update Stock Levels in Shopify. When enabled, Cin7 Core will update stock quantities in Shopify and update product information in Shopify whenever stock levels in Cin7 Core change. When disabled, stock levels will need to be updated manually in Shopify. Please ensure you have the correct stock quantities entered in Cin7 Core before you turn on this option as these values will override the stock quantities in Shopify.
In general, we recommend having this setting enabled to keep stock levels updated and product information automatically synced. However in some circumstances, we recommend disabling this setting, such as:
When auto-assembly is disabled: In Cin7 Core, when auto-assembly is enabled, availability of the assembled product is calculated from the number of available component products plus number of available assembled products. When auto-assembly is enabled, stock levels pushed to Shopify accurately reflect how many assemblies can be assembled from the number of components as well as available assembled units. When auto-assembly is disabled, availability of the assembled products will only show currently assembled units, which could be 0 even if there are plenty of available components.
Businesses using the Advanced Manufacturing module: Availability of finished products in Cin7 Core is taken from current stock, and does not take into account availability of raw materials and components. Sales in Cin7 Core can trigger production orders if there are enough components available, however stock levels of finished products that could be produced from available components will not be pushed to Shopify.
Batch products with auto-assembly enabled: When users sell products with batch numbers and auto-assembly enabled, it is not possible to change a line of the order without undoing the sale and voiding all the related auto-assemblies, making the original batch number void, which can be a problem when produced items have already been printed with batch numbers. Users in this situation generally disable this setting and update stock levels manually.
One workaround our customers have used to get around this limitation is to manipulate stock level data in a separate API. Users extract stock level data from Cin7 Core, BOM data to calculate how many finished/assembled units would be available from those stock levels, then push the calculated stock level to Shopify.
Why is my stock level in Cin7 Core different from that shown on Shopify? Why has Cin7 Core adjusted the stock level in Shopify?
The product in question may have auto-assembly turned on in Cin7 Core. When auto-assembly is enabled, the Finished products on hand + components on hand = total available stocks for a product.When auto-assembly is disabled, total available stocks will only reflect finished products on hand.
Cin7 Core can adjust stock levels in Shopify when Update Stock Levels in Shopify is enabled.
Our current setup is set to Update Stock Levels in Shopify. However, I've noticed a couple of adjustments being put through to Shopify from Cin7 Core that shouldn't have happened. The adjustments net off to nil, but the last adjustment put the stock into negative by 2 units, so we basically oversold by two units. Why did this happen?
Cin7 Core sends the Available Quantity to Shopify, not the Quantity on Hand, so this behaviour is normal. At times, there might be a delay in the updates, so you might see an incorrect quantity somewhere, but the balance will even out as soon as the updates are reflected back in Shopify.
You can also enable Buffer Inventory in Shopify to prevent accidental overselling due to these delays. Sync stock quantity passed to Shopify will be equal to Actual Stock - Buffer Inventory value. Users will need to list or update products to apply buffer inventory once the setting is enabled.
How can I avoid overselling in Shopify?
You can enable Buffer Inventory in Shopify to prevent accidental overselling caused by delays between stock level updates and new sales. Sync stock quantity passed to Shopify will be equal to Actual Stock - Buffer Inventory value. Users will need to list or update products to apply buffer inventory once the setting is enabled.
I get an error message saying 'Failed to create or update the product in Shopify: You may have reached the API calls limit. Please try again in a minute.' What does this mean?
It looks like there is a problem with some of your products in Shopify – they have default variations with SKUs that are different from the ones in Cin7 Core. In this case, Cin7 Core finds relevant products by name but doesn't find variations by SKU (they are different in Shopify and Cin7 Core). Instead, Cin7 Core tries to create a default variation with a new SKU. The process is failing because Shopify only allows a single default variation for a product, unlike a product family with multiple variations.
Is it possible for Cin7 Core to generate SKUs for all my products synced from Shopify?
Unfortunately, the SKUs will need to be in Shopify for the products you plan to import to Cin7 Core – products without SKUs will not be accepted in Cin7 Core since SKUs are mandatory in Cin7 Core. It is not possible to auto-generate SKUs in Cin7 Core for Shopify products without an SKU.
If I change a product SKU or price in Cin7 Core, will it be updated in Shopify and vice versa?
The product info can be updated in either system; whether this update is reflected in the other system is controlled by the Load Products and Publish Product options, which you can find under Integration → Shopify → Catalog. Thus, the product info will not auto-synchronise but can be triggered, if required, for individual products or bulk listings.
If Update Stock Levels in Shopify is enabled, stock level changes will trigger product updates in Shopify for affected products.
How can I import products from my Shopify store? The output CSV file was not readable by Cin7 Core, and some of the fields were not imported.
You can load products directly from your Shopify store by navigating to the Integration → Shopify → Catalog tab and clicking on Load Products. Cin7 Core generally takes the product info from Shopify and asks you to upload product quantities and costs via the Stock on Hand template that you can find in Inventory → View All → Import. In addition, ensure that you did not turn on Stock Quantity updates on the Shopify setup page before you uploaded current stock quantities into Cin7 Core.
If the Shopify integration master source is set to Cin7, will images get overwritten?
When Shopify is connected and catalog downloaded, all images are downloaded from Shopify and will populate in Core. Images from the master source will overwrite images in the non-master. We recommended capturing all of the images from Shopify to Cin7 Core in the initial download, then you can change the source moving forward with Core has all the images in the system.
Orders and sales
If a customer cancels an order what is the refunding process?
Cin7 Core captures order cancellations from Shopify. If the order has not yet been processed by Cin7 Core, Shopify will return the payment to the customer, then Cin7 Core will find and void the associated sale task automatically.
Please note that if the Shopify sale is unfulfilled and Pick, pack, and ship mode for processing online sales is set to Auto Pick + Pack + Ship., this will cause an error with restocking the unfulfilled items. These will appear on the Log as Pending fulfilment. If you are experiencing this error, you will need to enable the Ignore restock for non-fulfilled sales setting.
If the Shopify sale has already been processed by Cin7 Core and fulfilled, the refund and return can then be processed in Shopify. Cin7 Core will then capture the refund and return/restock and apply them to the associated sale task.
When would you recommend capturing orders from Shopify?
In your Shopify settings, it is possible to capture orders from Shopify to send to Cin7 Core at three points:
when the order is created
when the order is paid
when the order is fulfilled
Which setting to use depends on your business process. For most users, selecting Created or Paid will yield the same result as eCommerce orders are created and paid at the same time. A Shopify site which is more B2B focused may not collect payment at the time of sale and have a time delay between the two. We recommend the following:
Created: When using Shopify update or with a B2B focused Shopify site
Paid: General use, recommended default.
Fulfillment: No hands on operation in Cin7 Core and most operations taking place through Shopify.
Can I modify my order in Shopify after it has been sent to Cin7 Core?
Shopify order editing is not supported in Cin7 Core. This is because editing an order in Shopify changes an order in a non-transactional way, simply by changing the existing order without creating a new order or credit note. Cin7 Core is a transactional system, once the sale is processed from Shopify or other eCommerce systems, this sale can be processed by shipping integrations, accounting integrations, API (3PL and EDI) and therefore the order cannot be changed/edited without creating discrepancies in other external systems.
Cin7 Core can only correctly accommodate changes in a customer sale by creating an exchange (credit note + new sale and invoice). Unfortunately, Shopify order editing does not work this way (we cannot automatically know how the order was changed to properly create transactions to exchange in Cin7 Core).
If the sale from Shopify was synced to Cin7 Core after the changes were made, then Cin7 Core will capture the sale order with the recent changes, otherwise Cin7 Core will sync the sale orders from Shopify and not accommodate any later
changes made in Shopify. This applies to all other e-commerce integrations.
We are trying to import our Shopify sales from January 1 onwards into Cin7 Core, but we can't see the sales anywhere. What's happening?
This may be due to any of the following reasons:
If you select orders to be captured when paid, Cin7 Core will only capture paid orders. You can set the capture of orders to happen when orders are created or fulfilled.
You haven't completed setting up your Shopify store's integration with Cin7 Core. For Shopify sales to be processed, Shopify tax rates and locations should be mapped to Cin7 Core tax rules and locations. You also need to select the payment account from the Cin7 Core Chart of Accounts that will be used for your Shopify payment processor.
Why are our sales pushed over from our Shopify store not reflecting that the order has actually been paid (via PayPal)?
This is possible in Cin7 Core. Since you already have the payment created, just open the sales order and navigate to the Invoice tab and authorize it. You can also change your Shopify settings to have invoices authorized automatically and skip this manual step.
Can I integrate gift cards in Shopify with Cin7 Core?
Yes, this is supported. You will need to create an account that can be used for gift card liability, either in Cin7 Core directly or via QuickBooks Online or Xero if you have integrated with either of these accounting systems. This account should have the ability to accept payments.
Next, go to Integration → Shopify → Setup and scroll to Account and Cash Settings. Map the gift card account you have just created to Gift Card Liability Account.
Cin7 Core will use this liability account instead of a revenue account for gift card sales. If a sale is made which contains a gift card, this sale will remain in the pending orders area until a gift card liability account is specified. It is mandatory to choose a gift card liability account if using the Shopify Gift Certificate feature.
For Cin7 Core to recognize gift cards from Shopify, it is necessary to create a gift card in Shopify following these instructions: https://help.shopify.com/en/manual/products/gift-card-products/add-update-gift-card-products
If Cin7 Core does not recognize Shopify Gift as a gift card or service, it is necessary to create a gift card product with the type Stock in Cin7 Core. The stock item will need a very low value to not affect your inventory accounts but also a high quantity so multiple units can be sold. The stock gift card can be mapped with Shopify Gift when products are loaded to Cin7 Core.
Can I import tags from Shopify?
Customer tags are imported automatically from Shopify to Core.
Sale order tags can be imported from Shopify to Core. Please follow these instructions: Shopify - Import sale order tags from Shopify.
Fulfillment
We have a sales order that still shows the status as 'Picking' even though the location has enough inventory. In addition, since this is a store pickup order, it should have been marked as Complete. Why is this so?
It might be possible that, at the time the order was processed, the quantity was not enough to fulfil the order. To know for sure, on the Product page, click the Movements tab, then select Show availability changes. You should see the sales order there. To mark the order as Complete, you will have to authorize the fulfilment manually.
Why are our tracking numbers synchronised from Cin7 Core to Shopify showing incorrect couriers?
If you have tracking URLs for your carriers defined under Reference Books → Carriers, Cin7 Core will pass them to Shopify using the following pattern: [Tracking URL from the Reference Book][Tracking number from the shipment line in the sale]. Your issue might have something to do with incorrect tracking URLs defined in Cin7 Core – ensure that these are correct to prevent the problem from happening.
Is there a way to set up an automatic email to go out to the customer when we confirm the shipment on Cin7 Core?
Unfortunately, this is not currently available in Cin7 Core. It might be possible if you use Shopify with Cin7 Core and pull orders from Shopify to Cin7 Core.
In Cin7 Core this is possible if your subscription includes the Automation module - you can set an email notification when sales have been shipped. However, Shopify will update fulfilment data and by updating it's fulfilment data, Shopify should be sending an email to the customer.
Why aren't orders being marked as fulfilled in Shopify POS?
Shopify POS orders are marked as not fulfilled even if the POS setting is set to mark orders as fulfilled when there is at least one product with costing methods Special-Serial, Special-Batch, FIFO-Serial, FIFO-Batch, FEFO-Serial, FEFO-Batch in the order. These orders must be manually fulfilled in Cin7 Core. This is due to issues importing auto-fulfilled orders with serial/batch numbered products, TShopify POS does not pass the batch and serial number to Cin7 Core.. Please use costing methods FIFO only or process orders manually.
Returns, refunds, restock
A customer return triggered the Restock process in Cin7 Core. We also cancelled the order in Shopify with the restock=yes flag, which appears to trigger a Cin7 Core Stock Adjustment. This resulted in duplicate stock restock transactions. If I restock in Cin7 Core, should I NOT use restock in Shopify?
Cin7 Core will automatically capture the restock operation from Shopify and will create a credit note properly, but only if you haven't done it beforehand manually. Since there was already a credit note created for the related sale in Cin7 Core, a stock adjustment was created to reflect restock. So essentially what you have to do is just wait, and Cin7 Core will create the correct credit note for you.
Integration with other channels
How can I pull product descriptions from Amazon to Cin7 Core to Shopify?
To resolve this issue, go to the Amazon integration page on Cin7 Core, then set the Use Amazon as master source for Cin7 Core products option to Yes. This will pull product descriptions from Amazon to Cin7 Core and consequently update your Shopify product descriptions as well.
When bulk listing products sold in our Amazon store via Cin7 Core, the image quality is much worse. What is happening?
The Amazon API doesn't allow extraction of the original images, only thumbnail-sized images. Amazon imposes this limitation to protect your content. Unfortunately, there is no way around this except to manually upload the same images used in your Amazon store to Shopify.
Which POS systems do you integrate with?
Cin7 Core can be integrated with Shopify POS, Vend, Stripe and Square, among others. We also offer our own Cin7 Core POS. We offer implementation and training services at cost to our clients.
Which eCommerce platforms do you currently integrate with?
For a complete list of eCommerce, Point-of-Sales, and other systems that Cin7 Core can integrate with, check out the Integrations page on the Cin7 Core website.
You can also check out the Cin7 Core Knowledgebase's comprehensive Integrations section here.
We are currently running Vend, Shopify and Xero, and having big issues with making our systems easy and seamless. Can Cin7 Core manage the inventory and then Vend and Shopify can just send the sales information to Cin7 Core?
Generally, we set up Cin7 Core as the master of inventory management in this configuration, with Shopify and/or Vend connecting directly to Cin7 Core. This means that your sales will be processed and fulfilled in Cin7 Core and subsequently transferred to Xero in the form of customer invoices and journal entries for COGS, among other financial information.
ShipStation
When I ship a product in ShipStation, it pushes the tracking info back to Cin7 Core but doesn't authorize the shipment, which means the order isn't marked as fulfilled in Shopify. How can I get it to do this?
For orders to be marked as fulfilled in Shopify, set the Create a fulfilment in Shopify even if a tracking number is not available option to Yes. You can find this setting under the Setup page on the Cin7 Core Shopify Integration page.
I'm noticing that people who use our free shipping in ShipStation don't have any shipping line items in their orders – how do I get that to show up?
Cin7 Core doesn't pass shipping costs to ShipStation. We don't create zero cost lines in Cin7 Core because Xero will reject whole invoices with zero costs.
I have orders listed as backordered (because I hadn't loaded the SOH file yet) – I've reverted to Draft status and repacked them in Cin7 Core, so they are listed as Shipping, but they aren't showing up in ShipStation. How do I handle this?
On the ShipStation setup page, you can see orders that are not ready for ShipStation. There is also a Reason column there. If the order is created from sales channels, the following is considered:
The order has a valid shipping address with a state, zip and country.
Pick, Pack and Ship all have data (last tab not necessarily authorized).
When I ship a product in ShipStation, tracking information is passed back from Cin7 Core to Shopify, but the tracking company isn't being properly mapped, so it's defaulting to another one. This means that the shipping emails contain bad tracking links – how can I properly map these values?
Cin7 Core passes the shipping provider info to ShipStation – you need to map it to the correct provider in ShipStation. Check ShipStation Help on how to do this.
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip20 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB
- Publish to everyone.4.log-2010416261.zip30 KB