Shopify Integration

Shopify Integration

Sync inventory, pull sales information, and sync products to and from Shopify. Customers who use Shopify can use Shopify as an online store or a POS store within the same Cin7 Core integration.

When a refund is processed for an unfulfilled Shopify sale, this will cause an error with restocking the unfulfilled items. These will appear on the log as Pending fulfillment. If you are experiencing this error, you will need to enable the Ignore restock for non-fulfilled sales setting. This setting is not enabled automatically in order to preserve system logic continuity for users.

Prerequisites

Shopify integration setup

First, you must connect Cin7 Core to your Shopify store. You can link several Shopify stores to a single Cin7 Core account, with each linked store having its own independent catalog, logs and settings. 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 of your organization.

  1. Navigate to Integration → Shopify.

  2. Click + to connect a new store.

  3. Click Connect to Shopify.

  4. You will be redirected to the Shopify login screen. Enter your details and continue.

  5. You will be asked to confirm sharing data between Shopify and Cin7 Core. Click Update App to continue.

  6. You will be directed back to Cin7 Core to complete the setup.

  7. Repeat these steps to connect as many Shopify stores as you require.

You will not be able to perform any operations on your Shopify store unless you authorize the connection between the store and Cin7 Core.

Integration settings

In the Setup tab, several integration settings can be customized.

General Settings

Load orders from Shopify

Enable or disable loading of orders from Shopify. When disabled, no orders from Shopify will sync to Cin7 Core and the Load orders button will be hidden on the Pending orders tab. When enabled, sales will load according to your other settings’ configuration.

Order lock date

The date entered in this field will be used as a cut-off point where no orders/payments before this date should automatically sync from Shopify to Cin7 Core. It is still possible to manually load orders from before this date. Payments/orders created after this date are not affected. This setting does not impact refunds, refunds for orders prior to the order lock date will work as normal.

Capture order when it is

This option specifies when a Shopify order will be captured: when it is created, when it is fulfilled or when it is paid in Shopify. This setting is also taken into account when downloads of historical orders from Shopify are triggered.

When downloading orders from Shopify, the transaction date for the order depends on this setting. If orders are captured when paid, then the transaction date of the order will be the payment date. If orders are captured when fulfilled, then the transaction date of the order will be the ‘ship date’ from the integration.

Consolidate orders

Cin7 Core - Shopify Integration allows two options for order consolidation:

  • No consolidation

  • Daily consolidation

No consolidation indicates that sales will be captured from Shopify as they occur. Daily consolidation will consolidate all orders from that day into a single order. When daily consolidation is chosen, an additional setting becomes available: Consolidation time. This is your local time when all pending orders aggregated during the day will be processed.

Regardless of the consolidation mode, credit notes and refunds will sync into Cin7 Core automatically once the shipping and invoice tabs are authorized. See the Pending orders processing section below for more details.

Customer

For the pending order processing to be successful, an existing customer must be selected.

When the consolidation type is daily consolidation, this customer is used to create a new sale task which will combine all daily sales. A customer can be created in Cin7 Core just for this purpose.

Use company as a customer

This parameter only has an effect when the No consolidation option is selected.

In Shopify, each sale order has an optional field company, which can be filled in by a customer. If you would like Cin7 Core to create a customer using the company name (as opposed to the customer name attached to the sale order in Shopify), this option should be selected.

Sale price tier

This is the price tier that Cin7 Core will use as the default price when products are downloaded from and updated in Shopify.

Compare price tier

Shopify allows its merchants to set a ‘Compare at’ price tier, for example for customers to compare the retail price with a previous higher price. The price tier selected here will be mapped to the Shopify compare at price tier and will push/pull values to/from Shopify.

Pick, pack and ship processing mode for online sales

When pending orders are processed by Cin7 Core, new sale tasks are created. This setting tells Cin7 Core if it should try to auto pick, auto pack and auto ship sales downloaded from Shopify website, or import the order in draft stat If there is not enough stock on hand to pick the full quantity of products in an order, then pick will remain in the draft state, and pack and ship won’t be completed.

Cin7 Core does not pick up shipment information from Shopify if auto-ship is selected and will not create fulfillment in Shopify in this scenario (if auto ship is enabled).

The option Load data from Shopify is also available. When selected, fulfillment information will be downloaded to Cin7 Core from Shopify but Cin7 Core will NOT update fulfillment details and statuses in Shopify. See Load fulfillment data from Shopify.

Fulfillment status for Shopify POS orders are managed from Shopify POS settings. See Fulfillment for Shopify POS orders for more information.

Ignore restock for non-fulfilled sales

This setting appears when the Pick, pack, and ship mode for processing online sales is set to Auto pick + pack + ship. When a refund is processed for an unfulfilled Shopify sale, this will cause an error with restocking the unfulfilled items. These will appear on the log as Pending fulfillment. If you are experiencing this error, you will need to enable this setting. Restock/stock allocation quantities will be edited to match the fulfilled items of the sale.

Process auto-assembly

This setting applies when products with an assembly BOM and auto-assembly enabled are sold via the Shopify store. This dropdown field has two options:

  • For ordered quantity: Does not check stock quantity. Current auto-assembly eCommerce behavior. An assembly order is created for the quantity specified in the sale order, regardless of stock availability.

  • For minimum quantity required for picking:Assemble stock required to meet the quantity of specific sale order.

    • If stock availability is negative, auto-assembly will produce a finished goods quantity which is more than the quantity ordered through sale order.

    • If there is already stock available in inventory but not enough to fulfill the sale order quantity, auto-assembly will assemble the difference in quantity needed to meet the sale order requirement.

    • If stock availability exceeds sale order quantity, auto-assembly is not triggered.

Stock availability is validated against the sale order location and does not take into account any stock quantity currently 'on order'.

When Load data from Shopify is also enabled, orders containing auto-assembly will be triggered when the fulfillment order is captured and processed, and will use the fulfillment location (not sale order location).

Enable partial fulfillment

In Shopify customers have the ability to make several fulfillments of the same order, or, partial fulfillment. This setting enables partial fulfillment from Cin7 Core and export of detailed information about fulfilled items. When this setting is disabled, only the order ID and tracking number are exported, and any partial fulfillment will mark an order as fulfilled in Shopify. See Partial fulfillment for more information.

Shopify locations must be mapped one-to-one to enable this setting. Pick, pack, and ship processing mode for online sales must be any value except Load data from Shopify.

Send tracking URL

Send tracking URL

Cin7 Core sends a tracking URL back to Shopify when it is available. This can be sentWith tracking numberorWithout tracking numberattached.

