Skip to content

Commit 87530d7

Browse files
committed
MAGE-881: Sync query token with events tokens
1 parent 8dee550 commit 87530d7

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

view/frontend/web/insights.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ define(
1616
hasAddedParameters: false,
1717
useCookie: false,
1818

19+
// Although events can accept both auth and anon tokens, queries can only accept a single token
20+
determineUserToken() {
21+
return algoliaAnalytics.getAuthenticatedUserToken() ?? algoliaAnalytics.getUserToken();
22+
},
23+
1924
track: function (algoliaConfig, partial = false) {
2025
this.config = algoliaConfig;
2126
this.defaultIndexName = algoliaConfig.indexName + '_products';
@@ -68,34 +73,34 @@ define(
6873
}
6974
},
7075

76+
applyInsightsToSearchParams(params = {}) {
77+
if (algoliaConfig.ccAnalytics.enabled) {
78+
params.clickAnalytics = true;
79+
}
80+
81+
if (algoliaConfig.personalization.enabled) {
82+
params.enablePersonalization = true;
83+
params.userToken = this.determineUserToken();
84+
}
85+
86+
return params;
87+
},
88+
7189
addSearchParameters: function () {
7290
if (this.hasAddedParameters) {
7391
return;
7492
}
7593

76-
algolia.registerHook('beforeWidgetInitialization', function (allWidgetConfiguration) {
77-
allWidgetConfiguration.configure = allWidgetConfiguration.configure || {};
78-
if (algoliaConfig.ccAnalytics.enabled) {
79-
allWidgetConfiguration.configure.clickAnalytics = true;
80-
}
81-
82-
if (algoliaConfig.ccAnalytics.enabled || algoliaConfig.personalization.enabled) {
83-
allWidgetConfiguration.configure.enablePersonalization = true;
84-
allWidgetConfiguration.configure.userToken = algoliaAnalytics.getUserToken();
85-
}
94+
algolia.registerHook('beforeWidgetInitialization', (allWidgetConfiguration) => {
95+
allWidgetConfiguration.configure = algoliaInsights.applyInsightsToSearchParams(
96+
allWidgetConfiguration.configure
97+
);
8698

8799
return allWidgetConfiguration;
88100
});
89101

90-
algolia.registerHook('afterAutocompleteProductSourceOptions', function (options) {
91-
if (algoliaConfig.ccAnalytics.enabled) {
92-
options.clickAnalytics = true;
93-
}
94-
if (algoliaConfig.personalization.enabled) {
95-
options.enablePersonalization = true;
96-
options.userToken = algoliaAnalytics.getUserToken();
97-
}
98-
return options;
102+
algolia.registerHook('afterAutocompleteProductSourceOptions', (options) => {
103+
return algoliaInsights.applyInsightsToSearchParams(options);
99104
});
100105

101106
this.hasAddedParameters = true;

0 commit comments

Comments
 (0)