@decocms/apps 0.20.1

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 (113) hide show
  1. package/.github/workflows/release.yml +34 -0
  2. package/.releaserc.json +25 -0
  3. package/commerce/components/Image.tsx +209 -0
  4. package/commerce/components/JsonLd.tsx +285 -0
  5. package/commerce/sdk/analytics.ts +24 -0
  6. package/commerce/sdk/formatPrice.ts +23 -0
  7. package/commerce/sdk/url.ts +9 -0
  8. package/commerce/sdk/useOffer.ts +75 -0
  9. package/commerce/sdk/useVariantPossibilities.ts +43 -0
  10. package/commerce/types/commerce.ts +1105 -0
  11. package/commerce/utils/canonical.ts +11 -0
  12. package/commerce/utils/constants.ts +9 -0
  13. package/commerce/utils/filters.ts +10 -0
  14. package/commerce/utils/productToAnalyticsItem.ts +67 -0
  15. package/commerce/utils/stateByZip.ts +50 -0
  16. package/knip.json +19 -0
  17. package/package.json +77 -0
  18. package/shopify/actions/cart/addItems.ts +37 -0
  19. package/shopify/actions/cart/updateCoupons.ts +32 -0
  20. package/shopify/actions/cart/updateItems.ts +32 -0
  21. package/shopify/actions/user/signIn.ts +45 -0
  22. package/shopify/actions/user/signUp.ts +36 -0
  23. package/shopify/client.ts +58 -0
  24. package/shopify/index.ts +32 -0
  25. package/shopify/init.ts +40 -0
  26. package/shopify/loaders/ProductDetailsPage.ts +35 -0
  27. package/shopify/loaders/ProductList.ts +101 -0
  28. package/shopify/loaders/ProductListingPage.ts +180 -0
  29. package/shopify/loaders/RelatedProducts.ts +45 -0
  30. package/shopify/loaders/cart.ts +73 -0
  31. package/shopify/loaders/shop.ts +40 -0
  32. package/shopify/loaders/user.ts +44 -0
  33. package/shopify/utils/admin/admin.ts +57 -0
  34. package/shopify/utils/admin/queries.ts +29 -0
  35. package/shopify/utils/cart.ts +28 -0
  36. package/shopify/utils/cookies.ts +85 -0
  37. package/shopify/utils/enums.ts +438 -0
  38. package/shopify/utils/graphql.ts +69 -0
  39. package/shopify/utils/storefront/queries.ts +530 -0
  40. package/shopify/utils/storefront/storefront.graphql.gen.ts +113 -0
  41. package/shopify/utils/transform.ts +436 -0
  42. package/shopify/utils/types.ts +191 -0
  43. package/shopify/utils/user.ts +23 -0
  44. package/shopify/utils/utils.ts +164 -0
  45. package/tsconfig.json +11 -0
  46. package/vtex/README.md +6 -0
  47. package/vtex/actions/address.ts +211 -0
  48. package/vtex/actions/auth.ts +337 -0
  49. package/vtex/actions/checkout.ts +497 -0
  50. package/vtex/actions/index.ts +11 -0
  51. package/vtex/actions/masterData.ts +170 -0
  52. package/vtex/actions/misc.ts +196 -0
  53. package/vtex/actions/newsletter.ts +108 -0
  54. package/vtex/actions/orders.ts +37 -0
  55. package/vtex/actions/profile.ts +119 -0
  56. package/vtex/actions/session.ts +87 -0
  57. package/vtex/actions/trigger.ts +43 -0
  58. package/vtex/actions/wishlist.ts +116 -0
  59. package/vtex/client.ts +423 -0
  60. package/vtex/hooks/index.ts +4 -0
  61. package/vtex/hooks/useAutocomplete.ts +89 -0
  62. package/vtex/hooks/useCart.ts +219 -0
  63. package/vtex/hooks/useUser.ts +78 -0
  64. package/vtex/hooks/useWishlist.ts +119 -0
  65. package/vtex/index.ts +14 -0
  66. package/vtex/inline-loaders/productDetailsPage.ts +75 -0
  67. package/vtex/inline-loaders/productList.ts +163 -0
  68. package/vtex/inline-loaders/productListingPage.ts +447 -0
  69. package/vtex/inline-loaders/relatedProducts.ts +83 -0
  70. package/vtex/inline-loaders/suggestions.ts +49 -0
  71. package/vtex/inline-loaders/workflowProducts.ts +68 -0
  72. package/vtex/invoke.ts +202 -0
  73. package/vtex/loaders/address.ts +120 -0
  74. package/vtex/loaders/brands.ts +51 -0
  75. package/vtex/loaders/cart.ts +49 -0
  76. package/vtex/loaders/catalog.ts +165 -0
  77. package/vtex/loaders/collections.ts +57 -0
  78. package/vtex/loaders/index.ts +19 -0
  79. package/vtex/loaders/legacy.ts +671 -0
  80. package/vtex/loaders/logistics.ts +115 -0
  81. package/vtex/loaders/navbar.ts +29 -0
  82. package/vtex/loaders/orders.ts +103 -0
  83. package/vtex/loaders/pageType.ts +62 -0
  84. package/vtex/loaders/payment.ts +107 -0
  85. package/vtex/loaders/profile.ts +138 -0
  86. package/vtex/loaders/promotion.ts +33 -0
  87. package/vtex/loaders/search.ts +127 -0
  88. package/vtex/loaders/session.ts +91 -0
  89. package/vtex/loaders/user.ts +89 -0
  90. package/vtex/loaders/wishlist.ts +89 -0
  91. package/vtex/loaders/wishlistProducts.ts +81 -0
  92. package/vtex/loaders/workflow.ts +323 -0
  93. package/vtex/logo.png +0 -0
  94. package/vtex/middleware.ts +229 -0
  95. package/vtex/types.ts +248 -0
  96. package/vtex/utils/batch.ts +21 -0
  97. package/vtex/utils/cookies.ts +76 -0
  98. package/vtex/utils/enrichment.ts +540 -0
  99. package/vtex/utils/fetchCache.ts +150 -0
  100. package/vtex/utils/index.ts +17 -0
  101. package/vtex/utils/intelligentSearch.ts +84 -0
  102. package/vtex/utils/legacy.ts +155 -0
  103. package/vtex/utils/pickAndOmit.ts +30 -0
  104. package/vtex/utils/proxy.ts +196 -0
  105. package/vtex/utils/resourceRange.ts +10 -0
  106. package/vtex/utils/segment.ts +163 -0
  107. package/vtex/utils/similars.ts +38 -0
  108. package/vtex/utils/sitemap.ts +133 -0
  109. package/vtex/utils/slugCache.ts +32 -0
  110. package/vtex/utils/slugify.ts +13 -0
  111. package/vtex/utils/transform.ts +1331 -0
  112. package/vtex/utils/types.ts +1884 -0
  113. package/vtex/utils/vtexId.ts +103 -0