By default, Cin7 Core appends theTracking numberto theTracking URL(if the Tracking number is not already included). SelectWithout tracking numberto avoid changing the tracking URL. For example, you would want to avoid breaking a tracking URL from a third-party by appending the Tracking number.

Account & Cash settings

Invoice status

You can control the invoice status for sale tasks created as a result of pending order processing. By default, an invoice will not be authorized and will be in the draft state, adjustable and waiting for authorization. However, if this setting is changed to authorized, the invoice will be automatically authorized, and pending sync will be created for it to sync with an accounting application of your choice.

List products as draft

When this option is enabled, the product will be pushed with active status in Shopify admin but will not be visible in Shopify sales channels and apps.

Update stock levels in Shopify

You may choose to disable an automatic stock level update in Shopify performed by Cin7 Core at the time the available product quantity changes in Cin7 Core. This may be useful if you are managing the stock level in Shopify manually and do not want Cin7 Core to change it. 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. Enabling this setting will display the Use buffer inventory setting.

Use buffer inventory

Displayed when Update stock levels in Shopify is enabled. Allows for an inventory buffer on stock quantities pushed to Shopify. Sync stock passed to Shopify when updating stock levels will be equal to Actual stock - buffer inventory. Enabling this setting will enable the Buffer inventory field.

Buffer inventory

Displayed when Use buffer inventory is enabled. Enter an integer number of stock to act as a buffer. Sync stock passed to Shopify when updating stock levels will be equal to Actual stock - buffer inventory. When this setting is enabled, Sync quantity and Buffer inventory quantity will be added as fields to the Catalog and Bulk listing tables alongside stock availability.

Once buffer inventory is enabled and specified, it will be applied across all products listed on the Catalog and Bulk listing tabs. However, sync quantities will only be updated in the channel if the user updates or lists a product.

Allow users to purchase item, even if it is no longer in stock

This setting allows products to be sold through the Shopify store even if there is zero stock. When the setting is enabled and a zero stock product is sold, Cin7 Core generates a backorder for the negative item quantity on Cin7 Core end. When its disabled, the zero stock item cannot be sold through Shopify store even if the item is listed.

This setting applies to all listed products. Backordering at the product level can be enable/disabled from the catalog to override this setting.

Create fulfillment in Shopify even if tracking number is not available

When this parameter is enabled, Cin7 Core will create fulfillment in Shopify even if a tracking number is not available. This option can be useful if you do not use a fulfillment service.

Allow Cin7 Core to create Shopify products when Cin7 Core product names are not unique

When this parameter is enabled, Cin7 Core will create a new Shopify product for every not listed combination of product name + SKU which could not be found in Shopify.

Bring discount codes from Shopify

When a discount is applied to a sale in Shopify, Cin7 Core can bring the discount code through as an additional charge on the sale order. This will create unique service products in Cin7 Core for each unique discount code in Shopify that is applied to a sale. If this setting is disabled, an additional charge will be created with the description 'Discount' for each product. Item discounts can also be applied by reducing product prices, using the below setting Add a discount as.

This setting applies to discounts which are applied to the whole order. Discounts which are applied to a single item will show the item, price, and discount applied, but will not show the discount code name.

Master of data

This setting controls which system will be master of data when performing actions that affect both systems. Select from the following options:

  • Shopify: Cin7 Core will not modify any existing Shopify product/variant related details, except stock level (if stock level update is enabled). New products/variants can be created with details from Cin7 Core as needed.

  • Cin7 Core: Shopify will not modify any existing Cin7 Core product/variant related details. New products can be created with details from Shopify as needed, including intermediate products for duplicate SKU support.

  • Source system: Any system can modify each other, and the current action will make the source system the master for that operation, updating existing product details in the target system. Downloading products from Shopify makes Shopify the master and listing products from Cin7 Core makes Cin7 Core the master.

Add a company to the address

Enable this option to add the company name to the billing address after the order has been processed in Shopify.

Location for online sales

Location specified in this field defines the default location will be set in Cin7 Core sale header when sale is imported from Shopify (Online Shopify sales only). Only one default location can be set per Shopify online store. This dropdown allows a specific location to be chosen or the default location for your organization (set from Settings → Reference books → Locations and bins).

If this is set to Default location, the Catalog will show stock availability as the sum of all units across all locations in Cin7 Core. If set to a specific location, the catalog sale location stock will show available stock in that location only.

Cin7 Core checks the fulfillment location in Shopify when a fulfilled online sale is loaded to Cin7 Core. If the Shopify fulfillment location is mapped to a Cin7 Core location in the Cin7 Core Shopify settings, this location will be used in Cin7 Core to fulfill the online sale instead. See Fulfillment for Shopify online sales.

This setting does not apply to Shopify POS sales. Shopify POS sales have a specific location set for them. The location mapping table (see below) is used to link Shopify POS locations to related Cin7 Core location and to control stock level update process.

Gift card liability account

Cin7 Core will use this liability account instead of a revenue account for gift card sales. This account should have the ability to accept payments. 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 Gift Certificate feature in Shopify.

Optional revenue account

The revenue account to be used for all sales downloaded from Shopify. This will override settings at the product/customer level and any other account mapping.

Sales representative name

This option allows the specified name to be used as a sales representative for all sales captured from this store.

Add a discount as

Add a discount as an additional charge to the sale order or by reducing product prices. Shopify sends Cin7 Core total discount value which includes discounts applied to individual items. This setting controls whether item discounts are applied as a product price reduction or as additional charges. Once the total value of item discounts has been applied as product price reductions, any remaining discount value is applied to the order as an additional charge.

Auto-retry sale order sync

Occasionally, during order syncing from Shopify, some sales are not created on the Cin7 Core end. This function retries the sale order sync daily at midnight to ensure all sales created in Shopify are also created on Cin7 Core on a daily basis. This function is carried out automatically by the Cin7 Core backend system.

Any errors of failure to load sales through auto retry functionality will be captured in the operations log recorded under the subsequent sale record. Sale orders which fail to load will also generate an internal notification for Cin7 Core users containing sale order details and error information.

Import Shopify sale order tags to

Shopify allows its users to create custom tags for sale orders which can be used to search and filter sales. When this setting is enabled, Cin7 Core can pull order tags from Shopify and map these tags to the additional attribute set assigned to your sales process. Selecting Do not import will not pull any sale order tags from Shopify. This is only applicable when No consolidation is selected for orders. See Import sale order tags from Shopify for more details.

Import Shopify sale order type to

Cin7 Core can pull the order type or source name from a Shopify order, identifying if an order was from online, POS or B2B, etc. This information is stored in the additional attribute set assigned to the sale process, and can be used to filter reports. . Selecting Do not import will not pull any sale order tags from Shopify. This is only applicable when No consolidation is selected for orders. See Import sale order type from Shopify for more details.

