@constructor-io/constructorio-node 5.8.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/modules/tracker.js +20 -0
- package/src/types/tracker.d.ts +3 -1
package/package.json
CHANGED
package/src/modules/tracker.js
CHANGED
|
@@ -1061,6 +1061,7 @@ class Tracker {
|
|
|
1061
1061
|
* @param {string} [parameters.resultId] - Recommendation result identifier (returned in response from Constructor)
|
|
1062
1062
|
* @param {string} [parameters.section="Products"] - Results section
|
|
1063
1063
|
* @param {object} [parameters.analyticsTags] - Pass additional analytics data
|
|
1064
|
+
* @param {string[]|string|number} [parameters.seedItemIds] - Item ID(s) used to generate recommendations
|
|
1064
1065
|
* @param {object} userParameters - Parameters relevant to the user request
|
|
1065
1066
|
* @param {number} userParameters.sessionId - Session ID, utilized to personalize results
|
|
1066
1067
|
* @param {string} userParameters.clientId - Client ID, utilized to personalize results
|
|
@@ -1087,6 +1088,7 @@ class Tracker {
|
|
|
1087
1088
|
* url: 'https://demo.constructor.io/sandbox/farmstand',
|
|
1088
1089
|
* podId: '019927c2-f955-4020',
|
|
1089
1090
|
* numResultsViewed: 3,
|
|
1091
|
+
* seedItemIds: ['UIH976']
|
|
1090
1092
|
* },
|
|
1091
1093
|
* {
|
|
1092
1094
|
* sessionId: 1,
|
|
@@ -1117,6 +1119,8 @@ class Tracker {
|
|
|
1117
1119
|
numResultsViewed = num_results_viewed,
|
|
1118
1120
|
items,
|
|
1119
1121
|
analyticsTags,
|
|
1122
|
+
seed_item_ids,
|
|
1123
|
+
seedItemIds = seed_item_ids,
|
|
1120
1124
|
} = parameters;
|
|
1121
1125
|
|
|
1122
1126
|
if (!helpers.isNil(resultCount)) {
|
|
@@ -1157,6 +1161,12 @@ class Tracker {
|
|
|
1157
1161
|
bodyParams.analytics_tags = analyticsTags;
|
|
1158
1162
|
}
|
|
1159
1163
|
|
|
1164
|
+
if ((typeof seedItemIds === 'string' || typeof seedItemIds === 'number') && String(seedItemIds).length) {
|
|
1165
|
+
bodyParams.seed_item_ids = [String(seedItemIds)];
|
|
1166
|
+
} else if (Array.isArray(seedItemIds) && seedItemIds.length) {
|
|
1167
|
+
bodyParams.seed_item_ids = seedItemIds.map(String);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1160
1170
|
const requestUrl = `${requestPath}${applyParamsAsString({}, userParameters, this.options)}`;
|
|
1161
1171
|
const requestMethod = 'POST';
|
|
1162
1172
|
const requestBody = applyParams(bodyParams, userParameters, { ...this.options, requestMethod });
|
|
@@ -1193,6 +1203,7 @@ class Tracker {
|
|
|
1193
1203
|
* @param {number} [parameters.resultPositionOnPage] - Position of result on page
|
|
1194
1204
|
* @param {number} [parameters.numResultsPerPage] - Number of results on page
|
|
1195
1205
|
* @param {object} [parameters.analyticsTags] - Pass additional analytics data
|
|
1206
|
+
* @param {string[]|string|number} [parameters.seedItemIds] - Item ID(s) used to generate recommendations
|
|
1196
1207
|
* @param {object} userParameters - Parameters relevant to the user request
|
|
1197
1208
|
* @param {number} userParameters.sessionId - Session ID, utilized to personalize results
|
|
1198
1209
|
* @param {string} userParameters.clientId - Client ID, utilized to personalize results
|
|
@@ -1221,6 +1232,7 @@ class Tracker {
|
|
|
1221
1232
|
* podId: '019927c2-f955-4020',
|
|
1222
1233
|
* strategyId: 'complimentary',
|
|
1223
1234
|
* itemId: 'KMH876',
|
|
1235
|
+
* seedItemIds: ['UIH976']
|
|
1224
1236
|
* },
|
|
1225
1237
|
* {
|
|
1226
1238
|
* sessionId: 1,
|
|
@@ -1259,6 +1271,8 @@ class Tracker {
|
|
|
1259
1271
|
item_name,
|
|
1260
1272
|
itemName = item_name,
|
|
1261
1273
|
analyticsTags,
|
|
1274
|
+
seed_item_ids,
|
|
1275
|
+
seedItemIds = seed_item_ids,
|
|
1262
1276
|
} = parameters;
|
|
1263
1277
|
|
|
1264
1278
|
if (variationId) {
|
|
@@ -1311,6 +1325,12 @@ class Tracker {
|
|
|
1311
1325
|
bodyParams.analytics_tags = analyticsTags;
|
|
1312
1326
|
}
|
|
1313
1327
|
|
|
1328
|
+
if ((typeof seedItemIds === 'string' || typeof seedItemIds === 'number') && String(seedItemIds).length) {
|
|
1329
|
+
bodyParams.seed_item_ids = [String(seedItemIds)];
|
|
1330
|
+
} else if (Array.isArray(seedItemIds) && seedItemIds.length) {
|
|
1331
|
+
bodyParams.seed_item_ids = seedItemIds.map(String);
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1314
1334
|
const requestUrl = `${requestPath}${applyParamsAsString({}, userParameters, this.options)}`;
|
|
1315
1335
|
const requestMethod = 'POST';
|
|
1316
1336
|
const requestBody = applyParams(bodyParams, userParameters, { ...this.options, requestMethod });
|
package/src/types/tracker.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { ConstructorClientOptions,
|
|
2
|
+
import { ConstructorClientOptions, ItemTracked, ItemTrackedPurchased, NetworkParameters } from '.';
|
|
3
3
|
|
|
4
4
|
export default Tracker;
|
|
5
5
|
|
|
@@ -144,6 +144,7 @@ declare class Tracker {
|
|
|
144
144
|
resultId?: string;
|
|
145
145
|
section?: string;
|
|
146
146
|
analyticsTags?: Record<string, string>;
|
|
147
|
+
seedItemIds?: string[] | string | number;
|
|
147
148
|
},
|
|
148
149
|
userParameters?: TrackerUserParameters,
|
|
149
150
|
networkParameters?: NetworkParameters
|
|
@@ -163,6 +164,7 @@ declare class Tracker {
|
|
|
163
164
|
resultPositionOnPage?: number;
|
|
164
165
|
numResultsPerPage?: number;
|
|
165
166
|
analyticsTags?: Record<string, string>;
|
|
167
|
+
seedItemIds?: string[] | string | number;
|
|
166
168
|
},
|
|
167
169
|
userParameters?: TrackerUserParameters,
|
|
168
170
|
networkParameters?: NetworkParameters
|