@teemill/website 0.2.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/api.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Website API
5
5
  * Manage your Teemill Website Currently this API is in development and is not yet publicly accessible. All paths and models are subject to change. For full documentation on functionality and account settings go to [teemill.com](https://teemill.com)
6
6
  *
7
- * The version of the OpenAPI document: 0.2.6
7
+ * The version of the OpenAPI document: 0.4.0
8
8
  * Contact: hello@teemill.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -42,6 +42,158 @@ export interface ApiError {
42
42
  */
43
43
  'message': string;
44
44
  }
45
+ /**
46
+ *
47
+ * @export
48
+ * @interface Application
49
+ */
50
+ export interface Application {
51
+ /**
52
+ * Unique object identifier
53
+ * @type {string}
54
+ * @memberof Application
55
+ */
56
+ 'id'?: string;
57
+ /**
58
+ * Technology to use for the application.
59
+ * @type {string}
60
+ * @memberof Application
61
+ */
62
+ 'technology': ApplicationTechnologyEnum;
63
+ /**
64
+ * Placement of the application. Available placements depend on the chosen product and technology.
65
+ * @type {string}
66
+ * @memberof Application
67
+ */
68
+ 'placement': ApplicationPlacementEnum;
69
+ /**
70
+ * Publicly available design file URL. This will fill the design area of the warehouse product. It will be centered horizontally and aligned to the top of the design area. Accepts PNG and JPEG files.
71
+ * @type {string}
72
+ * @memberof Application
73
+ */
74
+ 'src': string;
75
+ /**
76
+ *
77
+ * @type {ApplicationMockup}
78
+ * @memberof Application
79
+ */
80
+ 'mockup'?: ApplicationMockup | null;
81
+ }
82
+
83
+ export const ApplicationTechnologyEnum = {
84
+ Dtg: 'dtg',
85
+ Embroidery: 'embroidery',
86
+ Dtf: 'dtf',
87
+ Pretreat: 'pretreat',
88
+ MugSublimation: 'mug_sublimation',
89
+ ManualPrint: 'manual_print',
90
+ AdditionalApplication: 'additional_application',
91
+ NotebookSublimation: 'notebook_sublimation',
92
+ DuplexPrint: 'duplex_print'
93
+ } as const;
94
+
95
+ export type ApplicationTechnologyEnum = typeof ApplicationTechnologyEnum[keyof typeof ApplicationTechnologyEnum];
96
+ export const ApplicationPlacementEnum = {
97
+ Front: 'front',
98
+ Back: 'back',
99
+ Left: 'left',
100
+ Right: 'right',
101
+ Neck: 'neck'
102
+ } as const;
103
+
104
+ export type ApplicationPlacementEnum = typeof ApplicationPlacementEnum[keyof typeof ApplicationPlacementEnum];
105
+
106
+ /**
107
+ *
108
+ * @export
109
+ * @interface ApplicationMockup
110
+ */
111
+ export interface ApplicationMockup {
112
+ /**
113
+ * Drive image URL. If provided, this will be used as the mockup image for the variant application rather than generating a new one.
114
+ * @type {string}
115
+ * @memberof ApplicationMockup
116
+ */
117
+ 'file': string;
118
+ /**
119
+ * Publicly available mockup image URL. This is a preview of the mockup image for the given application.
120
+ * @type {string}
121
+ * @memberof ApplicationMockup
122
+ */
123
+ 'preview'?: string;
124
+ }
125
+ /**
126
+ *
127
+ * @export
128
+ * @interface AttachCrossSellProductsRequest
129
+ */
130
+ export interface AttachCrossSellProductsRequest {
131
+ /**
132
+ * A list of product IDs to attach as cross-sell products. The order in which they are sent is the order they will be saved in.
133
+ * @type {Array<string>}
134
+ * @memberof AttachCrossSellProductsRequest
135
+ */
136
+ 'products'?: Array<string>;
137
+ }
138
+ /**
139
+ *
140
+ * @export
141
+ * @interface Attribute
142
+ */
143
+ export interface Attribute {
144
+ /**
145
+ * Attribute name
146
+ * @type {string}
147
+ * @memberof Attribute
148
+ */
149
+ 'name': string;
150
+ /**
151
+ * Attribute value
152
+ * @type {string}
153
+ * @memberof Attribute
154
+ */
155
+ 'value': string;
156
+ /**
157
+ *
158
+ * @type {AttributeThumbnail}
159
+ * @memberof Attribute
160
+ */
161
+ 'thumbnail'?: AttributeThumbnail;
162
+ /**
163
+ * Attribute tags
164
+ * @type {Array<string>}
165
+ * @memberof Attribute
166
+ */
167
+ 'tags'?: Array<string>;
168
+ }
169
+ /**
170
+ * Attribute thumbnail, intended for interfaces like storefront colour selector.
171
+ * @export
172
+ * @interface AttributeThumbnail
173
+ */
174
+ export interface AttributeThumbnail {
175
+ /**
176
+ *
177
+ * @type {string}
178
+ * @memberof AttributeThumbnail
179
+ */
180
+ 'type'?: AttributeThumbnailTypeEnum;
181
+ /**
182
+ *
183
+ * @type {string}
184
+ * @memberof AttributeThumbnail
185
+ */
186
+ 'value'?: string;
187
+ }
188
+
189
+ export const AttributeThumbnailTypeEnum = {
190
+ Text: 'text',
191
+ Color: 'color',
192
+ Image: 'image'
193
+ } as const;
194
+
195
+ export type AttributeThumbnailTypeEnum = typeof AttributeThumbnailTypeEnum[keyof typeof AttributeThumbnailTypeEnum];
196
+
45
197
  /**
46
198
  *
47
199
  * @export
@@ -55,6 +207,61 @@ export interface AuthorizeStripe200Response {
55
207
  */
56
208
  'redirect_url': string;
57
209
  }
