@cloudcommerce/api 1.0.0-alpha.8 → 2.0.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,1441 @@
1
+ /* tslint:disable */
2
+ /**
3
+ * This file was automatically generated by json-schema-to-typescript.
4
+ * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
5
+ * and run json-schema-to-typescript to regenerate this file.
6
+ */
7
+
8
+ /**
9
+ * Product object model
10
+ */
11
+ export interface Products {
12
+ /**
13
+ * Product ID (ObjectID) [auto]
14
+ */
15
+ _id: string & { length: 24 };
16
+ /**
17
+ * When object was seted (POST/PUT), date and time in ISO 8601 standard representation [auto]
18
+ */
19
+ created_at: string;
20
+ /**
21
+ * When was it last changed, date and time in ISO 8601 standard representation [auto]
22
+ */
23
+ updated_at: string;
24
+ /**
25
+ * ID of store [auto]
26
+ */
27
+ store_id: number;
28
+ /**
29
+ * List of sales channels if product not available in all channels
30
+ *
31
+ * @maxItems 10
32
+ */
33
+ channel_ids?: string[];
34
+ /**
35
+ * Product unique reference code
36
+ */
37
+ sku: string;
38
+ /**
39
+ * Product type
40
+ */
41
+ commodity_type?: 'physical' | 'digital';
42
+ /**
43
+ * Product full name
44
+ */
45
+ name: string;
46
+ /**
47
+ * Slug to complete page URL, starting with number or lowercase letter
48
+ */
49
+ slug?: string;
50
+ /**
51
+ * Status defined by seller, such as draft or live
52
+ */
53
+ status?: string;
54
+ /**
55
+ * True when product is complete registered and ready to sell
56
+ */
57
+ available?: boolean;
58
+ /**
59
+ * Visible on search results, collections and catalogs
60
+ */
61
+ visible?: boolean;
62
+ /**
63
+ * Number to define the importance of the ad, the higher should be displayed first
64
+ */
65
+ ad_relevance?: number;
66
+ /**
67
+ * Short product description in plain text
68
+ */
69
+ short_description?: string;
70
+ /**
71
+ * Full product description, may use HTML tags
72
+ */
73
+ body_html?: string;
74
+ /**
75
+ * Full product description, plain text only
76
+ */
77
+ body_text?: string;
78
+ /**
79
+ * Title tag for page SEO
80
+ */
81
+ meta_title?: string;
82
+ /**
83
+ * Meta description tag for page SEO
84
+ */
85
+ meta_description?: string;
86
+ /**
87
+ * Text translations for internationalization
88
+ */
89
+ i18n?: {
90
+ /**
91
+ * Language specific text fields
92
+ *
93
+ * This interface was referenced by `undefined`'s JSON-Schema definition
94
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
95
+ */
96
+ [k: string]: {
97
+ /**
98
+ * Product full name
99
+ */
100
+ name?: string;
101
+ /**
102
+ * Short product description in plain text
103
+ */
104
+ short_description?: string;
105
+ /**
106
+ * Full product description, may use HTML tags
107
+ */
108
+ body_html?: string;
109
+ /**
110
+ * Full product description, plain text only
111
+ */
112
+ body_text?: string;
113
+ /**
114
+ * Title tag for page SEO
115
+ */
116
+ meta_title?: string;
117
+ /**
118
+ * Meta description tag for page SEO
119
+ */
120
+ meta_description?: string;
121
+ };
122
+ };
123
+ /**
124
+ * Tags related with product for internal search
125
+ *
126
+ * @maxItems 200
127
+ */
128
+ keywords?: string[];
129
+ /**
130
+ * Product sale price, when undefined, product could be bought by any price
131
+ */
132
+ price?: number;
133
+ /**
134
+ * How long sale price is valid, out of this range (if defined), base_price should be applied
135
+ */
136
+ price_effective_date?: {
137
+ /**
138
+ * Start date and time in ISO 8601 standard representation
139
+ */
140
+ start?: string;
141
+ /**
142
+ * Promotion end date and time in ISO 8601 standard representation
143
+ */
144
+ end?: string;
145
+ };
146
+ /**
147
+ * Product original sale price, without discounts
148
+ */
149
+ base_price?: number;
150
+ /**
151
+ * Product cost price to calculate profit
152
+ */
153
+ cost_price?: number;
154
+ /**
155
+ * Designator of currency according to ISO 4217 (3 uppercase letters)
156
+ */
157
+ currency_id?: string;
158
+ /**
159
+ * Graphic symbol used as a shorthand for currency's name
160
+ */
161
+ currency_symbol?: string;
162
+ /**
163
+ * Product quantity available to sell, max to put in cart
164
+ */
165
+ quantity?: number;
166
+ /**
167
+ * Minimum quantity to put in cart
168
+ */
169
+ min_quantity?: number;
170
+ /**
171
+ * Warehouses by code and respective product stock
172
+ */
173
+ inventory?: {
174
+ /**
175
+ * Product quantity available for sale from current warehouse
176
+ *
177
+ * This interface was referenced by `undefined`'s JSON-Schema definition
178
+ * via the `patternProperty` "^[A-Za-z0-9-_]{2,30}$".
179
+ */
180
+ [k: string]: number;
181
+ };
182
+ /**
183
+ * Deadline for production or handling of pre-ordered product
184
+ */
185
+ production_time?: {
186
+ /**
187
+ * Number of days to post the product after purchase, deadline for production or handling
188
+ */
189
+ days: number;
190
+ /**
191
+ * If the deadline is calculated in working days
192
+ */
193
+ working_days?: boolean;
194
+ /**
195
+ * If the production time is cumulative per product unit
196
+ */
197
+ cumulative?: boolean;
198
+ /**
199
+ * When cumulative, increase the term proportionally up to this maximum (in days)
200
+ */
201
+ max_time?: number;
202
+ };
203
+ /**
204
+ * Decrease product available quantity automatically after each order
205
+ */
206
+ manage_stock?: boolean;
207
+ /**
208
+ * Measure and dimension of your product when users might be interested in price per unit
209
+ */
210
+ measurement?: {
211
+ /**
212
+ * Unit of measurement
213
+ */
214
+ unit:
215
+ | 'oz'
216
+ | 'lb'
217
+ | 'mg'
218
+ | 'g'
219
+ | 'kg'
220
+ | 'floz'
221
+ | 'pt'
222
+ | 'qt'
223
+ | 'gal'
224
+ | 'ml'
225
+ | 'cl'
226
+ | 'l'
227
+ | 'cbm'
228
+ | 'in'
229
+ | 'ft'
230
+ | 'yd'
231
+ | 'cm'
232
+ | 'm'
233
+ | 'sqft'
234
+ | 'sqm'
235
+ | 'ct';
236
+ /**
237
+ * Maximum number of decimal places in the product quantity (in unit of measure)
238
+ */
239
+ precision?: number;
240
+ /**
241
+ * Quantity to calculate the price to be shown on ads, such as GMC `unit_pricing_base_measure`
242
+ */
243
+ pricing_base_measure?: number;
244
+ };
245
+ /**
246
+ * Product dimensions with packaging for freight calculation
247
+ */
248
+ dimensions?: {
249
+ /**
250
+ * Package width, height and length
251
+ *
252
+ * This interface was referenced by `undefined`'s JSON-Schema definition
253
+ * via the `patternProperty` "^width|height|length$".
254
+ */
255
+ [k: string]: {
256
+ /**
257
+ * Size in specified unit
258
+ */
259
+ value: number;
260
+ /**
261
+ * Unit of measurement
262
+ */
263
+ unit?: 'mm' | 'cm' | 'm' | 'ft' | 'in' | 'yd' | 'mi';
264
+ };
265
+ };
266
+ /**
267
+ * Package weight for freight calculation
268
+ */
269
+ weight?: {
270
+ /**
271
+ * Size in specified unit
272
+ */
273
+ value: number;
274
+ /**
275
+ * Unit of measurement
276
+ */
277
+ unit?: 'mg' | 'g' | 'kg' | 'lb' | 'oz';
278
+ };
279
+ /**
280
+ * Item condition
281
+ */
282
+ condition?: 'new' | 'refurbished' | 'used' | 'not_specified';
283
+ /**
284
+ * Product restricted to adults (18+)
285
+ */
286
+ adult?: boolean;
287
+ /**
288
+ * Warranty time and conditions
289
+ */
290
+ warranty?: string;
291
+ /**
292
+ * List of product brands
293
+ *
294
+ * @maxItems 100
295
+ */
296
+ brands?: {
297
+ /**
298
+ * Brand ID (ObjectID)
299
+ */
300
+ _id?: string & { length: 24 };
301
+ /**
302
+ * Brand name
303
+ */
304
+ name: string;
305
+ /**
306
+ * Text translations for internationalization
307
+ */
308
+ i18n?: {
309
+ /**
310
+ * Language specific text fields
311
+ *
312
+ * This interface was referenced by `undefined`'s JSON-Schema definition
313
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
314
+ */
315
+ [k: string]: {
316
+ /**
317
+ * Brand name
318
+ */
319
+ name?: string;
320
+ };
321
+ };
322
+ /**
323
+ * Brand page slug
324
+ */
325
+ slug?: string;
326
+ /**
327
+ * Brand logo
328
+ */
329
+ logo?: {
330
+ /**
331
+ * Image link
332
+ */
333
+ url: string;
334
+ /**
335
+ * Image size (width x height) in px, such as 100x50 (100px width, 50px height)
336
+ */
337
+ size?: string;
338
+ /**
339
+ * Alternative text, HTML alt tag (important for SEO)
340
+ */
341
+ alt?: string;
342
+ };
343
+ }[];
344
+ /**
345
+ * List of product categories
346
+ *
347
+ * @maxItems 100
348
+ */
349
+ categories?: {
350
+ /**
351
+ * Category ID (ObjectID)
352
+ */
353
+ _id?: string & { length: 24 };
354
+ /**
355
+ * Category name
356
+ */
357
+ name: string;
358
+ /**
359
+ * Text translations for internationalization
360
+ */
361
+ i18n?: {
362
+ /**
363
+ * Language specific text fields
364
+ *
365
+ * This interface was referenced by `undefined`'s JSON-Schema definition
366
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
367
+ */
368
+ [k: string]: {
369
+ /**
370
+ * Category name
371
+ */
372
+ name?: string;
373
+ };
374
+ };
375
+ /**
376
+ * Category page slug
377
+ */
378
+ slug?: string;
379
+ /**
380
+ * Parent category (above) of current category
381
+ */
382
+ parent?: {
383
+ /**
384
+ * Parent category ID (ObjectID)
385
+ */
386
+ _id?: string & { length: 24 };
387
+ /**
388
+ * Parent category name
389
+ */
390
+ name: string;
391
+ /**
392
+ * Text translations for internationalization
393
+ */
394
+ i18n?: {
395
+ /**
396
+ * Language specific text fields
397
+ *
398
+ * This interface was referenced by `undefined`'s JSON-Schema definition
399
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
400
+ */
401
+ [k: string]: {
402
+ /**
403
+ * Parent category name
404
+ */
405
+ name?: string;
406
+ };
407
+ };
408
+ /**
409
+ * Parent category page slug
410
+ */
411
+ slug?: string;
412
+ };
413
+ /**
414
+ * Mercado Libre Taxonomy: https://api.mercadolibre.com/sites/MLB/categories
415
+ */
416
+ ml_category_id?: string;
417
+ /**
418
+ * Google Taxonomy: https://www.google.com/basepages/producttype/taxonomy-with-ids.pt-BR.txt
419
+ */
420
+ google_product_category_id?: number;
421
+ }[];
422
+ /**
423
+ * Product's preferred category tree, separating by >, such as "Women > Dresses"
424
+ */
425
+ category_tree?: string;
426
+ /**
427
+ * Preferred category of the product in the Mercado Libre Taxonomy
428
+ */
429
+ ml_category_id?: string;
430
+ /**
431
+ * Preferred category of the product in the Google Products Taxonomy
432
+ */
433
+ google_product_category_id?: number;
434
+ /**
435
+ * Grids for specifications and variations
436
+ *
437
+ * @maxItems 200
438
+ */
439
+ grids?: {
440
+ /**
441
+ * Grid ID (ObjectID)
442
+ */
443
+ _id?: string & { length: 24 };
444
+ /**
445
+ * Grid title
446
+ */
447
+ title: string;
448
+ /**
449
+ * Text translations for internationalization
450
+ */
451
+ i18n?: {
452
+ /**
453
+ * Language specific text fields
454
+ *
455
+ * This interface was referenced by `undefined`'s JSON-Schema definition
456
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
457
+ */
458
+ [k: string]: {
459
+ /**
460
+ * Grid title
461
+ */
462
+ title?: string;
463
+ };
464
+ };
465
+ /**
466
+ * Optional grid identifier for integrations, generally the grid name normalized
467
+ */
468
+ grid_id?: string;
469
+ }[];
470
+ /**
471
+ * Product attributes and technical specifications
472
+ */
473
+ specifications?: {
474
+ /**
475
+ * Attribute to tell users the energy efficiency class of your product
476
+ *
477
+ * @maxItems 1
478
+ */
479
+ energy_efficiency_class?: {
480
+ /**
481
+ * Text displayed for the client describing the specification (custom value)
482
+ */
483
+ text: string;
484
+ /**
485
+ * Text translations for internationalization
486
+ */
487
+ i18n?: {
488
+ /**
489
+ * Language specific text fields
490
+ *
491
+ * This interface was referenced by `undefined`'s JSON-Schema definition
492
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
493
+ */
494
+ [k: string]: {
495
+ /**
496
+ * Text displayed for the client describing the specification (custom value)
497
+ */
498
+ text?: string;
499
+ };
500
+ };
501
+ /**
502
+ * Value in the Google Product Specification
503
+ */
504
+ value?: 'A+++' | 'A++' | 'A+' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G';
505
+ [k: string]: unknown;
506
+ }[];
507
+ /**
508
+ * Attribute to set the demographic that your product is designed for
509
+ *
510
+ * @maxItems 1
511
+ */
512
+ age_group?: {
513
+ /**
514
+ * Text displayed for the client describing the specification (custom value)
515
+ */
516
+ text: string;
517
+ /**
518
+ * Text translations for internationalization
519
+ */
520
+ i18n?: {
521
+ /**
522
+ * Language specific text fields
523
+ *
524
+ * This interface was referenced by `undefined`'s JSON-Schema definition
525
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
526
+ */
527
+ [k: string]: {
528
+ /**
529
+ * Text displayed for the client describing the specification (custom value)
530
+ */
531
+ text?: string;
532
+ };
533
+ };
534
+ /**
535
+ * Value in the Google Product Specification
536
+ */
537
+ value?: 'newborn' | 'infant' | 'toddler' | 'kids' | 'adult';
538
+ [k: string]: unknown;
539
+ }[];
540
+ /**
541
+ * Specify for what gender your product is designed
542
+ *
543
+ * @maxItems 1
544
+ */
545
+ gender?: {
546
+ /**
547
+ * Text displayed for the client describing the specification (custom value)
548
+ */
549
+ text: string;
550
+ /**
551
+ * Text translations for internationalization
552
+ */
553
+ i18n?: {
554
+ /**
555
+ * Language specific text fields
556
+ *
557
+ * This interface was referenced by `undefined`'s JSON-Schema definition
558
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
559
+ */
560
+ [k: string]: {
561
+ /**
562
+ * Text displayed for the client describing the specification (custom value)
563
+ */
564
+ text?: string;
565
+ };
566
+ };
567
+ /**
568
+ * Value in the Google Product Specification
569
+ */
570
+ value?: 'male' | 'female' | 'unisex';
571
+ [k: string]: unknown;
572
+ }[];
573
+ /**
574
+ * Attribute to describe the main fabric or material that your product is made of
575
+ *
576
+ * @maxItems 1
577
+ */
578
+ material?: {
579
+ /**
580
+ * Text displayed for the client describing the attribute
581
+ */
582
+ text: string;
583
+ /**
584
+ * Text translations for internationalization
585
+ */
586
+ i18n?: {
587
+ /**
588
+ * Language specific text fields
589
+ *
590
+ * This interface was referenced by `undefined`'s JSON-Schema definition
591
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
592
+ */
593
+ [k: string]: {
594
+ /**
595
+ * Text displayed for the client describing the attribute
596
+ */
597
+ text?: string;
598
+ };
599
+ };
600
+ /**
601
+ * Default normalized value to use on GMC and other integrations
602
+ */
603
+ value?: string;
604
+ [k: string]: unknown;
605
+ }[];
606
+ /**
607
+ * Attribute to describe the pattern or graphic printed on your product
608
+ *
609
+ * @maxItems 1
610
+ */
611
+ pattern?: {
612
+ /**
613
+ * Text displayed for the client describing the attribute
614
+ */
615
+ text: string;
616
+ /**
617
+ * Text translations for internationalization
618
+ */
619
+ i18n?: {
620
+ /**
621
+ * Language specific text fields
622
+ *
623
+ * This interface was referenced by `undefined`'s JSON-Schema definition
624
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
625
+ */
626
+ [k: string]: {
627
+ /**
628
+ * Text displayed for the client describing the attribute
629
+ */
630
+ text?: string;
631
+ };
632
+ };
633
+ /**
634
+ * Default normalized value to use on GMC and other integrations
635
+ */
636
+ value?: string;
637
+ [k: string]: unknown;
638
+ }[];
639
+ /**
640
+ * Attribute to describe the standardized size of your product
641
+ *
642
+ * @maxItems 1
643
+ */
644
+ size?: {
645
+ /**
646
+ * Text displayed for the client describing the attribute
647
+ */
648
+ text: string;
649
+ /**
650
+ * Text translations for internationalization
651
+ */
652
+ i18n?: {
653
+ /**
654
+ * Language specific text fields
655
+ *
656
+ * This interface was referenced by `undefined`'s JSON-Schema definition
657
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
658
+ */
659
+ [k: string]: {
660
+ /**
661
+ * Text displayed for the client describing the attribute
662
+ */
663
+ text?: string;
664
+ };
665
+ };
666
+ /**
667
+ * Default normalized value to use on GMC and other integrations
668
+ */
669
+ value?: string;
670
+ [k: string]: unknown;
671
+ }[];
672
+ /**
673
+ * Attribute to describe the cut of your product
674
+ *
675
+ * @maxItems 1
676
+ */
677
+ size_type?: {
678
+ /**
679
+ * Text displayed for the client describing the attribute
680
+ */
681
+ text: string;
682
+ /**
683
+ * Text translations for internationalization
684
+ */
685
+ i18n?: {
686
+ /**
687
+ * Language specific text fields
688
+ *
689
+ * This interface was referenced by `undefined`'s JSON-Schema definition
690
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
691
+ */
692
+ [k: string]: {
693
+ /**
694
+ * Text displayed for the client describing the attribute
695
+ */
696
+ text?: string;
697
+ };
698
+ };
699
+ /**
700
+ * Value in the Google Product Specification
701
+ */
702
+ value?: 'regular' | 'petite' | 'plus' | 'big and tall' | 'maternity';
703
+ [k: string]: unknown;
704
+ }[];
705
+ /**
706
+ * Which country's sizing system your product uses
707
+ *
708
+ * @maxItems 1
709
+ */
710
+ size_system?: {
711
+ /**
712
+ * Text displayed for the client describing the attribute
713
+ */
714
+ text: string;
715
+ /**
716
+ * Text translations for internationalization
717
+ */
718
+ i18n?: {
719
+ /**
720
+ * Language specific text fields
721
+ *
722
+ * This interface was referenced by `undefined`'s JSON-Schema definition
723
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
724
+ */
725
+ [k: string]: {
726
+ /**
727
+ * Text displayed for the client describing the attribute
728
+ */
729
+ text?: string;
730
+ };
731
+ };
732
+ /**
733
+ * Value in the Google Product Specification
734
+ */
735
+ value?: 'AU' | 'BR' | 'CN' | 'DE' | 'EU' | 'FR' | 'IT' | 'JP' | 'MEX' | 'UK' | 'US';
736
+ [k: string]: unknown;
737
+ }[];
738
+ /**
739
+ * Product color palette, list ordered by importance, starting by main color
740
+ */
741
+ colors?: {
742
+ /**
743
+ * Color name
744
+ */
745
+ text: string;
746
+ /**
747
+ * Text translations for internationalization
748
+ */
749
+ i18n?: {
750
+ /**
751
+ * Language specific text fields
752
+ *
753
+ * This interface was referenced by `undefined`'s JSON-Schema definition
754
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
755
+ */
756
+ [k: string]: {
757
+ /**
758
+ * Color name
759
+ */
760
+ text?: string;
761
+ };
762
+ };
763
+ /**
764
+ * RGB code with #
765
+ */
766
+ value?: string;
767
+ }[];
768
+ /**
769
+ * Custom product attributes, grid as property name (such as 'Model' and 'Voltage')
770
+ *
771
+ * @minItems 1
772
+ * @maxItems 30
773
+ *
774
+ * This interface was referenced by `undefined`'s JSON-Schema definition
775
+ * via the `patternProperty` "^.{2,70}$".
776
+ */
777
+ [k: string]: {
778
+ /**
779
+ * Text displayed for the client describing the specification
780
+ */
781
+ text: string;
782
+ /**
783
+ * Text translations for internationalization
784
+ */
785
+ i18n?: {
786
+ /**
787
+ * Language specific text fields
788
+ *
789
+ * This interface was referenced by `undefined`'s JSON-Schema definition
790
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
791
+ */
792
+ [k: string]: {
793
+ /**
794
+ * Text displayed for the client describing the specification
795
+ */
796
+ text?: string;
797
+ };
798
+ };
799
+ /**
800
+ * Default normalized value to use in integrations
801
+ */
802
+ value?: string;
803
+ /**
804
+ * Normalized values to use in specific integrations
805
+ */
806
+ external_values?: {
807
+ /**
808
+ * Attribute text external value
809
+ *
810
+ * This interface was referenced by `undefined`'s JSON-Schema definition
811
+ * via the `patternProperty` "^[a-z0-9_]{2,50}$".
812
+ */
813
+ [k: string]: string;
814
+ };
815
+ }[];
816
+ };
817
+ /**
818
+ * List of product images
819
+ *
820
+ * @maxItems 50
821
+ */
822
+ pictures?: {
823
+ /**
824
+ * Picture ID (ObjectID) [auto]
825
+ */
826
+ _id?: string & { length: 24 };
827
+ /**
828
+ * Tag to identify object, use only lowercase letters, digits and underscore
829
+ */
830
+ tag?: string;
831
+ normal?: PictureSize;
832
+ big?: PictureSize1;
833
+ zoom?: PictureSize2;
834
+ small?: PictureSize3;
835
+ }[];
836
+ /**
837
+ * List of videos related to your product
838
+ *
839
+ * @maxItems 30
840
+ */
841
+ videos?: {
842
+ /**
843
+ * Video link
844
+ */
845
+ url: string;
846
+ /**
847
+ * Title describing the video
848
+ */
849
+ title?: string;
850
+ }[];
851
+ /**
852
+ * List of product customization fields
853
+ *
854
+ * @maxItems 100
855
+ */
856
+ customizations?: (
857
+ | {
858
+ [k: string]: unknown;
859
+ }
860
+ | {
861
+ [k: string]: unknown;
862
+ }
863
+ )[];
864
+ /**
865
+ * Product variations list
866
+ *
867
+ * @maxItems 3000
868
+ */
869
+ variations?: {
870
+ /**
871
+ * Variation ID (ObjectID) [auto]
872
+ */
873
+ _id?: string & { length: 24 };
874
+ /**
875
+ * Item unique reference code
876
+ */
877
+ sku?: string;
878
+ /**
879
+ * Product name for this specific variation
880
+ */
881
+ name?: string;
882
+ /**
883
+ * Text translations for internationalization
884
+ */
885
+ i18n?: {
886
+ /**
887
+ * Language specific text fields
888
+ *
889
+ * This interface was referenced by `undefined`'s JSON-Schema definition
890
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
891
+ */
892
+ [k: string]: {
893
+ /**
894
+ * Product name for this specific variation
895
+ */
896
+ name?: string;
897
+ };
898
+ };
899
+ /**
900
+ * Global Trade Item Numbers (barcode number): UPC, EAN, JAN, ISBN, ITF-14
901
+ */
902
+ gtin?: string;
903
+ /**
904
+ * Unique code specified by manufacturer to identify the product
905
+ */
906
+ mpn?: string;
907
+ /**
908
+ * List of product NCM codes
909
+ *
910
+ * @maxItems 10
911
+ */
912
+ ncm?: string[];
913
+ /**
914
+ * Variation sale price, when undefined, product default price should be used
915
+ */
916
+ price?: number;
917
+ /**
918
+ * Variation original sale price, without discounts
919
+ */
920
+ base_price?: number;
921
+ /**
922
+ * Variation cost price to calculate profit
923
+ */
924
+ cost_price?: number;
925
+ /**
926
+ * Product quantity available to sell, max to put in cart
927
+ */
928
+ quantity?: number;
929
+ /**
930
+ * Minimum quantity to put in cart
931
+ */
932
+ min_quantity?: number;
933
+ /**
934
+ * Warehouses by code and respective variation stock
935
+ */
936
+ inventory?: {
937
+ /**
938
+ * Variation quantity available for sale from current warehouse
939
+ *
940
+ * This interface was referenced by `undefined`'s JSON-Schema definition
941
+ * via the `patternProperty` "^[A-Za-z0-9-_]{2,30}$".
942
+ */
943
+ [k: string]: number;
944
+ };
945
+ /**
946
+ * Deadline for production or handling of pre-ordered product
947
+ */
948
+ production_time?: {
949
+ /**
950
+ * Number of days to post after purchase, deadline for production or handling
951
+ */
952
+ days: number;
953
+ /**
954
+ * If the deadline is calculated in working days
955
+ */
956
+ working_days?: boolean;
957
+ /**
958
+ * If the production time is cumulative per unit
959
+ */
960
+ cumulative?: boolean;
961
+ /**
962
+ * When cumulative, increase up to this maximum in days
963
+ */
964
+ max_time?: number;
965
+ };
966
+ /**
967
+ * Product dimensions with packaging for freight calculation
968
+ */
969
+ dimensions?: {
970
+ /**
971
+ * Package width, height and length
972
+ *
973
+ * This interface was referenced by `undefined`'s JSON-Schema definition
974
+ * via the `patternProperty` "^width|height|length$".
975
+ */
976
+ [k: string]: {
977
+ /**
978
+ * Size in specified unit
979
+ */
980
+ value: number;
981
+ /**
982
+ * Unit of measurement
983
+ */
984
+ unit?: 'mm' | 'cm' | 'm' | 'ft' | 'in' | 'yd' | 'mi';
985
+ };
986
+ };
987
+ /**
988
+ * Package weight for freight calculation
989
+ */
990
+ weight?: {
991
+ /**
992
+ * Size in specified unit
993
+ */
994
+ value: number;
995
+ /**
996
+ * Unit of measurement
997
+ */
998
+ unit?: 'mg' | 'g' | 'kg' | 'lb' | 'oz';
999
+ };
1000
+ /**
1001
+ * Variation attributes and technical specifications
1002
+ */
1003
+ specifications: {
1004
+ /**
1005
+ * Attribute to describe the main fabric or material that your product is made of
1006
+ *
1007
+ * @maxItems 1
1008
+ */
1009
+ material?: {
1010
+ /**
1011
+ * Text displayed for the client describing the attribute
1012
+ */
1013
+ text: string;
1014
+ /**
1015
+ * Text translations for internationalization
1016
+ */
1017
+ i18n?: {
1018
+ /**
1019
+ * Language specific text fields
1020
+ *
1021
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1022
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1023
+ */
1024
+ [k: string]: {
1025
+ /**
1026
+ * Text displayed for the client describing the attribute
1027
+ */
1028
+ text?: string;
1029
+ };
1030
+ };
1031
+ /**
1032
+ * Default normalized value to use on GMC and other integrations
1033
+ */
1034
+ value?: string;
1035
+ [k: string]: unknown;
1036
+ }[];
1037
+ /**
1038
+ * Attribute to describe the pattern or graphic printed on your product
1039
+ *
1040
+ * @maxItems 1
1041
+ */
1042
+ pattern?: {
1043
+ /**
1044
+ * Text displayed for the client describing the attribute
1045
+ */
1046
+ text: string;
1047
+ /**
1048
+ * Text translations for internationalization
1049
+ */
1050
+ i18n?: {
1051
+ /**
1052
+ * Language specific text fields
1053
+ *
1054
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1055
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1056
+ */
1057
+ [k: string]: {
1058
+ /**
1059
+ * Text displayed for the client describing the attribute
1060
+ */
1061
+ text?: string;
1062
+ };
1063
+ };
1064
+ /**
1065
+ * Default normalized value to use on GMC and other integrations
1066
+ */
1067
+ value?: string;
1068
+ [k: string]: unknown;
1069
+ }[];
1070
+ /**
1071
+ * Attribute to describe the standardized size of your product
1072
+ *
1073
+ * @maxItems 1
1074
+ */
1075
+ size?: {
1076
+ /**
1077
+ * Text displayed for the client describing the attribute
1078
+ */
1079
+ text: string;
1080
+ /**
1081
+ * Text translations for internationalization
1082
+ */
1083
+ i18n?: {
1084
+ /**
1085
+ * Language specific text fields
1086
+ *
1087
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1088
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1089
+ */
1090
+ [k: string]: {
1091
+ /**
1092
+ * Text displayed for the client describing the attribute
1093
+ */
1094
+ text?: string;
1095
+ };
1096
+ };
1097
+ /**
1098
+ * Default normalized value to use on GMC and other integrations
1099
+ */
1100
+ value?: string;
1101
+ [k: string]: unknown;
1102
+ }[];
1103
+ /**
1104
+ * Variation color palette, list ordered by importance, starting by main color
1105
+ */
1106
+ colors?: {
1107
+ /**
1108
+ * Color name
1109
+ */
1110
+ text: string;
1111
+ /**
1112
+ * Text translations for internationalization
1113
+ */
1114
+ i18n?: {
1115
+ /**
1116
+ * Language specific text fields
1117
+ *
1118
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1119
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1120
+ */
1121
+ [k: string]: {
1122
+ /**
1123
+ * Color name
1124
+ */
1125
+ text?: string;
1126
+ };
1127
+ };
1128
+ /**
1129
+ * RGB code with #
1130
+ */
1131
+ value?: string;
1132
+ }[];
1133
+ /**
1134
+ * Custom variation attributes, grid as property name (such as 'Model' and 'Voltage')
1135
+ *
1136
+ * @minItems 1
1137
+ * @maxItems 6
1138
+ *
1139
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1140
+ * via the `patternProperty` "^.{2,70}$".
1141
+ */
1142
+ [k: string]: {
1143
+ /**
1144
+ * Text displayed for the client describing the specification
1145
+ */
1146
+ text: string;
1147
+ /**
1148
+ * Text translations for internationalization
1149
+ */
1150
+ i18n?: {
1151
+ /**
1152
+ * Language specific text fields
1153
+ *
1154
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1155
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1156
+ */
1157
+ [k: string]: {
1158
+ /**
1159
+ * Text displayed for the client describing the specification
1160
+ */
1161
+ text?: string;
1162
+ };
1163
+ };
1164
+ /**
1165
+ * Default normalized value to use in integrations
1166
+ */
1167
+ value?: string;
1168
+ /**
1169
+ * Normalized values to use in specific integrations
1170
+ */
1171
+ external_values?: {
1172
+ /**
1173
+ * Attribute text external value
1174
+ *
1175
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1176
+ * via the `patternProperty` "^[a-z0-9_]{2,50}$".
1177
+ */
1178
+ [k: string]: string;
1179
+ };
1180
+ }[];
1181
+ };
1182
+ /**
1183
+ * ID of one of the preferred product picture for this variation
1184
+ */
1185
+ picture_id?: string & { length: 24 };
1186
+ /**
1187
+ * Flags to associate additional info
1188
+ *
1189
+ * @maxItems 10
1190
+ */
1191
+ flags?: string[];
1192
+ }[];
1193
+ /**
1194
+ * If this product is a kit, set its composition
1195
+ *
1196
+ * @maxItems 100
1197
+ */
1198
+ kit_composition?: {
1199
+ /**
1200
+ * Product ID (ObjectID)
1201
+ */
1202
+ _id: string & { length: 24 };
1203
+ /**
1204
+ * Product quantity
1205
+ */
1206
+ quantity?: number;
1207
+ /**
1208
+ * Label shown to customer, if you want to use a title other than the product name
1209
+ */
1210
+ label?: string;
1211
+ /**
1212
+ * Text translations for internationalization
1213
+ */
1214
+ i18n?: {
1215
+ /**
1216
+ * Language specific text fields
1217
+ *
1218
+ * This interface was referenced by `undefined`'s JSON-Schema definition
1219
+ * via the `patternProperty` "^[a-z]{2}(_[a-z]{2})?$".
1220
+ */
1221
+ [k: string]: {
1222
+ /**
1223
+ * Label shown to customer, if you want to use a title other than the product name
1224
+ */
1225
+ label?: string;
1226
+ };
1227
+ };
1228
+ /**
1229
+ * If this product has variations
1230
+ */
1231
+ has_variations?: boolean;
1232
+ /**
1233
+ * Optional variation ID (ObjectID) if `has_variations` is true
1234
+ */
1235
+ variation_id?: string & { length: 24 };
1236
+ }[];
1237
+ /**
1238
+ * Parent product ID, if this product is contained or represented by another
1239
+ */
1240
+ parent_item_id?: string & { length: 24 };
1241
+ /**
1242
+ * Lists of related products
1243
+ *
1244
+ * @maxItems 30
1245
+ */
1246
+ related_products?: {
1247
+ /**
1248
+ * Title describing the video
1249
+ */
1250
+ title?: string;
1251
+ /**
1252
+ * Unit of measurement
1253
+ */
1254
+ relation_type?: 'common_characteristics' | 'common_orders' | 'manual' | 'other';
1255
+ /**
1256
+ * List of products
1257
+ *
1258
+ * @maxItems 100
1259
+ */
1260
+ product_ids: Array<string & { length: 24 }>;
1261
+ /**
1262
+ * Tag to identify object, use only lowercase letters, digits and underscore
1263
+ */
1264
+ tag?: string;
1265
+ }[];
1266
+ /**
1267
+ * True when related products lists should be created and updated automatically (ML)
1268
+ */
1269
+ auto_fill_related_products?: boolean;
1270
+ /**
1271
+ * Product popularity, will be filled automatically
1272
+ */
1273
+ views?: number;
1274
+ /**
1275
+ * On how many orders this product is present, filled automatically
1276
+ */
1277
+ sales?: number;
1278
+ /**
1279
+ * Total amount earned with sales of this product, filled automatically
1280
+ */
1281
+ total_sold?: number;
1282
+ /**
1283
+ * List of product GTIN codes
1284
+ *
1285
+ * @maxItems 10
1286
+ */
1287
+ gtin?: string[];
1288
+ /**
1289
+ * List of product MPN codes
1290
+ *
1291
+ * @maxItems 10
1292
+ */
1293
+ mpn?: string[];
1294
+ /**
1295
+ * List of product NCM codes
1296
+ *
1297
+ * @maxItems 10
1298
+ */
1299
+ ncm?: string[];
1300
+ /**
1301
+ * Whether the product is sold by a third party, usual in marketplaces
1302
+ */
1303
+ seller?: {
1304
+ /**
1305
+ * Unique reference code to identify this seller
1306
+ */
1307
+ code?: string;
1308
+ /**
1309
+ * Seller name
1310
+ */
1311
+ name?: string;
1312
+ /**
1313
+ * Image link to seller's logo
1314
+ */
1315
+ logo_url?: string;
1316
+ /**
1317
+ * Short description of seller
1318
+ */
1319
+ description?: string;
1320
+ };
1321
+ /**
1322
+ * List of custom attributes
1323
+ *
1324
+ * @maxItems 100
1325
+ */
1326
+ metafields?: {
1327
+ /**
1328
+ * String to help distinguish who (or which app) created and can use the metafield
1329
+ */
1330
+ namespace?: string;
1331
+ /**
1332
+ * Field name
1333
+ */
1334
+ field?: string;
1335
+ /**
1336
+ * Custom property value
1337
+ */
1338
+ value: {
1339
+ [k: string]: unknown;
1340
+ };
1341
+ }[];
1342
+ /**
1343
+ * List of custom attributes
1344
+ *
1345
+ * @maxItems 100
1346
+ */
1347
+ hidden_metafields?: {
1348
+ /**
1349
+ * String to help distinguish who (or which app) created and can use the metafield
1350
+ */
1351
+ namespace?: string;
1352
+ /**
1353
+ * Field name
1354
+ */
1355
+ field?: string;
1356
+ /**
1357
+ * Custom property value
1358
+ */
1359
+ value: {
1360
+ [k: string]: unknown;
1361
+ };
1362
+ }[];
1363
+ /**
1364
+ * Flags to associate additional info
1365
+ *
1366
+ * @maxItems 10
1367
+ */
1368
+ flags?: string[];
1369
+ /**
1370
+ * Optional notes with additional info about this product
1371
+ */
1372
+ notes?: string;
1373
+ }
1374
+ /**
1375
+ * Default image size variant
1376
+ */
1377
+ export interface PictureSize {
1378
+ /**
1379
+ * Image link
1380
+ */
1381
+ url: string;
1382
+ /**
1383
+ * Image size (width x height) in px, such as 100x50 (100px width, 50px height)
1384
+ */
1385
+ size?: string;
1386
+ /**
1387
+ * Alternative text, HTML alt tag (important for SEO)
1388
+ */
1389
+ alt?: string;
1390
+ }
1391
+ /**
1392
+ * Image big size variant
1393
+ */
1394
+ export interface PictureSize1 {
1395
+ /**
1396
+ * Image link
1397
+ */
1398
+ url: string;
1399
+ /**
1400
+ * Image size (width x height) in px, such as 100x50 (100px width, 50px height)
1401
+ */
1402
+ size?: string;
1403
+ /**
1404
+ * Alternative text, HTML alt tag (important for SEO)
1405
+ */
1406
+ alt?: string;
1407
+ }
1408
+ /**
1409
+ * Image zoom size variant
1410
+ */
1411
+ export interface PictureSize2 {
1412
+ /**
1413
+ * Image link
1414
+ */
1415
+ url: string;
1416
+ /**
1417
+ * Image size (width x height) in px, such as 100x50 (100px width, 50px height)
1418
+ */
1419
+ size?: string;
1420
+ /**
1421
+ * Alternative text, HTML alt tag (important for SEO)
1422
+ */
1423
+ alt?: string;
1424
+ }
1425
+ /**
1426
+ * Image small size variant
1427
+ */
1428
+ export interface PictureSize3 {
1429
+ /**
1430
+ * Image link
1431
+ */
1432
+ url: string;
1433
+ /**
1434
+ * Image size (width x height) in px, such as 100x50 (100px width, 50px height)
1435
+ */
1436
+ size?: string;
1437
+ /**
1438
+ * Alternative text, HTML alt tag (important for SEO)
1439
+ */
1440
+ alt?: string;
1441
+ }