Import additional properties from Shopify

Shopify uses 3rd party applications which enables users to customize products when purchasing, such as size, color, engraving, etc. Users can download these additional properties from Shopify to the sale Comment field in Cin7 Core. All additional properties will be stored as text in the same field. This is only applicable when No consolidation is selected for orders. See Import additional properties from Shopify for more details.

Retail delivery fee account

This is only visible only for US Shopify store integration. Only users doing business in Colorado need to configure this setting. Retail delivery fee account is a dropdown field where you can select a credit card type liability account to use for retail delivery fee transactions which is required so that the correct tax rule can be applied, due to a processing issue between Shopify, Cin7 Core and Xero/QuickBooks.

Link Shopify and Cin7 Core tax rules

When a pending order is processed by Cin7 Core, a sale task is created. Each order and invoice line is assigned a tax rule. The tax rules specified in these settings will be used to create these lines.

Cin7 Core does not apply the tax rule to recalculate tax and is simply using the actual tax amount from the Shopify order. This means that if certain products are not taxable or with varying tax in Shopify, all data and totals in Cin7 Core will look identical to Shopify, but with Cin7 Core tax rule name selected in this setting.

The 'tax-free' tax rule mapping specified in this setting is used to create these lines for non-taxable products. This tax mapping could be used for accounting. However, If a Cin7 Core tax rule is mapped to this Shopify rule, it will override any other taxes in cases where tax amounts are zero on the line.

In the case of tax recalculation, the tax amount will be overwritten with the value calculated by Cin7 Core taxation rule.

When Cin7 Core receives an unrecognized tax rule from Shopify, Cin7 Core creates a new tax mapping, creates an internal notification to inform, and emails the master user so they can properly map the new Shopify tax rule to the appropriate Cin7 Core tax rule.

Some locations have special rules:

  • US Stores: Tax rules are created in Shopify based on different States, Counties, etc. and this is downloaded as one tax rule to Core, regardless of mapping.

  • Canada: Core downloads taxes based on provinces, regardless of mapping as the tax rule name is not provided in this case.

  • Rest of the world: Core matches the tax rule name to mapping.

IMPORTANT: Orders will be skipped on download if taxation mapping is not finished!

  

Link Shopify locations to Cin7 Core locations

Shopify locations are downloaded automatically with sales, however they will need to be mapped manually. These can be mapped to Cin7 Core locations here. If there is no mapping between Shopify locations and Cin7 Core location, Shopify location will be mapped to stock from all Cin7 Core locations. Mapping a product to a location will ensure that stock levels are correctly updated for that location. If All locations is selected, or there is no mapping between Shopify locations and Cin7 Core location, Shopify location will be mapped to stock from all Cin7 Core locations.

Cin7 Core checks the fulfillment location in Shopify when a fulfilled online sale is loaded to Cin7 Core. If the Shopify fulfillment location is mapped to a Cin7 Core location in the Cin7 Core Shopify settings, this location will be used in Cin7 Core to fulfilled the online sale. See Fulfillment for Shopify online sales.

Products can be listed only to specific Shopify locations. Stock levels will update for each location according to which products are listed in that location.

  

Link Shopify payment methods to payment accounts

Cin7 Core can capture payments made against orders in Shopify and is able to automatically add payments to a created sale invoice. To do this, Payment Account Mapping must be completed on this integration settings screen. You must choose an account which is able to receive payments from the chart of accounts.

This setting is not mandatory – if payment mapping is not completed, orders are still captured and downloaded from Shopify, but payments must be manually added to invoices in Cin7 Core. Some customers prefer to keep invoices open and then reconcile them with payouts from Shopify.

  

Disconnect from Shopify store

When you disconnect from a Shopify store, Cin7 Core removes all associations between Cin7 Core objects and Shopify, including log and product catalog.

Catalog

The Cin7 Core Shopify Catalog page allows users to download products from Shopify, list a Cin7 Core product in Shopify, break the link between a Cin7 Core product and its Shopify listing, allow backorder of a product, and update quantities in Shopify according to Cin7 Core available stock.

Available Stock/Sale location stock column displays available stock levels.

  • If Location for online sales (from Setup tab) is set to Default location, this column will show the sum of all units across all locations in Cin7 Core.

  • If Location for online sales (from Setup tab) is set to a specific location, this column will show available stock in that location only.

When Use Buffer Inventory setting is enabled, Sync Quantity and Buffer Inventory quantity will be added as fields to the catalog table alongside stock availability.

Note: Updates to product information such as price, description, name, etc. will not sync automatically

Downloading Products

Products can be loaded from Shopify to Cin7 Core in the Catalog tab by clicking Download → Products. This operation may take some time. If a product is not in the Catalog, but it is included in a sale, the product is automatically imported into Cin7 Core.

  

When downloading products from Shopify, archived products, draft products, and images can be excluded from the download to increase the download speed.


How products are created or updated

Products in Shopify can be downloaded as simple Products or as Product Families with up to 3 options, similar to the current process in Cin7 Core. When downloading products from Shopify, Cin7 Core checks if the product in Shopify is a single product or if it has multiple variations. If Products and Product Families have already been created/linked with Shopify, Cin7 Core updates the existing Products/Product Families instead of creating new ones.

In Shopify, the Product SKU is not a unique field whereas it is in Cin7 Core. If there is a conflict, Cin7 Core processes only the first product with a duplicate SKU and skips the others, displaying a warning message about skipped items at the end of the download process. When products are skipped, it means that they have not been processed and they don't exist in Cin7 Core at this stage. The user will need to go back to the Shopify store and edit SKUs of the products that were skipped by Cin7 Core. Next, the user should return to Cin7 Core and re-initiate the product download. Products that now have a unique SKU in Shopify will be processed and created in Cin7 Core.

Except for the SKU, any changes in a product that has been downloaded previously from Shopify will also update the product's details in Cin7 Core every time Load Downloads is clicked. The same is true when using the Bulk Listing feature to upload products from Cin7 Core to Shopify.

If Update stock levels in Shopify is set to Yes in Setup, if a product is deleted from Shopify, any attempt to update the quantity in Shopify from Cin7 Core will unlink the items, and the product will become unlisted in Cin7 Core.

Product field mapping

Data mapping for products between Cin7 Core and Shopify is as follows:

Cin7 Core                                                        

SHOPIFY                                                          

SKU

Listing SKU if defined, otherwise first 50 characters from combination of (Product title + Option 1 Value + Option 2 Value+ Option 3 Value)                                                                                                                     

Name

Product title + Option 1 Value + Option 2 Value + Option 3 Value

Category

Product Type

Description

HTML Product Description

Weight

Weight*

Barcode

Barcode

Price Tier. Default is Price Tier 1

Price

Images

Small product image

Product Tags

First 256 characters of Product Tags

Option 1 Value

Option 1 Value

Option 2 Value

Option 2 Value

Option 3 Value

Option 3 Value

Variation

Variation

Brand

Brand

HS code

HS (Harmonized System) code

Country of Origin (COO)

Country/Region of Origin

*Value will be passed from Shopify to Cin7 Core or vice versa with no numerical conversion if units of measure do not match. Please check units of measure match before syncing.

Duplicate SKUs in Shopify

Cin7 Core requires a unique SKU for each product while Shopify does not enforce the same rule - this means that Duplicate SKUs can appear in Shopify. This previously was not supported by Cin7 Core, and duplicate SKUs in Shopify would not be imported to Cin7 Core until the user was able to change the Shopify SKUs to unique values. Cin7 Core now has an option to support duplicate SKUs from Shopify and allow these products to be downloaded to Cin7 Core. This functionality will apply to any duplicate SKUs in Shopify regardless of how the duplicates have occurred.

Enabling this functionality is optional. If this functionality is disabled, duplicate SKUs will not be downloaded from Shopify to Cin7 Core.

Enable importing of Duplicate SKUs by going to Integrations → Shopify and select the Setup tab. In Account & Cash Settings, enable Import duplicate SKUs from Shopify. Cin7 Core uses the Auto-assembly/Kit feature to process duplicates.

When Cin7 Core encounters Shopify products with duplicate SKU (SKU-A), these will be downloaded to Cin7 Core, creating the following elements:

  • MainProduct with Cin7 Core SKU (SKU-A);

  • KitProduct for each product with Shopify SKU (SKU-A); in Cin7 Core the KitProduct will have SKU (Shopify <VariantID>) as this is a unique value in Shopify. KitProducts will be only be used to accurately update stock levels and fulfillments and will never be used in sales.

  • Each KitProduct will have an Assembly BOM containing 1 component only, MainProduct (SKU-A). Auto-assembly/Kit and Disassembly are enabled. As the stock levels of assembled products with auto-assembly enabled are calculated from the availability of components, this means that each duplicate SKU product in Shopify can maintain consistent stock levels with the single MainProduct it is linked to in Cin7 Core.

How this is handled by the system is a little complex and is explained in detail in a separate article, including how this affects stock updates, sale orders, and catalog listings. Please see Duplicate SKUs in Shopify for detailed information.

Manage the Catalog

There are two possible statuses for products in the Catalog: Not Listed and Listed.

Note: Updating products from the catalog will update the stock level in Shopify, regardless of the status of the Update Stock Levels in Shopify setting.

To list a product on Shopify:

  1. Click on the product in the Catalog tab.

  2. Select the Price Tier for that product.

  3. Choose which Shopify location(s) to list or update the product to.

    • Note: Choosing a location here will ensure that stock levels are correctly updated for that location. If there is no Shopify location selected, Shopify location will be mapped to stock from all Cin7 Core locations.

  4. In the pop-up window, click List on Shopify.

  5. Save your changes.
         

To update price tier on Shopify:

  1. Click on the product in the Catalog tab.

  2. In the pop-up window, change the Price Tier of the product. To manually change the Price Tier cost, you will need to go to the Product in Cin7 Core. See Pricing and Price Tiers for more information.

  3. Click Save or Update on Shopify.

To send updated product information to Shopify:

  1. Click on the product in the Catalog tab.

  2. Make any changes to the product management settings here if applicable (e.g. location mapping, allow backorder status). Any changes to the product information that have been made in Cin7 Core can be exported to Shopify by clicking Update on Shopify.

To unlist a product on Shopify:

  1. Click on the product in the Catalog tab.

  2. Click Unlink.

  3. Save your changes.

 

To remove a product from Shopify:

  1. Click on the product in the Catalog tab.

  2. Click Remove from Shopify.

  3. Click Save.

Bulk Listing

As well as listing products individually, products can be listed in bulk. If products are already listed, this action will update them.

When Use Buffer Inventory setting is enabled from the Setup tab, Sync Quantity and Buffer Inventory quantity will be added as fields to the Bulk Listing tables alongside stock availability. See Buffer Inventory for more information.

To list products on Shopify in bulk:

  1. Go to the Bulk Listing tab.

  2. Select products to upload in bulk. You can select products by Category, Brand, Family, Product Tag, Price Tier, Listing Status, Products Listed in (another sales channel or store), and through manual search.

Note: If you have multiple stores in another sales channel, e.g. two different Magento stores, these will be displayed separately in the list of sales channels from which products can be selected for upload.

  1. Choose which Shopify location(s) to list or update the product to.

    • Note: Choosing a location here will ensure that stock levels are correctly updated for that location. If there is no Shopify location selected, Shopify location will be mapped to stock from all Cin7 Core locations.

  2. Click List to upload all selected products.

  3. You can also select Unlist to remove selected products from Shopify or Unlink to break the link between Shopify product and Cin7 Core product (but not remove the product from Shopify).
         

 

WARNING! Do not use the Bulk Listing feature if you are only going to update stock levels in Shopify. Since bulk listing updates other information from Cin7 Core to Shopify aside from the product quantity, it may take longer than necessary. To update stock levels in Shopify, go to Integration → Shopify→ Catalog and click Update quantities in Shopify.

Buffer Inventory

Instead of showing actual inventory values in e-Commerce storefronts, many retailers prefer to display an estimated display quantity where there is a safe buffer stock on their backend to avoid overselling products. Cin7 Core allows for an inventory buffer on stock quantities pushed to Shopify, both for the whole channel and at the product level.

Buffer inventory levels for the whole channel are controlled from the Setup tab. Update Stock Levels in Shopify setting must be enabled.

  • Use Buffer Inventory: Displayed when Update Stock Levels in Shopify is enabled. Allows for an inventory buffer on stock quantities pushed to Shopify. Enabling this setting will enable the Buffer Inventory field.

  • Buffer Inventory: Displayed when Use Buffer Inventory is enabled. Enter an integer number of stock to act as a buffer. Sync Quantity passed to Shopify when updating stock levels will be equal to Actual Stock - Buffer Inventory.

 

When this setting is enabled, Sync Quantity and Buffer Inventory quantity will be added as fields to the Catalog and Bulk Listing tables alongside stock availability. However, sync quantities will only be updated in the channel if the user updates or lists a product.