210
+ /**
211
+ * Image description
212
+ * @export
213
+ * @interface Image
214
+ */
215
+ export interface Image {
216
+ /**
217
+ * Unique object identifier
218
+ * @type {string}
219
+ * @memberof Image
220
+ */
221
+ 'id'?: string;
222
+ /**
223
+ *
224
+ * @type {string}
225
+ * @memberof Image
226
+ */
227
+ 'src'?: string;
228
+ /**
229
+ *
230
+ * @type {string}
231
+ * @memberof Image
232
+ */
233
+ 'type'?: string | null;
234
+ /**
235
+ *
236
+ * @type {string}
237
+ * @memberof Image
238
+ */
239
+ 'alt'?: string;
240
+ /**
241
+ * List of variant Ids
242
+ * @type {Array<string>}
243
+ * @memberof Image
244
+ */
245
+ 'variantIds'?: Array<string>;
246
+ /**
247
+ *
248
+ * @type {number}
249
+ * @memberof Image
250
+ */
251
+ 'sortOrder'?: number;
252
+ /**
253
+ *
254
+ * @type {string}
255
+ * @memberof Image
256
+ */
257
+ 'createdAt'?: string;
258
+ /**
259
+ *
260
+ * @type {string}
261
+ * @memberof Image
262
+ */
263
+ 'updatedAt'?: string;
264
+ }
58
265
  /**
59
266
  *
60
267
  * @export
@@ -105,6 +312,25 @@ export interface MenuItem {
105
312
  */
106
313
  'submenu': Array<SubmenuInner>;
107
314
  }
315
+ /**
316
+ * Key/value pairs that can be used to store additional information on the product
317
+ * @export
318
+ * @interface MetaField
319
+ */
320
+ export interface MetaField {
321
+ /**
322
+ * The name or key of the property
323
+ * @type {string}
324
+ * @memberof MetaField
325
+ */
326
+ 'name'?: string;
327
+ /**
328
+ * The string value of the property
329
+ * @type {string}
330
+ * @memberof MetaField
331
+ */
332
+ 'value'?: string;
333
+ }
108
334
  /**
109
335
  *
110
336
  * @export
@@ -138,179 +364,451 @@ export const PaymentAccountMethodEnum = {
138
364
 
139
365
  export type PaymentAccountMethodEnum = typeof PaymentAccountMethodEnum[keyof typeof PaymentAccountMethodEnum];
140
366
 
367
+ /**
368
+ * Standard price definition that defines the amount, tax rate and currency.
369
+ * @export
370
+ * @interface Price
371
+ */
372
+ export interface Price {
373
+ /**
374
+ * Price including tax in the specified currency.
375
+ * @type {number}
376
+ * @memberof Price
377
+ */
378
+ 'amount'?: number;
379
+ /**
380
+ * Currency code for the currency the price is valued in.
381
+ * @type {string}
382
+ * @memberof Price
383
+ */
384
+ 'currencyCode'?: PriceCurrencyCodeEnum;
385
+ }
386
+
387
+ export const PriceCurrencyCodeEnum = {
388
+ Gbp: 'GBP'
389
+ } as const;
390
+
391
+ export type PriceCurrencyCodeEnum = typeof PriceCurrencyCodeEnum[keyof typeof PriceCurrencyCodeEnum];
392
+
141
393
  /**
142
394
  *
143
395
  * @export
144
- * @interface SubmenuInner
396
+ * @interface Product
145
397
  */
