Skip to main content

Duplicate SKUs in Shopify

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 until the user changed 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. This functionality will apply to any duplicate SKUs in Shopify regardless of how the duplicates have occurred.

How downloads of duplicate SKUs is handled by the system is a little complex and is explained in detail below, including how this affects stock updates, sale orders, and catalog listings.

Prerequisites

 

Enable import of duplicate SKUs

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 and cash settings, enable Import duplicate SKUs from Shopify. Cin7 Core uses the auto-assembly/kit feature to process duplicates.

Download of duplicate SKUs

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.

 

In practice, this looks like this:

  1. Three Shopify products with the same SKU (SKU - 456) are downloaded to Cin7 Core for the first time. These are actually the same product, but the SKU has been duplicated in Shopify - this is a common occurrence when third party apps create new Shopify items for the same SKU but with different price variants. We will use this scenario for our example:

    1. IKEA Chair (SKU - 456) - $20 price

    2. IKEA Chair (SKU - 456) - $15 price

    3. IKEA Chair (SKU - 456)- $12 price

  2. Next, there are two possible scenarios, which are handled slightly differently:

    1. No direct link: No product in Cin7 Core is mapped to any of the products with duplicate SKUs in Shopify when the Shopify catalog is downloaded to Cin7 Core.

    2. Direct link: A product in Cin7 Core is mapped to one of the products with duplicate SKUs in Shopify when the Shopify catalog is downloaded too Cin7 Core.

      • Note: This scenario also applies when a Shopify order contains duplicate SKU products which have not previously been downloaded to Cin7 Core, as Cin7 Core will import and map the first duplicate SKU product it encounters.

  3. No direct link:

    1. If there is no product called IKEA Chair in Cin7 Core, then Cin7 Core will take any of the duplicate SKUs above (usually the first one downloaded) and use it to create the MainProduct in Cin7 Core. This product will appear as usual in listings, sale orders, fulfillments - this will be explained further below

    2. Cin7 Core will also create three KitProducts, using the unique Shopify VariantIDas the SKU in Cin7 Core. These products  are marked as not for sale and will not appear for sale orders and fulfillments - this will be explained further below.

      • IKEA Chair (SKU in Cin7 Core - 986902345)

      • IKEA Chair (SKU in Cin7 Core - 986432345)

      • IKEA Chair (SKU in Cin7 Core - 456789021)

  4. Each KitProduct is connected to the MainProduct via assembly BOMs with the MainProduct as the single component. Auto-assembly/Kit and Auto-disassembly are enabled.
         

  5. Direct link:

    1. If there is already a product in Cin7 Core which is mapped to one of the duplicate SKUs in Shopify, then this will be used as the MainProduct in Cin7 Core. This product will appear as usual in listings, sale orders, fulfillments - this will be explained further below. In this example, IKEA Chair (SKU - 456) - $20 price was already downloaded to Cin7 Core.

    2. When Cin7 Core later encounters duplicate SKUs of the already mapped product, Cin7 Core will then create KitProducts, using the unique Shopify VariantID as the SKU in Cin7 Core, for any other  These products  are marked as not for sale and will not appear for sale orders and fulfillments - this will be explained further below. In this example, that is just two KitProducts.

      • IKEA Chair (SKU in Cin7 Core - 986432345)

      • IKEA Chair (SKU in Cin7 Core - 456789021)

  6. Each KitProduct is connected to the MainProduct via assembly BOMs with the MainProduct as the single component. Auto-assembly/Kit and Auto-disassembly are enabled.

  7. This allows every duplicate SKU in Shopify to be connected in such a way that they are treated as a single product (MainProduct) in Cin7 Core for consistent stock keeping, using the KitProducts as an intermediary.

 

Next, we will explain how this affects Cin7 Core features such as sales, listings, and fulfillments.

Catalog and bulk listing

KitProducts will appear on both the Catalog and Bulk listing tabs with Listed status, and retain their link with the duplicated product SKUs in Shopify. MainProduct is displayed differently for no direct link and direct link scenarios, as explained below:

In our No direct link example, this will look like:

  • IKEA Chair (SKU in Cin7 Core - Shopify 986902345) will be visible in the Catalog and Bulk listing tabs with status Listed, mapped toIKEA Chair (SKU - 456) in Shopify.

  • IKEA Chair (SKU in Cin7 Core - Shopify 986432345) will be visible in the Catalog and Bulk listing tabs with status Listed, mapped toIKEA Chair (SKU - 456) in Shopify.

  • IKEA Chair (SKU in Cin7 Core - Shopify 456789021) will be visible in the Catalog and Bulk listing tabs with status Listed, mapped toIKEA Chair (SKU - 456) in Shopify.

  • MainProduct (IKEA Chair (SKU - 456)) will be visible in the Catalog and Bulk listing tabs with status Unlisted. Attempting to list this product will produce an error.

 

In our Direct link example, this will look like:

  • IKEA Chair (SKU in Cin7 Core - Shopify 986432345) will be visible in the Catalog and Bulk listing tabs with status Listed, mapped toIKEA Chair (SKU - 456) in Shopify.

  • IKEA Chair (SKU in Cin7 Core - Shopify 456789021) will be visible in the Catalog and Bulk listing tabs with status Listed, mapped toIKEA Chair (SKU - 456) in Shopify.

  • MainProduct (IKEA Chair (SKU - 456)) will be visible in the Catalog and Bulk listing tabs with status Listed.

 