Buffer Inventory for the whole channel can be overwritten by a product level buffer from either the Catalog or Bulk Listing page (Use buffer inventory must be enabled from the channel Setup tab). The product level buffer value will ALWAYS override the value set on the Setup tab. If the Setup tab buffer inventory  value is changed, this will not affect products with product level buffers.

Note: Product level inventory buffer is disabled by default. In the case of wanting to turn off inventory buffer for certain products only, the user will need to enable buffer inventory and enter a value to apply it to the whole catalog, THEN set product level buffer to 0 for those products, then update or list the item to apply changes.

If the user wishes to apply inventory buffer ONLY to one or more specific products, inventory buffer should be enabled on the Setup tab and set to 0. Then, product level buffer inventory can be enabled and configured for products from either the catalog or bulk listing page. You will need to list or update the item to apply changes.

On the Catalog page:

Click on a listed or unlisted item to open a pop-up window and slide Use Product Level Buffer Inventory to enable. You can then enter an integer value for Product level buffer which will overwrite the channel buffer value. You will then need to Update or List the product for the new stock level quantity to be displayed in the channel. Save and Close to continue.

  

On the Bulk Listing page:

Use this to update product level buffer for multiple items at once. Use the search box and filter options to filter items to list/update in bulk.

The Use Buffer Inventory menu allows you to Turn on product level setting, Remove product level setting, or Don't update existing setting.

Turning on product level setting allows you to then enter an integer value for Product level buffer. Click List to overwrite the channel buffer value for the filtered products with the product level buffer.

Selecting Remove product level setting, then List, will remove the product level setting from the filtered products and return them to the channel buffer inventory value.

Selecting Don't update existing setting will leave all buffer values, including product level buffer values, unchanged when updating listings or making a new listing.

  

Allow backorder of individual products

Cin7 Core Shopify integration has the option to globally enable/disable backordering of Shopify products with the setting Allow user to purchase item, even if it is no longer in stock. When the setting is enabled and a zero stock product is sold, Cin7 Core generates a backorder for the negative item quantity on Cin7 Core end. When it is disabled, the zero stock item cannot be sold through Shopify store even if the item is listed. However, backordering can also be enabled/disabled  at the product level.

Allow backorder status of a product can be viewed from the Catalog or Bulk Listing tab. By default, it will be set to match the Allow user to purchase item, even if it is no longer in stock setting.

  

Clicking a product to open the product management window will allow you to enable/disable backorder at the product level. This setting will override the global setting.  (e.g. if backorder is disabled globally, it can be enabled at the product level and vice versa.)

Note: Only products with an assigned supplier can be backordered.


This setting can be edited for several products at once from the Bulk Listing tab. There are three options: Allow backorder, Don't Allow, or Don't update existing setup.

  

Orders and Sales

Processing Pending Orders

When a Shopify store is connected to Cin7 Core, automatic notifications are triggered whenever the following happens:

  • Shopify Order is created

  • Shopify Order is fulfilled

  • Shopify Order is paid

  • Shopify Order is cancelled

  • Shopify Order is deleted.

 

Depending on the Order Capture setting selected, Cin7 Core will capture a Shopify Order and save it as a pending order when the Order is created, fulfilled or paid. Sometimes it takes up to 10 minutes for the order to be picked up by Cin7 Core because Shopify may send notifications with some delay.

Orders that have already been exported to Cin7 Core can no longer be modified in Shopify. To modify an order you will need to void/cancel the sale in Cin7 Core and re-import the modified order.

Whenever a sale is captured from Shopify, it is first placed into Pending Orders, and stock is allocated immediately. Cin7 Core imports new orders immediately as individual sale orders (if No Consolidation is selected in the Integration Settings) or once a day as a consolidated sale order (if Daily Consolidation is selected).

Note: During sale events, there can be a large spike of transactions created within a very short time period. This requires a large number of queries to sync all of the orders to Cin7 Core. Shopify limitations on large numbers of queries can lead to delays in data loading and updates to related operations such as stock level updates, shipment updates, etc.

To handle these cases, an automatic backend configuration which checks for sales spikes and temporarily disables sale capturing and stock level updates to Cin7 Core when Shopify API capacity is close to being exceeded. The pending sales will be logged and then uploaded with a single API call at 5 minute intervals. Sales created during the disabled period will be uploaded to the “Logs” table with the newly implemented status, “To be loaded” to process them later.  Manual loading of sales is not affected and the setting will automatically be returned to normal when the sales spike is over.

If No Consolidation is selected, each Shopify sale is converted into an identical sale in Cin7 Core, keeping the same customer and shipping information. If Daily Consolidation is selected, the single daily sale task will use the customer selected in the Integration Settings, and customer, billing and shipping information imported from Shopify will be ignored.

When a Shopify order is cancelled or deleted, Cin7 Core automatically finds and voids the corresponding sale task, if created, or removes an associated pending order if the order has not yet been processed.

When processing orders, the logic is identical to that of the Cin7 Core UI. Dropshipping, Kitting and other important scenarios are implemented in the same way as through the Cin7 Core UI.

Pending Orders can be processed manually by clicking Process. They can then be viewed in the Log tab.

Sale order mapping

Cin7 Core Sale Order header fields

Will have value:

 

No Consolidation

Daily Consolidation

Online Sale

POS Sale

Online Sale

POS Sale

Customer and Customer Details (Contact, Phone, Email)

If Use Company as a Customer is disabled:                                                                                                   

  • Customer from Shopify sale will be used, if no customer is specified the default customer in Shopify Settings will be used.                                                                                              

 

If Use Company as a Customer is enabled:                                                                                                   

  • Company name from Shopify sale will be used, if no company name is given the customer from Shopify will be used, if no customer is specified the default customer in Shopify Settings will be used.                                                                                              

Default customer in Shopify Settings will be used.

Reference

Shopify Sale Order #.

Reference added with the date on which the sales were consolidated.                                                                                                

Ex: Shopify Sales for 28/05/2020                                                                                                

Billing Address

  • Billing address from Shopify will be used.

  • If customer is not provided in Shopify, billing address for the default customer will be used.

No billing address is specified for a POS sale.

Empty

No billing address is specified for a POS sale.

Price Tier

Sale Price Tier specified in Shopify Settings.

 

Terms

Customer's Payment Term

 

Sales Rep

 

 

  • Sales Representative Name specified in Shopify Settings.

  • If Sales Representative name is not specified, Shopify store name will be used.

Account

 

 

  • Optional Revenue Account specified in Shopify Settings.

  • If Optional Revenue Account is not specified, Customer's sales account will be used.

Tax Rule

