@geins/types 0.1.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.
Files changed (45) hide show
  1. package/codegen.ts +49 -0
  2. package/dist/api-client/index.d.ts +23 -0
  3. package/dist/cms/contentArea.d.ts +50 -0
  4. package/dist/cms/index.d.ts +2 -0
  5. package/dist/cms/menu.d.ts +10 -0
  6. package/dist/common/channel.d.ts +4 -0
  7. package/dist/common/event.d.ts +39 -0
  8. package/dist/common/index.d.ts +21 -0
  9. package/dist/crm/auth.d.ts +152 -0
  10. package/dist/crm/index.d.ts +1 -0
  11. package/dist/generated/graphql.d.ts +3832 -0
  12. package/dist/generated/index.d.ts +1 -0
  13. package/dist/index.cjs +1257 -0
  14. package/dist/index.d.ts +7 -0
  15. package/dist/index.esm.js +1257 -0
  16. package/dist/pim/brand.d.ts +19 -0
  17. package/dist/pim/filter.d.ts +31 -0
  18. package/dist/pim/index.d.ts +3 -0
  19. package/dist/pim/list.d.ts +31 -0
  20. package/dist/search/index.d.ts +1 -0
  21. package/dist/search/product.d.ts +11 -0
  22. package/package.json +28 -0
  23. package/rollup.config.js +18 -0
  24. package/src/api-client/index.ts +25 -0
  25. package/src/cms/contentArea.ts +59 -0
  26. package/src/cms/index.ts +2 -0
  27. package/src/cms/menu.ts +28 -0
  28. package/src/common/channel.ts +46 -0
  29. package/src/common/event.ts +43 -0
  30. package/src/common/index.ts +27 -0
  31. package/src/crm/auth.ts +177 -0
  32. package/src/crm/index.ts +2 -0
  33. package/src/crm/userOrders.ts +55 -0
  34. package/src/generated/graphql.ts +4103 -0
  35. package/src/generated/index.ts +1 -0
  36. package/src/index.ts +7 -0
  37. package/src/pim/brand.ts +21 -0
  38. package/src/pim/filter.ts +34 -0
  39. package/src/pim/index.ts +3 -0
  40. package/src/pim/list.ts +38 -0
  41. package/src/pim/product.ts +0 -0
  42. package/src/pim/shared.ts +14 -0
  43. package/src/search/index.ts +1 -0
  44. package/src/search/product.ts +12 -0
  45. package/tsconfig.json +18 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1257 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Event type