146
- export interface SubmenuInner {
398
+ export interface Product {
147
399
  /**
148
- *
400
+ * Unique object identifier
149
401
  * @type {string}
150
- * @memberof SubmenuInner
402
+ * @memberof Product
151
403
  */
152
- 'id': string;
404
+ 'id'?: string;
405
+ /**
406
+ * A reference to the resource location
407
+ * @type {string}
408
+ * @memberof Product
409
+ */
410
+ 'ref'?: string;
153
411
  /**
154
412
  *
155
413
  * @type {string}
156
- * @memberof SubmenuInner
414
+ * @memberof Product
157
415
  */
158
416
  'title': string;
159
417
  /**
160
418
  *
161
419
  * @type {string}
162
- * @memberof SubmenuInner
420
+ * @memberof Product
163
421
  */
164
- 'image': string | null;
422
+ 'description': string;
165
423
  /**
166
424
  *
167
- * @type {number}
168
- * @memberof SubmenuInner
425
+ * @type {string}
426
+ * @memberof Product
169
427
  */
170
- 'order': number;
428
+ 'slug'?: string;
171
429
  /**
172
430
  *
173
- * @type {Array<SubmenuItem>}
174
- * @memberof SubmenuInner
431
+ * @type {boolean}
432
+ * @memberof Product
175
433
  */
176
- 'items': Array<SubmenuItem>;
177
- }
178
- /**
179
- *
180
- * @export
181
- * @interface SubmenuItem
182
- */
183
- export interface SubmenuItem {
434
+ 'enabled'?: boolean;
184
435
  /**
185
436
  *
186
- * @type {string}
187
- * @memberof SubmenuItem
437
+ * @type {SeoMetadata}
438
+ * @memberof Product
188
439
  */
189
- 'id': string;
440
+ 'seoMetadata'?: SeoMetadata;
190
441
  /**
191
442
  *
192
- * @type {string}
193
- * @memberof SubmenuItem
443
+ * @type {Array<string>}
444
+ * @memberof Product
194
445
  */
195
- 'text': string;
446
+ 'tags'?: Array<string>;
196
447
  /**
197
448
  *
198
- * @type {string}
199
- * @memberof SubmenuItem
449
+ * @type {Array<string>}
450
+ * @memberof Product
200
451
  */
201
- 'link': string;
452
+ 'internalTags'?: Array<string>;
202
453
  /**
203
454
  *
204
- * @type {number}
205
- * @memberof SubmenuItem
455
+ * @type {string}
456
+ * @memberof Product
206
457
  */
207
- 'order': number;
208
- }
209
- /**
210
- *
211
- * @export
212
- * @interface UpdateMenuRequest
213
- */
214
- export interface UpdateMenuRequest {
458
+ 'createdAt'?: string;
215
459
  /**
216
460
  *
217
- * @type {Array<UpdateMenuRequestItem>}
218
- * @memberof UpdateMenuRequest
461
+ * @type {string}
462
+ * @memberof Product
219
463
  */
220
- 'items'?: Array<UpdateMenuRequestItem>;
221
- }
222
- /**
223
- *
224
- * @export
225
- * @interface UpdateMenuRequestItem
226
- */
227
- export interface UpdateMenuRequestItem {
464
+ 'updatedAt'?: string;
228
465
  /**
229
466
  *
230
467
  * @type {string}
231
- * @memberof UpdateMenuRequestItem
468
+ * @memberof Product
232
469
  */
233
- 'id': string | null;
470
+ 'publishedAt'?: string;
471
+ /**
472
+ * Images
473
+ * @type {Array<Image>}
474
+ * @memberof Product
475
+ */
476
+ 'images'?: Array<Image>;
477
+ /**
478
+ * Videos
479
+ * @type {Array<Video>}
480
+ * @memberof Product
481
+ */
482
+ 'videos'?: Array<Video>;
483
+ /**
484
+ * Variants
485
+ * @type {Array<Variant>}
486
+ * @memberof Product
487
+ */
488
+ 'variants'?: Array<Variant>;
489
+ /**
490
+ * Additional files attached to the product.
491
+ * @type {Array<ProductAdditionalFilesInner>}
492
+ * @memberof Product
493
+ */
494
+ 'additionalFiles'?: Array<ProductAdditionalFilesInner>;
495
+ /**
496
+ * List of application sets associated with this product
497
+ * @type {Array<ProductApplicationSetsInner>}
498
+ * @memberof Product
499
+ */
500
+ 'applicationSets'?: Array<ProductApplicationSetsInner>;
501
+ /**
502
+ * The average review rating. This field is only present if included in the fields query parameter
503
+ * @type {number}
504
+ * @memberof Product
505
+ */
506
+ 'reviewScore'?: number | null;
507
+ /**
508
+ * A count of reviews. This field is only present if included in the fields query parameter
509
+ * @type {number}
510
+ * @memberof Product
511
+ */
512
+ 'reviewCount'?: number;
234
513
  /**
235
514
  *
236
515
  * @type {string}
237
- * @memberof UpdateMenuRequestItem
516
+ * @memberof Product
238
517
  */
239
- 'text': string;
518
+ 'sku'?: string;
519
+ /**
520
+ * A count of sales. This field is only present if included in the fields query parameter
521
+ * @type {number}
522
+ * @memberof Product
523
+ */
524
+ 'sales'?: number;
240
525
  /**
241
526
  *
242
- * @type {string}
243
- * @memberof UpdateMenuRequestItem
527
+ * @type {boolean}
528
+ * @memberof Product
244
529
  */
245
- 'link': string;
530
+ 'includeInDataFeeds'?: boolean;
246
531
  /**
247
532
  *
248
- * @type {number}
249
- * @memberof UpdateMenuRequestItem
533
+ * @type {ProductWarehouseProduct}
534
+ * @memberof Product
250
535
  */
251
- 'order': number;
536
+ 'warehouseProduct'?: ProductWarehouseProduct;
252
537
  /**
253
538
  *
254
- * @type {Array<UpdateMenuRequestItemSubmenuInner>}
255
- * @memberof UpdateMenuRequestItem
539
+ * @type {Array<MetaField>}
540
+ * @memberof Product
256
541
  */
257
- 'submenu': Array<UpdateMenuRequestItemSubmenuInner>;
542
+ 'metafields'?: Array<MetaField>;
258
543
  }
259
544
  /**
260
545
  *
261
546
  * @export
262
- * @interface UpdateMenuRequestItemSubmenuInner
547
+ * @interface ProductAdditionalFilesInner
263
548
  */
264
- export interface UpdateMenuRequestItemSubmenuInner {
549
+ export interface ProductAdditionalFilesInner {
265
550
  /**
266
- *
551
+ * Unique object identifier
267
552
  * @type {string}
268
- * @memberof UpdateMenuRequestItemSubmenuInner
553
+ * @memberof ProductAdditionalFilesInner
269
554
  */
270
- 'id': string | null;
555
+ 'id'?: string;
271
556
  /**
272
- *
557
+ * File URL
273
558
  * @type {string}
274
- * @memberof UpdateMenuRequestItemSubmenuInner
559
+ * @memberof ProductAdditionalFilesInner
275
560
  */
276
- 'title': string;
561
+ 'src'?: string;
562
+ }
563
+ /**
564
+ *
565
+ * @export
566
+ * @interface ProductApplicationSetsInner
567
+ */
568
+ export interface ProductApplicationSetsInner {
277
569
  /**
278
- *
570
+ * Unique object identifier
279
571
  * @type {string}
280
- * @memberof UpdateMenuRequestItemSubmenuInner
572
+ * @memberof ProductApplicationSetsInner
281
573
  */
282
- 'image': string | null;
574
+ 'id'?: string;
283
575
  /**
284
- *
285
- * @type {number}
286
- * @memberof UpdateMenuRequestItemSubmenuInner
576
+ * A reference to the resource location
577
+ * @type {string}
578
+ * @memberof ProductApplicationSetsInner
287
579
  */
288
- 'order': number;
580
+ 'ref'?: string;
289
581
  /**
290
- *
291
- * @type {Array<UpdateMenuRequestSubmenuItem>}
292
- * @memberof UpdateMenuRequestItemSubmenuInner
582
+ * Name of the application set
583
+ * @type {string}
584
+ * @memberof ProductApplicationSetsInner
293
585
  */
294
- 'items': Array<UpdateMenuRequestSubmenuItem>;
586
+ 'name'?: string;
295
587
  }
296
588
  /**
297
589
  *
298
590
  * @export
299
- * @interface UpdateMenuRequestSubmenuItem
591
+ * @interface ProductWarehouseProduct
300
592
  */
301
- export interface UpdateMenuRequestSubmenuItem {
593
+ export interface ProductWarehouseProduct {
302
594
  /**
303
- *
595
+ * Unique object identifier
304
596
  * @type {string}
305
- * @memberof UpdateMenuRequestSubmenuItem
597
+ * @memberof ProductWarehouseProduct
306
598
  */
307
- 'id': string | null;
599
+ 'id'?: string;
308
600
  /**
309
- *
601
+ * Reference to the product in the Global Fulfillment Network (GFN) catalog that will be used as a base for this product. A list of available products for the given project can be obtained from the GFN Catalog API.
310
602
  * @type {string}
311
- * @memberof UpdateMenuRequestSubmenuItem
603
+ * @memberof ProductWarehouseProduct
312
604
  */
313
- 'text': string;
605
+ 'gfnProductRef'?: string;
606
+ }
607
+ /**
608
+ * SEO metadata for the product
609
+ * @export
610
+ * @interface SeoMetadata
611
+ */
612
+ export interface SeoMetadata {
613
+ /**
614
+ * Meta title for the product. This appears in search engine results and social shares. If not provided, the product title will be used.
615
+ * @type {string}
616
+ * @memberof SeoMetadata
617
+ */
618
+ 'title'?: string;
619
+ /**
620
+ * Meta description for the product. This appears in search engine results and social shares. If not provided, the product description will be used.
621
+ * @type {string}
622
+ * @memberof SeoMetadata
623
+ */
624
+ 'description'?: string | null;
625
+ }
626
+ /**
627
+ *
628
+ * @export
629
+ * @interface Stock
630
+ */
631
+ export interface Stock {
632
+ /**
633
+ *
634
+ * @type {number}
635
+ * @memberof Stock
636
+ */
637
+ 'level'?: number;
638
+ }
639
+ /**
640
+ *
641
+ * @export
642
+ * @interface SubmenuInner
643
+ */
644
+ export interface SubmenuInner {
645
+ /**
646
+ *
647
+ * @type {string}
648
+ * @memberof SubmenuInner
649
+ */
650
+ 'id': string;
651
+ /**
652
+ *
653
+ * @type {string}
654
+ * @memberof SubmenuInner
655
+ */
656
+ 'title': string;
657
+ /**
658
+ *
659
+ * @type {string}
660
+ * @memberof SubmenuInner
661
+ */
662
+ 'image': string | null;
663
+ /**
664
+ *
665
+ * @type {number}
666
+ * @memberof SubmenuInner
667
+ */
668
+ 'order': number;
669
+ /**
670
+ *
671
+ * @type {Array<SubmenuItem>}
672
+ * @memberof SubmenuInner
673
+ */
674
+ 'items': Array<SubmenuItem>;
675
+ }
676
+ /**
677
+ *
678
+ * @export
679
+ * @interface SubmenuItem
680
+ */
681
+ export interface SubmenuItem {
682
+ /**
683
+ *
684
+ * @type {string}
685
+ * @memberof SubmenuItem
686
+ */
687
+ 'id': string;
688
+ /**
689
+ *
690
+ * @type {string}
691
+ * @memberof SubmenuItem
692
+ */
693
+ 'text': string;
694
+ /**
695
+ *
696
+ * @type {string}
697
+ * @memberof SubmenuItem
698
+ */
699
+ 'link': string;
700
+ /**
701
+ *
702
+ * @type {number}
703
+ * @memberof SubmenuItem
704
+ */
705
+ 'order': number;
706
+ }
707
+ /**
708
+ *
709
+ * @export
710
+ * @interface UpdateMenuRequest
711
+ */
712
+ export interface UpdateMenuRequest {
713
+ /**
714
+ *
715
+ * @type {Array<UpdateMenuRequestItem>}
716
+ * @memberof UpdateMenuRequest
717
+ */
718
+ 'items'?: Array<UpdateMenuRequestItem>;
719
+ }
720
+ /**
721
+ *
722
+ * @export
723
+ * @interface UpdateMenuRequestItem
724
+ */
725
+ export interface UpdateMenuRequestItem {
726
+ /**
727
+ *
728
+ * @type {string}
729
+ * @memberof UpdateMenuRequestItem
730
+ */
731
+ 'id': string | null;
732
+ /**
733
+ *
734
+ * @type {string}
735
+ * @memberof UpdateMenuRequestItem
736
+ */
737
+ 'text': string;
738
+ /**
739
+ *
740
+ * @type {string}
741
+ * @memberof UpdateMenuRequestItem
742
+ */
743
+ 'link': string;
744
+ /**
745
+ *
746
+ * @type {number}
747
+ * @memberof UpdateMenuRequestItem
748
+ */
749
+ 'order': number;
750
+ /**
751
+ *
752
+ * @type {Array<UpdateMenuRequestItemSubmenuInner>}
753
+ * @memberof UpdateMenuRequestItem
754
+ */
755
+ 'submenu': Array<UpdateMenuRequestItemSubmenuInner>;
756
+ }
757
+ /**
758
+ *
759
+ * @export
760
+ * @interface UpdateMenuRequestItemSubmenuInner
761
+ */
762
+ export interface UpdateMenuRequestItemSubmenuInner {
763
+ /**
764
+ *
765
+ * @type {string}
766
+ * @memberof UpdateMenuRequestItemSubmenuInner
767
+ */
768
+ 'id': string | null;
769
+ /**
770
+ *
771
+ * @type {string}
772
+ * @memberof UpdateMenuRequestItemSubmenuInner
773
+ */
774
+ 'title': string;
775
+ /**
776
+ *
777
+ * @type {string}
778
+ * @memberof UpdateMenuRequestItemSubmenuInner
779
+ */
780
+ 'image': string | null;
781
+ /**
782
+ *
783
+ * @type {number}
784
+ * @memberof UpdateMenuRequestItemSubmenuInner
785
+ */
786
+ 'order': number;
787
+ /**
788
+ *
789
+ * @type {Array<UpdateMenuRequestSubmenuItem>}
790
+ * @memberof UpdateMenuRequestItemSubmenuInner
791
+ */
792
+ 'items': Array<UpdateMenuRequestSubmenuItem>;
793
+ }
794
+ /**
795
+ *
796
+ * @export
797
+ * @interface UpdateMenuRequestSubmenuItem
798
+ */
799
+ export interface UpdateMenuRequestSubmenuItem {
800
+ /**
801
+ *
802
+ * @type {string}
803
+ * @memberof UpdateMenuRequestSubmenuItem
804
+ */
805
+ 'id': string | null;
806
+ /**
807
+ *
808
+ * @type {string}
809
+ * @memberof UpdateMenuRequestSubmenuItem
810
+ */
811
+ 'text': string;
314
812
  /**
315
813
  *
316
814
  * @type {string}
@@ -324,6 +822,432 @@ export interface UpdateMenuRequestSubmenuItem {
324
822
  */
325
823
  'order': number;
326
824
  }
825
+ /**
826
+ *
827
+ * @export
828
+ * @interface Variant
829
+ */
830
+ export interface Variant {
831
+ /**
832
+ * Unique object identifier
833
+ * @type {string}
834
+ * @memberof Variant
835
+ */
836
+ 'id'?: string;
837
+ /**
838
+ * Attributes associated to a variant such as Colour and Size. An attribute can have thumbnail type of `text`, `color`, or `image`. Attribute tags are intended for grouping and filtering, e.g. by a group of colours.
839
+ * @type {Array<Attribute>}
840
+ * @memberof Variant
841
+ */
842
+ 'attributes': Array<Attribute>;
843
+ /**
844
+ *
845
+ * @type {string}
846
+ * @memberof Variant
847
+ */
848
+ 'sku': string;
849
+ /**
850
+ * A reference to the resource location
851
+ * @type {string}
852
+ * @memberof Variant
853
+ */
854
+ 'ref'?: string;
855
+ /**
856
+ *
857
+ * @type {VariantProduct}
858
+ * @memberof Variant
859
+ */
860
+ 'product'?: VariantProduct;
861
+ /**
862
+ *
863
+ * @type {number}
864
+ * @memberof Variant
865
+ */
866
+ 'sortOrder'?: number;
867
+ /**
868
+ *
869
+ * @type {Price}
870
+ * @memberof Variant
871
+ */
872
+ 'retailPrice'?: Price;
873
+ /**
874
+ *
875
+ * @type {Price}
876
+ * @memberof Variant
877
+ */
878
+ 'salePrice'?: Price;
879
+ /**
880
+ *
881
+ * @type {Price}
882
+ * @memberof Variant
883
+ */
884
+ 'price'?: Price;
885
+ /**
886
+ *
887
+ * @type {Stock}
888
+ * @memberof Variant
889
+ */
890
+ 'stock'?: Stock;
891
+ /**
892
+ *
893
+ * @type {string}
894
+ * @memberof Variant
895
+ */
896
+ 'createdAt'?: string;
897
+ /**
898
+ *
899
+ * @type {string}
900
+ * @memberof Variant
901
+ */
902
+ 'updatedAt'?: string;
903
+ /**
904
+ *
905
+ * @type {string}
906
+ * @memberof Variant
907
+ */
908
+ 'publishedAt'?: string;
909
+ /**
910
+ * Images
911
+ * @type {Array<Image>}
912
+ * @memberof Variant
913
+ */
914
+ 'images'?: Array<Image>;
915
+ /**
916
+ * Design applications. If not provided, the product will be blank.
917
+ * @type {Array<Application>}
918
+ * @memberof Variant
919
+ */
920
+ 'applications'?: Array<Application>;
921
+ /**
922
+ * Global Trade Item Number
923
+ * @type {string}
924
+ * @memberof Variant
925
+ */
926
+ 'gtin'?: string | null;
927
+ }
928
+ /**
929
+ *
930
+ * @export
931
+ * @interface VariantProduct
932
+ */
933
+ export interface VariantProduct {
934
+ /**
935
+ * Unique object identifier
936
+ * @type {string}
937
+ * @memberof VariantProduct
938
+ */
939
+ 'id'?: string;
940
+ /**
941
+ * A reference to the resource location
942
+ * @type {string}
943
+ * @memberof VariantProduct
944
+ */
945
+ 'ref'?: string;
946
+ }
947
+ /**
948
+ * Video object
949
+ * @export
950
+ * @interface Video
951
+ */
952
+ export interface Video {
953
+ /**
954
+ * Unique object identifier
955
+ * @type {string}
956
+ * @memberof Video
957
+ */
958
+ 'id'?: string;
959
+ /**
960
+ *
961
+ * @type {string}
962
+ * @memberof Video
963
+ */
964
+ 'src'?: string;
965
+ /**
966
+ *
967
+ * @type {string}
968
+ * @memberof Video
969
+ */
970
+ 'alt'?: string;
971
+ /**
972
+ *
973
+ * @type {number}
974
+ * @memberof Video
975
+ */
976
+ 'sortOrder'?: number;
977
+ /**
978
+ *
979
+ * @type {string}
980
+ * @memberof Video
981
+ */
982
+ 'createdAt'?: string;
983
+ /**
984
+ *
985
+ * @type {string}
986
+ * @memberof Video
987
+ */
988
+ 'updatedAt'?: string;
989
+ }
990
+
991
+ /**
992
+ * CrossSellApi - axios parameter creator
993
+ * @export
994
+ */
995
+ export const CrossSellApiAxiosParamCreator = function (configuration?: Configuration) {
996
+ return {
997
+ /**
998
+ * Attaches a list of products to the given product as cross-sell products.
999
+ * @summary Attach cross-sell products
1000
+ * @param {string} project What project it is
1001
+ * @param {string} productId Product\&#39;s unique identifier
1002
+ * @param {AttachCrossSellProductsRequest} [attachCrossSellProductsRequest]
1003
+ * @param {*} [options] Override http request option.
1004
+ * @throws {RequiredError}
1005
+ */
1006
+ attachCrossSellProducts: async (project: string, productId: string, attachCrossSellProductsRequest?: AttachCrossSellProductsRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
1007
+ // verify required parameter 'project' is not null or undefined
1008
+ assertParamExists('attachCrossSellProducts', 'project', project)
1009
+ // verify required parameter 'productId' is not null or undefined
1010
+ assertParamExists('attachCrossSellProducts', 'productId', productId)
1011
+ const localVarPath = `/v1/website/products/{productId}/cross-sell/products`
1012
+ .replace(`{${"productId"}}`, encodeURIComponent(String(productId)));
1013
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1014
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1015
+ let baseOptions;
1016
+ if (configuration) {
1017
+ baseOptions = configuration.baseOptions;
1018
+ }
1019
+
1020
+ const localVarRequestOptions = { method: 'PUT', ...baseOptions, ...options};
1021
+ const localVarHeaderParameter = {} as any;
1022
+ const localVarQueryParameter = {} as any;
1023
+
1024
+ // authentication session-oauth required
1025
+ // oauth required
1026
+ await setOAuthToObject(localVarHeaderParameter, "session-oauth", [], configuration)
1027
+
1028
+ // authentication api-key required
1029
+ await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
1030
+
1031
+ if (project !== undefined) {
1032
+ localVarQueryParameter['project'] = project;
1033
+ }
1034
+
1035
+
1036
+
1037
+ localVarHeaderParameter['Content-Type'] = 'application/json';
1038
+
1039
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1040
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1041
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
1042
+ localVarRequestOptions.data = serializeDataIfNeeded(attachCrossSellProductsRequest, localVarRequestOptions, configuration)
1043
+
1044
+ return {
1045
+ url: toPathString(localVarUrlObj),
1046
+ options: localVarRequestOptions,
1047
+ };
1048
+ },
1049
+ /**
1050
+ *
1051
+ * @summary Get cross-sell products linked to a product
1052
+ * @param {string} project What project it is
1053
+ * @param {string} productId Product\&#39;s unique identifier
1054
+ * @param {*} [options] Override http request option.
1055
+ * @throws {RequiredError}
1056
+ */
1057
+ getCrossSellProducts: async (project: string, productId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
1058
+ // verify required parameter 'project' is not null or undefined
1059
+ assertParamExists('getCrossSellProducts', 'project', project)
1060
+ // verify required parameter 'productId' is not null or undefined
1061
+ assertParamExists('getCrossSellProducts', 'productId', productId)
1062
+ const localVarPath = `/v1/website/products/{productId}/cross-sell/products`
1063
+ .replace(`{${"productId"}}`, encodeURIComponent(String(productId)));
1064
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
1065
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
1066
+ let baseOptions;
1067
+ if (configuration) {
1068
+ baseOptions = configuration.baseOptions;
1069
+ }
1070
+
1071
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
1072
+ const localVarHeaderParameter = {} as any;
1073
+ const localVarQueryParameter = {} as any;
1074
+
1075
+ // authentication session-oauth required
1076
+ // oauth required
1077
+ await setOAuthToObject(localVarHeaderParameter, "session-oauth", [], configuration)
1078
+
1079
+ // authentication api-key required
1080
+ await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)
1081
+
1082
+ if (project !== undefined) {
1083
+ localVarQueryParameter['project'] = project;
1084
+ }
1085
+
1086
+
1087
+
1088
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
1089
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1090
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
1091
+
1092
+ return {
1093
+ url: toPathString(localVarUrlObj),
1094
+ options: localVarRequestOptions,
1095
+ };
1096
+ },
1097
+ }
1098
+ };
1099
+
1100
+ /**
1101
+ * CrossSellApi - functional programming interface
1102
+ * @export
1103
+ */
1104
+ export const CrossSellApiFp = function(configuration?: Configuration) {
1105
+ const localVarAxiosParamCreator = CrossSellApiAxiosParamCreator(configuration)
1106
+ return {
1107
+ /**
1108
+ * Attaches a list of products to the given product as cross-sell products.
1109
+ * @summary Attach cross-sell products
1110
+ * @param {string} project What project it is
1111
+ * @param {string} productId Product\&#39;s unique identifier
1112
+ * @param {AttachCrossSellProductsRequest} [attachCrossSellProductsRequest]
1113
+ * @param {*} [options] Override http request option.
1114
+ * @throws {RequiredError}
1115
+ */
1116
+ async attachCrossSellProducts(project: string, productId: string, attachCrossSellProductsRequest?: AttachCrossSellProductsRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Product>>> {
1117
+ const localVarAxiosArgs = await localVarAxiosParamCreator.attachCrossSellProducts(project, productId, attachCrossSellProductsRequest, options);
1118
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1119
+ const localVarOperationServerBasePath = operationServerMap['CrossSellApi.attachCrossSellProducts']?.[localVarOperationServerIndex]?.url;
1120
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1121
+ },
1122
+ /**
1123
+ *
1124
+ * @summary Get cross-sell products linked to a product
1125
+ * @param {string} project What project it is
1126
+ * @param {string} productId Product\&#39;s unique identifier
1127
+ * @param {*} [options] Override http request option.
1128
+ * @throws {RequiredError}
1129
+ */
1130
+ async getCrossSellProducts(project: string, productId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<Product>>> {
1131
+ const localVarAxiosArgs = await localVarAxiosParamCreator.getCrossSellProducts(project, productId, options);
1132
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
1133
+ const localVarOperationServerBasePath = operationServerMap['CrossSellApi.getCrossSellProducts']?.[localVarOperationServerIndex]?.url;
1134
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1135
+ },
1136
+ }
1137
+ };
1138
+
1139
+ /**
1140
+ * CrossSellApi - factory interface
1141
+ * @export
1142
+ */
1143
+ export const CrossSellApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
1144
+ const localVarFp = CrossSellApiFp(configuration)
1145
+ return {
1146
+ /**
1147
+ * Attaches a list of products to the given product as cross-sell products.
1148
+ * @summary Attach cross-sell products
1149
+ * @param {CrossSellApiAttachCrossSellProductsRequest} requestParameters Request parameters.
1150
+ * @param {*} [options] Override http request option.
1151
+ * @throws {RequiredError}
1152
+ */
1153
+ attachCrossSellProducts(requestParameters: CrossSellApiAttachCrossSellProductsRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<Product>> {
1154
+ return localVarFp.attachCrossSellProducts(requestParameters.project, requestParameters.productId, requestParameters.attachCrossSellProductsRequest, options).then((request) => request(axios, basePath));
1155
+ },
1156
+ /**
1157
+ *
1158
+ * @summary Get cross-sell products linked to a product
1159
+ * @param {CrossSellApiGetCrossSellProductsRequest} requestParameters Request parameters.
1160
+ * @param {*} [options] Override http request option.
1161
+ * @throws {RequiredError}
1162
+ */
1163
+ getCrossSellProducts(requestParameters: CrossSellApiGetCrossSellProductsRequest, options?: RawAxiosRequestConfig): AxiosPromise<Array<Product>> {
1164
+ return localVarFp.getCrossSellProducts(requestParameters.project, requestParameters.productId, options).then((request) => request(axios, basePath));
1165
+ },
1166
+ };
1167
+ };
1168
+
1169
+ /**
1170
+ * Request parameters for attachCrossSellProducts operation in CrossSellApi.
1171
+ * @export
1172
+ * @interface CrossSellApiAttachCrossSellProductsRequest
1173
+ */
1174
+ export interface CrossSellApiAttachCrossSellProductsRequest {
1175
+ /**
1176
+ * What project it is
1177
+ * @type {string}
1178
+ * @memberof CrossSellApiAttachCrossSellProducts
1179
+ */
1180
+ readonly project: string
1181
+
1182
+ /**
1183
+ * Product\&#39;s unique identifier
1184
+ * @type {string}
1185
+ * @memberof CrossSellApiAttachCrossSellProducts
1186
+ */
1187
+ readonly productId: string
1188
+
1189
+ /**
1190
+ *
1191
+ * @type {AttachCrossSellProductsRequest}
1192
+ * @memberof CrossSellApiAttachCrossSellProducts
1193
+ */
1194
+ readonly attachCrossSellProductsRequest?: AttachCrossSellProductsRequest
1195
+ }
1196
+
1197
+ /**
1198
+ * Request parameters for getCrossSellProducts operation in CrossSellApi.
1199
+ * @export
1200
+ * @interface CrossSellApiGetCrossSellProductsRequest
1201
+ */
1202
+ export interface CrossSellApiGetCrossSellProductsRequest {
1203
+ /**
1204
+ * What project it is
1205
+ * @type {string}
1206
+ * @memberof CrossSellApiGetCrossSellProducts
1207
+ */
1208
+ readonly project: string
1209
+
1210
+ /**
1211
+ * Product\&#39;s unique identifier
1212
+ * @type {string}
1213
+ * @memberof CrossSellApiGetCrossSellProducts
1214
+ */
1215
+ readonly productId: string
1216
+ }
1217
+
1218
+ /**
1219
+ * CrossSellApi - object-oriented interface
1220
+ * @export
1221
+ * @class CrossSellApi
1222
+ * @extends {BaseAPI}
1223
+ */
1224
+ export class CrossSellApi extends BaseAPI {
1225
+ /**
1226
+ * Attaches a list of products to the given product as cross-sell products.
1227
+ * @summary Attach cross-sell products
1228
+ * @param {CrossSellApiAttachCrossSellProductsRequest} requestParameters Request parameters.
1229
+ * @param {*} [options] Override http request option.
1230
+ * @throws {RequiredError}
1231
+ * @memberof CrossSellApi
1232
+ */
1233
+ public attachCrossSellProducts(requestParameters: CrossSellApiAttachCrossSellProductsRequest, options?: RawAxiosRequestConfig) {
1234
+ return CrossSellApiFp(this.configuration).attachCrossSellProducts(requestParameters.project, requestParameters.productId, requestParameters.attachCrossSellProductsRequest, options).then((request) => request(this.axios, this.basePath));
1235
+ }
1236
+
1237
+ /**
1238
+ *
1239
+ * @summary Get cross-sell products linked to a product
1240
+ * @param {CrossSellApiGetCrossSellProductsRequest} requestParameters Request parameters.
1241
+ * @param {*} [options] Override http request option.
1242
+ * @throws {RequiredError}
1243
+ * @memberof CrossSellApi
1244
+ */
1245
+ public getCrossSellProducts(requestParameters: CrossSellApiGetCrossSellProductsRequest, options?: RawAxiosRequestConfig) {
1246
+ return CrossSellApiFp(this.configuration).getCrossSellProducts(requestParameters.project, requestParameters.productId, options).then((request) => request(this.axios, this.basePath));
1247
+ }
1248
+ }
1249
+
1250
+
327
1251
 
328
1252
  /**
329
1253
  * MenuApi - axios parameter creator