Will be set according to Tax Rule Mapping in Shopify settings.

 

Invoice #

Generated automatically by Cin7 Core.

 

Invoice Date

Shopify sale order creation date.

 

Due Date

Calculated from Invoice Date + Payment Term

 

Location

 

 

  • If Shopify sale has location value and this location is mapped to a Cin7 Core location, this Cin7 Core location will be used.

  • Otherwise if order routing is enabled, the field will have value determined by order routing.

  • Otherwise if Shopify sale has fulfillment and Shopify location is mapped to a Cin7 Core location, this Cin7 Core location will be used.

  • Otherwise default Shopify location for online sales will be used.

Date

Shopify sale order creation date.

 

Shipping Address

  • Shipping address from Shopify will be used.

  • If shipping address not specified, billing address from Shopify will be used.

  • If customer is not provided, default customer shipping address will be used.

No shipping address is specified for a POS sale.

Empty.

No shipping address is specified for a POS sale.

Ship to Company

Company name from Shopify if provided.

Not specified.

Ship to Contact

Customer contact name from Shopify if provided.

Not specified.

Shipping Notes

Shopify notes and shipping contact phone if provided and if differs from billing contact phone.

Empty.

Comments

Shopify notes.

Contains all sale order numbers that were consolidated.

Required By

Date of Cin7 Core order processing.

Shopify sale order creation date.

Carrier/Service

  • Shopify carrier information will be used.

  • If no Shopify carrier information is provided, Free Shipping will be used.

In store pickup

  • Shopify carrier information will be used.

  • If no Shopify carrier information is provided, Free Shipping will be used.

 

In store pickup.

Shopify order editing

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.

Downloading Customers

Customers can be loaded from Shopify to Cin7 Core in the Catalog tab by clicking Download → Customers.     

This function downloads all customers from Shopify to Cin7 Core. If a customer already exists in Cin7 Core, this function updates any details that have been changed in Shopify. As Cin7 Core automatically creates customers when processing sale orders (if the No Consolidation option is selected), this function is generally only used for testing purposes.

This function creates a customer in Cin7 Core with Contact, Billing and Business addresses captured from Shopify. Any customer tags in Shopify are imported to Cin7 Core.

Customers cannot be uploaded from Cin7 Core to Shopify.

Downloading Orders and Payments

Orders are automatically downloaded if their status in Shopify is changed (for example, a customer pays for an order).

Note: Generally, you do not need to trigger manual order download. However, you can use the manual Load Order option if an order was not captured by Cin7 Core or to load historical sales.

Any imported order is saved to the Pending Orders section. It is a temporary storage of all sales and payments in Cin7 Core. If an order already has an entry in the Log (i.e. was imported previously), it will be skipped. This guarantees that no duplicate sales will be created by Cin7 Core. This also means we do not capture changes made to Orders once these have been captured.

While saving orders, Cin7 Core captures customer information, billing, and shipping addresses. All line items are captured together with quantities, prices, and totals. Total order discounts are applied as additional charges and are distributed by product lines in order to calculate correct taxes and reduce the chance of discrepancy.

Shipping and handling are also saved as additional charges in the Sale invoice under Shipping.

If a Payment Account has been specified in the Integration Settings, Cin7 Core will always assign associated payments to the captured Shopify orders.

When a Shopify order is canceled, Cin7 Core automatically finds and voids the corresponding sale task if already created as a Sale Order or just removes the associated pending order if not yet processed.

The final step in the order download is to trigger an update of stock levels in other Shopify stores and other connected ecommerce channels.

Duties and duty taxes

When goods are sold to a customer in a different country, duties may be charged. Duties are an Advanced Mode feature in Shopify. Duties are taxed and both duties and duty tax are returned to the customer during refund.

Duty amount and duty taxes are gathered from order lines and aggregated before syncing to Cin7 Core. These amounts will be added to the sale in Cin7 Core as an Additional Charge and its taxes. The same process will occur when processing refunds and issuing credit notes.

Discounts and discount codes

Cin7 Core does not perform any discount calculation, it simply captures the discount amount from Shopify and imports it with the order.

Discounts can be brought through to Cin7 Core as an additional charge, or applied as a product price reduction. This is controlled by the setting Add a discount as.

  • If Price reduction is selected, once the total value of item discounts has been applied as product price reductions, any remaining discount value is applied to the order as an additional charge. Discounts which are applied to a single item will show the item, price, and discount applied, but will not show the discount code name.

  • If Additional charge is selected, the total discount will be split among each product as additional charges and relevant taxes will be applied.

Order-level discounts are captured and imported to the Additional charges section of the sale.

  • If the setting Bring discount codes from Shopify is enabled in Cin7 Core, unique service products are created for each unique discount code in Shopify applied to a sale and imported.

  • If this setting is disabled, an additional charge will be created with the description 'Discount'.

  • When multiple discount codes are applied to the same order, we are unable to show individual discount codes within Core. This is because Shopify does not reveal this information in the data sent with the order. The total discount amount will be shown instead.

Load fulfillment data from Shopify

Cin7 Core allows loading all fulfillment data from Shopify to auto-fill fields for Cin7 Core pick, pack, and ship. When an order is fulfilled in Shopify, new or existing orders in Cin7 Core will be updated with item pick location, shipment address, date, packing info, and carrier for every item in the order. Tracking numbers are not loaded to Cin7 Core.

Pick, Pack, and Ship are authorized automatically in Cin7 Core and stock levels in Cin7 Core are updated. If there is not sufficient stock in Cin7 Core to execute the pick, the pick will not be completed. Use our notifications module to notify the responsible person via email, by setting an alert for Errors occurred while processing eCommerce sales.

Deleting a fulfillment in Shopify voids the fulfillment in Cin7 Core.

Note: This option will download fulfillment information to Cin7 Core from Shopify but Cin7 Core will NOT update fulfillment details and statuses in Shopify.

Non-inventory and Drop-ship items in an order will be fulfilled according to Shopify rules but customer details and sale information will be imported to Cin7 Core.

Preconditions:

  • In Shopify: Multi-location feature is enabled.

  • In Shopify: Multiple locations have been created and Shopify products have been assigned to multiple locations.

  • In Shopify: Shipment profiles are configured including -

    • Geographical zones

    • Delivery rates

    • Default package sizes

    • Product weights

  • In Cin7 Core: Pick, pack, and ship processing mode for online sales setting must be set to Load data from Shopify (Integration → Shopify → Setup → General Settings).

  • In Cin7 Core: Map Shopify locations to Cin7 Core locations.

When Load data from Shopify is enabled, orders containing auto-assembly will be triggered when the fulfillment order is captured and processed, and will use the fulfillment location (not sale order location).

