Introduction to Shopify Indexing
To index your data, we call the Shopify API, and use Shopify webhooks.
When you install the app in your store, we automatically start indexing your data.
This is what we call a full reindex. You can trigger a full reindex, for any data type, in the Settings tab.
The app is designed to automatically keep your data up to date. We’re using Shopify webhooks to know when you make updates to your Shopify catalog and to immediately push the changes.
Blog posts are a special case. Shopify doesn’t provide webhooks for blog posts. To keep your search up to date, we do a full reindex of the articles every day. If you want your search results updated faster, you can trigger a full reindexing from your Settings tab.
To index your data while keeping your data consistent and respecting Shopify’s rate limiting, we have implemented an indexing queue: all your indexing jobs wait until they can be processed. You can see the number of queued indexing jobs in the Indexing tab of the application.
Whenever you notice that your data is not up to date, you should check the indexing queue. Every data packet that is either waiting to be or is actively being processed is listed here, alongside a progress bar.
When automatic updates are enabled, the app generates various Algolia indexing operations to keep your data in sync. We can infer how many indexing operations will be generated from the type of update received from Shopify:
- Product updates
The number of indexing operations generated for each product is equal to the number of variants for that product. For example, if the app receives updates for 5 products which have 4 variants each, the total number of indexing operations will be 20 (5 times 4).
- Collection updates
The number of indexing operations generated for each collection is equal to the 1 for updating the collection, plus the number of products in that collection. For example, if the app received updates for 2 collections which respectively have 20 and 30 products, the total number of indexing operations will be 2 for updating the collections themselves, and 50 for updating the products within the collections.
- Order updates
Each order update generates 1 indexing operation. For example, if the app received 20 order updates, it will generate 20 indexing operations.
When performing a full re-index, similar numbers apply:
- Full product re-index
The number of indexing operations generated is equal to the total number of published variants in the store.
- Full collection re-index
The number of indexing operations generated is equal to the total number of published collections, plus the number of products in those collections.