@@ -0,0 +1,1884 @@
1
+ /**
2
+ * @format dynamic-options
3
+ * @options vtex/loaders/options/productIdByTerm.ts
4
+ * @description Equivalent to sku ID in VTEX platform
5
+ */
6
+ export type ProductID = string;
7
+
8
+ export interface OrderForm {
9
+ orderFormId: string;
10
+ salesChannel: string;
11
+ loggedIn: boolean;
12
+ isCheckedIn: boolean;
13
+ storeId: null;
14
+ checkedInPickupPointId: null;
15
+ allowManualPrice: boolean;
16
+ canEditData: boolean;
17
+ userProfileId: null;
18
+ userType: null;
19
+ ignoreProfileData: boolean;
20
+ value: number;
21
+ messages: Message[];
22
+ items: OrderFormItem[];
23
+ selectableGifts: unknown[];
24
+ totalizers: Totalizer[];
25
+ shippingData: ShippingData;
26
+ clientProfileData: ClientProfileData | null;
27
+ paymentData: PaymentData;
28
+ marketingData: MarketingData;
29
+ sellers: Seller[];
30
+ clientPreferencesData: ClientPreferencesData;
31
+ commercialConditionData: null;
32
+ storePreferencesData: StorePreferencesData;
33
+ giftRegistryData: null;
34
+ openTextField: null;
35
+ invoiceData: null;
36
+ customData: null;
37
+ itemMetadata: ItemMetadata;
38
+ hooksData: null;
39
+ ratesAndBenefitsData: RatesAndBenefitsData;
40
+ subscriptionData: null;
41
+ merchantContextData: null;
42
+ itemsOrdination: null;
43
+ }
44
+
45
+ export interface ClientProfileData {
46
+ email: string;
47
+ firstName: null;
48
+ lastName: null;
49
+ document: null;
50
+ documentType: null;
51
+ phone: null;
52
+ corporateName: null;
53
+ tradeName: null;
54
+ corporateDocument: null;
55
+ stateInscription: null;
56
+ corporatePhone: null;
57
+ isCorporate: boolean;
58
+ profileCompleteOnLoading: boolean;
59
+ profileErrorOnLoading: boolean;
60
+ customerClass: null;
61
+ }
62
+
63
+ export interface ClientPreferencesData {
64
+ locale: string;
65
+ optinNewsLetter: null;
66
+ }
67
+
68
+ export interface ItemMetadata {
69
+ items: ItemMetadataItem[];
70
+ }
71
+
72
+ export interface ItemMetadataItem {
73
+ id: string;
74
+ seller: string;
75
+ name: string;
76
+ skuName: string;
77
+ productId: string;
78
+ refId: string;
79
+ ean: null | string;
80
+ imageUrl: string;
81
+ detailUrl: string;
82
+ assemblyOptions: AssemblyOption[];
83
+ }
84
+
85
+ export interface AssemblyOption {
86
+ id: Name;
87
+ name: Name;
88
+ required: boolean;
89
+ inputValues: Schema;
90
+ composition: null;
91
+ }
92
+
93
+ export enum Name {
94
+ AlternativeSubstitute = "ALTERNATIVE_SUBSTITUTE",
95
+ Substituto = "Substituto",
96
+ }
97
+
98
+ export interface Schema {
99
+ Sku: Ean;
100
+ Price: Ean;
101
+ Qtde?: Ean;
102
+ EAN: Ean;
103
+ Measuremt_unit: Ean;
104
+ Unit_multiplier: Ean;
105
+ Quantity: Ean;
106
+ }
107
+
108
+ export interface Ean {
109
+ maximumNumberOfCharacters: number;
110
+ domain: unknown[];
111
+ }
112
+
113
+ export interface OrderFormItem {
114
+ uniqueId: string;
115
+ id: string;
116
+ productId: string;
117
+ productRefId: string;
118
+ refId: string;
119
+ ean: null | string;
120
+ name: string;
121
+ skuName: string;
122
+ modalType: null | string;
123
+ parentItemIndex: null;
124
+ parentAssemblyBinding: null;
125
+ assemblies: unknown[];
126
+ priceValidUntil: Date;
127
+ tax: number;
128
+ price: number;
129
+ listPrice: number;
130
+ manualPrice: null;
131
+ manualPriceAppliedBy: null;
132
+ sellingPrice: number;
133
+ rewardValue: number;
134
+ isGift: boolean;
135
+ additionalInfo: AdditionalInfo;
136
+ preSaleDate: null;
137
+ productCategoryIds: string;
138
+ productCategories: { [key: string]: string };
139
+ quantity: number;
140
+ seller: string;
141
+ sellerChain: string[];
142
+ imageUrl: string;
143
+ detailUrl: string;
144
+ components: Component[];
145
+ bundleItems: unknown[];
146
+ attachments: unknown[];
147
+ attachmentOfferings: AttachmentOffering[];
148
+ offerings: Offering[];
149
+ priceTags: PriceTag[];
150
+ availability: string;
151
+ measurementUnit: string;
152
+ unitMultiplier: number;
153
+ manufacturerCode: null;
154
+ priceDefinition: PriceDefinition;
155
+ }
156
+
157
+ export interface AdditionalInfo {
158
+ dimension: null;
159
+ brandName: null | string;
160
+ brandId: null | string;
161
+ offeringInfo: null;
162
+ offeringType: null;
163
+ offeringTypeId: null;
164
+ }
165
+
166
+ export interface AttachmentOffering {
167
+ name: Name;
168
+ required: boolean;
169
+ schema: Schema;
170
+ }
171
+
172
+ export interface Component {
173
+ uniqueId: string;
174
+ id: string;
175
+ productId: null;
176
+ productRefId: null;
177
+ refId: string;
178
+ ean: string;
179
+ name: string;
180
+ skuName: null;
181
+ modalType: null;
182
+ parentItemIndex: null;
183
+ parentAssemblyBinding: null;
184
+ assemblies: unknown[];
185
+ priceValidUntil: null;
186
+ tax: number;
187
+ price: number;
188
+ listPrice: null;
189
+ manualPrice: null;
190
+ manualPriceAppliedBy: null;
191
+ sellingPrice: number;
192
+ rewardValue: number;
193
+ isGift: boolean;
194
+ additionalInfo: AdditionalInfo;
195
+ preSaleDate: null;
196
+ productCategoryIds: null;
197
+ productCategories: AvailableAssociations;
198
+ quantity: number;
199
+ seller: null;
200
+ sellerChain: null[];
201
+ imageUrl: null;
202
+ detailUrl: null;
203
+ components: unknown[];
204
+ bundleItems: unknown[];
205
+ attachments: unknown[];
206
+ attachmentOfferings: unknown[];
207
+ offerings: unknown[];
208
+ priceTags: PriceTag[];
209
+ availability: null;
210
+ measurementUnit: string;
211
+ unitMultiplier: number;
212
+ manufacturerCode: null;
213
+ priceDefinition: PriceDefinition;
214
+ }
215
+
216
+ export interface PriceDefinition {
217
+ calculatedSellingPrice: number;
218
+ total: number;
219
+ sellingPrices: SellingPrice[];
220
+ }
221
+
222
+ export interface SellingPrice {
223
+ value: number;
224
+ quantity: number;
225
+ }
226
+
227
+ export interface PriceTag {
228
+ name: string;
229
+ value: number;
230
+ rawValue: number;
231
+ isPercentual: boolean;
232
+ identifier: string;
233
+ owner: string;
234
+ }
235
+
236
+ export type AvailableAssociations = Record<string, string>;
237
+
238
+ export interface MarketingData {
239
+ utmSource: string | undefined;
240
+ utmMedium: string | undefined;
241
+ utmCampaign: string | undefined;
242
+ utmiPage: string | undefined;
243
+ utmiPart: string | undefined;
244
+ utmiCampaign: string | undefined;
245
+ coupon: string | undefined;
246
+ marketingTags: string[] | undefined;
247
+ }
248
+
249
+ export interface Message {
250
+ code: null | string;
251
+ text: string;
252
+ status: string;
253
+ fields: Fields;
254
+ }
255
+
256
+ export interface Fields {
257
+ ean?: string;
258
+ itemIndex?: string;
259
+ skuName?: string;
260
+ }
261
+
262
+ export interface PaymentData {
263
+ updateStatus: string;
264
+ installmentOptions: InstallmentOption[];
265
+ paymentSystems: PaymentSystem[];
266
+ payments: unknown[];
267
+ giftCards: unknown[];
268
+ giftCardMessages: unknown[];
269
+ availableAccounts: unknown[];
270
+ availableTokens: unknown[];
271
+ availableAssociations: AvailableAssociations;
272
+ }
273
+
274
+ export interface InstallmentOption {
275
+ paymentSystem: string;
276
+ bin: null;
277
+ paymentName: null;
278
+ paymentGroupName: null;
279
+ value: number;
280
+ installments: CartInstallment[];
281
+ }
282
+
283
+ export interface CartInstallment {
284
+ count: number;
285
+ hasInterestRate: boolean;
286
+ interestRate: number;
287
+ value: number;
288
+ total: number;
289
+ sellerMerchantInstallments?: Installment[];
290
+ id?: ID;
291
+ }
292
+
293
+ export enum ID {
294
+ Carrefourbrfood = "CARREFOURBRFOOD",
295
+ }
296
+
297
+ export interface PaymentSystem {
298
+ id: number;
299
+ name: string;
300
+ groupName: string;
301
+ validator: Validator;
302
+ stringId: string;
303
+ template: string;
304
+ requiresDocument: boolean;
305
+ displayDocument: boolean;
306
+ isCustom: boolean;
307
+ description: null | string;
308
+ requiresAuthentication: boolean;
309
+ dueDate: Date;
310
+ availablePayments: null;
311
+ }
312
+
313
+ export interface Validator {
314
+ regex: null | string;
315
+ mask: null | string;
316
+ cardCodeRegex: CardCodeRegex | null;
317
+ cardCodeMask: null | string;
318
+ weights: number[] | null;
319
+ useCvv: boolean;
320
+ useExpirationDate: boolean;
321
+ useCardHolderName: boolean;
322
+ useBillingAddress: boolean;
323
+ }
324
+
325
+ export enum CardCodeRegex {
326
+ The093$ = "^[0-9]{3}$",
327
+ The094$ = "^[0-9]{4}$",
328
+ }
329
+
330
+ export interface RatesAndBenefitsData {
331
+ rateAndBenefitsIdentifiers: RateAndBenefitsIdentifier[];
332
+ teaser: unknown[];
333
+ }
334
+
335
+ export interface RateAndBenefitsIdentifier {
336
+ id: string;
337
+ name: string;
338
+ featured: boolean;
339
+ description: string;
340
+ matchedParameters: MatchedParameters;
341
+ additionalInfo: null;
342
+ }
343
+
344
+ export interface MatchedParameters {
345
+ "Seller@CatalogSystem": string;
346
+ "productCluster@CatalogSystem"?: string;
347
+ "zipCode@Shipping"?: string;
348
+ slaIds?: string;
349
+ }
350
+
351
+ export interface Seller {
352
+ id: string;
353
+ name: string;
354
+ logo: string;
355
+ }
356
+
357
+ export interface ShippingData {
358
+ address: Address;
359
+ logisticsInfo: LogisticsInfo[];
360
+ selectedAddresses: Address[];
361
+ availableAddresses: Address[];
362
+ pickupPoints: PickupPoint[];
363
+ }
364
+
365
+ export interface Address {
366
+ addressType?: string;
367
+ receiverName: string | null;
368
+ addressId: string;
369
+ isDisposable?: boolean;
370
+ postalCode?: string;
371
+ city?: string;
372
+ state?: string;
373
+ country?: string;
374
+ street?: string;
375
+ number?: string;
376
+ neighborhood?: string;
377
+ addressName?: string;
378
+ complement: string | null;
379
+ reference?: string;
380
+ geoCoordinates?: number[];
381
+ name?: string;
382
+ }
383
+
384
+ export interface LogisticsInfo {
385
+ itemIndex: number;
386
+ selectedSla: SelectedSla | null;
387
+ selectedDeliveryChannel: SelectedDeliveryChannel;
388
+ addressId: string;
389
+ slas: Sla[];
390
+ shipsTo: string[];
391
+ itemId: string;
392
+ deliveryChannels: DeliveryChannel[];
393
+ }
394
+
395
+ export interface DeliveryChannel {
396
+ id: SelectedDeliveryChannel;
397
+ }
398
+
399
+ export enum SelectedDeliveryChannel {
400
+ Delivery = "delivery",
401
+ PickupInPoint = "pickup-in-point",
402
+ }
403
+
404
+ export enum SelectedSla {
405
+ ClickRetireRJS = "Click & Retire (RJS)",
406
+ Normal = "Normal",
407
+ }
408
+
409
+ export interface Sla {
410
+ id: SelectedSla;
411
+ deliveryChannel: SelectedDeliveryChannel;
412
+ name: SelectedSla;
413
+ deliveryIds: DeliveryID[];
414
+ shippingEstimate: string;
415
+ shippingEstimateDate: null;
416
+ lockTTL: null;
417
+ availableDeliveryWindows: AvailableDeliveryWindow[];
418
+ deliveryWindow: null;
419
+ price: number;
420
+ listPrice: number;
421
+ tax: number;
422
+ pickupStoreInfo: PickupStoreInfo;
423
+ pickupPointId: null | string;
424
+ pickupDistance: number | null;
425
+ polygonName: string;
426
+ transitTime: string;
427
+ }
428
+
429
+ export interface AvailableDeliveryWindow {
430
+ startDateUtc: Date;
431
+ endDateUtc: Date;
432
+ price: number;
433
+ lisPrice: number;
434
+ tax: number;
435
+ }
436
+
437
+ export interface DeliveryID {
438
+ courierId: string;
439
+ warehouseId: string;
440
+ dockId: string;
441
+ courierName: string;
442
+ quantity: number;
443
+ kitItemDetails: unknown[];
444
+ }
445
+
446
+ export interface PickupStoreInfo {
447
+ isPickupStore: boolean;
448
+ friendlyName: null | string;
449
+ address: Address | null;
450
+ additionalInfo: null | string;
451
+ dockId: null;
452
+ }
453
+
454
+ export interface PickupHolidays {
455
+ date?: string;
456
+ hourBegin?: string;
457
+ hourEnd?: string;
458
+ }
459
+
460
+ export interface PickupPoint {
461
+ friendlyName: string;
462
+ address: Address;
463
+ additionalInfo: string;
464
+ id: string;
465
+ businessHours: BusinessHour[];
466
+ pickupHolidays?: PickupHolidays[];
467
+ }
468
+
469
+ export interface BusinessHour {
470
+ DayOfWeek: number;
471
+ OpeningTime: string;
472
+ ClosingTime: string;
473
+ }
474
+
475
+ export interface StorePreferencesData {
476
+ countryCode: string;
477
+ saveUserData: boolean;
478
+ timeZone: string;
479
+ currencyCode: string;
480
+ currencyLocale: number;
481
+ currencySymbol: string;
482
+ currencyFormatInfo: CurrencyFormatInfo;
483
+ }
484
+
485
+ export interface CurrencyFormatInfo {
486
+ currencyDecimalDigits: number;
487
+ currencyDecimalSeparator: string;
488
+ currencyGroupSeparator: string;
489
+ currencyGroupSize: number;
490
+ startsWithCurrencySymbol: boolean;
491
+ }
492
+
493
+ export interface Totalizer {
494
+ id: string;
495
+ name: string;
496
+ value: number;
497
+ alternativeTotals?: Totalizer[];
498
+ }
499
+
500
+ export interface OrderFormItemInput {
501
+ id?: number;
502
+ index?: number;
503
+ quantity?: number;
504
+ seller?: string;
505
+ uniqueId?: string;
506
+ // options?: AssemblyOptionInput[]
507
+ }
508
+
509
+ export interface LegacySearchArgs {
510
+ query?: string;
511
+ page: number;
512
+ count: number;
513
+ type: "product_search" | "facets";
514
+ selectedFacets?: SelectedFacet[];
515
+ sort?: LegacySort;
516
+ }
517
+
518
+ export type LegacySort =
519
+ | "OrderByPriceDESC"
520
+ | "OrderByPriceASC"
521
+ | "OrderByTopSaleDESC"
522
+ | "OrderByReviewRateDESC"
523
+ | "OrderByNameASC"
524
+ | "OrderByNameDESC"
525
+ | "OrderByReleaseDateDESC"
526
+ | "OrderByBestDiscountDESC"
527
+ | "OrderByScoreDESC"
528
+ | "";
529
+
530
+ export type Fuzzy = "0" | "1" | "auto";
531
+
532
+ export interface SearchArgs {
533
+ query?: string;
534
+ page: number;
535
+ count: number;
536
+ type: "product_search" | "facets";
537
+ sort?: Sort;
538
+ selectedFacets?: SelectedFacet[];
539
+ fuzzy?: Fuzzy;
540
+ hideUnavailableItems?: boolean;
541
+ locale?: string;
542
+ segment?: Partial<Segment>;
543
+ }
544
+
545
+ export interface SelectedFacet {
546
+ /**
547
+ * @title Key
548
+ * @description The key of the facet (e.g. "brand", "category-1", "productClusterIds")
549
+ */
550
+ key: string;
551
+ /**
552
+ * @title Value
553
+ * @description The value of the facet
554
+ */
555
+ value: string;
556
+ }
557
+
558
+ export type Sort =
559
+ | "price:desc"
560
+ | "price:asc"
561
+ | "orders:desc"
562
+ | "name:desc"
563
+ | "name:asc"
564
+ | "release:desc"
565
+ | "discount:desc"
566
+ | "";
567
+
568
+ export interface Suggestion {
569
+ searches: Search[];
570
+ }
571
+
572
+ export interface Search {
573
+ term: string;
574
+ count: number;
575
+ }
576
+
577
+ export interface ProductSearchResult {
578
+ /**
579
+ * @description Total of products.
580
+ */
581
+ recordsFiltered: number;
582
+ products: Product[];
583
+ pagination: Pagination;
584
+ sampling: boolean;
585
+ options: Options;
586
+ translated: boolean;
587
+ locale: string;
588
+ query: string;
589
+ operator: "and" | "or";
590
+ redirect: string;
591
+ fuzzy: string;
592
+ correction?: Correction;
593
+ }
594
+
595
+ export interface Correction {
596
+ misspelled: boolean;
597
+ }
598
+
599
+ export interface Options {
600
+ sorts: {
601
+ field: string;
602
+ order: string;
603
+ active?: boolean;
604
+ proxyURL: string;
605
+ }[];
606
+ counts: Count[];
607
+ }
608
+
609
+ export interface Count {
610
+ count: number;
611
+ proxyURL: string;
612
+ }
613
+
614
+ export interface Pagination {
615
+ count: number;
616
+ current: Page;
617
+ before: Page[];
618
+ after: Page[];
619
+ perPage: number;
620
+ next: Page;
621
+ previous: Page;
622
+ first: Page;
623
+ last: Page;
624
+ }
625
+
626
+ export interface Page {
627
+ index: number;
628
+ proxyUrl: string;
629
+ }
630
+
631
+ export interface First {
632
+ index: number;
633
+ }
634
+
635
+ export interface Suggestion {
636
+ searches: Search[];
637
+ }
638
+
639
+ export interface Search {
640
+ term: string;
641
+ count: number;
642
+ }
643
+
644
+ export interface IProduct {
645
+ productId: string;
646
+ productName: string;
647
+ brand: string;
648
+ brandId: number;
649
+ brandImageUrl?: string;
650
+ cacheId?: string;
651
+ linkText: string;
652
+ productReference: string;
653
+ categoryId: string;
654
+ clusterHighlights: Record<string, unknown>;
655
+ productClusters: Record<string, string>;
656
+ categories: string[];
657
+ categoriesIds: string[];
658
+ link: string;
659
+ description: string;
660
+ skuSpecifications?: SkuSpecification[];
661
+ priceRange: PriceRange;
662
+ specificationGroups: SpecificationGroup[];
663
+ properties: Array<{ name: string; values: string[] }>;
664
+ selectedProperties: Array<{ key: string; value: string }>;
665
+ releaseDate: string;
666
+ origin?: string;
667
+ }
668
+
669
+ export type Product = IProduct & {
670
+ items: Item[];
671
+ clusterHighlights: Array<{ id: string; name: string }>;
672
+ productClusters: Array<{ id: string; name: string }>;
673
+ };
674
+
675
+ export type LegacyProduct = IProduct & {
676
+ metaTagDescription: string;
677
+ productTitle: string;
678
+ items: LegacyItem[];
679
+ allSpecifications: string[];
680
+ allSpecificationsGroups?: string[];
681
+ };
682
+
683
+ export type LegacyFacets = {
684
+ Departments: LegacyFacet[];
685
+ CategoriesTrees: LegacyFacet[];
686
+ Brands: LegacyFacet[];
687
+ SpecificationFilters: Record<string, LegacyFacet[]>;
688
+ PriceRanges: LegacyFacet[];
689
+ };
690
+
691
+ export interface PageType {
692
+ id: string | null;
693
+ name: string | null;
694
+ url: string | null;
695
+ title: string | null;
696
+ metaTagDescription: string | null;
697
+ pageType:
698
+ | "Brand"
699
+ | "Category"
700
+ | "Department"
701
+ | "SubCategory"
702
+ | "Product"
703
+ | "Collection"
704
+ | "Cluster"
705
+ | "NotFound"
706
+ | "FullText"
707
+ | "Search";
708
+ }
709
+
710
+ export interface Category {
711
+ id: number;
712
+ name: string;
713
+ hasChildren: boolean;
714
+ children: Category[];
715
+ url: string;
716
+ Title?: string;
717
+ MetaTagDescription?: string;
718
+ }
719
+
720
+ export interface LegacyFacet {
721
+ Id: number;
722
+ Quantity: number;
723
+ Name: string;
724
+ Link: string;
725
+ LinkEncoded: string;
726
+ Map: string;
727
+ Value: string;
728
+ Slug?: string;
729
+ Children: LegacyFacet[];
730
+ }
731
+
732
+ export interface Image {
733
+ imageId: string;
734
+ imageLabel: string | null;
735
+ imageTag: string;
736
+ imageUrl: string;
737
+ imageText: string;
738
+ }
739
+
740
+ export interface Installment {
741
+ Value: number;
742
+ InterestRate: number;
743
+ TotalValuePlusInterestRate: number;
744
+ NumberOfInstallments: number;
745
+ PaymentSystemName: string;
746
+ PaymentSystemGroupName: string;
747
+ Name: string;
748
+ }
749
+
750
+ export type LegacyItem = Omit<Item, "variations" | "videos"> & {
751
+ variations: string[];
752
+ Videos: string[];
753
+ } & Record<string, string[]>;
754
+
755
+ export interface Item {
756
+ itemId: string;
757
+ name: string;
758
+ nameComplete: string;
759
+ complementName: string;
760
+ ean: string;
761
+ estimatedDateArrival: string;
762
+ referenceId?: Array<{ Key: string; Value: string }>;
763
+ measurementUnit: string;
764
+ unitMultiplier: number;
765
+ modalType: string | null;
766
+ images: Image[];
767
+ videos: string[];
768
+ variations: Array<{
769
+ name: string;
770
+ values: string[];
771
+ }>;
772
+ sellers: Seller[];
773
+ attachments: Array<{
774
+ id: number;
775
+ name: string;
776
+ required: boolean;
777
+ domainValues: string;
778
+ }>;
779
+ isKit: boolean;
780
+ kitItems?: Array<{
781
+ itemId: string;
782
+ amount: number;
783
+ }>;
784
+ }
785
+
786
+ export interface TeasersParametersLegacy {
787
+ "<Name>k__BackingField": string;
788
+ "<Value>k__BackingField": string;
789
+ }
790
+
791
+ export interface TeasersConditionsLegacy {
792
+ "<MinimumQuantity>k__BackingField": number;
793
+ "<Parameters>k__BackingField": TeasersParametersLegacy[];
794
+ }
795
+
796
+ export interface TeasersEffectLegacy {
797
+ "<Parameters>k__BackingField": TeasersParametersLegacy[];
798
+ }
799
+
800
+ export interface TeasersLegacy {
801
+ "<Name>k__BackingField": string;
802
+ "<GeneralValues>k__BackingField": unknown;
803
+ "<Conditions>k__BackingField": TeasersConditionsLegacy;
804
+ "<Effects>k__BackingField": TeasersEffectLegacy;
805
+ }
806
+
807
+ export interface TeasersParameters {
808
+ name: string;
809
+ value: string;
810
+ }
811
+
812
+ export interface TeasersConditions {
813
+ minimumQuantity: number;
814
+ parameters: TeasersParameters[];
815
+ }
816
+
817
+ export interface TeasersEffect {
818
+ parameters: TeasersParameters[];
819
+ }
820
+
821
+ export interface Teasers {
822
+ name: string;
823
+ generalValues?: unknown;
824
+ conditions: TeasersConditions;
825
+ effects: TeasersEffect;
826
+ }
827
+
828
+ export interface CommertialOffer {
829
+ DeliverySlaSamplesPerRegion: Record<
830
+ string,
831
+ { DeliverySlaPerTypes: unknown[]; Region: unknown | null }
832
+ >;
833
+ Installments: Installment[];
834
+ DiscountHighLight: unknown[];
835
+ GiftSkuIds: string[];
836
+ Teasers: TeasersLegacy[];
837
+ teasers?: Teasers[];
838
+ BuyTogether: unknown[];
839
+ ItemMetadataAttachment: unknown[];
840
+ Price: number;
841
+ ListPrice: number;
842
+ spotPrice: number;
843
+ PriceWithoutDiscount: number;
844
+ RewardValue: number;
845
+ PriceValidUntil: string;
846
+ AvailableQuantity: number;
847
+ Tax: number;
848
+ DeliverySlaSamples: Array<{
849
+ DeliverySlaPerTypes: unknown[];
850
+ Region: unknown | null;
851
+ }>;
852
+ GetInfoErrorMessage: unknown | null;
853
+ CacheVersionUsedToCallCheckout: string;
854
+ }
855
+
856
+ export interface Seller {
857
+ sellerId: string;
858
+ sellerName: string;
859
+ addToCartLink: string;
860
+ sellerDefault: boolean;
861
+ commertialOffer: CommertialOffer;
862
+ }
863
+
864
+ export interface SkuSpecification {
865
+ field: SKUSpecificationField;
866
+ values: SKUSpecificationValue[];
867
+ }
868
+ export interface SKUSpecificationValue {
869
+ name: string;
870
+ id?: string;
871
+ fieldId?: string;
872
+ originalName?: string;
873
+ }
874
+
875
+ export interface SKUSpecificationField {
876
+ name: string;
877
+ originalName?: string;
878
+ id?: string;
879
+ }
880
+
881
+ export interface Price {
882
+ highPrice: number | null;
883
+ lowPrice: number | null;
884
+ }
885
+
886
+ export interface PriceRange {
887
+ sellingPrice: Price;
888
+ listPrice: Price;
889
+ }
890
+
891
+ export interface SpecificationGroup {
892
+ name: string;
893
+ originalName: string;
894
+ specifications: Array<{
895
+ name: string;
896
+ originalName: string;
897
+ values: string[];
898
+ }>;
899
+ }
900
+
901
+ export type FilterType = RangeFacet["type"] | BooleanFacet["type"];
902
+
903
+ export interface FacetSearchResult {
904
+ facets: Facet[];
905
+ breadcrumb: Breadcrumb[];
906
+ }
907
+
908
+ export interface BaseFacet {
909
+ name: string;
910
+ hidden: boolean;
911
+ key: string;
912
+ quantity: number;
913
+ }
914
+
915
+ export interface RangeFacet extends BaseFacet {
916
+ type: "PRICERANGE";
917
+ values: FacetValueRange[];
918
+ }
919
+
920
+ export interface BooleanFacet extends BaseFacet {
921
+ type: "TEXT" | "NUMBER";
922
+ values: FacetValueBoolean[];
923
+ }
924
+
925
+ export type Facet = RangeFacet | BooleanFacet;
926
+
927
+ export interface FacetValueBoolean {
928
+ quantity: number;
929
+ name: string;
930
+ key: string;
931
+ value: string;
932
+ selected: boolean;
933
+ href: string;
934
+ }
935
+
936
+ export interface FacetValueRange {
937
+ selected: boolean;
938
+ quantity: number;
939
+ range: {
940
+ from: number;
941
+ to: number;
942
+ };
943
+ }
944
+
945
+ export interface Breadcrumb {
946
+ href: string;
947
+ name: string;
948
+ }
949
+
950
+ export interface SKU {
951
+ id: number;
952
+ quantity: number;
953
+ seller: string;
954
+ }
955
+
956
+ export interface SimulationOrderForm {
957
+ items: Item[];
958
+ ratesAndBenefitsData: RatesAndBenefitsData;
959
+ paymentData: PaymentData;
960
+ selectableGifts: unknown[];
961
+ marketingData?: MarketingData;
962
+ postalCode: string;
963
+ country: string;
964
+ logisticsInfo: LogisticsInfo[];
965
+ messages: Message[];
966
+ purchaseConditions: PurchaseConditions;
967
+ pickupPoints: PickupPoint[];
968
+ subscriptionData?: unknown;
969
+ totals: Total[];
970
+ itemMetadata?: ItemMetadata;
971
+ allowMultipleDeliveries: boolean;
972
+ }
973
+
974
+ export interface Total {
975
+ id: string;
976
+ name: string;
977
+ value: number;
978
+ }
979
+
980
+ export interface PurchaseConditions {
981
+ itemPurchaseConditions: ItemPurchaseCondition[];
982
+ }
983
+
984
+ export interface ItemPurchaseCondition {
985
+ id: string;
986
+ seller: string;
987
+ sellerChain: string[];
988
+ slas: Sla[];
989
+ price: number;
990
+ listPrice: number;
991
+ }
992
+
993
+ export interface DeliveryId {
994
+ courierId: string;
995
+ warehouseId: string;
996
+ dockId: string;
997
+ courierName: string;
998
+ quantity: number;
999
+ kitItemDetails: unknown[];
1000
+ }
1001
+
1002
+ export interface Installment {
1003
+ count: number;
1004
+ hasInterestRate: boolean;
1005
+ interestRate: number;
1006
+ value: number;
1007
+ total: number;
1008
+ sellerMerchantInstallments: SellerMerchantInstallment[];
1009
+ }
1010
+
1011
+ export interface SellerMerchantInstallment {
1012
+ id: string;
1013
+ count: number;
1014
+ hasInterestRate: boolean;
1015
+ interestRate: number;
1016
+ value: number;
1017
+ total: number;
1018
+ }
1019
+
1020
+ export interface Teaser {
1021
+ featured: boolean;
1022
+ id: string;
1023
+ name: string;
1024
+ conditions: Conditions;
1025
+ effects: Effects;
1026
+ teaserType: string;
1027
+ }
1028
+
1029
+ export interface Effects {
1030
+ parameters: Parameter[];
1031
+ }
1032
+
1033
+ export interface Conditions {
1034
+ parameters: Parameter[];
1035
+ minimumQuantity: number;
1036
+ }
1037
+
1038
+ export interface Parameter {
1039
+ name: string;
1040
+ value: string;
1041
+ }
1042
+
1043
+ export interface PriceDefinition {
1044
+ calculatedSellingPrice: number;
1045
+ total: number;
1046
+ sellingPrices: SellingPrice[];
1047
+ }
1048
+
1049
+ export interface SellingPrice {
1050
+ value: number;
1051
+ quantity: number;
1052
+ }
1053
+
1054
+ export interface Offering {
1055
+ type: string;
1056
+ id: string;
1057
+ name: string;
1058
+ allowGiftMessage: boolean;
1059
+ attachmentOfferings: unknown[];
1060
+ price: number;
1061
+ }
1062
+
1063
+ export type CrossSellingType =
1064
+ | "whosawalsosaw"
1065
+ | "whosawalsobought"
1066
+ | "whoboughtalsobought"
1067
+ | "showtogether"
1068
+ | "accessories"
1069
+ | "similars"
1070
+ | "suggestions";
1071
+
1072
+ export interface CrossSellingArgs {
1073
+ productId: string;
1074
+ type: CrossSellingType;
1075
+ }
1076
+
1077
+ export interface Segment {
1078
+ campaigns: unknown | null;
1079
+ /** @description 1,2,3 etc */
1080
+ channel: string;
1081
+ priceTables: string | null;
1082
+ regionId: string | null;
1083
+ utm_campaign: string | null;
1084
+ utm_source: string | null;
1085
+ utm_medium: string | null;
1086
+ utmi_campaign: string | null;
1087
+ utmi_page: string | null;
1088
+ utmi_part: string | null;
1089
+ /** @description BRL, USD stc */
1090
+ currencyCode: string;
1091
+ /** @description R$, $ etc */
1092
+ currencySymbol: string;
1093
+ /** @description BRA, USA etc */
1094
+ countryCode: string;
1095
+ /** @description pt-BR, en-US etc */
1096
+ cultureInfo: string;
1097
+ channelPrivacy: "public" | "private";
1098
+ }
1099
+
1100
+ export interface WishlistItem {
1101
+ id: string;
1102
+ productId: string;
1103
+ sku: string;
1104
+ title: string;
1105
+ }
1106
+
1107
+ export interface PortalSuggestion {
1108
+ itemsReturned: ItemsReturned[];
1109
+ }
1110
+
1111
+ export interface ItemsReturned {
1112
+ items: Item[];
1113
+ thumb: string;
1114
+ thumbUrl: null | string;
1115
+ name: string;
1116
+ href: string;
1117
+ criteria: null | string;
1118
+ }
1119
+
1120
+ export interface Item {
1121
+ productId: string;
1122
+ itemId: string;
1123
+ name: string;
1124
+ nameComplete: string;
1125
+ imageUrl: string;
1126
+ }
1127
+
1128
+ export interface SimulationItem {
1129
+ id: number;
1130
+ quantity: number;
1131
+ seller: string;
1132
+ }
1133
+
1134
+ export type SPEvent =
1135
+ | {
1136
+ type: "session.ping";
1137
+ url: string;
1138
+ }
1139
+ | {
1140
+ type: "page.cart";
1141
+ products: {
1142
+ productId: string;
1143
+ quantity: number;
1144
+ }[];
1145
+ }
1146
+ | {
1147
+ type: "page.empty_cart";
1148
+ // Empty array is converted to a invalid json schema... so, let it be anything.
1149
+ // deno-lint-ignore ban-types
1150
+ products: {};
1151
+ }
1152
+ | {
1153
+ type: "page.confirmation";
1154
+ order: string;
1155
+ products: {
1156
+ productId: string;
1157
+ quantity: number;
1158
+ price: number;
1159
+ }[];
1160
+ }
1161
+ | {
1162
+ type: "search.click";
1163
+ position: number;
1164
+ text: string;
1165
+ productId: string;
1166
+ url: string;
1167
+ }
1168
+ | {
1169
+ type: "search.query";
1170
+ url: string;
1171
+ text: string;
1172
+ misspelled: boolean;
1173
+ match: number;
1174
+ operator: string;
1175
+ locale: string;
1176
+ };
1177
+
1178
+ export interface CreateNewDocument {
1179
+ Id?: string;
1180
+ Href?: string;
1181
+ DocumentId?: string;
1182
+ }
1183
+
1184
+ export interface Document extends Record<string, unknown> {
1185
+ additionalProperties?: string;
1186
+ id?: string;
1187
+ accountId?: string;
1188
+ accountName?: string;
1189
+ dataEntityId?: string;
1190
+ }
1191
+
1192
+ export interface SelectableGifts {
1193
+ id: string;
1194
+ selectedGifts: {
1195
+ id: string;
1196
+ seller: string;
1197
+ index: number;
1198
+ }[];
1199
+ }
1200
+
1201
+ export interface Brand {
1202
+ id: number;
1203
+ name: string;
1204
+ isActive: boolean;
1205
+ title: string;
1206
+ metaTagDescription: string;
1207
+ imageUrl: string | null;
1208
+ }
1209
+
1210
+ export interface Collection {
1211
+ id: number;
1212
+ name: "Live influencers";
1213
+ searchable: boolean;
1214
+ highlight: boolean;
1215
+ dateFrom: string;
1216
+ dateTo: string;
1217
+ totalSku: number;
1218
+ totalProducts: number;
1219
+ type: "Manual" | "Automatic" | "Hybrid";
1220
+ lastModifiedBy?: string;
1221
+ }
1222
+
1223
+ export interface CollectionList {
1224
+ paging: {
1225
+ page: number;
1226
+ perPage: number;
1227
+ total: number;
1228
+ pages: number;
1229
+ limit: number;
1230
+ };
1231
+ items?: Collection[];
1232
+ }
1233
+
1234
+ export interface ProductRatingAndReviews {
1235
+ productRating?: ProductRating;
1236
+ productReviews?: ProductReviewData;
1237
+ }
1238
+
1239
+ export interface ProductRating {
1240
+ average?: number;
1241
+ totalCount?: number;
1242
+ }
1243
+
1244
+ export interface ProductReview {
1245
+ id?: string | undefined;
1246
+ productId?: string | undefined;
1247
+ rating?: number | undefined;
1248
+ title?: string | undefined;
1249
+ text?: string | undefined;
1250
+ reviewerName?: string | undefined;
1251
+ shopperId?: string | undefined;
1252
+ reviewDateTime?: string | undefined;
1253
+ searchDate?: string | undefined;
1254
+ verifiedPurchaser?: boolean | undefined;
1255
+ sku?: string | null;
1256
+ approved?: boolean;
1257
+ location?: string | null;
1258
+ locale?: string | null;
1259
+ pastReviews?: string | null;
1260
+ }
1261
+
1262
+ export interface ProductReviewRange {
1263
+ total?: number;
1264
+ from?: number;
1265
+ to?: number;
1266
+ }
1267
+
1268
+ export interface ProductReviewData {
1269
+ data?: ProductReview[] | undefined;
1270
+ range?: ProductReviewRange;
1271
+ }
1272
+
1273
+ export interface ProductBalance {
1274
+ hasUnlimitedQuantity?: boolean;
1275
+ leadTime?: string;
1276
+ reservedQuantity?: number;
1277
+ totalQuantity?: number;
1278
+ warehouseId?: string;
1279
+ warehouseName?: string;
1280
+ }
1281
+
1282
+ export interface ProductInventoryData {
1283
+ skuId?: string;
1284
+ balance?: ProductBalance[];
1285
+ }
1286
+
1287
+ interface OrderPlacedSeller {
1288
+ id: string;
1289
+ name: string;
1290
+ logo: string;
1291
+ }
1292
+
1293
+ export interface OrderPlaced {
1294
+ sellers: OrderPlacedSeller[];
1295
+ orderId: string;
1296
+ orderGroup: string;
1297
+ state: string;
1298
+ isCheckedIn: boolean;
1299
+ sellerOrderId: string;
1300
+ storeId: string | null;
1301
+ checkedInPickupPointId: string | null;
1302
+ value: number;
1303
+ items: OrderFormItem[];
1304
+ totals: Total[];
1305
+ clientProfileData: ClientProfileData;
1306
+ ratesAndBenefitsData: RatesAndBenefitsData;
1307
+ shippingData: ShippingData;
1308
+ paymentData: PaymentData;
1309
+ clientPreferencesData: ClientPreferencesData;
1310
+ commercialConditionData: null;
1311
+ giftRegistryData: null;
1312
+ marketingData: MarketingData | null;
1313
+ storePreferencesData: StorePreferencesData;
1314
+ openTextField: null;
1315
+ invoiceData: null;
1316
+ itemMetadata: ItemMetadata;
1317
+ taxData: null;
1318
+ customData: null;
1319
+ hooksData: null;
1320
+ changeData: null;
1321
+ subscriptionData: null;
1322
+ merchantContextData: null;
1323
+ purchaseAgentData: null;
1324
+ salesChannel: string;
1325
+ followUpEmail: string;
1326
+ creationDate: string;
1327
+ lastChange: string;
1328
+ timeZoneCreationDate: string;
1329
+ timeZoneLastChange: string;
1330
+ isCompleted: boolean;
1331
+ hostName: string;
1332
+ merchantName: string | null;
1333
+ userType: string;
1334
+ roundingError: number;
1335
+ allowEdition: boolean;
1336
+ allowCancellation: boolean;
1337
+ isUserDataVisible: boolean;
1338
+ cancellationData: CancelattionData;
1339
+ orderFormCreationDate: string;
1340
+ marketplaceRequestedCancellationWindow: null;
1341
+ }
1342
+
1343
+ interface CancelattionData {
1344
+ requestedByUser: true;
1345
+ reason: string;
1346
+ cancellationDate: string;
1347
+ cancellationRequestId: string;
1348
+ requestedBy: null;
1349
+ cancellationSource: null;
1350
+ }
1351
+
1352
+ export interface Order {
1353
+ ShippingEstimatedDate?: Date;
1354
+ ShippingEstimatedDateMax: string;
1355
+ ShippingEstimatedDateMin: string;
1356
+ affiliateId: string;
1357
+ authorizedDate: string;
1358
+ callCenterOperatorName: string;
1359
+ clientName: string;
1360
+ creationDate: string;
1361
+ currencyCode: string;
1362
+ deliveryDates: Date[];
1363
+ giftCardProviders: string[];
1364
+ hostname: string;
1365
+ invoiceInput: string;
1366
+ invoiceOutput: string[];
1367
+ isAllDelivered: boolean;
1368
+ isAnyDelivered: boolean;
1369
+ items: OrderFormItem[];
1370
+ lastChange: string;
1371
+ lastMessageUnread: string;
1372
+ listId: string;
1373
+ listType: string;
1374
+ marketPlaceOrderId: string;
1375
+ orderFormId: string;
1376
+ orderId: string;
1377
+ orderIsComplete: boolean;
1378
+ origin: string;
1379
+ paymentApprovedDate: string;
1380
+ paymentNames: string;
1381
+ salesChannel: string;
1382
+ sequence: string;
1383
+ status: string;
1384
+ statusDescription: string;
1385
+ totalItems: number;
1386
+ totalValue: number;
1387
+ workflowInErrorState: boolean;
1388
+ workflowInRetry: boolean;
1389
+ }
1390
+
1391
+ export interface Orders {
1392
+ facets: Facet[];
1393
+ list: Order[];
1394
+ paging: {
1395
+ total: number;
1396
+ pages: number;
1397
+ currentPage: number;
1398
+ perPage: number;
1399
+ };
1400
+ reportRecordsLimit: number;
1401
+ stats: {
1402
+ stats: {
1403
+ totalItems: {
1404
+ Count: number;
1405
+ Max: number;
1406
+ Mean: number;
1407
+ Min: number;
1408
+ Missing: number;
1409
+ StdDev: number;
1410
+ Sum: number;
1411
+ SumOfSquares: number;
1412
+ };
1413
+ totalValue: {
1414
+ Count: number;
1415
+ Max: number;
1416
+ Mean: number;
1417
+ Min: number;
1418
+ Missing: number;
1419
+ StdDev: number;
1420
+ Sum: number;
1421
+ SumOfSquares: number;
1422
+ };
1423
+ };
1424
+ };
1425
+ }
1426
+
1427
+ export interface SalesChannel {
1428
+ Id?: number;
1429
+ Name?: string;
1430
+ IsActive?: boolean;
1431
+ ProductClusterId?: number | null;
1432
+ CountryCode?: string;
1433
+ CultureInfo?: string;
1434
+ TimeZone?: string;
1435
+ CurrencyCode?: string;
1436
+ CurrencySymbol?: string;
1437
+ CurrencyLocale?: number;
1438
+ CurrencyFormatInfo?: {
1439
+ CurrencyDecimalDigits?: number;
1440
+ CurrencyDecimalSeparator?: string;
1441
+ CurrencyGroupSeparator?: string;
1442
+ CurrencyGroupSize?: number;
1443
+ StartsWithCurrencySymbol?: boolean;
1444
+ };
1445
+ Origin?: string | null;
1446
+ Position?: number | null;
1447
+ ConditionRule?: string | null;
1448
+ CurrencyDecimalDigits?: number;
1449
+ }
1450
+
1451
+ export interface Promotion {
1452
+ idCalculatorConfiguration: string;
1453
+ name: string;
1454
+ beginDateUtc: string;
1455
+ endDateUtc: string;
1456
+ lastModified: string;
1457
+ daysAgoOfPurchases: number;
1458
+ isActive: boolean;
1459
+ isArchived: boolean;
1460
+ isFeatured: boolean;
1461
+ disableDeal: boolean;
1462
+ activeDaysOfWeek: number[];
1463
+ offset: number;
1464
+ activateGiftsMultiplier: boolean;
1465
+ newOffset: number;
1466
+ maxPricesPerItems: string[];
1467
+ cumulative: boolean;
1468
+ nominalShippingDiscountValue: number;
1469
+ absoluteShippingDiscountValue: number;
1470
+ nominalDiscountValue: number;
1471
+ nominalDiscountType: string;
1472
+ maximumUnitPriceDiscount: number;
1473
+ percentualDiscountValue: number;
1474
+ rebatePercentualDiscountValue: number;
1475
+ percentualShippingDiscountValue: number;
1476
+ percentualTax: number;
1477
+ shippingPercentualTax: number;
1478
+ percentualDiscountValueList1: number;
1479
+ percentualDiscountValueList2: number;
1480
+ skusGift: {
1481
+ quantitySelectable: number;
1482
+ gifts: number;
1483
+ };
1484
+ nominalRewardValue: number;
1485
+ percentualRewardValue: number;
1486
+ orderStatusRewardValue: string;
1487
+ applyToAllShippings: boolean;
1488
+ nominalTax: number;
1489
+ maxPackValue: number;
1490
+ origin: string;
1491
+ idSellerIsInclusive: boolean;
1492
+ idsSalesChannel: string[];
1493
+ areSalesChannelIdsExclusive: boolean;
1494
+ marketingTags: string[];
1495
+ marketingTagsAreNotInclusive: boolean;
1496
+ paymentsMethods: {
1497
+ id: string;
1498
+ name: string;
1499
+ }[];
1500
+ stores: string[];
1501
+ campaigns: string[];
1502
+ storesAreInclusive: boolean;
1503
+ categories: {
1504
+ id: string;
1505
+ name: string;
1506
+ }[];
1507
+ categoriesAreInclusive: boolean;
1508
+ brands: {
1509
+ id: string;
1510
+ name: string;
1511
+ }[];
1512
+ brandsAreInclusive: boolean;
1513
+ products: {
1514
+ id: string;
1515
+ name: string;
1516
+ }[];
1517
+ productsAreInclusive: boolean;
1518
+ skus: {
1519
+ id: string;
1520
+ name: string;
1521
+ }[];
1522
+ skusAreInclusive: boolean;
1523
+ collections1BuyTogether: {
1524
+ id: string;
1525
+ name: string;
1526
+ }[];
1527
+ collections2BuyTogether: {
1528
+ id: string;
1529
+ name: string;
1530
+ }[];
1531
+ minimumQuantityBuyTogether: number;
1532
+ quantityToAffectBuyTogether: number;
1533
+ enableBuyTogetherPerSku: boolean;
1534
+ listSku1BuyTogether: {
1535
+ id: string;
1536
+ name: string;
1537
+ }[];
1538
+ listSku2BuyTogether: {
1539
+ id: string;
1540
+ name: string;
1541
+ }[];
1542
+ coupon: string[];
1543
+ totalValueFloor: number;
1544
+ totalValueCeling: number;
1545
+ totalValueIncludeAllItems: boolean;
1546
+ totalValueMode: string;
1547
+ collections: {
1548
+ id: string;
1549
+ name: string;
1550
+ }[];
1551
+ collectionsIsInclusive: boolean;
1552
+ restrictionsBins: string[];
1553
+ cardIssuers: string[];
1554
+ totalValuePurchase: number;
1555
+ slasIds: string[];
1556
+ isSlaSelected: boolean;
1557
+ isFirstBuy: boolean;
1558
+ firstBuyIsProfileOptimistic: boolean;
1559
+ compareListPriceAndPrice: boolean;
1560
+ isDifferentListPriceAndPrice: boolean;
1561
+ zipCodeRanges: {
1562
+ zipCodeFrom: string;
1563
+ zipCodeTo: string;
1564
+ inclusive: string;
1565
+ }[];
1566
+ itemMaxPrice: number;
1567
+ itemMinPrice: number;
1568
+ installment: number;
1569
+ isMinMaxInstallments: boolean;
1570
+ minInstallment: number;
1571
+ maxInstallment: number;
1572
+ merchants: string[];
1573
+ clusterExpressions: string[];
1574
+ clusterOperator: string;
1575
+ paymentsRules: string[];
1576
+ giftListTypes: string[];
1577
+ productsSpecifications: string[];
1578
+ affiliates: {
1579
+ id: string;
1580
+ name: string;
1581
+ }[];
1582
+ maxUsage: number;
1583
+ maxUsagePerClient: number;
1584
+ shouldDistributeDiscountAmongMatchedItems: boolean;
1585
+ multipleUsePerClient: boolean;
1586
+ accumulateWithManualPrice: boolean;
1587
+ type: string;
1588
+ useNewProgressiveAlgorithm: boolean;
1589
+ percentualDiscountValueList: number[];
1590
+ isAppliedToMostExpensive: boolean;
1591
+ maxNumberOfAffectedItems: number;
1592
+ maxNumberOfAffectedItemsGroupKey: string;
1593
+ }
1594
+
1595
+ export interface AdvancedLoaderConfig {
1596
+ /** @description Specifies an array of attribute names from the original object to be directly included in the transformed object. */
1597
+ includeOriginalAttributes: string[];
1598
+
1599
+ /** @description Allow this field if you prefer to use description instead of metaTagDescription */
1600
+ preferDescription?: boolean;
1601
+ }
1602
+
1603
+ export type Maybe<T> = T | null | undefined;
1604
+
1605
+ export interface AddressInput {
1606
+ name?: string;
1607
+ addressName: string;
1608
+ addressType?: string;
1609
+ city?: string;
1610
+ complement?: string;
1611
+ country?: string;
1612
+ geoCoordinates?: number[];
1613
+ neighborhood?: string;
1614
+ number?: string;
1615
+ postalCode?: string;
1616
+ receiverName?: string;
1617
+ reference?: string;
1618
+ state?: string;
1619
+ street?: string;
1620
+ }
1621
+
1622
+ export interface SavedAddress {
1623
+ id: string;
1624
+ cacheId: string;
1625
+ }
1626
+
1627
+ export type SimulationBehavior = "default" | "skip" | "only1P";
1628
+
1629
+ export enum DeviceType {
1630
+ Mobile = "MOBILE",
1631
+ Tablet = "TABLET",
1632
+ Desktop = "DESKTOP",
1633
+ }
1634
+
1635
+ export interface LoginSession {
1636
+ id: string;
1637
+ cacheId: string;
1638
+ deviceType: DeviceType;
1639
+ city?: Maybe<string>;
1640
+ lastAccess: string;
1641
+ browser?: Maybe<string>;
1642
+ os?: Maybe<string>;
1643
+ ip?: Maybe<string>;
1644
+ fullAddress?: Maybe<string>;
1645
+ firstAccess: string;
1646
+ }
1647
+
1648
+ export interface LoginSessionsInfo {
1649
+ currentLoginSessionId?: Maybe<string>;
1650
+ loginSessions?: Maybe<LoginSession[]>;
1651
+ }
1652
+
1653
+ export interface Session {
1654
+ id: string;
1655
+ namespaces?: {
1656
+ profile: SessionProfile;
1657
+ impersonate: SessionImpersonate;
1658
+ authentication: Record<string, string>;
1659
+ public: SessionPublic;
1660
+ };
1661
+ }
1662
+
1663
+ export interface SessionProfile {
1664
+ id?: { value: string };
1665
+ email?: { value: string };
1666
+ firstName?: { value: string };
1667
+ lastName?: { value: string };
1668
+ phone?: { value: string };
1669
+ isAuthenticated?: { value: string };
1670
+ priceTables?: { value: string };
1671
+ }
1672
+
1673
+ export interface SessionImpersonate {
1674
+ storeUserEmail?: { value: string };
1675
+ storeUserId?: { value: string };
1676
+ }
1677
+
1678
+ export interface SessionPublic {
1679
+ orderFormId?: { value: string };
1680
+ utm_source?: { value: string };
1681
+ utm_medium?: { value: string };
1682
+ utm_campaign?: { value: string };
1683
+ utm_term?: { value: string };
1684
+ utm_content?: { value: string };
1685
+ utmi_cp?: { value: string };
1686
+ utmi_pc?: { value: string };
1687
+ utmi_p?: { value: string };
1688
+ }
1689
+
1690
+ export interface ProfileCustomField {
1691
+ key?: Maybe<string>;
1692
+ value?: Maybe<string>;
1693
+ }
1694
+
1695
+ export interface PaymentProfile {
1696
+ cacheId?: Maybe<string>;
1697
+ id?: Maybe<string>;
1698
+ paymentSystem?: Maybe<string>;
1699
+ paymentSystemName?: Maybe<string>;
1700
+ cardNumber?: Maybe<string>;
1701
+ address?: Maybe<Address>;
1702
+ isExpired?: Maybe<boolean>;
1703
+ expirationDate?: Maybe<string>;
1704
+ accountStatus?: Maybe<string>;
1705
+ }
1706
+
1707
+ export interface Profile {
1708
+ cacheId?: Maybe<string>;
1709
+ firstName?: Maybe<string>;
1710
+ lastName?: Maybe<string>;
1711
+ profilePicture?: Maybe<string>;
1712
+ email?: Maybe<string>;
1713
+ document?: Maybe<string>;
1714
+ userId?: Maybe<string>;
1715
+ birthDate?: Maybe<string>;
1716
+ gender?: Maybe<string>;
1717
+ homePhone?: Maybe<string>;
1718
+ businessPhone?: Maybe<string>;
1719
+ addresses?: Maybe<Address[]>;
1720
+ isCorporate?: Maybe<boolean>;
1721
+ corporateName?: Maybe<string>;
1722
+ corporateDocument?: Maybe<string>;
1723
+ stateRegistration?: Maybe<string>;
1724
+ payments?: Maybe<PaymentProfile[]>;
1725
+ customFields?: Maybe<ProfileCustomField[]>;
1726
+ passwordLastUpdate?: Maybe<string>;
1727
+ pii?: Maybe<boolean>;
1728
+ tradeName?: Maybe<string>;
1729
+ }
1730
+
1731
+ export interface ProfileInput {
1732
+ email: string;
1733
+ firstName?: Maybe<string>;
1734
+ lastName?: Maybe<string>;
1735
+ document?: Maybe<string>;
1736
+ phone?: Maybe<string>;
1737
+ birthDate?: Maybe<string>;
1738
+ gender?: Maybe<string>;
1739
+ homePhone?: Maybe<string>;
1740
+ businessPhone?: Maybe<string>;
1741
+ tradeName?: Maybe<string>;
1742
+ corporateName?: Maybe<string>;
1743
+ corporateDocument?: Maybe<string>;
1744
+ stateRegistration?: Maybe<string>;
1745
+ isCorporate?: Maybe<boolean>;
1746
+ }
1747
+
1748
+ export interface AuthResponse {
1749
+ authStatus: string | "WrongCredentials" | "BlockedUser" | "Success";
1750
+ promptMFA: boolean;
1751
+ clientToken: string | null;
1752
+ authCookie: {
1753
+ Name: string;
1754
+ Value: string;
1755
+ } | null;
1756
+ accountAuthCookie: {
1757
+ Name: string;
1758
+ Value: string;
1759
+ } | null;
1760
+ expiresIn: number;
1761
+ userId: string | null;
1762
+ phoneNumber: string | null;
1763
+ scope: string | null;
1764
+ }
1765
+
1766
+ export interface AuthProvider {
1767
+ providerName: string;
1768
+ className: string;
1769
+ expectedContext: unknown[];
1770
+ }
1771
+
1772
+ export interface StartAuthentication {
1773
+ authenticationToken: string | null;
1774
+ oauthProviders: AuthProvider[];
1775
+ showClassicAuthentication: boolean;
1776
+ showAccessKeyAuthentication: boolean;
1777
+ showPasskeyAuthentication: boolean;
1778
+ authCookie: string | null;
1779
+ isAuthenticated: boolean;
1780
+ selectedProvider: string | null;
1781
+ samlProviders: unknown[];
1782
+ }
1783
+
1784
+ export interface CanceledOrder {
1785
+ date?: string;
1786
+ orderId?: string;
1787
+ receipt?: string | null;
1788
+ }
1789
+
1790
+ export interface ReceiptData {
1791
+ ReceiptCollection: Receipt[];
1792
+ }
1793
+
1794
+ export interface Receipt {
1795
+ ReceiptType: string;
1796
+ Date: string;
1797
+ ReceiptToken: string;
1798
+ Source: string;
1799
+ InvoiceNumber: string | null;
1800
+ TransactionId: string;
1801
+ MerchantName: string;
1802
+ SellerOrderId: string | null;
1803
+ ValueAsInt: number | null;
1804
+ }
1805
+
1806
+ export interface CancellationData {
1807
+ requestedByUser: boolean;
1808
+ reason: string;
1809
+ cancellationDate: string;
1810
+ cancellationRequestId: string;
1811
+ requestedBy: string | null;
1812
+ cancellationSource: string | null;
1813
+ }
1814
+
1815
+ export interface OrderFormOrder {
1816
+ sellers: Seller[];
1817
+ receiptData?: ReceiptData;
1818
+ sequence?: string;
1819
+ marketPlaceOrderId?: string;
1820
+ origin?: number;
1821
+ items: OrderFormItem[];
1822
+ giftRegistryData?: unknown;
1823
+ contextData?: unknown;
1824
+ marketPlaceOrderGroup?: string | null;
1825
+ marketplaceServicesEndpoint?: string | null;
1826
+ orderFormId?: string;
1827
+ affiliateId?: string;
1828
+ status?: string;
1829
+ callCenterOperator?: string;
1830
+ userProfileId?: string;
1831
+ creationVersion?: string;
1832
+ creationEnvironment?: string;
1833
+ lastChangeVersion?: string;
1834
+ workflowInstanceId?: string;
1835
+ workflowInstanceGroupId?: string | null;
1836
+ marketplacePaymentValue?: number | null;
1837
+ marketplacePaymentReferenceValue?: number | null;
1838
+ marketplace?: string | null;
1839
+ orderId: string;
1840
+ orderGroup: string;
1841
+ state: string;
1842
+ isCheckedIn: boolean;
1843
+ sellerOrderId: string;
1844
+ storeId?: string | null;
1845
+ checkedInPickupPointId?: string | null;
1846
+ value: number;
1847
+ totals: Total[];
1848
+ clientProfileData: ClientProfileData;
1849
+ ratesAndBenefitsData: RatesAndBenefitsData;
1850
+ shippingData: ShippingData;
1851
+ paymentData: PaymentData;
1852
+ clientPreferencesData: ClientPreferencesData;
1853
+ commercialConditionData?: unknown;
1854
+ marketingData?: MarketingData | null;
1855
+ storePreferencesData: StorePreferencesData;
1856
+ openTextField?: unknown;
1857
+ invoiceData?: unknown;
1858
+ itemMetadata: ItemMetadata;
1859
+ taxData?: unknown;
1860
+ customData?: unknown;
1861
+ hooksData?: unknown;
1862
+ changeData?: unknown;
1863
+ subscriptionData?: unknown;
1864
+ merchantContextData?: unknown;
1865
+ purchaseAgentData?: unknown;
1866
+ salesChannel: string;
1867
+ followUpEmail?: string;
1868
+ creationDate: string;
1869
+ lastChange: string;
1870
+ timeZoneCreationDate: string;
1871
+ timeZoneLastChange: string;
1872
+ isCompleted: boolean;
1873
+ hostName: string;
1874
+ merchantName?: string | null;
1875
+ userType?: string;
1876
+ roundingError?: number;
1877
+ allowEdition?: boolean;
1878
+ allowCancellation?: boolean;
1879
+ isUserDataVisible?: boolean;
1880
+ allowChangeSeller?: boolean;
1881
+ cancellationData?: CancellationData;
1882
+ orderFormCreationDate?: string;
1883
+ marketplaceRequestedCancellationWindow?: unknown;
1884
+ }