Import sale order tags from Shopify

Shopify allows its users to create custom tags for sale orders which can be used to search and filter sales. Cin7 Core can optionally pull order tags from Shopify and map these tags to the additional attribute set assigned to your sales process. This is only applicable when No Consolidation is selected for orders.

To use this feature, you will need to assign a Default Attribute Set to Sales Process Customization (Settings → General Settings). The additional attribute set requires one empty field of type Text to store pulled tags from Shopify. We recommend naming this field Tags or other easily identifiable name.

Next, in Cin7 Core, go to Integrations → Shopify and select the Setup tab. In Account & Cash Settings, scroll to Import Shopify sale order tags to and select a field from the dropdown menu. This menu will show all fields of the attribute set assigned to your sales process.

Sale order tags in Shopify will be pulled during synchronization and stored in this field. In Cin7 Core, these will be displayed as plain text separated by commas. Tags can be deleted and/or edited on the Cin7 Core side.

Selecting Do not import instead of an attribute field will result in no tags being imported from Shopify. If there are no sale order tags in Shopify, this field will be left blank. If the Default Attribute Set is changed from Sales Process customization settings, this field will need to be remapped. If remapping does not take place and no suitable attribute set field is chosen, no sale tags will be imported.

Imported sale order tags can be displayed in sale reports (Sale Order Details, etc.). If this field is not visible, users should click the Configure Layout and add required fields to the report area.

  

Shopify tags will be displayed as below. Report filter can be used to filter for orders containing a specific tag.

  

Import sale order type from Shopify

Cin7 Core can pull the order type or source name from a Shopify order, identifying if an order was from online, POS or B2B, etc. This information is stored in the additional attribute set assigned to the sale process, and can be used to filter reports.

To use this feature, you will need to assign a default attribute set to sales process customization (Settings → General Settings). The additional attribute set requires one empty field of type text to store order type pulled from Shopify. We recommend naming this field an easily identifiable name.

Next, in Cin7 core, go to Integrations → Shopify and select the Setup tab. In Account and cash settings, scroll to Import Shopify order type to and select a field from the dropdown menu. This menu will show all fields of the attribute set assigned to your sales process. Sale order type in Shopify will be pulled in during synchronisation and stored in the field in plain text.

Selecting Do not import instead of an attribute field will result in no order type being imported from Shopify. If there are no sale order tags in Shopify, this field will be left blank. If the attribute set is changed, this field will need to be remapped. If remapping does not take place and no suitable attribute set field is chosen, no order types will be imported.

Imported sale order tags can be displayed in sale reports (Sale Order Details, etc.). If this field is not visible, users should click the Configure Layout and add required fields to the report area.

Import additional properties from Shopify

Shopify uses 3rd party applications which enables users to customize products when purchasing, such as size, color, engraving, etc. Users can download these additional properties from Shopify to the sale comment field in Cin7 Core.

Next, in Cin7 core, go to Integrations → Shopify and select the Setup tab. In Account and cash settings, scroll to Import additional properties from Shopify and enable the setting. Additional properties in Shopify will be pulled in during synchronisation and stored in the field in plain text.

  

Fulfillment for Shopify online sales

Cin7 Core checks the fulfillment location in Shopify when an online sale is loaded to Cin7 Core. If the Shopify fulfillment location is mapped to a Cin7 Core location in the Cin7 Core Shopify settings, this location will be used in Cin7 Core to fulfill the online sale.

The Location for online sales specified in the Shopify Setup (see Integration settings) tab will be used in the following cases:

  • The sale is captured by Cin7 Core before it has been fulfilled by Shopify

  • The Shopify location is not mapped to a Cin7 Core location

  • Location for online sales is set to Order Routing. Order routing locations will be used regardless of Shopify fulfillment location.

 

Note: Shopify fulfillment location can only be used in Cin7 Core if Shopify sale has already has a fulfillment.

Partial fulfillment

In Shopify customers have the ability to make several fulfillments of the same order, or, partial fulfillment. This setting enables partial fulfillment from Cin7 Core and export of detailed information about fulfilled items.

When this setting is disabled, only the order ID and tracking number are exported, and any partial fulfillment will mark an order as fulfilled in Shopify. This reflects the previous functionality before this setting was added so that users can maintain continuity if they wish.

The following actions must be taken to enable partial fulfillment:

  • Each Shopify location must be mapped to a single Cin7 Core location (1-1 mapping). Shopify locations cannot be left unmapped and cannot be mapped to All Locations in Cin7 Core. See Link Shopify locations to Cin7 Core locations for instructions.

  • Pick, pack, and ship processing mode for online sales setting (Setup tab) can be any value except Load data from Shopify.

  • Enable partial fulfillment setting (Setup tab) must be active.

Advanced sales can create multiple fulfillment as usual. Simple sales must be converted to an advanced sale in order to fulfill the order partially.  When Cin7 Core next synchronizes with Shopify, the order in Shopify will receive the status Partially fulfilled. Fulfillment information will be then be exported to Shopify.

Note: Fulfillment cannot be carried out in Shopify and Cin7 Core simultaneously. Either fulfillment is carried out in Cin7 Core or it is carried out in Shopify.

Fulfillment for Shopify POS orders

For Cin7 Core Shopify integrations, the same business could have their operations running through a website and POS for the same Shopify store. Shopify users would like to have different fulfillment processes defined for the sales initiated through Shopify POS compared to through their Shopify website.

Fulfillment method (auto pick, auto pick + pack, etc.) for online sales is managed from the integration setting

Pick, Pack and Ship Processing Mode for online sales on the Setup tab of the Cin7 Core Shopify integration screen.

Fulfillment status for Shopify POS orders is managed from Shopify POS settings. In Shopify POS settings, mark orders as fulfilled can be enabled or disabled (typically enabled if customers take their purchase with them upon payment). This fulfilled/not fulfilled status is passed to Cin7 Core when the sale is downloaded to Cin7 Core.

Note: 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. This is because Shopify POS does not pass the batch and serial number to Cin7 Core. These orders must be manually fulfilled in Cin7 Core. This is due to issues importing auto-fulfilled orders with serial/batch numbered products. Please use costing methods FIFO only or process orders manually.

Updating a Fulfillment in Shopify

When Shipment is authorized in Cin7 Core and the carrier specified, Cin7 Core will try to create order shipment information in Shopify. This will only work in the No Consolidation processing mode.

Refunds, Returns, and Cancellations

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, this will cause an error with restocking the unfulfilled items. These will appear on the Log as Pending fulfillment. 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, 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.

