@mailbiz/onsite-vtex-vendor 0.1.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.
@@ -0,0 +1,466 @@
1
+ import { OnsiteCoreWindow } from "@mailbiz/onsite-core";
2
+ //#region [Window]
3
+ interface VtexLocalStorage {
4
+ orderform?: string; // VtexIOOrderFrom JSON string
5
+ }
6
+ interface VtexLegacyContext {
7
+ catalog: any;
8
+ checkout: {
9
+ orderForm: VtexLegacyOrderForm;
10
+ };
11
+ }
12
+ interface VtexWindow extends OnsiteCoreWindow {
13
+ vtexjs?: VtexLegacyContext;
14
+ localStorage?: VtexLocalStorage;
15
+ CATALOG_SDK?: VtexLegacyCatalog;
16
+ dataLayer?: DataLayerEvent[];
17
+ }
18
+ //#endregion
19
+ //#region [Data Layer]
20
+ interface DataLayerProduct {
21
+ brand: string;
22
+ category: string;
23
+ dimension1: string;
24
+ dimension2: string;
25
+ dimension3: string;
26
+ dimension4: string;
27
+ id: string;
28
+ name: string;
29
+ price: number;
30
+ variant: string;
31
+ }
32
+ interface DataLayerEvent {
33
+ event?: string;
34
+ ecommerce?: {
35
+ detail?: {
36
+ products?: DataLayerProduct[];
37
+ };
38
+ };
39
+ }
40
+ //#endregion
41
+ //#region [Vtex Order Form]
42
+ interface ProductCategories {
43
+ [categoryId: string]: string;
44
+ }
45
+ interface PriceTag {
46
+ name: string;
47
+ value: number;
48
+ rawValue: number;
49
+ isPercentual: boolean;
50
+ identifier: string;
51
+ owner?: string;
52
+ __typename?: string;
53
+ ratesAndBenefitsIdentifier?: any;
54
+ }
55
+ interface PriceDefinition {
56
+ calculatedSellingPrice: number;
57
+ total: number;
58
+ sellingPrices: SellingPrice[];
59
+ __typename?: string;
60
+ }
61
+ interface SellingPrice {
62
+ value: number;
63
+ quantity: number;
64
+ __typename?: string;
65
+ }
66
+ interface VtexTotalizer {
67
+ id: string;
68
+ name: string;
69
+ value: number;
70
+ __typename?: string;
71
+ }
72
+ interface VtexLegacyShippingData {
73
+ address: any;
74
+ logisticsInfo: LogisticsInfo[];
75
+ selectedAddresses: VtexAddress[];
76
+ availableAddresses: VtexAddress[];
77
+ pickupPoints: any[];
78
+ trackingHints?: any[];
79
+ isFOB?: boolean | null;
80
+ }
81
+ interface LogisticsInfo {
82
+ itemIndex: number;
83
+ selectedSla: string | null;
84
+ selectedDeliveryChannel: string;
85
+ addressId: string | null;
86
+ slas: any[];
87
+ shipsTo: string[];
88
+ itemId: string;
89
+ deliveryChannels: DeliveryChannel[];
90
+ price?: number;
91
+ sellingPrice?: number;
92
+ listPrice?: number;
93
+ shippingEstimate?: string;
94
+ dockEstimate?: string;
95
+ shippingEstimateDate?: string;
96
+ lockTTL?: string;
97
+ deliveryCompany?: string | null;
98
+ polygonName?: string;
99
+ transitTime?: string;
100
+ deliveryIds?: any[];
101
+ deliveryWindow?: string | null;
102
+ pickupPointId?: string | null;
103
+ pickupStoreInfo?: {
104
+ isPickupStore: boolean;
105
+ friendlyName: string | null;
106
+ address: string | null;
107
+ additionalInfo: string | null;
108
+ dockId: string | null;
109
+ };
110
+ pickupDistance?: string | null;
111
+ }
112
+ interface DeliveryChannel {
113
+ id: string;
114
+ }
115
+ interface PaymentData {
116
+ updateStatus?: string;
117
+ installmentOptions: InstallmentOption[];
118
+ paymentSystems: PaymentSystem[];
119
+ payments: Payment[];
120
+ giftCards?: any[];
121
+ giftCardMessages?: any[];
122
+ availableAccounts: any[];
123
+ availableTokens?: any[];
124
+ availableAssociations?: any;
125
+ isValid?: boolean;
126
+ __typename?: string;
127
+ }
128
+ interface InstallmentOption {
129
+ paymentSystem: string;
130
+ bin?: any;
131
+ paymentName?: any;
132
+ paymentGroupName?: any;
133
+ value?: number;
134
+ installments: Installment[];
135
+ __typename?: string;
136
+ }
137
+ interface Installment {
138
+ count: number;
139
+ hasInterestRate: boolean;
140
+ interestRate: number;
141
+ value: number;
142
+ total: number;
143
+ sellerMerchantInstallments?: SellerMerchantInstallment[];
144
+ __typename?: string;
145
+ }
146
+ interface SellerMerchantInstallment {
147
+ id: string;
148
+ count: number;
149
+ hasInterestRate: boolean;
150
+ interestRate: number;
151
+ value: number;
152
+ total: number;
153
+ }
154
+ interface PaymentSystem {
155
+ id: number | string;
156
+ name: string;
157
+ groupName: string;
158
+ validator: Validator;
159
+ stringId: string;
160
+ template?: string;
161
+ requiresDocument: boolean;
162
+ displayDocument?: boolean;
163
+ isCustom: boolean;
164
+ description: any;
165
+ requiresAuthentication: boolean;
166
+ dueDate: string;
167
+ availablePayments?: any[] | null;
168
+ __typename?: string;
169
+ }
170
+ interface Validator {
171
+ regex: any;
172
+ mask: any;
173
+ cardCodeRegex: any;
174
+ cardCodeMask: any;
175
+ weights: any;
176
+ useCvv: boolean;
177
+ useExpirationDate: boolean;
178
+ useCardHolderName: boolean;
179
+ useBillingAddress: boolean;
180
+ __typename?: string;
181
+ }
182
+ interface Seller {
183
+ id: string;
184
+ name: string;
185
+ logo: string;
186
+ }
187
+ interface ClientPreferencesData {
188
+ locale: string;
189
+ optinNewsLetter?: any | null;
190
+ optInNewsLetter?: any | null;
191
+ savePersonalData?: boolean;
192
+ savePaymentData?: boolean;
193
+ __typename?: string;
194
+ }
195
+ interface VtexLegacyStorePreferencesData {
196
+ countryCode: string;
197
+ saveUserData: boolean;
198
+ timeZone: string;
199
+ currencyCode: string;
200
+ currencyLocale: number;
201
+ currencySymbol: string;
202
+ currencyFormatInfo: CurrencyFormatInfo;
203
+ }
204
+ interface CurrencyFormatInfo {
205
+ currencyDecimalDigits: number;
206
+ currencyDecimalSeparator: string;
207
+ currencyGroupSeparator: string;
208
+ currencyGroupSize: number;
209
+ startsWithCurrencySymbol: boolean;
210
+ }
211
+ interface ItemMetadata {
212
+ items: ItemMetadataItem[];
213
+ }
214
+ interface ItemMetadataItem {
215
+ id: string;
216
+ seller: string;
217
+ name: string;
218
+ skuName: string;
219
+ productId: string;
220
+ refId: string;
221
+ ean: string | null;
222
+ imageUrl: string;
223
+ detailUrl: string;
224
+ assemblyOptions: any[];
225
+ }
226
+ interface RatesAndBenefitsData {
227
+ rateAndBenefitsIdentifiers: RateAndBenefitsIdentifier[];
228
+ teaser: any[];
229
+ }
230
+ interface RateAndBenefitsIdentifier {
231
+ id: string;
232
+ name: string;
233
+ featured: boolean;
234
+ description: string;
235
+ matchedParameters: any;
236
+ additionalInfo: any;
237
+ }
238
+ interface MarketingData {
239
+ coupon: string | null;
240
+ utmCampaign: string | null;
241
+ utmMedium: string | null;
242
+ utmSource: string | null;
243
+ utmiCampaign: string | null;
244
+ utmiPart: string | null;
245
+ utmPartner?: string | null;
246
+ utmipage?: string | null;
247
+ marketingTags?: string[];
248
+ __typename?: string;
249
+ }
250
+ interface Payment {
251
+ paymentSystem: string;
252
+ bin: any;
253
+ accountId: any;
254
+ tokenId: any;
255
+ installments: number | null;
256
+ referenceValue: number;
257
+ value: number;
258
+ merchantSellerPayments?: any;
259
+ __typename?: string;
260
+ }
261
+ interface OrderFormMessages {
262
+ couponMessages?: any[];
263
+ generalMessages?: any[];
264
+ code?: string;
265
+ fields?: any;
266
+ status?: string;
267
+ text?: string;
268
+ __typename?: string;
269
+ }
270
+ interface VtexAddress {
271
+ addressId: string;
272
+ addressType: string;
273
+ city: string;
274
+ complement: string;
275
+ country: string;
276
+ neighborhood: string;
277
+ number: string;
278
+ postalCode: string;
279
+ receiverName: string;
280
+ reference: any;
281
+ state: string;
282
+ street: string;
283
+ isDisposable: boolean;
284
+ geoCoordinates?: number[];
285
+ __typename?: string;
286
+ }
287
+ interface BaseClientData {
288
+ email: string;
289
+ firstName: string;
290
+ lastName: string;
291
+ document: string;
292
+ documentType: string;
293
+ phone: string;
294
+ }
295
+ interface VtexLegacyClientData extends BaseClientData {
296
+ corporateDocument: string | null;
297
+ corporateName: string | null;
298
+ corporatePhone: string | null;
299
+ customerClass: string | null;
300
+ isCorporate: boolean;
301
+ isProspect?: boolean;
302
+ profileCompleteOnLoading: boolean;
303
+ profileErrorOnLoading: boolean;
304
+ stateInscription: string | null;
305
+ tradeName: string | null;
306
+ }
307
+ interface ExtendedItemAdditionalInfo extends ItemAdditionalInfo {
308
+ dimension: any;
309
+ brandId: string;
310
+ offeringInfo: any;
311
+ offeringType: any;
312
+ offeringTypeId: any;
313
+ categoriesIds?: string;
314
+ productClusterId?: string;
315
+ commercialConditionId?: string;
316
+ }
317
+ interface ItemAdditionalInfo {
318
+ brandName: string;
319
+ __typename?: string;
320
+ }
321
+ interface BaseItem {
322
+ uniqueId: string;
323
+ id: string;
324
+ productId: string;
325
+ productRefId: string;
326
+ refId: string;
327
+ name: string;
328
+ skuName: string;
329
+ modalType: any;
330
+ parentItemIndex: any;
331
+ parentAssemblyBinding: any;
332
+ assemblies?: any[];
333
+ price: number;
334
+ listPrice: number;
335
+ manualPrice: any;
336
+ sellingPrice: number;
337
+ isGift: boolean;
338
+ productCategoryIds: string;
339
+ productCategories: ProductCategories;
340
+ quantity: number;
341
+ seller: string;
342
+ detailUrl: string;
343
+ priceTags: PriceTag[];
344
+ availability: string;
345
+ measurementUnit: string;
346
+ unitMultiplier: number;
347
+ priceDefinition: PriceDefinition;
348
+ attachmentOfferings: any[];
349
+ offerings: any[];
350
+ attachments: any[];
351
+ bundleItems: any[];
352
+ }
353
+ interface VtexLegacyItem extends BaseItem {
354
+ additionalInfo: ExtendedItemAdditionalInfo;
355
+ ean: string | null;
356
+ priceValidUntil: string;
357
+ tax: number;
358
+ rewardValue: number;
359
+ preSaleDate: any;
360
+ sellerChain: string[];
361
+ imageUrl: string;
362
+ components: any[];
363
+ availabilityMessage?: string;
364
+ formattedPrice?: string;
365
+ manufacturerCode: any;
366
+ manualPriceAppliedBy?: string | null;
367
+ }
368
+ interface BaseOrderForm {
369
+ loggedIn: boolean;
370
+ canEditData: boolean;
371
+ allowManualPrice: boolean;
372
+ totalizers: VtexTotalizer[];
373
+ clientPreferencesData: ClientPreferencesData;
374
+ marketingData: MarketingData | null;
375
+ userProfileId: string | null;
376
+ messages: OrderFormMessages;
377
+ paymentData: PaymentData;
378
+ value: number;
379
+ customData: any | null;
380
+ userType: string | null;
381
+ }
382
+ interface VtexLegacyOrderForm extends BaseOrderForm {
383
+ items: VtexLegacyItem[];
384
+ clientProfileData: VtexLegacyClientData | null;
385
+ orderFormId: string;
386
+ salesChannel: string;
387
+ isCheckedIn: boolean;
388
+ storeId: string | null;
389
+ checkedInPickupPointId: string | null;
390
+ ignoreProfileData: boolean;
391
+ selectableGifts: any[];
392
+ shippingData: VtexLegacyShippingData;
393
+ sellers: Seller[];
394
+ commercialConditionData: any;
395
+ storePreferencesData: VtexLegacyStorePreferencesData;
396
+ giftRegistryData: any;
397
+ openTextField: any;
398
+ invoiceData: any;
399
+ itemMetadata: ItemMetadata;
400
+ hooksData: any;
401
+ ratesAndBenefitsData: RatesAndBenefitsData;
402
+ subscriptionData: any;
403
+ merchantContextData: any;
404
+ itemsOrdination: any;
405
+ }
406
+ //#endregion
407
+ //#region [Vtex Catalog / Product]
408
+ interface VtexLegacyCatalogProductCacheSku {
409
+ available: boolean;
410
+ availablequantity: number;
411
+ bestPrice: number;
412
+ bestPriceFormated: string;
413
+ cacheVersionUsedToCallCheckout: string;
414
+ dimensions: Record<string, string>;
415
+ discount?: number;
416
+ fullSellingPrice: string;
417
+ hasDiscount?: boolean;
418
+ image: string;
419
+ installments: number;
420
+ installmentsInsterestRate: number;
421
+ installmentsValue: number;
422
+ listPrice: number;
423
+ listPriceFormated: string;
424
+ measures: {
425
+ cubicweight: number;
426
+ height: number;
427
+ length: number;
428
+ weight: number;
429
+ width: number;
430
+ };
431
+ rewardValue: number;
432
+ seller: string;
433
+ sellerId: string;
434
+ sku: number;
435
+ skuname: string;
436
+ spotPrice: number;
437
+ taxAsInt: number;
438
+ taxFormated: string;
439
+ unitMultiplier: number;
440
+ validBestPrice?: boolean;
441
+ validListPrice?: boolean;
442
+ values: any[];
443
+ }
444
+ interface VtexLegacyCatalogProductCache {
445
+ available: boolean;
446
+ dimensions: string[];
447
+ dimensionsInputType: Record<string, string>;
448
+ dimensionsMap: Record<string, string[]>;
449
+ displayMode: string;
450
+ name: string;
451
+ productId: number;
452
+ salesChannel: string;
453
+ skus: VtexLegacyCatalogProductCacheSku[];
454
+ }
455
+ interface VtexLegacyCatalog {
456
+ cache: {
457
+ productWithVariations: Record<string, VtexLegacyCatalogProductCache>;
458
+ };
459
+ getProductWithVariations: () => {};
460
+ getShippingValue: () => {};
461
+ setProductWithVariationsCache: () => {};
462
+ }
463
+ declare global {
464
+ interface Window extends VtexWindow {
465
+ }
466
+ }