MainProduct (IKEA Chair (SKU - 456)) will be used when listing the product on other eCommerce channels (WooCommerce, Amazon, etc.)

In this example, the duplicated SKUs in Shopify have different prices. The first Shopify product downloaded will be used as the MainProduct and populate price tier 1 in Cin7 Core. If the price in Shopify differs from the MainProduct, it will be as if the merchant sold the MainProduct with a discount/additional cost.

Unlinking a product

KitProducts will appear both on the Catalog and Bulk Listing tabs with status Listed. If a customer unlinks one of these products, it will disappear from the catalog and will not reappear without re-downloading the entire catalog from Shopify. Re-downloading the catalog from Shopify will restore the KitProduct to the catalog, the Listed status, and the link between the KitProduct and the Shopify product.

In the Direct link scenario, unlinking the MainProduct will simply remove the link between the MainProduct in Cin7 Core and the Shopify product. The link between these products will be restored the the MainProduct is listed again.

If the product catalog is re-downloaded from Shopify while MainProduct is unlinked to the Shopify product, a new KitProduct will be created, as in the No Direct Link scenario.

Unlisting or removing a product

Unlisting a product from the catalog removes this product on the Shopify side. As there is no longer a product with the same variantID, the link between the KitProduct and Shopify product is broken, and the KitProduct will no longer appear in the catalog in Cin7 Core.

Re-downloading the Shopify product catalog will not recreate the KitProduct or the link, as there is no equivalent Shopify product. Re-creating a product in Shopify with the same SKU will create a new KitProduct upon download, and not re-establish the link.

It will not be possible to re-list a product that was unlisted in Cin7 Core and map it back to the same product in Shopify, attempting to do so will produce an error.

Sale orders

Whenever a Shopify product duplicate SKU (e.g. IKEA Chair (SKU - 456)) is sold and the sale task is passed to Cin7 Core, Cin7 Core finds the linked KitProduct (IKEA Chair (SKU in Cin7 Core - Shopify 986902345)). KitProducts are flagged as Not for Sale, so it will be auto-assembled from MainProduct (IKEA Chair (SKU - 456)). If multiple duplicate SKU products are part of the order, they will all be auto-assembled from the same MainProduct.

The sale tasks in the pending orders tab and the sale order will show MainProduct (IKEA Chair (SKU - 456)) and the stock quantity will be updated for MainProduct accordingly. The KitProduct/s do not appear in the sale. As assembly/disassembly is automatic, this takes place without any assembly orders.

Stock updates

Shopify products will be mapped to the KitProduct in Cin7 Core with the MainProduct as its only component. When auto-assembly/disassembly is enabled, the stock of the assembled product is calculated according to component availability. Thus, the KitProduct and MainProduct will have the same stock quantity.

When a unit of MainProduct is sold in Cin7 Core or via another sales channel, the stock will be updated via the KitProduct from Cin7 Core to Shopify for all Shopify products by a single value.

When any duplicate SKU in Shopify mapped to a KitProduct is sold via Shopify, the stock of MainProduct in Cin7 Core will be updated accordingly.

Let's return to our example.

  • We had 15 pairs of IKEA Chair (SKU - 456) as the MainProduct in Cin7 Core. 5 pairs are sold, leaving 10 pairs. Cin7 Core will update all Shopify products IKEA Chair - $20, IKEA Chair - $15 and IKEA Chair - $12 (SKU - 456) mapped to this MainProduct IKEA Chair (SKU - 456) with this updated quantity (10 pairs of Jeans).

 

When Update stock levels in Shopify is enabled, stock updates in Cin7 Core will overwrite the current stock levels in Shopify for Shopify products.

Note: We recommend only making stock adjustments for MainProducts. Making stock adjustments for KitProducts can cause incorrect stock numbers in both Cin7 Core and Shopify.

Fulfillment

Fulfillments of entire sale orders containing products with duplicate SKUs do not require any additional user actions or prerequisites to function correctly.

Partial fulfillment of sale orders containing products with duplicate SKUs have the following requirements:

  1. Enable partial fulfillment must be on (Integrations → Shopify → [select store] → Setup → General Settings)

  2. Shopify locations must be mapped 1-1 with Cin7 Core locations

 

KitProduct is not for sale, so MainProduct (component of KitProduct) appears in the sale and fulfillment information.

The sale order will display only the mapped MainProduct and the sale quantity to be fulfilled. As products in Shopify with duplicate SKUs are in fact one product, Cin7 Core will fulfill these products one by one and send this fulfillment information to Shopify as soon as the ship stage is authorized.

Summary table

Here is a short summary of how KitProducts/MainProducts are treated in each of these procedures.

Procedures

KitProduct

MainProduct

Stock updates

KitProducts will update the Shopify products (SKU-A) linked to them with the stock values of the MainProduct

Stock update values will be transferred to KitProducts via assembly BOMs

Sale order (SO)

Not for sale, will not appear on sale orders

Will appear both in sale tasks (Pending orders tab) and in sale order in Cin7 Core

Listing

Will be marked as Listed on the Catalog tab and on the Bulk listing tab

No direct link

  • Will be marked as Unlisted on the Catalog tab and on the Bulk listing tab

 

Direct link

  • Will be marked as Listed on the Catalog tab and on the Bulk listing tab

Fulfillment

Not for sale, will not appear on sale order or fulfillment information.                                                                           

KitProduct is not for sale, so MainProduct (component of KitProduct) appears in the fulfillment information for both partial and whole order fulfillment.                                                                          

Was this article helpful?

Have more questions? Submit a request