Refunds are processed in both No Consolidation and Daily Consolidation modes.

Restock a returned product at another location

Cin7 Core allows automatic restocking of goods to a location which differs from the Shopify location where the goods were sold.

Note: Cin7 Core locations and Shopify locations must be correctly mapped for auto-restocking.

When processing a refund in Shopify, the user is given the option to Restock item at: [Location]. When such a refund is captured and processed by Cin7 Core, Cin7 Core will generate an authorized transfer order from the sale location to the restock location to ensure correct stock levels are maintained.

  

Submit returns request via RMA portal

Customers can submit returns requests via Cin7 Core RMA Portal if your organization subscription has this feature, allowing customers to initiate the Cin7 Core RMA workflow, and view the status of their returns. This includes sales processed through connected eCommerce channels.

Any Cin7 Core customer can submit a returns requests via the returns portal with an order number or invoice number and email address simply by accessing the relevant URL. We recommend adding the URL to the return portal to your default sale email template sent to customers. Please see detailed instructions at RMA Portal for returns requests.

Please note that refunds/restocked processed in this way will not be automatically exported to the eCommerce channel, and will have to be added manually updated within the channel. You may prefer to use the returns workflow offered by Shopify if you do not need the additional RMA workflow features in Core.

Refunds for sales predating integration with Cin7 Core

Merchants with eCommerce channels occasionally have to process returns or refunds for a sale that predates integration of the eCommerce channel with Cin7 Core.

Sales and refund information is imported automatically from the eCommerce channel to Cin7 Core, but can also be manually imported via the Cin7 Core web portal. Historical refunds and returns are handled differently for each case.

Automatic import: Cin7 Core checks the sale order date against the date of integration with the eCommerce channel. If the sale order date predates the date of integration, credit note and refund are imported without the corresponding historical sale task.

  • A sale is created without order lines or invoice lines.

  • Credit note tab shows refunded items and if a refund was processed in the eCommerce channel it will be captured on this tab.

  • Restock tab is left empty and no stock adjustments are made.

Manual import: Manually loading orders from Shopify functions in the same way whether the sale took place before or after integration with Cin7 Core.

  • From the Pending Orders tab, click Load orders and select a date to load sales, including historical sales as Pending Orders. Process the sale associated with the refund.

  • The sale order with have order, invoice, pick, pack, and ship lines. It will also have credit note and restock lines.

  • User will have to perform a manual stock adjustment to correct any discrepancies from the refund.

Logs

Each captured Shopify order once saved to Pending Orders creates a Log entry to track the link between the Sale in Cin7 Core and in Shopify. This eliminates the possibility of creating duplicate order records when capturing the same order several times during manual order load.

Each Log entry has a link to the sale task in Cin7 Core. Depending on the settings selected by the user in the Setup tab, this sales task could be draft or authorized, one or more of the Pick, Pack and Ship tabs could be authorized, and payment could have been applied to the invoice.

Log entries allow you to see which Sale task reflects a particular Shopify sale. You also have the option to delete a Log entry manually. This will allow reprocessing an order if required. Deleting a log entry will not void or delete its associated sale task.

Note: During sale events, there can be a large spike of transactions created within a very short time period. This requires a large number of queries to sync all of the orders to Cin7 Core. Shopify limitations on large numbers of queries can lead to delays in data loading and updates to related operations such as stock level updates, shipment updates, etc.

To handle these cases, an automatic backend configuration which checks for sales spikes and temporarily disables sale capturing and stock level updates to Cin7 Core when Shopify API capacity is close to being exceeded. The pending sales will be logged and then uploaded with a single API call at 5 minute intervals. Sales created during the disabled period will be uploaded to the “Logs” table with the newly implemented status, “To be loaded” to process them later. Manual loading of sales is not affected and the setting will automatically be returned to normal when the sales spike is over.

  

Reloading Orders from Shopify

If for any reason you need to reload an order from Shopify, this can be managed from Cin7 Core. Cin7 Core allows loading historical sales data a maximum of one year old.

To reload an order from Shopify:

  1. Void the sale task. A record of this will be kept in Cin7 Core for reconciliation purposes, but the transactional data will be deleted.

  2. Return to the Shopify integration Log tab and delete the Log entry. This will allow the order to be recaptured from Shopify.

  3. Navigate to the Pending Orders tab and click Load Orders, making sure to set the date before the order to reload was made.

View Sales over time

You can view sales and returns over time for all connected stores as well as each individual Shopify store from Shopify Overview screen. Press Update after changing the filter options to refresh the display with the new information.

Choose between showing:

  • Sales Count: The cumulative sales count for the sales period. The sales count will not consider deleted and refunded sales, but every other sale will be considered.

  • Returns Count: The cumulative returned sales count of all the shopify stores (that belongs to the filtered period) that are connected to this integration.

  • Gross Sales: The cumulative sales values of all the shopify stores (that belongs to the filtered period) that are connected to this integration. The sales will not consider deleted and refunded sales, but every other sale will be considered.

  

Results can be filtered according to the following ranges:

  • Today

  • Yesterday

  • Last 7 days

  • Last 30 days

  • Last 90 days

  • Last month

  • Last year

  • Week to date

  • Month to date

  • Quarter to date

  • Year to date

  • Custom date range

Results in the filtered date range are grouped according to the following options:

  • Day

  • Week

  • Month

  • Hour of Day

  • Day of Week

Operations Log

Each time when the user or Cin7 Core download sales, an appropriate record is added to the operation log. It also contains information about results of downloading, including the count of processed, skipped or cancelled orders.

  

Common Troubleshooting Issues

  1. When attempting to list a product on Shopify, it may fail. This may be due to any of the following reasons:

    • Your product family contains more than 100 products/variations. Shopify has a limit of 100 variations per product. The first 100 variations will be successfully listed, but any additional variations will fail. The only way to resolve this is to restructure the Cin7 Core Product family to have less than 100 variations. You may need to remove listed variations from Shopify first.

    • Some of your products in a family have identical option values. Shopify requires that each variant in a product has a unique set of 3 option values.

    • 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 at the top. If there is such a button, click on it and wait for the connection between Cin7 Core and Shopify to be updated. Once the connection is working, that button should disappear.

  2. When attempting to update stock levels in Shopify, it may fail. This may be due to the following:

    • Shopify allows execution of up to 60 API calls per minute. To update the stock level for a single product/variant in a single location, one call is needed. If you have several locations and/or hundreds of products in each location, stock level updates may take longer than usual, if not fail entirely, due to this limitation. Cin7 Core is currently in discussions with Shopify on how to resolve this issue.

Was this article helpful?

Have more questions? Submit a request