5
+ * Events emitted by the SDK to listen to
6
+ * @enum
7
+ * @name GeinsEventType
8
+ */
9
+ exports.GeinsEventType = void 0;
10
+ (function (GeinsEventType) {
11
+ // User
12
+ GeinsEventType["USER"] = "USER";
13
+ GeinsEventType["USER_LOGIN"] = "USER_LOGIN";
14
+ GeinsEventType["USER_LOGOUT"] = "USER_LOGOUT";
15
+ GeinsEventType["USER_UPDATE"] = "USER_UPDATE";
16
+ GeinsEventType["USER_DELETE"] = "USER_DELETE";
17
+ // Cart
18
+ GeinsEventType["CART"] = "CART";
19
+ GeinsEventType["CART_ADD"] = "CART_ADD";
20
+ GeinsEventType["CART_REMOVE"] = "CART_REMOVE";
21
+ GeinsEventType["CART_UPDATE"] = "CART_UPDATE";
22
+ GeinsEventType["CART_CLEAR"] = "CART_CLEAR";
23
+ })(exports.GeinsEventType || (exports.GeinsEventType = {}));
24
+
25
+ exports.AuthClientConnectionModes = void 0;
26
+ (function (AuthClientConnectionModes) {
27
+ AuthClientConnectionModes["Proxy"] = "Proxy";
28
+ AuthClientConnectionModes["Direct"] = "Direct";
29
+ })(exports.AuthClientConnectionModes || (exports.AuthClientConnectionModes = {}));
30
+
31
+ exports.ProductListSortType = void 0;
32
+ (function (ProductListSortType) {
33
+ ProductListSortType["NONE"] = "NONE";
34
+ ProductListSortType["PRICE"] = "PRICE";
35
+ ProductListSortType["PRICE_DESC"] = "PRICE_DESC";
36
+ ProductListSortType["MOST_SOLD"] = "MOST_SOLD";
37
+ ProductListSortType["VOTES"] = "VOTES";
38
+ ProductListSortType["BRAND"] = "BRAND";
39
+ ProductListSortType["LATEST"] = "LATEST";
40
+ ProductListSortType["RELEVANCE"] = "RELEVANCE";
41
+ ProductListSortType["FACET_ORDER"] = "FACET_ORDER";
42
+ ProductListSortType["ALPHABETICAL"] = "ALPHABETICAL";
43
+ ProductListSortType["ALPHABETICAL_DESC"] = "ALPHABETICAL_DESC";
44
+ ProductListSortType["AVAILABLE_STOCK"] = "AVAILABLE_STOCK";
45
+ ProductListSortType["AVAILABLE_STOCK_DESC"] = "AVAILABLE_STOCK_DESC";
46
+ ProductListSortType["TOTAL_STOCK"] = "TOTAL_STOCK";
47
+ ProductListSortType["TOTAL_STOCK_DESC"] = "TOTAL_STOCK_DESC";
48
+ })(exports.ProductListSortType || (exports.ProductListSortType = {}));
49
+
50
+ exports.ProductFilterModeType = void 0;
51
+ (function (ProductFilterModeType) {
52
+ ProductFilterModeType["BY_GROUP"] = "BY_GROUP";
53
+ ProductFilterModeType["CURRENT"] = "CURRENT";
54
+ })(exports.ProductFilterModeType || (exports.ProductFilterModeType = {}));
55
+ exports.FilterSystemEntityTypes = void 0;
56
+ (function (FilterSystemEntityTypes) {
57
+ FilterSystemEntityTypes["Brand"] = "Brand";
58
+ FilterSystemEntityTypes["Category"] = "Category";
59
+ FilterSystemEntityTypes["Price"] = "Price";
60
+ FilterSystemEntityTypes["Sku"] = "Sku";
61
+ FilterSystemEntityTypes["StockStatus"] = "StockStatus";
62
+ FilterSystemEntityTypes["DiscountCampaign"] = "DiscountCampaign";
63
+ FilterSystemEntityTypes["DiscountCampaignNumber"] = "DiscountCampaignNumber";
64
+ FilterSystemEntityTypes["Discount"] = "Discount";
65
+ FilterSystemEntityTypes["ReducedPrice"] = "ReducedPrice";
66
+ })(exports.FilterSystemEntityTypes || (exports.FilterSystemEntityTypes = {}));
67
+
68
+ exports.GeinsCheckoutStatus = void 0;
69
+ (function (GeinsCheckoutStatus) {
70
+ GeinsCheckoutStatus["CustomerBlacklistedType"] = "CUSTOMER_BLACKLISTED";
71
+ GeinsCheckoutStatus["OkType"] = "OK";
72
+ })(exports.GeinsCheckoutStatus || (exports.GeinsCheckoutStatus = {}));
73
+ /** Customer type */
74
+ exports.GeinsCustomerType = void 0;
75
+ (function (GeinsCustomerType) {
76
+ /** Organization */
77
+ GeinsCustomerType["OrganizationType"] = "ORGANIZATION";
78
+ /** Private person */
79
+ GeinsCustomerType["PersonType"] = "PERSON";
80
+ })(exports.GeinsCustomerType || (exports.GeinsCustomerType = {}));
81
+ exports.GeinsDiscountType = void 0;
82
+ (function (GeinsDiscountType) {
83
+ GeinsDiscountType["NoneType"] = "NONE";
84
+ GeinsDiscountType["PriceCampaignType"] = "PRICE_CAMPAIGN";
85
+ GeinsDiscountType["SalePriceType"] = "SALE_PRICE";
86
+ })(exports.GeinsDiscountType || (exports.GeinsDiscountType = {}));
87
+ /** Filter mode */
88
+ exports.GeinsFilterMode = void 0;
89
+ (function (GeinsFilterMode) {
90
+ /** Get the counts for the results, including the ones excluded by the groups */
91
+ GeinsFilterMode["ByGroupType"] = "BY_GROUP";
92
+ /** Get the counts for the current filter results */
93
+ GeinsFilterMode["CurrentType"] = "CURRENT";
94
+ })(exports.GeinsFilterMode || (exports.GeinsFilterMode = {}));
95
+ exports.GeinsGender = void 0;
96
+ (function (GeinsGender) {
97
+ GeinsGender["ManType"] = "MAN";
98
+ GeinsGender["UnspecifiedType"] = "UNSPECIFIED";
99
+ GeinsGender["WomanType"] = "WOMAN";
100
+ })(exports.GeinsGender || (exports.GeinsGender = {}));
101
+ /** Payment types */
102
+ exports.GeinsPaymentType = void 0;
103
+ (function (GeinsPaymentType) {
104
+ /** Avarda */
105
+ GeinsPaymentType["AvardaType"] = "AVARDA";
106
+ /** Klarna */
107
+ GeinsPaymentType["KlarnaType"] = "KLARNA";
108
+ /** Standard */
109
+ GeinsPaymentType["StandardType"] = "STANDARD";
110
+ /** Svea */
111
+ GeinsPaymentType["SveaType"] = "SVEA";
112
+ /** Walley */
113
+ GeinsPaymentType["WalleyType"] = "WALLEY";
114
+ })(exports.GeinsPaymentType || (exports.GeinsPaymentType = {}));
115
+ /** Product relation type */
116
+ exports.GeinsProductRelation = void 0;
117
+ (function (GeinsProductRelation) {
118
+ /** Product is an accessory to this product */
119
+ GeinsProductRelation["AccessoriesType"] = "ACCESSORIES";
120
+ /** Product is related to this product */
121
+ GeinsProductRelation["RelatedType"] = "RELATED";
122
+ /** Product is similar to this product */
123
+ GeinsProductRelation["SimilarType"] = "SIMILAR";
124
+ })(exports.GeinsProductRelation || (exports.GeinsProductRelation = {}));
125
+ /** Sort types */
126
+ exports.GeinsSortType = void 0;
127
+ (function (GeinsSortType) {
128
+ /** Sort by alphabetical */
129
+ GeinsSortType["AlphabeticalType"] = "ALPHABETICAL";
130
+ /** Sort by alphabetical, in descending order */
131
+ GeinsSortType["AlphabeticalDescType"] = "ALPHABETICAL_DESC";
132
+ /** Sort by available stock balance */
133
+ GeinsSortType["AvailableStockType"] = "AVAILABLE_STOCK";
134
+ /** Sort by available stock balance, in descending order */
135
+ GeinsSortType["AvailableStockDescType"] = "AVAILABLE_STOCK_DESC";
136
+ /** Sort by brand */
137
+ GeinsSortType["BrandType"] = "BRAND";
138
+ /** Sort by custom value 1 */
139
+ GeinsSortType["Custom_1Type"] = "CUSTOM_1";
140
+ /** Sort by custom value 2 */
141
+ GeinsSortType["Custom_2Type"] = "CUSTOM_2";
142
+ /** Sort by custom value 3 */
143
+ GeinsSortType["Custom_3Type"] = "CUSTOM_3";
144
+ /** Sort by custom value 4 */
145
+ GeinsSortType["Custom_4Type"] = "CUSTOM_4";
146
+ /** Sort by custom value 5 */
147
+ GeinsSortType["Custom_5Type"] = "CUSTOM_5";
148
+ /** Sort by facets */
149
+ GeinsSortType["FacetOrderType"] = "FACET_ORDER";
150
+ /** Sort by latest products */
151
+ GeinsSortType["LatestType"] = "LATEST";
152
+ /** Sort by most sold */
153
+ GeinsSortType["MostSoldType"] = "MOST_SOLD";
154
+ /** No sorting */
155
+ GeinsSortType["NoneType"] = "NONE";
156
+ /** Sort by price */
157
+ GeinsSortType["PriceType"] = "PRICE";
158
+ /** Sort by price, in descending order */
159
+ GeinsSortType["PriceDescType"] = "PRICE_DESC";
160
+ /** Sort by relevance */
161
+ GeinsSortType["RelevanceType"] = "RELEVANCE";
162
+ /** Sort by total stock balance, including oversellable */
163
+ GeinsSortType["TotalStockType"] = "TOTAL_STOCK";
164
+ /** Sort by total stock balance, including oversellable, in descending order */
165
+ GeinsSortType["TotalStockDescType"] = "TOTAL_STOCK_DESC";
166
+ /** Sort by votes */
167
+ GeinsSortType["VotesType"] = "VOTES";
168
+ })(exports.GeinsSortType || (exports.GeinsSortType = {}));
169
+ /**
170
+ * @typedef {Object} AddressInputType
171
+ * @property {string} [addressLine1]
172
+ * @property {string} [addressLine2]
173
+ * @property {string} [addressLine3]
174
+ * @property {string} [careOf]
175
+ * @property {string} [city]
176
+ * @property {string} [company]
177
+ * @property {string} [country]
178
+ * @property {string} [entryCode]
179
+ * @property {string} [firstName]
180
+ * @property {string} [lastName]
181
+ * @property {string} [mobile]
182
+ * @property {string} [phone]
183
+ * @property {string} [state]
184
+ * @property {string} [zip]
185
+ */
186
+ /**
187
+ * @typedef {Object} AddressType
188
+ * @property {string} addressLine1
189
+ * @property {string} addressLine2
190
+ * @property {string} addressLine3
191
+ * @property {string} careOf
192
+ * @property {string} city
193
+ * @property {string} company
194
+ * @property {string} country
195
+ * @property {string} entryCode
196
+ * @property {string} firstName
197
+ * @property {string} lastName
198
+ * @property {string} mobile
199
+ * @property {string} phone
200
+ * @property {string} state
201
+ * @property {string} zip
202
+ */
203
+ /**
204
+ * Type containing information about alternative urls to an entity
205
+ * @typedef {Object} AlternativeUrlType
206
+ * @property {string} channelId - The id of the channel that the alternative url exists on
207
+ * @property {string} [country] - The country code of the alternative url
208
+ * @property {string} culture - The culture of the alternative url
209
+ * @property {string} language - The language code of the alternative url
210
+ * @property {string} url - Alternative url
211
+ */
212
+ /**
213
+ * Type containing account balance information
214
+ * @typedef {Object} BalanceType
215
+ * @property {Decimal} pending - The amount that will be used for this order
216
+ * @property {string} [pendingFormatted] - Pending balance, formatted as a currency string
217
+ * @property {Decimal} remaining - The remaining account balance
218
+ * @property {string} [remainingFormatted] - Remaining account balance, formatted as a currency string
219
+ * @property {Decimal} totalSellingPriceExBalanceExVat - The cart total selling price excl. VAT if balance hadn't been withdrawn.
220
+ * @property {string} [totalSellingPriceExBalanceExVatFormatted] - Cart total excl. VAT, excl. balance, formatted as a currency string
221
+ * @property {Decimal} totalSellingPriceExBalanceIncVat - The cart total selling price incl. VAT if balance hadn't been withdrawn .
222
+ * @property {string} [totalSellingPriceExBalanceIncVatFormatted] - Cart total incl. VAT, excl. balance, formatted as a currency string
223
+ */
224
+ /**
225
+ * Type containing brand listing information
226
+ * @typedef {Object} BrandListType
227
+ * @property {string} [alias] - Brand alias
228
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the brand - DEPRECATED: Use AlternativeUrls instead.
229
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the brand
230
+ * @property {string} [backgroundImage] - Background image
231
+ * @property {number} brandId - Brand ID
232
+ * @property {string} [canonicalUrl] - The full path for this brand. e.g. '/l/brand-1'
233
+ * @property {string} [description] - Brand description
234
+ * @property {string} [logo] - Brand logo
235
+ * @property {string} [name] - Brand name
236
+ * @property {string} [primaryImage] - Primary image
237
+ * @property {string} [secondaryDescription] - Secondary description
238
+ */
239
+ /**
240
+ * Type containing brand information
241
+ * @typedef {Object} BrandType
242
+ * @property {string} [alias] - Brand alias
243
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the brand - DEPRECATED: Use AlternativeUrls instead.
244
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the brand
245
+ * @property {number} brandId - Brand ID
246
+ * @property {string} [canonicalUrl] - The full path for this brand. e.g. '/l/brand-1'
247
+ * @property {string} [description] - Brand description
248
+ * @property {string} [name] - Brand name
249
+ */
250
+ /**
251
+ * Type containing breadcrumb information
252
+ * @typedef {Object} BreadcrumbType
253
+ * @property {number} categoryId - Category ID
254
+ * @property {string} name - Breadcrumb display name
255
+ * @property {number} parentCategoryId - Parent category ID
256
+ * @property {string} [url] - Breadcrumb path
257
+ */
258
+ /**
259
+ * Type containing campaign price information
260
+ * @typedef {Object} CampaignPriceType
261
+ * @property {Decimal} discount - Campaign price discount
262
+ * @property {Decimal} discountPercentage - Campaign price discount percentage
263
+ * @property {PriceType} [price] - Campaign price
264
+ * @property {number} quantity - Campaign price quantity
265
+ */
266
+ /**
267
+ * Type containing campaign rule information
268
+ * @typedef {Object} CampaignRuleType
269
+ * @property {string} [action] - Campaign action
270
+ * @property {string} [actionValue] - Campaign action value
271
+ * @property {string} campaignId - Campaign ID
272
+ * @property {string} [canonicalUrl] - The url to this campaign, if any
273
+ * @property {string} [category] - Campaign category
274
+ * @property {boolean} [hideTitle] - Whether to hide the campaign title
275
+ * @property {string} [name] - Campaign name
276
+ * @property {string} [ruleType] - Campaign rule type
277
+ */
278
+ /**
279
+ * Type containing campaign information
280
+ * @typedef {Object} CampaignType
281
+ * @property {Array<(CampaignRuleType|null|undefined)>} [appliedCampaigns] - Applied campaigns
282
+ * @property {Array<(CampaignPriceType|null|undefined)>} [prices] - Campaign prices
283
+ */
284
+ /**
285
+ * Type containing information about cart fees
286
+ * @typedef {Object} CartFeesType
287
+ * @property {Decimal} paymentFeeExVat - Payment fee excl. VAT
288
+ * @property {Decimal} paymentFeeIncVat - Payment fee incl. VAT
289
+ * @property {Decimal} shippingFeeExVat - Shipping fee excl. VAT
290
+ * @property {Decimal} shippingFeeIncVat - Shipping fee incl. VAT
291
+ */
292
+ /**
293
+ * @typedef {Object} CartGroupInputType
294
+ * @property {string} [groupKey]
295
+ * @property {number} quantity
296
+ */
297
+ /**
298
+ * @typedef {Object} CartItemInputType
299
+ * @property {string} [groupKey]
300
+ * @property {string} [id]
301
+ * @property {string} [message]
302
+ * @property {number} quantity
303
+ * @property {number} [skuId]
304
+ */
305
+ /**
306
+ * Type containing cart item information
307
+ * @typedef {Object} CartItemType
308
+ * @property {CampaignType} [campaign] - Campaign
309
+ * @property {string} [groupKey] - The key of the group that this cart item belong to
310
+ * @property {string} id - Cart item Id
311
+ * @property {string} [message] - Custom message
312
+ * @property {ProductType} [product] - Product
313
+ * @property {ProductPackageCartItemType} [productPackage] - Contains package meta data if the cart item was part of package
314
+ * @property {number} quantity - Quantity
315
+ * @property {number} skuId - SKU Id
316
+ * @property {PriceType} [totalPrice] - Total price
317
+ * @property {PriceType} [unitPrice] - Price per unit
318
+ */
319
+ /**
320
+ * Type containing cart summary information
321
+ * @typedef {Object} CartSummaryType
322
+ * @property {BalanceType} [balance] - Account balance information
323
+ * @property {CartFeesType} [fees] - Cart fee information
324
+ * @property {Decimal} fixedAmountDiscountExVat - Cart fixed discount amount excl. VAT
325
+ * @property {Decimal} fixedAmountDiscountIncVat - Cart fixed discount amount incl. VAT
326
+ * @property {PaymentOptionType} [payment] - Cart payment option information
327
+ * @property {ShippingOptionType} [shipping] - Cart shipping option information
328
+ * @property {PriceType} [subTotal] - Cart sub-total
329
+ * @property {PriceType} [total] - Cart total
330
+ * @property {Array<(VatGroupType|null|undefined)>} [vats] - Cart VAT information
331
+ */
332
+ /**
333
+ * Type containing cart information
334
+ * @typedef {Object} CartType
335
+ * @property {Array<(CampaignRuleType|null|undefined)>} [appliedCampaigns] - Campaigns applied to this cart
336
+ * @property {Decimal} fixedDiscount - Cart fixed discount
337
+ * @property {boolean} freeShipping - Whether the cart has free shipping
338
+ * @property {string} [id] - The cart ID
339
+ * @property {boolean} isCompleted - If true, the cart can not be modified further
340
+ * @property {Array<(CartItemType|null|undefined)>} [items] - The cart items
341
+ * @property {string} [promoCode] - Cart promo code
342
+ * @property {CartSummaryType} [summary] - The cart summary
343
+ */
344
+ /**
345
+ * Type containing category information
346
+ * @typedef {Object} CategoryType
347
+ * @property {string} [alias] - Category alias
348
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the category - DEPRECATED: Use AlternativeUrls instead.
349
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the category
350
+ * @property {string} [backgroundImage] - Background image
351
+ * @property {string} canonicalUrl - The full path to the category. e.g. '/l/category-1'
352
+ * @property {number} categoryId - Category ID
353
+ * @property {string} [description] - Category description
354
+ * @property {GoogleTaxonomyType} [googleTaxonomy] - Google taxonomy data for this category
355
+ * @property {boolean} [isHidden] - Category is hidden
356
+ * @property {string} name - Category name
357
+ * @property {number} order - Category display order
358
+ * @property {number} parentCategoryId - Parent category ID
359
+ * @property {string} [primaryImage] - Primary image
360
+ * @property {string} [secondaryDescription] - Category secondary description
361
+ */
362
+ /**
363
+ * Type containing all information about the channel-type
364
+ * @typedef {Object} ChannelType
365
+ * @property {string} defaultLanguageId - Default language ID used if no other is specified, or an invalid is supplied.
366
+ * @property {string} defaultMarketId - Default market ID used if no other is specified, or an invalid is supplied.
367
+ * @property {string} id - ID
368
+ * @property {Array<(LanguageType|null|undefined)>} [languages]
369
+ * @property {Array<(MarketType|null|undefined)>} [markets]
370
+ * @property {string} name - Name
371
+ * @property {string} type - Type
372
+ * @property {string} url - Base URL
373
+ */
374
+ /**
375
+ * @typedef {Object} CheckoutAndOrderType
376
+ * @property {string} htmlSnippet - HTML-snippet
377
+ * @property {CheckoutOrderType} [order] - Order details
378
+ */
379
+ /**
380
+ * @typedef {Object} CheckoutDataType
381
+ * @property {CartType} [cart] - The order details represented as a cart object.
382
+ * @property {boolean} [completed] - Indicates if the purchase has been completed. This may not be available for all payment types
383
+ * @property {string} [htmlSnippet] - HTML-snippet
384
+ * @property {boolean} newCheckoutSession - True if this is a new checkout session
385
+ * @property {number} nthPurchase - The total number of purchases that the customer has done including this one
386
+ * @property {CheckoutOrderType} [order] - Order details
387
+ */
388
+ /**
389
+ * @typedef {Object} CheckoutInputType
390
+ * @property {Array<(string|null|undefined)>} [acceptedConsents]
391
+ * @property {AddressInputType} [billingAddress]
392
+ * @property {CustomerType} [customerType]
393
+ * @property {DateTime} [desiredDeliveryDate]
394
+ * @property {string} [email]
395
+ * @property {Decimal} [externalShippingFee]
396
+ * @property {string} [externalShippingId]
397
+ * @property {string} [identityNumber]
398
+ * @property {string} [merchantData]
399
+ * @property {string} [message]
400
+ * @property {number} [paymentId]
401
+ * @property {string} [pickupPoint]
402
+ * @property {AddressInputType} [shippingAddress]
403
+ * @property {number} [shippingId]
404
+ */
405
+ /**
406
+ * @typedef {Object} CheckoutOrderRowType
407
+ * @property {string} [articleNumber] - Article number
408
+ * @property {string} [brand] - Brand name
409
+ * @property {Array<(string|null|undefined)>} [campaignIds] - Campaign IDs
410
+ * @property {Array<(string|null|undefined)>} [campaignNames] - Campaign names
411
+ * @property {Array<(string|null|undefined)>} [categories] - Categories
412
+ * @property {Decimal} discountExVat - Discount excl. VAT
413
+ * @property {Decimal} discountIncVat - Discount incl. VAT
414
+ * @property {number} discountRate - Discount rate
415
+ * @property {string} [externalId] - ExternalId
416
+ * @property {string} [gtin] - GTIN
417
+ * @property {number} height - Height
418
+ * @property {string} [imageUrl] - Product image URL
419
+ * @property {number} length - Length
420
+ * @property {string} [message] - Message
421
+ * @property {string} [name] - Name
422
+ * @property {Decimal} priceExVat - Price excl. VAT
423
+ * @property {Decimal} priceIncVat - Price incl. VAT
424
+ * @property {number} productId - ProductId
425
+ * @property {number} [productPriceCampaignId] - ProductPriceCampaignId
426
+ * @property {number} [productPriceListId] - Product price list ID
427
+ * @property {string} [productUrl] - ProductUrl
428
+ * @property {number} quantity - Quantity
429
+ * @property {string} [sku] - SKU
430
+ * @property {string} [variant] - Variant
431
+ * @property {number} weight - Weight
432
+ * @property {number} width - Width
433
+ */
434
+ /**
435
+ * @typedef {Object} CheckoutOrderType
436
+ * @property {Array<(string|null|undefined)>} [campaignIds] - Campaign IDs
437
+ * @property {Array<(string|null|undefined)>} [campaignNames] - Campaign names
438
+ * @property {string} [currency] - Currency
439
+ * @property {Decimal} discountExVat - Discount excl. VAT
440
+ * @property {Decimal} discountIncVat - Discount incl. VAT
441
+ * @property {string} [email] - E-mail
442
+ * @property {string} [firstName] - First name
443
+ * @property {Decimal} itemValueExVat - Item-value excl. VAT
444
+ * @property {Decimal} itemValueIncVat - Item-value incl. VAT
445
+ * @property {string} [lastName] - Last name
446
+ * @property {string} marketId - Market ID.
447
+ * @property {string} [message] - Order message
448
+ * @property {string} [orderId] - Order ID
449
+ * @property {Decimal} orderValueExVat - Order excl. VAT
450
+ * @property {Decimal} orderValueIncVat - Order incl. VAT
451
+ * @property {Decimal} paymentFeeExVat - Payment excl. VAT
452
+ * @property {Decimal} paymentFeeIncVat - Payment incl. VAT
453
+ * @property {Array<(CheckoutOrderRowType|null|undefined)>} [rows] - Order rows
454
+ * @property {string} [secondaryTransactionId] - Secondary transaction ID
455
+ * @property {Decimal} shippingFeeExVat - Shipping excl. VAT
456
+ * @property {Decimal} shippingFeeIncVat - Shipping incl. VAT
457
+ * @property {Decimal} sum - Order sum
458
+ * @property {string} [transactionId] - Transaction ID
459
+ * @property {string} [zip] - Zip code
460
+ */
461
+ /**
462
+ * @typedef {("CUSTOMER_BLACKLISTED"|"OK")} CheckoutStatus
463
+ */
464
+ /**
465
+ * @typedef {Object} CheckoutType
466
+ * @property {AddressType} [billingAddress]
467
+ * @property {CartType} [cart]
468
+ * @property {CheckoutStatus} [checkoutStatus]
469
+ * @property {Array<(ConsentType|null|undefined)>} [consents]
470
+ * @property {string} [email]
471
+ * @property {string} [identityNumber]
472
+ * @property {Array<(PaymentOptionType|null|undefined)>} [paymentOptions]
473
+ * @property {AddressType} [shippingAddress]
474
+ * @property {string} [shippingData]
475
+ * @property {Array<(ShippingOptionType|null|undefined)>} [shippingOptions]
476
+ */
477
+ /**
478
+ * @typedef {Object} ConsentType
479
+ * @property {boolean} autoAccept
480
+ * @property {boolean} checked
481
+ * @property {string} description
482
+ * @property {string} name
483
+ * @property {string} type
484
+ */
485
+ /**
486
+ * Type containing all information about the country-type
487
+ * @typedef {Object} CountryType
488
+ * @property {string} code - Two-letter ISO code
489
+ * @property {string} name - Name
490
+ */
491
+ /**
492
+ * Type containing all information about the currency-type
493
+ * @typedef {Object} CurrencyType
494
+ * @property {string} code - Currency code
495
+ * @property {string} name - Name
496
+ * @property {Decimal} rate - Currency rate used to convert from this currency to default currency
497
+ * @property {string} symbol - Currency symbol
498
+ */
499
+ /**
500
+ * Customer type
501
+ * @typedef {("ORGANIZATION"|"PERSON")} CustomerType
502
+ */
503
+ /**
504
+ * The `DateTime` scalar type represents a date and time. `DateTime` expects timestamps to be formatted in accordance with the [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) standard.
505
+ * @typedef {*} DateTime
506
+ */
507
+ /**
508
+ * @typedef {*} Decimal
509
+ */
510
+ /**
511
+ * SKU dimensions
512
+ * @typedef {Object} DimensionsType
513
+ * @property {number} height - Height
514
+ * @property {number} length - Length
515
+ * @property {number} width - Width
516
+ */
517
+ /**
518
+ * @typedef {("NONE"|"PRICE_CAMPAIGN"|"SALE_PRICE")} DiscountType
519
+ */
520
+ /**
521
+ * Type containing collection of filters
522
+ * @typedef {Object} FilterCollectionType
523
+ * @property {Array<(FilterType|null|undefined)>} [facets] - The collection of facet values returned from the query
524
+ * @property {PriceFilterType} [price] - The lowest / highest price found in the results
525
+ */
526
+ /**
527
+ * Filter options
528
+ * @typedef {Object} FilterInputType
529
+ * @property {Array<(string|null|undefined)>} [exclude] - A list of string values, that when specified will exclude products that are associated with one of the facets
530
+ * @property {Array<(string|null|undefined)>} [excludeFacets] - A list of string values, that when specified will exclude products that are associated with one of the facets
531
+ * @property {Array<(string|null|undefined)>} [facets] - A list of string values, that when specified will only include products associated with those values
532
+ * @property {FilterMode} [filterMode] - Filter mode
533
+ * @property {Array<(string|null|undefined)>} [include] - A list of string values, that when specified will only include products associated with those values
534
+ * @property {boolean} [includeCollapsed] - Include collapsed products
535
+ * @property {PriceFilterInputType} [price] - Price filter
536
+ * @property {Array<(number|null|undefined)>} [productIds] - A list of product ids to filter on
537
+ * @property {string} [searchText] - Search text to filter by
538
+ * @property {SortType} [sort] - Use this to sort the results in a particular way
539
+ */
540
+ /**
541
+ * Filter mode
542
+ * @typedef {("BY_GROUP"|"CURRENT")} FilterMode
543
+ */
544
+ /**
545
+ * Filter group
546
+ * @typedef {Object} FilterType
547
+ * @property {string} filterId - ID for this filter type
548
+ * @property {string} [group] - Parameter group name
549
+ * @property {string} [label] - Parameter group display name
550
+ * @property {string} [type] - Filter type. e.g. 'Parameter', 'Category', 'Sku'
551
+ * @property {Array<(FilterValueType|null|undefined)>} [values] - Collection of facet values in this group
552
+ */
553
+ /**
554
+ * Filter value
555
+ * @typedef {Object} FilterValueType
556
+ * @property {string} _id - FacetId_Count
557
+ * @property {Long} count - The amount of products in the results associated with this facet
558
+ * @property {string} [facetId] - Facet ID. Use this in the Facets-list in the products-query to retrieve products associated with it
559
+ * @property {boolean} hidden - If the filter for this facet is hidden
560
+ * @property {string} [label] - Facet display name
561
+ * @property {number} order - The display order of this facet
562
+ * @property {string} [parentId] - Parent ID. Only available for category-facets.0
563
+ * @property {string} [url] - The path associated with this facet. e.g. '/c/category-1'
564
+ */
565
+ /**
566
+ * @typedef {("MAN"|"UNSPECIFIED"|"WOMAN")} Gender
567
+ */
568
+ /**
569
+ * Type containing Google taxonomy data
570
+ * @typedef {Object} GoogleTaxonomyType
571
+ * @property {number} [id] - Google taxonomy ID
572
+ * @property {string} [name] - Google taxonomy name
573
+ * @property {number} [parentId] - Parent Google taxonomy ID
574
+ * @property {string} [path] - Google taxonomy path
575
+ */
576
+ /**
577
+ * Type containing information for a group in a product package
578
+ * @typedef {Object} GroupType
579
+ * @property {string} [description] - The package group description
580
+ * @property {number} groupId - The package group id
581
+ * @property {string} [image] - The package group image
582
+ * @property {string} [name] - The package group name
583
+ * @property {Array<(OptionType|null|undefined)>} [options] - Options in this package group
584
+ * @property {boolean} required - 'true' if this package group is required in order to place the package in cart
585
+ * @property {number} sortOrder - The sort order of this package group relative to other groups
586
+ */
587
+ /**
588
+ * @typedef {*} Guid
589
+ */
590
+ /**
591
+ * Type containing all information about the language-type
592
+ * @typedef {Object} LanguageType
593
+ * @property {string} code - Two-letter ISO code
594
+ * @property {string} id - Language ID
595
+ * @property {string} name - Language name
596
+ */
597
+ /**
598
+ * @typedef {*} Long
599
+ */
600
+ /**
601
+ * Type containing information about the lowest price during last 30 days and the legal comparison price (EU). Observe that discount is calculated against comparison price and not the regular price.
602
+ * @typedef {Object} LowestPriceType
603
+ * @property {Decimal} comparisonPriceExVat - The comparison price excluding VAT
604
+ * @property {string} [comparisonPriceExVatFormatted] - Comparison price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
605
+ * @property {Decimal} comparisonPriceIncVat - The comparison price including VAT
606
+ * @property {string} [comparisonPriceIncVatFormatted] - Comparison price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
607
+ * @property {Decimal} discountExVat - Discount amount excluding VAT.
608
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
609
+ * @property {Decimal} discountIncVat - Discount amount including VAT.
610
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
611
+ * @property {number} discountPercentage - Discount percentage.
612
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
613
+ * @property {Decimal} lowestPriceExVat - The lowest price excluding VAT
614
+ * @property {string} [lowestPriceExVatFormatted] - Lowest price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
615
+ * @property {Decimal} lowestPriceIncVat - The lowest price including VAT
616
+ * @property {string} [lowestPriceIncVatFormatted] - Lowest price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
617
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
618
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
619
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
620
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
621
+ * @property {Decimal} vat - VAT amount
622
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
623
+ */
624
+ /**
625
+ * Type containing all information about the market-type
626
+ * @typedef {Object} MarketType
627
+ * @property {string} [alias] - The part of the market id that is used in the url.
628
+ * @property {Array<(LanguageType|null|undefined)>} [allowedLanguages]
629
+ * @property {CountryType} [country] - Country
630
+ * @property {CurrencyType} [currency] - Currency
631
+ * @property {string} defaultLanguageId - Default language ID used if no other is specified, or an invalid is supplied.
632
+ * @property {string} groupKey - Group key used to group related markets together, i.e. if they belong to the same region or continent.
633
+ * @property {string} id - ID
634
+ * @property {boolean} [onlyDisplayInCheckout] - Indicates if the market should only be displayed in the checkout process.
635
+ * @property {boolean} [virtual] - If true, indicates that the market is virtual. Virtual markets cannot be used in the checkout process
636
+ */
637
+ /**
638
+ * @typedef {Object} MenuItemType
639
+ * @property {string} [canonicalUrl]
640
+ * @property {Array<(MenuItemType|null|undefined)>} [children]
641
+ * @property {boolean} hidden
642
+ * @property {string} id
643
+ * @property {string} [label]
644
+ * @property {boolean} open
645
+ * @property {number} order
646
+ * @property {boolean} targetBlank
647
+ * @property {string} [title]
648
+ * @property {string} type
649
+ * @property {string} [value]
650
+ */
651
+ /**
652
+ * @typedef {Object} MenuType
653
+ * @property {Array<(string|null|undefined)>} [channels]
654
+ * @property {string} id
655
+ * @property {Array<(string|null|undefined)>} [languages]
656
+ * @property {Array<(string|null|undefined)>} [locations]
657
+ * @property {Array<(MenuItemType|null|undefined)>} [menuItems]
658
+ * @property {string} [name]
659
+ * @property {string} [title]
660
+ */
661
+ /**
662
+ * Type containing metadata
663
+ * @typedef {Object} MetadataType
664
+ * @property {string} [description] - Description
665
+ * @property {string} [keywords] - Keywords
666
+ * @property {string} [title] - Title
667
+ */
668
+ /**
669
+ * @typedef {Object} Mutation
670
+ * @property {CartType} [addPackageToCart]
671
+ * @property {CartType} [addToCart]
672
+ * @property {boolean} [commitReset]
673
+ * @property {CartType} [completeCart] - Marks the cart as completed, and makes it read-only
674
+ * @property {CheckoutType} [createOrUpdateCheckout]
675
+ * @property {boolean} [deleteUser]
676
+ * @property {boolean} [monitorProductAvailability]
677
+ * @property {PlaceOrderResponseType} [placeOrder]
678
+ * @property {boolean} [postProductReview]
679
+ * @property {boolean} [requestPasswordReset]
680
+ * @property {CartType} [setCartPromoCode] - Set a promo code on the cart
681
+ * @property {CheckoutType} [setCartShippingFee]
682
+ * @property {boolean} [subscribeToNewsletter]
683
+ * @property {CartType} [updateCartGroup] - Update the quantity of an entire cart group
684
+ * @property {CartType} [updateCartItem] - Update the cart item
685
+ * @property {UserType} [updateUser]
686
+ */
687
+ /**
688
+ * Type containing information for an option in a product package group
689
+ * @typedef {Object} OptionType
690
+ * @property {boolean} isSelected - 'true' if this option should be selected by default
691
+ * @property {number} optionId - The option id
692
+ * @property {ProductType} [product] - The product that this options refers to
693
+ * @property {number} quantity - The quantity of items that is chosen if this option is selected
694
+ * @property {number} sortOrder - The sort order of this option relative to other options
695
+ */
696
+ /**
697
+ * @typedef {Object} OrderType
698
+ * @property {AddressType} [billingAddress]
699
+ * @property {CartType} [cart]
700
+ * @property {DateTime} [completedAt]
701
+ * @property {DateTime} [createdAt]
702
+ * @property {string} [currency]
703
+ * @property {number} [customerId]
704
+ * @property {DateTime} [desiredDeliveryDate]
705
+ * @property {PriceType} [discount]
706
+ * @property {Decimal} fromBalance - The amount taken from account balance
707
+ * @property {string} [fromBalanceFormatted] - The amount taken from account balance. Formatted as a currency string.
708
+ * @property {number} [id]
709
+ * @property {string} [message]
710
+ * @property {PriceType} [orderTotal]
711
+ * @property {Array<(PaymentDetailsType|null|undefined)>} [paymentDetails]
712
+ * @property {PriceType} [paymentFee]
713
+ * @property {string} publicId
714
+ * @property {Array<(RefundType|null|undefined)>} [refunds]
715
+ * @property {AddressType} [shippingAddress]
716
+ * @property {Array<(ShippingDetailType|null|undefined)>} [shippingDetails]
717
+ * @property {PriceType} [shippingFee]
718
+ * @property {string} status
719
+ * @property {DateTime} [updatedAt]
720
+ * @property {PriceType} [vat]
721
+ */
722
+ /**
723
+ * Type containing widget page area information
724
+ * @typedef {Object} PageAreaType
725
+ * @property {number} id - ID
726
+ * @property {number} index - Index
727
+ * @property {string} [name] - Name
728
+ */
729
+ /**
730
+ * Type containing page information
731
+ * @typedef {Object} PageInfoType
732
+ * @property {string} alias - Alias
733
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the page - DEPRECATED: Use AlternativeUrls instead.
734
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the page
735
+ * @property {string} [backgroundImage] - Background image
736
+ * @property {string} [canonicalUrl] - Full path to the page
737
+ * @property {boolean} hideDescription - Whether the descriptions should be hidden
738
+ * @property {boolean} hideTitle - Whether the Name-field should be hidden
739
+ * @property {number} id - Page ID
740
+ * @property {string} [logo] - Logo
741
+ * @property {MetadataType} [meta] - Page metadata
742
+ * @property {string} name - Name
743
+ * @property {string} [primaryDescription] - Primary description
744
+ * @property {string} [primaryImage] - Primary image
745
+ * @property {string} [secondaryDescription] - Secondary description
746
+ * @property {Array<(CategoryType|null|undefined)>} [subCategories] - Page sub-categories
747
+ */
748
+ /**
749
+ * Type for filtering widgets
750
+ * @typedef {Object} PageWidgetCollectionFilterInputType
751
+ * @property {string} [key] - Filter key
752
+ * @property {string} [value] - Filter value
753
+ */
754
+ /**
755
+ * Type containing widget collection information
756
+ * @typedef {Object} PageWidgetCollectionType
757
+ * @property {Array<(PageWidgetContainerType|null|undefined)>} [containers] - Collection containers
758
+ * @property {string} [familyName] - Collection family name
759
+ * @property {number} id - Collection ID
760
+ * @property {MetadataType} [meta] - Collection metadata
761
+ * @property {string} name - Name
762
+ * @property {PageAreaType} [pageArea] - Collection page area
763
+ * @property {Array<(string|null|undefined)>} [tags] - List of tags
764
+ * @property {string} [title] - Title
765
+ */
766
+ /**
767
+ * Type containing widget container information
768
+ * @typedef {Object} PageWidgetContainerType
769
+ * @property {Array<(string|null|undefined)>} [classNames] - Container class names
770
+ * @property {string} design - Container design
771
+ * @property {number} id - ID
772
+ * @property {string} layout - Container layout
773
+ * @property {string} name - Name
774
+ * @property {string} responsiveMode - Container responsive mode
775
+ * @property {number} sortOrder - Sort order
776
+ * @property {Array<(PageWidgetType|null|undefined)>} [widgets] - Widgets in this container
777
+ */
778
+ /**
779
+ * Type containing widget image size information
780
+ * @typedef {Object} PageWidgetImageSizeType
781
+ * @property {number} imageHeight - Image height
782
+ * @property {number} imageRatio - Image ratio
783
+ * @property {number} imageWidth - Image width
784
+ */
785
+ /**
786
+ * Type containing widget image information
787
+ * @typedef {Object} PageWidgetImageType
788
+ * @property {string} fileName - Filename
789
+ * @property {PageWidgetImageSizeType} [largestSize] - Largest image size
790
+ * @property {Array<(PageWidgetImageSizeType|null|undefined)>} [sizes] - Image sizes
791
+ */
792
+ /**
793
+ * Type containing CMS page information
794
+ * @typedef {Object} PageWidgetPageType
795
+ * @property {DateTime} [activeFrom] - Active From
796
+ * @property {DateTime} [activeTo] - Active To
797
+ * @property {string} [alias] - Alias
798
+ * @property {string} [canonicalUrl] - The url to this cms page
799
+ * @property {number} id - Collection ID
800
+ * @property {MetadataType} [meta] - Collection metadata
801
+ * @property {string} name - Name
802
+ * @property {Array<(string|null|undefined)>} [tags] - List of tags
803
+ * @property {string} [title] - Title
804
+ */
805
+ /**
806
+ * Type containing widget information
807
+ * @typedef {Object} PageWidgetType
808
+ * @property {Array<(string|null|undefined)>} [classNames] - Class names
809
+ * @property {string} configuration - Configuration
810
+ * @property {string} id - ID
811
+ * @property {Array<(PageWidgetImageType|null|undefined)>} [images] - Images
812
+ * @property {string} name - Name
813
+ * @property {string} size - Size
814
+ * @property {number} sortOrder - Sort order
815
+ * @property {string} type - Widget Type
816
+ */
817
+ /**
818
+ * Type containing product parameter group information
819
+ * @typedef {Object} ParameterGroupType
820
+ * @property {string} name - The parameter group name
821
+ * @property {number} [parameterGroupId] - Parameter group ID
822
+ * @property {Array<(ParameterType|null|undefined)>} [parameters] - List of parameters
823
+ * @property {number} productId - Product ID associated with this parameter group
824
+ */
825
+ /**
826
+ * Type containing parameter information
827
+ * @typedef {Object} ParameterType
828
+ * @property {string} [description] - Parameter description
829
+ * @property {string} [facetId] - The ID of the associated facet
830
+ * @property {string} [identifier] - The internal identifier of the parameter. This value is the same for all languages and does not change if the parameter name changes.
831
+ * @property {string} [label] - Parameter label
832
+ * @property {string} [name] - Parameter name
833
+ * @property {number} parameterGroupId - ID of the associated parameter group
834
+ * @property {number} parameterId - Parameter ID
835
+ * @property {boolean} show - Whether this parameter should be shown within the product specifications
836
+ * @property {boolean} showFilter - Whether this parameter should be shown within filter options
837
+ * @property {string} [type] - The parameter type
838
+ * @property {string} [value] - Parameter value
839
+ */
840
+ /**
841
+ * @typedef {Object} PaymentDetailsType
842
+ * @property {string} displayName
843
+ * @property {number} id
844
+ * @property {boolean} isPaid
845
+ * @property {string} name
846
+ * @property {DateTime} [paymentDate]
847
+ * @property {number} paymentFee
848
+ * @property {number} paymentId
849
+ * @property {string} [paymentOption]
850
+ * @property {DateTime} reservationDate
851
+ * @property {string} [reservationNumber]
852
+ * @property {number} shippingFee
853
+ * @property {number} total
854
+ * @property {string} transactionId
855
+ */
856
+ /**
857
+ * Type containing payment option information
858
+ * @typedef {Object} PaymentOptionType
859
+ * @property {string} [displayName] - Display name
860
+ * @property {Decimal} feeExVat - Fee excl. VAT
861
+ * @property {string} [feeExVatFormatted] - Fee excl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
862
+ * @property {Decimal} feeIncVat - Fee incl. VAT
863
+ * @property {string} [feeIncVatFormatted] - Fee incl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
864
+ * @property {number} id - Payment option ID
865
+ * @property {boolean} isDefault - Whether this payment option is the default selection
866
+ * @property {boolean} isSelected - Whether this option is the one selected
867
+ * @property {string} [logo] - Shipping option logo
868
+ * @property {string} [name] - Name
869
+ * @property {boolean} newCheckoutSession - Whether it is a new checkout session
870
+ * @property {string} [paymentData] - Payment option data
871
+ * @property {PaymentType} [paymentType] - Payment type
872
+ */
873
+ /**
874
+ * Payment types
875
+ * @typedef {("AVARDA"|"KLARNA"|"STANDARD"|"SVEA"|"WALLEY")} PaymentType
876
+ */
877
+ /**
878
+ * @typedef {Object} PlaceOrderResponseType
879
+ * @property {string} [orderId]
880
+ * @property {string} [redirectUrl]
881
+ * @property {string} [status]
882
+ */
883
+ /**
884
+ * Price range filter
885
+ * @typedef {Object} PriceFilterInputType
886
+ * @property {number} [highest] - The highest price you want to include
887
+ * @property {number} [lowest] - The lowest price you want to include
888
+ */
889
+ /**
890
+ * Price range filter
891
+ * @typedef {Object} PriceFilterType
892
+ * @property {number} highest - The highest price found in the results
893
+ * @property {number} lowest - The lowest price found in the results
894
+ */
895
+ /**
896
+ * Type containing all information about a product price log item
897
+ * @typedef {Object} PriceLogItemType
898
+ * @property {string} date - Date of the price change
899
+ * @property {Decimal} discountExVat - Discount amount excluding VAT
900
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
901
+ * @property {Decimal} discountIncVat - Discount amount including VAT
902
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
903
+ * @property {number} discountPercentage - Discount percentage
904
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
905
+ * @property {boolean} isLowest - True if this log items has the lowest price for the last 30 days
906
+ * @property {Decimal} regularPriceExVat - The regular price excluding VAT
907
+ * @property {string} [regularPriceExVatFormatted] - Regular price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
908
+ * @property {Decimal} regularPriceIncVat - The regular price including VAT
909
+ * @property {string} [regularPriceIncVatFormatted] - Regular price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
910
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
911
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
912
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
913
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
914
+ * @property {Decimal} vat - VAT amount
915
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
916
+ */
917
+ /**
918
+ * Type containing price information
919
+ * @typedef {Object} PriceType
920
+ * @property {Decimal} discountExVat - Discount amount excluding VAT
921
+ * @property {string} [discountExVatFormatted] - Discount (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
922
+ * @property {Decimal} discountIncVat - Discount amount including VAT
923
+ * @property {string} [discountIncVatFormatted] - Discount (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
924
+ * @property {number} discountPercentage - Discount percentage
925
+ * @property {boolean} isDiscounted - Whether the price is discounted or not
926
+ * @property {Decimal} regularPriceExVat - The regular price excluding VAT
927
+ * @property {string} [regularPriceExVatFormatted] - Regular price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
928
+ * @property {Decimal} regularPriceIncVat - The regular price including VAT
929
+ * @property {string} [regularPriceIncVatFormatted] - Regular price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
930
+ * @property {Decimal} sellingPriceExVat - The selling price excluding VAT
931
+ * @property {string} [sellingPriceExVatFormatted] - Selling price (excl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
932
+ * @property {Decimal} sellingPriceIncVat - The selling price including VAT
933
+ * @property {string} [sellingPriceIncVatFormatted] - Selling price (incl. VAT), formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
934
+ * @property {Decimal} vat - VAT amount
935
+ * @property {string} [vatFormatted] - VAT amount, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
936
+ */
937
+ /**
938
+ * Type containing all information about a product image
939
+ * @typedef {Object} ProductImageType
940
+ * @property {string} fileName - The file name of the product image.
941
+ * @property {Array<(string|null|undefined)>} [tags] - Custom tags associated with the product image.
942
+ */
943
+ /**
944
+ * Type containing meta data for the package selection that a cart item was added from
945
+ * @typedef {Object} ProductPackageCartItemType
946
+ * @property {number} groupId - The group id
947
+ * @property {number} optionId - The option id
948
+ * @property {number} packageId - The package id
949
+ * @property {string} packageName - The package name
950
+ */
951
+ /**
952
+ * Type containing an option selection for a product package group
953
+ * @typedef {Object} ProductPackageSelectionType
954
+ * @property {number} groupId - The group id that the selection is made in
955
+ * @property {number} optionId - The selected option id
956
+ * @property {number} skuId - The selected SKU
957
+ */
958
+ /**
959
+ * Type containing type specific information for a product of the type 'package'
960
+ * @typedef {Object} ProductPackageType
961
+ * @property {Array<(GroupType|null|undefined)>} [groups] - Groups in this package
962
+ */
963
+ /**
964
+ * Product relation type
965
+ * @typedef {("ACCESSORIES"|"RELATED"|"SIMILAR")} ProductRelation
966
+ */
967
+ /**
968
+ * The results of the reviews query.
969
+ * @typedef {Object} ProductReviewResultType
970
+ * @property {number} averageRating - The average rating for this product
971
+ * @property {Long} count - The total count of results for the query
972
+ * @property {Array<(ProductReviewType|null|undefined)>} [reviews] - Results returned by the query
973
+ */
974
+ /**
975
+ * Type containing all information about a product review
976
+ * @typedef {Object} ProductReviewType
977
+ * @property {string} author - Author of the review
978
+ * @property {string} comment - The product review comment
979
+ * @property {number} rating - The product rating (1-5)
980
+ * @property {DateTime} reviewDate - The date and time for when the review was made
981
+ */
982
+ /**
983
+ * Product info
984
+ * @typedef {Object} ProductTextsType
985
+ * @property {string} [text1] - Main product info
986
+ * @property {string} [text2] - Secondary product info
987
+ * @property {string} [text3] - Tertiary product info
988
+ */
989
+ /**
990
+ * Type containing all information about a product
991
+ * @typedef {Object} ProductType
992
+ * @property {string} alias - Alias for the product
993
+ * @property {Array<(string|null|undefined)>} [alternativeCanonicalUrls] - Alternative full paths to the product - DEPRECATED: Use AlternativeUrls instead.
994
+ * @property {Array<(AlternativeUrlType|null|undefined)>} [alternativeUrls] - Alternative urls to the product
995
+ * @property {string} [articleNumber] - The product article number
996
+ * @property {BrandType} [brand] - Product brand information
997
+ * @property {Array<(BreadcrumbType|null|undefined)>} [breadcrumbs] - Breadcrumbs
998
+ * @property {string} [canonicalUrl] - The full path to the product
999
+ * @property {Array<(CategoryType|null|undefined)>} [categories] - Product category information
1000
+ * @property {number} categoryId - The primary category ID
1001
+ * @property {VariantType} [currentProductVariant] - The current variant selection
1002
+ * @property {DimensionsType} [dimensions] - The dimensions of the Product. Note that this can also be set on SKU level
1003
+ * @property {Array<(CampaignRuleType|null|undefined)>} [discountCampaigns] - Product discount campaigns
1004
+ * @property {DiscountType} [discountType] - Type of discount price: None, Sale or Campaign
1005
+ * @property {string} [firstAvailableOn] - The date on which the product was first available (yyyy-mm-dd)
1006
+ * @property {string} [freightClass] - The Freightclass set for this product
1007
+ * @property {Array<(string|null|undefined)>} [images] - List of product images - DEPRECATED: Use ProductType.ProductImages instead.
1008
+ * @property {LowestPriceType} [lowestPrice] - Lowest price and comparison price according to EU price laws
1009
+ * @property {MetadataType} [meta] - Product metadata
1010
+ * @property {string} [name] - The product name
1011
+ * @property {Array<(ParameterGroupType|null|undefined)>} [parameterGroups] - Product parameter groups
1012
+ * @property {Array<(PriceLogItemType|null|undefined)>} [priceLog] - Price log with the prices from the last 30 days
1013
+ * @property {CategoryType} [primaryCategory] - Primary category for this product
1014
+ * @property {number} productId - Product ID
1015
+ * @property {Array<(ProductImageType|null|undefined)>} [productImages] - List of product images and their related properties
1016
+ * @property {ProductPackageType} [productPackage] - Package specific information for this product
1017
+ * @property {RatingType} [rating] - Product rating
1018
+ * @property {Array<(SkuType|null|undefined)>} [skus] - Product SKUs
1019
+ * @property {number} supplierId - The Supplier Id
1020
+ * @property {ProductTextsType} [texts] - Product text info
1021
+ * @property {StockType} [totalStock] - Product stock information
1022
+ * @property {string} [type] - The product type. Either 'product' or 'package'
1023
+ * @property {PriceType} [unitPrice] - Product price information
1024
+ * @property {Array<(VariantDimensionType|null|undefined)>} [variantDimensions] - Variant dimensions
1025
+ * @property {VariantGroupType} [variantGroup] - Product variant group
1026
+ * @property {number} weight - Weight in grams (g). Note that this can also be set on SKU level
1027
+ */
1028
+ /**
1029
+ * The results of the products-query.
1030
+ * @typedef {Object} ProductsResultType
1031
+ * @property {Long} count - The total count of results for the query
1032
+ * @property {FilterCollectionType} [filters] - The filters available for this query
1033
+ * @property {Array<(ProductType|null|undefined)>} [products] - Results returned by the query
1034
+ */
1035
+ /**
1036
+ * Gets all available channels
1037
+ * @typedef {Object} Query
1038
+ * @property {Array<(BrandListType|null|undefined)>} [brands] - Get all brands.
1039
+ * @property {Array<(CategoryType|null|undefined)>} [categories] - Get all categories.
1040
+ * @property {CategoryType} [category] - Gets a category with the specified ID.
1041
+ * @property {ChannelType} [channel] - Gets a channel with the specified ID.
1042
+ * @property {Array<(ChannelType|null|undefined)>} [channels]
1043
+ * @property {CheckoutDataType} [checkout] - Gets checkout data with a html snippet, checkout order data for the specified order and the User. If the order was recently completed, the html snippet will contain the "Thank you"-content.
1044
+ * @property {Array<(PageWidgetPageType|null|undefined)>} [cmsPages] - Gets all CMS pages.
1045
+ * @property {CartType} [getCart] - Get the cart
1046
+ * @property {string} [getCheckout] - Gets html snippet for the specified external order. If the order was recently completed, the html snippet will contain the "Thank you"-content. - DEPRECATED: Use Checkout instead
1047
+ * @property {CheckoutAndOrderType} [getCheckoutAndOrder] - Gets html snippet and checkout order data for the specified external order. If the order was recently completed, the html snippet will contain the "Thank you"-content. - DEPRECATED: Use Checkout instead
1048
+ * @property {MenuType} [getMenuAtLocation] - Get a menu
1049
+ * @property {OrderType} [getOrder] - Get a specific order with details
1050
+ * @property {OrderType} [getOrderPublic] - Get a specific order with details via public id
1051
+ * @property {Array<(OrderType|null|undefined)>} [getOrders] - Get orders for the current user
1052
+ * @property {UserType} [getUser] - Get the current user
1053
+ * @property {PageInfoType} [listPageInfo] - Gets information about the specified list page.
1054
+ * @property {ProductType} [product] - Gets a product with the specified ID.
1055
+ * @property {ProductsResultType} [products] - Gets all products according to the values provided.
1056
+ * @property {Array<(RelatedProductType|null|undefined)>} [relatedProducts] - Gets related products for the specified alias.
1057
+ * @property {ProductReviewResultType} [reviews] - Gets all products reviews to the values provided.
1058
+ * @property {UrlHistoryType} [urlHistory] - Gets an alternate url for a given url.
1059
+ * @property {ValidateOrderCreationResponseType} [validateOrderCreation]
1060
+ * @property {PageWidgetCollectionType} [widgetArea] - Gets the page area and widgets from the specifed family.
1061
+ */
1062
+ /**
1063
+ * Type containing product rating information
1064
+ * @typedef {Object} RatingType
1065
+ * @property {Decimal} score - Rating score
1066
+ * @property {number} voteCount - Vote count
1067
+ */
1068
+ /**
1069
+ * @typedef {Object} RefundType
1070
+ * @property {string} [articleNumber]
1071
+ * @property {DateTime} createdAt
1072
+ * @property {number} id
1073
+ * @property {number} itemId
1074
+ * @property {string} [reason]
1075
+ * @property {number} [reasonCode]
1076
+ * @property {string} [refundType]
1077
+ * @property {boolean} toBalance
1078
+ * @property {number} total
1079
+ * @property {number} vat
1080
+ */
1081
+ /**
1082
+ * Type containing a subset of product information for related products
1083
+ * @typedef {Object} RelatedProductType
1084
+ * @property {string} alias - Product alias
1085
+ * @property {BrandType} [brand] - Product brand information
1086
+ * @property {string} [canonicalUrl] - Full path to the product
1087
+ * @property {Array<(CampaignRuleType|null|undefined)>} [discountCampaigns] - Product campaigns
1088
+ * @property {Array<(string|null|undefined)>} [images] - List of product images - DEPRECATED: Use RelatedProductType.ProductImages instead.
1089
+ * @property {string} [name] - Product name
1090
+ * @property {Array<(ParameterGroupType|null|undefined)>} [parameterGroups] - Product parameter groups. The availability of data in this field needs to be configured.
1091
+ * @property {CategoryType} [primaryCategory] - Primary category for this product
1092
+ * @property {string} [primaryImage] - Product primary image
1093
+ * @property {Array<(ProductImageType|null|undefined)>} [productImages] - List of product images and their related properties
1094
+ * @property {ProductRelation} [relation] - Relation type - DEPRECATED: Use RelatedProductType.RelationType instead.
1095
+ * @property {string} relationType - Relation type
1096
+ * @property {string} [secondaryImage] - Product secondary image
1097
+ * @property {Array<(SkuType|null|undefined)>} [skus] - Product SKUs
1098
+ * @property {PriceType} [unitPrice] - Product price
1099
+ */
1100
+ /**
1101
+ * @typedef {Object} ShippingDetailType
1102
+ * @property {number} id
1103
+ * @property {string} name
1104
+ * @property {string} [parcelNumber]
1105
+ * @property {DateTime} [shippingDate]
1106
+ * @property {number} shippingId
1107
+ * @property {string} [trackingLink]
1108
+ */
1109
+ /**
1110
+ * Type containing shipping option information
1111
+ * @typedef {Object} ShippingOptionType
1112
+ * @property {Decimal} amountLeftToFreeShipping - Amount left to recieve free shipping
1113
+ * @property {string} [amountLeftToFreeShippingFormatted] - Amount left to recieve free shipping formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1114
+ * @property {string} [displayName] - Display name
1115
+ * @property {string} [externalId] - External ID
1116
+ * @property {Decimal} feeExVat - Fee excl. VAT
1117
+ * @property {string} [feeExVatFormatted] - Fee excl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1118
+ * @property {Decimal} feeIncVat - Fee incl. VAT
1119
+ * @property {string} [feeIncVatFormatted] - Fee incl. VAT, formatted with currency info. e.g. '299 kr', '123,45 SEK', '$12.34'
1120
+ * @property {number} id - Shipping option ID
1121
+ * @property {boolean} isDefault - Whether this shipping option is the default selection
1122
+ * @property {boolean} isSelected - Whether this option is the one selected
1123
+ * @property {string} [logo] - Shipping option logo
1124
+ * @property {string} [name] - Name
1125
+ * @property {string} [shippingData] - Shipping data
1126
+ * @property {Array<(ShippingOptionType|null|undefined)>} [subOptions] - Sub-options
1127
+ */
1128
+ /**
1129
+ * Type containing all information about a product SKU
1130
+ * @typedef {Object} SkuType
1131
+ * @property {string} articleNumber - The article number of the SKU
1132
+ * @property {DimensionsType} [dimensions] - The dimensions of the SKU
1133
+ * @property {string} [externalId] - External ID of the SKU
1134
+ * @property {string} [gtin] - SKU GTIN
1135
+ * @property {DateTime} [incoming] - Incoming date
1136
+ * @property {string} [name] - SKU name
1137
+ * @property {number} productId - The associated product ID
1138
+ * @property {string} [shelf] - Shelf
1139
+ * @property {number} skuId - ID of the SKU
1140
+ * @property {StockType} [stock] - Stock information
1141
+ * @property {number} weight - Weight in grams (g)
1142
+ */
1143
+ /**
1144
+ * Sort types
1145
+ * @typedef {("ALPHABETICAL"|"ALPHABETICAL_DESC"|"AVAILABLE_STOCK"|"AVAILABLE_STOCK_DESC"|"BRAND"|"CUSTOM_1"|"CUSTOM_2"|"CUSTOM_3"|"CUSTOM_4"|"CUSTOM_5"|"FACET_ORDER"|"LATEST"|"MOST_SOLD"|"NONE"|"PRICE"|"PRICE_DESC"|"RELEVANCE"|"TOTAL_STOCK"|"TOTAL_STOCK_DESC"|"VOTES")} SortType
1146
+ */
1147
+ /**
1148
+ * Type containing information about SKU stock
1149
+ * @typedef {Object} StockType
1150
+ * @property {number} inStock - The units available at this moment
1151
+ * @property {DateTime} [incoming] - Incoming date - DEPRECATED: Use SkuType.Incoming or VariantType.Incoming instead
1152
+ * @property {number} oversellable - Over-sellable units
1153
+ * @property {string} [shelf] - Shelf - DEPRECATED: Use SkuType.Shelf or VariantType.Shelf instead
1154
+ * @property {number} [static] - Amount of units that are always available
1155
+ * @property {number} totalStock - The total units available
1156
+ */
1157
+ /**
1158
+ * @typedef {Object} UrlHistoryType
1159
+ * @property {string} newUrl
1160
+ * @property {string} oldUrl
1161
+ */
1162
+ /**
1163
+ * @typedef {Object} UserBalanceType
1164
+ * @property {Decimal} amount
1165
+ * @property {string} [amountFormatted] - User balance amount. Formatted as a currency string.
1166
+ * @property {string} currency
1167
+ */
1168
+ /**
1169
+ * @typedef {Object} UserInputType
1170
+ * @property {AddressInputType} [address]
1171
+ * @property {CustomerType} [customerType]
1172
+ * @property {Gender} [gender]
1173
+ * @property {string} [metaData] - Free-text field to store any data related to the customer.
1174
+ * @property {boolean} [newsletter]
1175
+ * @property {string} [personalId]
1176
+ */
1177
+ /**
1178
+ * @typedef {Object} UserType
1179
+ * @property {AddressType} [address]
1180
+ * @property {Decimal} balance - Account balance - DEPRECATED: Use Balances instead
1181
+ * @property {string} [balanceFormatted] - Account balance. Formatted as a currency string. - DEPRECATED: Use Balances instead
1182
+ * @property {Array<(UserBalanceType|null|undefined)>} [balances] - User balance per currency
1183
+ * @property {CustomerType} [customerType]
1184
+ * @property {string} email
1185
+ * @property {Gender} [gender]
1186
+ * @property {number} id
1187
+ * @property {number} memberId
1188
+ * @property {string} memberType
1189
+ * @property {string} [metaData] - Free-text field that can contain any additional metadata related to the customer.
1190
+ * @property {boolean} [newsletter]
1191
+ * @property {string} [personalId]
1192
+ */
1193
+ /**
1194
+ * @typedef {Object} ValidateOrderCreationResponseType
1195
+ * @property {boolean} isValid
1196
+ * @property {string} [memberType]
1197
+ * @property {string} [message]
1198
+ */
1199
+ /**
1200
+ * Type containing variant attribute information
1201
+ * @typedef {Object} VariantAttributeType
1202
+ * @property {string} key - Attribute key
1203
+ * @property {string} value - Attribute value
1204
+ */
1205
+ /**
1206
+ * Type containing variant dimension information
1207
+ * @typedef {Object} VariantDimensionType
1208
+ * @property {Array<(VariantAttributeType|null|undefined)>} [attributes] - Dimension attributes
1209
+ * @property {string} dimension - The dimension name
1210
+ * @property {Array<(VariantValueType|null|undefined)>} [group] - Group values
1211
+ * @property {string} [label] - Dimension label
1212
+ * @property {number} level - The level of this variant dimension
1213
+ * @property {string} type - Dimension type. e.g. 'product' if it leads to a different product, otherwise 'selection'
1214
+ * @property {string} [value] - Dimension value
1215
+ */
1216
+ /**
1217
+ * Type containing variant group information
1218
+ * @typedef {Object} VariantGroupType
1219
+ * @property {number} activeProducts - The amount of active products in this variant group
1220
+ * @property {boolean} collapseInLists - If true, only the main product will show up in product lists
1221
+ * @property {number} mainProductId - ID of the main product in this group
1222
+ * @property {string} name - Variant group name
1223
+ * @property {number} variantGroupId - Variant group ID
1224
+ * @property {Array<(VariantType|null|undefined)>} [variants] - Group variants
1225
+ */
1226
+ /**
1227
+ * Type containing variant information
1228
+ * @typedef {Object} VariantType
1229
+ * @property {string} [alias] - Alias for variant selection. e.g. 'product-4'
1230
+ * @property {Array<(VariantAttributeType|null|undefined)>} [attributes] - Variant attributes
1231
+ * @property {string} [canonicalUrl] - Canonical URL. Only available for the 'product'-level
1232
+ * @property {string} dimension - Variant dimension
1233
+ * @property {DateTime} [incoming] - Incoming date
1234
+ * @property {string} [label] - Variant label
1235
+ * @property {number} level - Level of this variant. Lower value is a more accurate selection
1236
+ * @property {string} [name] - Variant name
1237
+ * @property {string} [primaryImage] - The primary image used for the product. Only available for the 'product'-level
1238
+ * @property {number} productId - Product ID associated with this variant
1239
+ * @property {string} [shelf] - Shelf
1240
+ * @property {number} [skuId] - SKU ID associated with this variant
1241
+ * @property {StockType} [stock] - Stock information for variant
1242
+ * @property {string} type - Variant type. In order of accuracy 'sku', 'product', 'selection'
1243
+ * @property {string} [value] - Variant value
1244
+ * @property {Array<(VariantType|null|undefined)>} [variants] - List of variants for this variant
1245
+ */
1246
+ /**
1247
+ * Type containing variant value information
1248
+ * @typedef {Object} VariantValueType
1249
+ * @property {string} label - Label
1250
+ * @property {string} value - Value
1251
+ */
1252
+ /**
1253
+ * Type containing VAT group information
1254
+ * @typedef {Object} VatGroupType
1255
+ * @property {Decimal} amount - VAT amount
1256
+ * @property {number} rate - VAT rate
1257
+ */