@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@constructor-io/constructorio-node",
3
- "version": "5.8.0",
3
+ "version": "5.9.0",
4
4
  "description": "Constructor.io Node.js client",
5
5
  "main": "src/constructorio.js",
6
6
  "types": "src/types/constructorio.d.ts",
@@ -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 });
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { ConstructorClientOptions, NetworkParameters, ItemTracked, ItemTrackedPurchased } from '.';
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