You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the Algolia app is handling just one-way sync from Saleor to Algolia. For deep integration between these two systems, like for user event tracking purposes, we need the ObjectId from Algolia oftentimes.
For example: Algolia can dynamically rank items differently based on popularity and other factors, even on the granularity of user level. To make that work, we need extensive user tracking on several places. Shop systems are often build on a combination of Saleor directly fetching and fetching from Algolia. This mixture makes it sometimes difficult in the event tracking, as you need to have the Algolia ObjectID available on every event. Having the Algolia objectId in the metadata of an item would be really handy, as this would allow us to query for it in the storefront.
This idea should be easy to implement, with not many side-effects, as every webhook update shows us, if we have a metadata entry for AlgoliaObjectId already there and just update it, if it is not there or different to the one we get returned from Algolia.
This change would allow us later also to add an optional new feature, that would send all purchase (order create) event to the Algolia recommend API, to allow server-side event tracking.
The text was updated successfully, but these errors were encountered:
Error handling → if metadata mutation fails, app must decide what status to report to Saleor. Either 2xx to ignore and accept missing data, or 5xx to ask Saleor to retry. If retry occurs, entire webhook will be called, including algolia call. This can lead to side effect: e.g. older data can overwrite newer write
Async webhook should get product variant metadata in subscription and avoid calling Saleor if it's already set (I assume Algolia ID is stable and doesn't change in time)
Documentation must be updated
Metadata key should be namespaced enough to reduce risk of override by other app. Eg. saleor-app-search:algolia-object-id - and documented
Currently, the Algolia app is handling just one-way sync from Saleor to Algolia. For deep integration between these two systems, like for user event tracking purposes, we need the ObjectId from Algolia oftentimes.
For example: Algolia can dynamically rank items differently based on popularity and other factors, even on the granularity of user level. To make that work, we need extensive user tracking on several places. Shop systems are often build on a combination of Saleor directly fetching and fetching from Algolia. This mixture makes it sometimes difficult in the event tracking, as you need to have the Algolia ObjectID available on every event. Having the Algolia objectId in the metadata of an item would be really handy, as this would allow us to query for it in the storefront.
This idea should be easy to implement, with not many side-effects, as every webhook update shows us, if we have a metadata entry for AlgoliaObjectId already there and just update it, if it is not there or different to the one we get returned from Algolia.
This change would allow us later also to add an optional new feature, that would send all purchase (order create) event to the Algolia recommend API, to allow server-side event tracking.
The text was updated successfully, but these errors were encountered: