Syncing Data
Updated over a week ago

Shopify Data Sync

Products & Manual Collections Creation/Updates (Webhooks)

Manual collections and Products created will trigger webhooks which will sync the new product/collection to Shogun Frontend as soon as the webhook is received and the job can be processed.

Attributes that are updated via webhooks are the product title, product featured image, product description (HTML field), variant titles, variant inventory quantity, and variant prices.

This typically will sync the data in under 5 minutes, but depending on how long Shopify webhooks take to send the update and how many jobs are being processed at the time it could potentially take longer.

🚧 Shopify does not guarantee triggering of webhooks so there is the potential for a webhook not to be sent and hence it would never be received.

🚧 All updates made to products & manual collections will require a user to publish the store before the update appears on the live site.

🚧 The descriptionHtml is updated via webhook but the description is not and relies on the cron sync. These are two different data points from Shopify and they can differ. Ensure you are editing both or only using one or the other if you always want them to be the same.

Automated Collections Updates (Data Sync)

Automated collection updates do not trigger webhooks and hence we rely on a background job to keep these in sync. This job is run at 10-minute intervals and will capture all automated collections updated since the last run of the job. Typically this will ensure automated collections are updated within 10-20 minutes of a collection update depending on the number of background jobs to process.

🚧 All updates made to automated collections will require a user to publish the store before the update appears on the live site.

Data missing from webhooks

Certain data points that can be imported directly are not updated via a webhook. For example product MetaFields. For this data, when a product webhook is received the last known product MetaFields is retained. The updated MetaFields are retrieved when the data sync job is run every 10 minutes.

For example:

  • Product A. Title: "Orange", MetaFields: "One", "Two" (Shopify)

  • Product A. Title: "Orange", MetaFields: "One", "Two" ( FE)

1. The product is updated on Shopify. The title is changed to "Apple" and a MetaField "Three" is added.

  • Product A. Title: "Apple", MetaFields: "One", "Two", "Three" (Shopify)

  • Product A. Title: "Orange", MetaFields: "One", "Two" ( FE)

1.1. Shopify would send a webhook with the updated product data which would include the new title but would NOT include the new MetaFields.

FE will process the webhook and update the product, retaining the last known MetaFields.

The product data will now look like this:

  • Product A. Title: "Apple", MetaFields: "One", "Two", "Three" (Shopify)

  • Product A. Title: "Apple", MetaFields: "One", "Two" ( FE)

2. The data sync is run every 10 minutes, which will grab all of the product data including the new MetaFields. The product is then updated with all of the product data. At this point the product data is in sync between Shopify and FE including the MetaField

  • Product A. Title: "Apple", MetaFields: "One", "Two", "Three" (Shopify)

  • Product A. Title: "Apple", MetaFields: "One", "Two", "Three" ( FE)

The process outlined from 1 to 2 can take up to 20 minutes but it's dependant on a couple of factors:

  • When the update occurs

  • How many updates need to be processed by the background job can affect the processing time.

🚧 All updates made to these fields will require a user to publish the store before the update appears on the live site.

Live Field Updates

Product Inventory in-stock or out-of-stock values are updated when a webhook for a product update is received. The webhook will trigger a new background job which will update an inventory JSON file which is then accessed by the live site.

Check our documentation about the useInventory hook, for Shopify and BigCommerce.

🚧 Inventory changes are the only changes made to a product that do not require a publish event in the store and should take no longer than 90 seconds to reflect on the live storefront.

BigCommerce Data Sync

Products & Categories (Webhooks)

Products and categories when updated on BigCommerce will trigger a webhook call that Shogun Frontend can process, and update the data on the CMS.

It's important to note that not all updates on BigCommerce trigger the webhooks. For a more detailed list of which fields trigger a webhook, you can check out the list of update events for products and categories in BigCommerce's documentation.

The data should be in sync within 5 minutes for the majority of the cases but depending on how long BigCommerce takes to send the webhooks and how many jobs are being processed it may take longer.

Products & Categories (Data Sync)

Not all updates within the BigCommerce backend trigger webhooks, therefore we rely on a background job to periodically sync changes. This job is run at 1-hour intervals and will perform a full product catalog import. We are working closely with BigCommerce to enhance this process in the near future.

Brands

Brands do not trigger webhooks. In order to keep them up-to-date on Shogun Frontend, we periodically sync the brands every hour.

When a new brand is created and subsequentially added to a product, we will create the brand when the product is updated.

Live Field Updates

Product Inventory in-stock or out-of-stock values are updated when a webhook for a product update is received. The webhook will trigger a new background job which will update an inventory JSON file which is then accessed by the live site.

🚧 Inventory changes are the only changes made to a product that do not require a publish event in the store and should take no longer than 90 seconds to reflect on the live storefront.

Did this answer your question?