Upgrade from 1.x to 2.x
Shopify has overtime added, changed and removed some features in the solution. To accommodate the changes in Shopify and make the Shopify Connecter up to date, some of the settings and mappings in the Shopify Connecter is removed or changed.
The Shopify Connector require some extra access scopes for the Shopify API. Ensure the API account has the right access scope as described in Shopify - Install | Shopify account
Import Variant Ids from Shopify
One of the biggest changes between the previous versions of the Shopify Connector and version 2 is the introduction of variant ids in Perfion.
In the same way that products have their Shopify ids in Perfion, variants now also have their Shopify ids in Perfion.
If you’re upgrading from an earlier version of the connector, your variants in Perfion does not have any Ids, and the first time the synchronization will run, all existing variants in Shopify will be deleted as their ids are unknown in Perfion.
To prevent this, it is recommended to export all of the variant ids from Shopify and import them into Perfion.
Shopify does not natively support exporting variant ids, but several apps in the Shopify App Store supports this. The process for doing this is described below
Install an app from the Shopify App Store that allows exporting variant ids
Ultimate Product ID Exporter is a free option, but as these apps are maintained by third parties, licenses and functionality are subject to change
Export all products and their variant ids.
Modify the exported file so it can be used as import into Perfion. In the file you should have variant SKU or variant Barcode as a unique identifier for the variants. The variant Id should be imported into the feature you use for SyncID for variants. You can delete the main products (your virtuals in Perfion) from the file
Import the variants and their ids
Now your variants in Perfion will match the correct variants in Shopify
E-commerce settings
The below settings are deprecated or changed
Setting | Description |
SyncType | The SyncType only control the product SyncType. Use MetafieldDefinitionSyncType and CategorySyncType to control Metafield Definition and Categories |
ShopifyApiVersion | Version is deprecated. The Shopify Connector will use the API version it is desigen for or the earliest stable version available |
ShopifyStoreAPIKey ShopifyStoreAPIPassword | The ShopifyStoreAPIKey and ShopifyStoreAPIPassword is deprecated. The Shopify Connector only support “Admin API access token“ which is set in the appsettings.json file. |
ShopifyStoreAPIAccessToken | The ShopifyStoreAPIAccessToken is moved to the appsettings.json as ShopifyApi.AccessToken. |
ConfigurationUpdateFrequencyInMin | The ConfigurationUpdateFrequencyInMin is deprecated. The Connector will update the configurations at any new synchronization cycle and it is not possible to update the configuration in a synchronization cycle. |
SyncFrequencyInMin, DataMaxAgeInMin | To control the frequency of synchronization cycles, the SyncFrequencyInMin and DataMaxAgeInMin is deprecated. Use the FullSyncFrequencyInMin and DeltaSyncFrequencyInMin insted. |
SyncCategories | The SyncCategories is deprecated. If a category is mapped in the Category Mapping, the categories will be synchronized. |
UpdateUnpublishedItems | The UpdateUnpublishedItems is deprecated. The Product Mapping “Publish” is deprecated. Use Status in Product Mapping to control the status of the Product. |
KeepExistingVariantData | The KeepExistingVariantData is deprecated. The Shopify Connector will always update products and variants as they are in Perion. |
SuppressMissingMetafieldWarnings | The SuppressMissingMetafieldWarnings is deprecated. |
Languages | The Languages will now use all the languages, former it was only the first language. |
ShopifyDefaultLanguage | The ShopifyDefaultLanguage is a new setting and need to be defined |
Category Mapping
Mapping | Description |
KeyField mapping | The KeyField mapping need to be From @Id To Key |
SyncCollection | The SyncCollection is deprecated. All Collections will be synchronized. |
SyncMetafields | The SyncMetafields is deprecated. If Metafield are mapped, the images will be synchronized. |
SyncKeepDeletedMetafields | The SyncKeepDeletedMetafields is deprecated. Use the setting MetafieldDefinitionSyncType instead. |
Published | The Publish is deprecated. Use the SalesChannels instead. |
PublishedScope | The PublishedScopeis deprecated. Use the SalesChannels instead. |
SyncID and SyncDate | The SyncID and SyncDate is required |
Product Mapping
Mapping | Description |
KeyField mapping | The KeyField mapping need to be From @Id To Key |
SyncType | SyncType is deprecated. It is only possible to control the SyncType in the settings and not at the Product. |
SyncProduct | The SyncProduct is deprecated. If a product is a part of the E-Commerce filter, the product will be created in Shopify. |
SyncDefaultVariant | Shopify has added the possibility to create products without variants. The DefaultVariant concept is deprecated in the Shopify Connector. |
SyncVariants | The SyncVariants is deprecated. All variants will be synchronized. |
SyncCollections | The SyncCollections is deprecated. If the Collections/RelatedCategory is mapped at the Product, the Collection will be synchronized. |
SyncImages | The SyncImages is deprecated. If Images are mapped, the images will be synchronized. |
SyncMetafields | The SyncMetafields is deprecated. If Metafield are mapped, the images will be synchronized. |
SyncKeepDeletedMetafields | The SyncKeepDeletedMetafieldsis deprecated. All Metafields will be synchronized. |
Metafield|global|title_tag|string Metafield|global|description_tag|string | The Metafield “global title_tag” is deprecated. Use SEO title and description instead. |
Publish | The Publish is deprecated. Use the Status and Sales Channels instead. |
PublishedScope | The PublishedScopeis deprecated. Use the SalesChannels instead. |
DefaultVariantPrice DefaultVariantCost DefaultVariantSKU DefaultVariantBarcode DefaultVariantQuantity DefaultVariantWeight
| Shopify has added the possibility to create products without variants. The DefaultVariant concept is deprecated in the Shopify Connector. Use the fields without DefaultVariant instead. |
DefaultVariantOption<n> | Shopify has added the possibility to create products without variants. The DefaultVariantOption<n> is deprecated. |
Variant Mapping
Mapping | Description |
SyncID and SyncDate | The SyncID and SyncDate are new at the Variant mapping and are required mappings. |
SyncVariant | The SyncVariants is deprecated. All variants will be synchronized. |
SyncMetafields | The SyncMetafields is deprecated. If Metafield are mapped, the images will be synchronized. |
SyncImage SyncAllImages | The SyncImages is deprecated. If Images are mapped, the images will be synchronized. |
OldInventoryQuantity | The OldInventoryQuantity is deprecated. |
InventoryQuantityAdjustment | The InventoryQuantityAdjustment is deprecated. |
FulfillmentService | The FulfillmentService is deprecated. |
InventoryManagement | The InventoryManagement is deprecated. |
DoNotUseDefaultQuantities | The DoNotUseDefaultQuantities is deprecated. |
RelocateIfNecessary | The RelocateIfNecessary is deprecated. |
DisconnectIfNecessary | The DisconnectIfNecessary is deprecated. |
Grams | The Grams is deprecated. |
CountryCodeOfOrigin | The CountryCodeOfOrigin is deprecated. |
HarmonizedSystemCode | The HarmonizedSystemCode is deprecated. |
ProvinceCodeOfOrigin | The ProvinceCodeOfOrigin is deprecated. |
Metafield types
Some of the metafield types are renamed.
Old type | New type |
Bool | boolean |
DateTime | date_time |
Decimal | number_decimal |
FileRef | file_reference |
Int | number_integer |
Integer | number_integer |
MultiLineText | multi_line_text_field |
PageRef | page_reference |
ProductRef | product_reference |
SingleLineText | single_line_text_field |
String | single_line_text_field. |
VariantRef | variant_reference |