@redotech/redo-api-schema 2.2.423 → 2.2.432

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/lib/openapi.d.ts CHANGED
@@ -184,6 +184,31 @@ export interface paths {
184
184
  */
185
185
  get: operations["Invoice list"];
186
186
  };
187
+ "/stores/{storeId}/products/bulk-upload": {
188
+ /**
189
+ * Bulk upload products (Beta)
190
+ * @description Bulk create or update product families and their variants.
191
+ *
192
+ * Submit up to 1,000 product families per request, each containing up to 100 variants.
193
+ * Products are processed asynchronously in batches. Only one bulk upload can run per store at a time.
194
+ *
195
+ * ## Matching Strategy
196
+ *
197
+ * The API uses the following priority to match incoming product families to existing records:
198
+ *
199
+ * 1. **`product_family_id`** — Redo product family ID (direct lookup)
200
+ * 2. **`external_id`** — ID from your external system
201
+ * 3. **SKU** — Matched via variant SKUs
202
+ *
203
+ * If no match is found, a new product family is created.
204
+ *
205
+ * ## Concurrency
206
+ *
207
+ * Only one bulk upload operation can run per store at a time. If a bulk upload is already
208
+ * in progress, the request will return a `409 Conflict` error.
209
+ */
210
+ post: operations["Products bulk upload"];
211
+ };
187
212
  "/stores/{storeId}/returns": {
188
213
  /**
189
214
  * List Returns
@@ -302,6 +327,279 @@ export interface components {
302
327
  */
303
328
  state: string;
304
329
  };
330
+ /**
331
+ * Product Family Image
332
+ * @description An image associated with a product family or variant.
333
+ */
334
+ "bulk-product-family-image.schema": {
335
+ /**
336
+ * Alt Text
337
+ * @description Alt text for the image.
338
+ */
339
+ alt_text: string;
340
+ /**
341
+ * URL
342
+ * Format: uri
343
+ * @description URL of the image.
344
+ */
345
+ url: string;
346
+ };
347
+ /**
348
+ * Product Family Option
349
+ * @description A product option (e.g. Size, Color) with its possible values.
350
+ */
351
+ "bulk-product-family-option.schema": {
352
+ /**
353
+ * Name
354
+ * @description Option name (e.g. "Size", "Color").
355
+ */
356
+ name: string;
357
+ /**
358
+ * Values
359
+ * @description Possible values for this option (e.g. ["Small", "Medium", "Large"]).
360
+ */
361
+ values: string[];
362
+ };
363
+ /**
364
+ * Bulk Product Family
365
+ * @description A product family containing one or more variants.
366
+ *
367
+ * Matching priority for existing product families:
368
+ * 1. `product_family_id` — Redo product family ID (direct lookup)
369
+ * 2. `external_id` — ID from your external system
370
+ * 3. SKU — Matched via variant SKUs
371
+ * If no match is found, a new product family is created.
372
+ */
373
+ "bulk-product-family.schema": {
374
+ /**
375
+ * Description
376
+ * @description Product family description.
377
+ */
378
+ description?: string;
379
+ /**
380
+ * External ID
381
+ * @description Product family ID in your external system. Second-priority match.
382
+ */
383
+ external_id?: string;
384
+ /**
385
+ * Images
386
+ * @description Images for the product family.
387
+ */
388
+ images?: components["schemas"]["bulk-product-family-image.schema"][];
389
+ /**
390
+ * Kind
391
+ * @description Whether the product is sellable or non-sellable.
392
+ * @default SELLABLE
393
+ * @enum {string}
394
+ */
395
+ kind?: "SELLABLE" | "NON_SELLABLE";
396
+ /**
397
+ * Options
398
+ * @description Product options (e.g. Size, Color) with their possible values.
399
+ */
400
+ options?: components["schemas"]["bulk-product-family-option.schema"][];
401
+ /**
402
+ * Product Family ID
403
+ * @description Redo product family ID. Highest-priority match for updating an existing product family.
404
+ */
405
+ product_family_id?: string;
406
+ /**
407
+ * Tags
408
+ * @description Tags for categorization.
409
+ * @default []
410
+ */
411
+ tags?: string[];
412
+ /**
413
+ * Title
414
+ * @description Product family title.
415
+ */
416
+ title: string;
417
+ /**
418
+ * Variants
419
+ * @description Product variants. At least 1 and up to 100 per product family.
420
+ */
421
+ variants: components["schemas"]["bulk-variant.schema"][];
422
+ /**
423
+ * Vendor
424
+ * @description Vendor or manufacturer name.
425
+ */
426
+ vendor?: string;
427
+ };
428
+ /**
429
+ * Bulk Product Upload Request
430
+ * @description Request body for bulk uploading product families and their variants.
431
+ */
432
+ "bulk-product-upload-request.schema": {
433
+ /**
434
+ * Products
435
+ * @description Product families to create or update. Between 1 and 1000 per request.
436
+ */
437
+ products: components["schemas"]["bulk-product-family.schema"][];
438
+ };
439
+ /**
440
+ * Bulk Product Upload Response
441
+ * @description Response from a bulk product upload operation.
442
+ */
443
+ "bulk-product-upload-response.schema": {
444
+ /**
445
+ * Error Count
446
+ * @description Number of product families that failed to process.
447
+ */
448
+ error_count: number;
449
+ /**
450
+ * Processed Count
451
+ * @description Number of product families processed successfully.
452
+ */
453
+ processed_count: number;
454
+ /**
455
+ * Results
456
+ * @description Per-product-family results.
457
+ */
458
+ results: (OneOf<[{
459
+ /**
460
+ * Product Family ID
461
+ * @description Redo product family ID.
462
+ */
463
+ product_family_id: string;
464
+ /**
465
+ * Products
466
+ * @description Variant results within this product family.
467
+ */
468
+ products: {
469
+ /**
470
+ * ID
471
+ * @description Redo product ID.
472
+ */
473
+ id: string;
474
+ /**
475
+ * SKU
476
+ * @description Product SKU.
477
+ */
478
+ sku: string;
479
+ }[];
480
+ /**
481
+ * Status
482
+ * @description Whether the product family was created or updated.
483
+ * @enum {string}
484
+ */
485
+ status: "created" | "updated";
486
+ }, {
487
+ /**
488
+ * Error
489
+ * @description Error message describing what went wrong.
490
+ */
491
+ error: string;
492
+ /**
493
+ * Status
494
+ * @description Indicates an error occurred.
495
+ * @constant
496
+ */
497
+ status: "error";
498
+ }]>)[];
499
+ /**
500
+ * Total Count
501
+ * @description Total number of product families in the request.
502
+ */
503
+ total_count: number;
504
+ };
505
+ /**
506
+ * Bulk Variant
507
+ * @description A product variant within a product family.
508
+ */
509
+ "bulk-variant.schema": {
510
+ /**
511
+ * Barcodes
512
+ * @description Additional barcodes for this variant.
513
+ */
514
+ barcodes?: string[];
515
+ /**
516
+ * Currency
517
+ * @description Currency code (e.g. "USD").
518
+ */
519
+ currency: string;
520
+ /**
521
+ * Dimension Unit
522
+ * @description Unit of dimension measurement.
523
+ * @enum {string}
524
+ */
525
+ dimension_unit?: "in" | "cm";
526
+ /**
527
+ * External ID
528
+ * @description Variant ID in your external system. Used for matching if `id` is not provided.
529
+ */
530
+ external_id?: string;
531
+ /**
532
+ * Height
533
+ * @description Height of the variant.
534
+ */
535
+ height?: number;
536
+ /**
537
+ * HS Code
538
+ * @description Harmonized System code for customs.
539
+ */
540
+ hs_code?: string;
541
+ /**
542
+ * ID
543
+ * @description Redo variant ID. Used for matching to an existing variant.
544
+ */
545
+ id?: string;
546
+ /**
547
+ * Images
548
+ * @description Images specific to this variant.
549
+ */
550
+ images?: components["schemas"]["bulk-product-family-image.schema"][];
551
+ /**
552
+ * Length
553
+ * @description Length of the variant.
554
+ */
555
+ length?: number;
556
+ /**
557
+ * Option Values
558
+ * @description Values for each option defined on the product family, in the same order.
559
+ */
560
+ option_values?: string[];
561
+ /**
562
+ * Origin Country
563
+ * @description Country of origin as an ISO 3166-1 alpha-2 code (e.g. "US").
564
+ */
565
+ origin_country?: string;
566
+ /**
567
+ * Price
568
+ * @description Price in the smallest currency unit (e.g. cents for USD).
569
+ */
570
+ price: number;
571
+ /**
572
+ * SKU
573
+ * @description Stock keeping unit. Required. Used for matching if neither `id` nor `external_id` are provided.
574
+ */
575
+ sku: string;
576
+ /**
577
+ * Title
578
+ * @description Variant title (e.g. "Small / Blue").
579
+ */
580
+ title?: string;
581
+ /**
582
+ * UPC
583
+ * @description Universal product code.
584
+ */
585
+ upc?: string;
586
+ /**
587
+ * Weight
588
+ * @description Weight of the variant.
589
+ */
590
+ weight?: number;
591
+ /**
592
+ * Weight Unit
593
+ * @description Unit of weight measurement.
594
+ * @enum {string}
595
+ */
596
+ weight_unit?: "g" | "kg" | "lb" | "oz" | "t";
597
+ /**
598
+ * Width
599
+ * @description Width of the variant.
600
+ */
601
+ width?: number;
602
+ };
305
603
  /**
306
604
  * Comment
307
605
  * @description Comment with either message or image.
@@ -432,6 +730,19 @@ export interface components {
432
730
  * @description Custom event to trigger flows with merchant-defined event names and properties.
433
731
  */
434
732
  "custom-event-request.schema": {
733
+ /** @description Cart context for product recommendations in triggered emails. If not provided, no cart-aware recommendations will be made. */
734
+ cart_context?: ({
735
+ /** @description Items already in the customer's cart. */
736
+ alreadyInCart: {
737
+ productId: string;
738
+ quantity?: number;
739
+ variantId: string;
740
+ }[];
741
+ /** @description The ID of an existing cart to use for recommendations. */
742
+ existingCartId: string | null;
743
+ /** @description Product IDs to use as the basis for recommendations. */
744
+ productIdsForRecommendations: string[];
745
+ }) | null;
435
746
  /** @description Customer email address (one of email or phone is required). */
436
747
  email?: string;
437
748
  /** @description The name of the custom event (e.g., 'user_registered', 'purchase_completed'). */
@@ -2334,6 +2645,66 @@ export interface operations {
2334
2645
  };
2335
2646
  };
2336
2647
  };
2648
+ /**
2649
+ * Bulk upload products (Beta)
2650
+ * @description Bulk create or update product families and their variants.
2651
+ *
2652
+ * Submit up to 1,000 product families per request, each containing up to 100 variants.
2653
+ * Products are processed asynchronously in batches. Only one bulk upload can run per store at a time.
2654
+ *
2655
+ * ## Matching Strategy
2656
+ *
2657
+ * The API uses the following priority to match incoming product families to existing records:
2658
+ *
2659
+ * 1. **`product_family_id`** — Redo product family ID (direct lookup)
2660
+ * 2. **`external_id`** — ID from your external system
2661
+ * 3. **SKU** — Matched via variant SKUs
2662
+ *
2663
+ * If no match is found, a new product family is created.
2664
+ *
2665
+ * ## Concurrency
2666
+ *
2667
+ * Only one bulk upload operation can run per store at a time. If a bulk upload is already
2668
+ * in progress, the request will return a `409 Conflict` error.
2669
+ */
2670
+ "Products bulk upload": {
2671
+ parameters: {
2672
+ path: {
2673
+ storeId: components["parameters"]["store-id.param"];
2674
+ };
2675
+ };
2676
+ requestBody: {
2677
+ content: {
2678
+ "application/json": components["schemas"]["bulk-product-upload-request.schema"];
2679
+ };
2680
+ };
2681
+ responses: {
2682
+ /** @description Upload completed */
2683
+ 200: {
2684
+ content: {
2685
+ "application/json": components["schemas"]["bulk-product-upload-response.schema"];
2686
+ };
2687
+ };
2688
+ /** @description Invalid request body or missing required fields */
2689
+ 400: {
2690
+ content: {
2691
+ "application/json": components["schemas"]["error.schema"];
2692
+ };
2693
+ };
2694
+ /** @description A bulk upload is already in progress for this store */
2695
+ 409: {
2696
+ content: {
2697
+ "application/json": components["schemas"]["error.schema"];
2698
+ };
2699
+ };
2700
+ /** @description Error */
2701
+ default: {
2702
+ content: {
2703
+ "application/problem+json": components["schemas"]["error.schema"];
2704
+ };
2705
+ };
2706
+ };
2707
+ };
2337
2708
  /**
2338
2709
  * List Returns
2339
2710
  * @description List returns, sorted by most recent to least recent.
package/lib/openapi.yaml CHANGED
@@ -45,6 +45,7 @@ tags:
45
45
  - name: Customers
46
46
  - name: Invoices
47
47
  - name: Merchant Admin
48
+ - name: Products
48
49
  - name: Returns
49
50
  - name: Storefront
50
51
  - name: Webhooks
@@ -619,6 +620,156 @@ paths:
619
620
  tags:
620
621
  - Merchant Admin
621
622
  summary: Merchant admin
623
+ /stores/{storeId}/products/bulk-upload:
624
+ post:
625
+ description: |
626
+ Bulk create or update product families and their variants.
627
+
628
+ Submit up to 1,000 product families per request, each containing up to 100 variants.
629
+ Products are processed asynchronously in batches. Only one bulk upload can run per store at a time.
630
+
631
+ ## Matching Strategy
632
+
633
+ The API uses the following priority to match incoming product families to existing records:
634
+
635
+ 1. **`product_family_id`** — Redo product family ID (direct lookup)
636
+ 2. **`external_id`** — ID from your external system
637
+ 3. **SKU** — Matched via variant SKUs
638
+
639
+ If no match is found, a new product family is created.
640
+
641
+ ## Concurrency
642
+
643
+ Only one bulk upload operation can run per store at a time. If a bulk upload is already
644
+ in progress, the request will return a `409 Conflict` error.
645
+ operationId: Products bulk upload
646
+ parameters:
647
+ - $ref: '#/components/parameters/store-id.param'
648
+ requestBody:
649
+ content:
650
+ application/json:
651
+ schema:
652
+ $ref: '#/components/schemas/bulk-product-upload-request.schema'
653
+ examples:
654
+ single_product:
655
+ summary: Single product with one variant
656
+ value:
657
+ products:
658
+ - title: Classic T-Shirt
659
+ description: A comfortable cotton t-shirt
660
+ vendor: Acme Apparel
661
+ tags:
662
+ - apparel
663
+ - basics
664
+ kind: SELLABLE
665
+ variants:
666
+ - sku: TSHIRT-BLK-M
667
+ price: 2999
668
+ currency: USD
669
+ weight: 200
670
+ weight_unit: g
671
+ multiple_products_with_options:
672
+ summary: Multiple products with options and images
673
+ value:
674
+ products:
675
+ - title: Running Shoes
676
+ external_id: EXT-SHOES-001
677
+ options:
678
+ - name: Size
679
+ values:
680
+ - '9'
681
+ - '10'
682
+ - '11'
683
+ - name: Color
684
+ values:
685
+ - Black
686
+ - White
687
+ images:
688
+ - url: https://example.com/shoes-main.jpg
689
+ alt_text: Running shoes front view
690
+ variants:
691
+ - sku: SHOE-BLK-9
692
+ price: 12999
693
+ currency: USD
694
+ option_values:
695
+ - '9'
696
+ - Black
697
+ - sku: SHOE-WHT-10
698
+ price: 12999
699
+ currency: USD
700
+ option_values:
701
+ - '10'
702
+ - White
703
+ - title: Athletic Socks
704
+ variants:
705
+ - sku: SOCK-WHT-L
706
+ price: 1499
707
+ currency: USD
708
+ required: true
709
+ responses:
710
+ '200':
711
+ content:
712
+ application/json:
713
+ schema:
714
+ $ref: '#/components/schemas/bulk-product-upload-response.schema'
715
+ examples:
716
+ success:
717
+ summary: Successful upload
718
+ value:
719
+ total_count: 2
720
+ processed_count: 2
721
+ error_count: 0
722
+ results:
723
+ - status: created
724
+ product_family_id: 01H5K3EXAMPLE1
725
+ products:
726
+ - id: 01H5K3EXAMPLE1A
727
+ sku: SHOE-BLK-9
728
+ - id: 01H5K3EXAMPLE1B
729
+ sku: SHOE-WHT-10
730
+ - status: updated
731
+ product_family_id: 01H5K3EXAMPLE2
732
+ products:
733
+ - id: 01H5K3EXAMPLE2A
734
+ sku: SOCK-WHT-L
735
+ partial_failure:
736
+ summary: Partial failure
737
+ value:
738
+ total_count: 2
739
+ processed_count: 1
740
+ error_count: 1
741
+ results:
742
+ - status: created
743
+ product_family_id: 01H5K3EXAMPLE3
744
+ products:
745
+ - id: 01H5K3EXAMPLE3A
746
+ sku: TSHIRT-BLK-M
747
+ - status: error
748
+ error: Duplicate SKU found in request
749
+ description: Upload completed
750
+ '400':
751
+ content:
752
+ application/json:
753
+ schema:
754
+ $ref: '#/components/schemas/error.schema'
755
+ description: Invalid request body or missing required fields
756
+ '409':
757
+ content:
758
+ application/json:
759
+ schema:
760
+ $ref: '#/components/schemas/error.schema'
761
+ description: A bulk upload is already in progress for this store
762
+ default:
763
+ content:
764
+ application/problem+json:
765
+ schema:
766
+ $ref: '#/components/schemas/error.schema'
767
+ description: Error
768
+ security:
769
+ - Bearer: []
770
+ summary: Bulk upload products (Beta)
771
+ tags:
772
+ - Products
622
773
  /returns/{returnId}:
623
774
  description: Return.
624
775
  get:
@@ -1541,6 +1692,39 @@ components:
1541
1692
  description: ISO 8601 timestamp when the event occurred. Defaults to current time if not provided.
1542
1693
  format: date-time
1543
1694
  type: string
1695
+ cart_context:
1696
+ description: Cart context for product recommendations in triggered emails. If not provided, no cart-aware recommendations will be made.
1697
+ nullable: true
1698
+ type: object
1699
+ properties:
1700
+ existingCartId:
1701
+ description: The ID of an existing cart to use for recommendations.
1702
+ type: string
1703
+ nullable: true
1704
+ productIdsForRecommendations:
1705
+ description: Product IDs to use as the basis for recommendations.
1706
+ type: array
1707
+ items:
1708
+ type: string
1709
+ alreadyInCart:
1710
+ description: Items already in the customer's cart.
1711
+ type: array
1712
+ items:
1713
+ type: object
1714
+ properties:
1715
+ productId:
1716
+ type: string
1717
+ variantId:
1718
+ type: string
1719
+ quantity:
1720
+ type: number
1721
+ required:
1722
+ - productId
1723
+ - variantId
1724
+ required:
1725
+ - existingCartId
1726
+ - productIdsForRecommendations
1727
+ - alreadyInCart
1544
1728
  required:
1545
1729
  - event_name
1546
1730
  title: Custom Event Request
@@ -1884,6 +2068,325 @@ components:
1884
2068
  - createdAt
1885
2069
  - charge
1886
2070
  type: object
2071
+ bulk-product-family-option.schema:
2072
+ description: A product option (e.g. Size, Color) with its possible values.
2073
+ properties:
2074
+ name:
2075
+ description: Option name (e.g. "Size", "Color").
2076
+ maxLength: 255
2077
+ title: Name
2078
+ type: string
2079
+ values:
2080
+ description: Possible values for this option (e.g. ["Small", "Medium", "Large"]).
2081
+ items:
2082
+ maxLength: 255
2083
+ type: string
2084
+ title: Values
2085
+ type: array
2086
+ required:
2087
+ - name
2088
+ - values
2089
+ title: Product Family Option
2090
+ type: object
2091
+ bulk-product-family-image.schema:
2092
+ description: An image associated with a product family or variant.
2093
+ properties:
2094
+ url:
2095
+ description: URL of the image.
2096
+ format: uri
2097
+ title: URL
2098
+ type: string
2099
+ alt_text:
2100
+ description: Alt text for the image.
2101
+ maxLength: 1000
2102
+ title: Alt Text
2103
+ type: string
2104
+ required:
2105
+ - url
2106
+ - alt_text
2107
+ title: Product Family Image
2108
+ type: object
2109
+ bulk-variant.schema:
2110
+ description: A product variant within a product family.
2111
+ properties:
2112
+ id:
2113
+ description: Redo variant ID. Used for matching to an existing variant.
2114
+ maxLength: 255
2115
+ title: ID
2116
+ type: string
2117
+ external_id:
2118
+ description: Variant ID in your external system. Used for matching if `id` is not provided.
2119
+ maxLength: 255
2120
+ title: External ID
2121
+ type: string
2122
+ title:
2123
+ description: Variant title (e.g. "Small / Blue").
2124
+ maxLength: 500
2125
+ title: Title
2126
+ type: string
2127
+ sku:
2128
+ description: Stock keeping unit. Required. Used for matching if neither `id` nor `external_id` are provided.
2129
+ maxLength: 255
2130
+ minLength: 1
2131
+ title: SKU
2132
+ type: string
2133
+ upc:
2134
+ description: Universal product code.
2135
+ maxLength: 50
2136
+ title: UPC
2137
+ type: string
2138
+ barcodes:
2139
+ description: Additional barcodes for this variant.
2140
+ items:
2141
+ maxLength: 255
2142
+ type: string
2143
+ title: Barcodes
2144
+ type: array
2145
+ price:
2146
+ description: Price in the smallest currency unit (e.g. cents for USD).
2147
+ minimum: 0
2148
+ title: Price
2149
+ type: integer
2150
+ currency:
2151
+ description: Currency code (e.g. "USD").
2152
+ maxLength: 10
2153
+ title: Currency
2154
+ type: string
2155
+ weight:
2156
+ description: Weight of the variant.
2157
+ title: Weight
2158
+ type: number
2159
+ weight_unit:
2160
+ description: Unit of weight measurement.
2161
+ enum:
2162
+ - g
2163
+ - kg
2164
+ - lb
2165
+ - oz
2166
+ - t
2167
+ title: Weight Unit
2168
+ type: string
2169
+ width:
2170
+ description: Width of the variant.
2171
+ title: Width
2172
+ type: number
2173
+ length:
2174
+ description: Length of the variant.
2175
+ title: Length
2176
+ type: number
2177
+ height:
2178
+ description: Height of the variant.
2179
+ title: Height
2180
+ type: number
2181
+ dimension_unit:
2182
+ description: Unit of dimension measurement.
2183
+ enum:
2184
+ - in
2185
+ - cm
2186
+ title: Dimension Unit
2187
+ type: string
2188
+ hs_code:
2189
+ description: Harmonized System code for customs.
2190
+ maxLength: 50
2191
+ title: HS Code
2192
+ type: string
2193
+ origin_country:
2194
+ description: Country of origin as an ISO 3166-1 alpha-2 code (e.g. "US").
2195
+ pattern: ^[A-Z]{2}$
2196
+ title: Origin Country
2197
+ type: string
2198
+ option_values:
2199
+ description: Values for each option defined on the product family, in the same order.
2200
+ items:
2201
+ maxLength: 255
2202
+ type: string
2203
+ title: Option Values
2204
+ type: array
2205
+ images:
2206
+ description: Images specific to this variant.
2207
+ items:
2208
+ $ref: '#/components/schemas/bulk-product-family-image.schema'
2209
+ title: Images
2210
+ type: array
2211
+ required:
2212
+ - sku
2213
+ - price
2214
+ - currency
2215
+ title: Bulk Variant
2216
+ type: object
2217
+ bulk-product-family.schema:
2218
+ description: |
2219
+ A product family containing one or more variants.
2220
+
2221
+ Matching priority for existing product families:
2222
+ 1. `product_family_id` — Redo product family ID (direct lookup)
2223
+ 2. `external_id` — ID from your external system
2224
+ 3. SKU — Matched via variant SKUs
2225
+ If no match is found, a new product family is created.
2226
+ properties:
2227
+ product_family_id:
2228
+ description: Redo product family ID. Highest-priority match for updating an existing product family.
2229
+ maxLength: 255
2230
+ title: Product Family ID
2231
+ type: string
2232
+ external_id:
2233
+ description: Product family ID in your external system. Second-priority match.
2234
+ maxLength: 255
2235
+ title: External ID
2236
+ type: string
2237
+ title:
2238
+ description: Product family title.
2239
+ maxLength: 500
2240
+ minLength: 1
2241
+ title: Title
2242
+ type: string
2243
+ description:
2244
+ description: Product family description.
2245
+ maxLength: 5000
2246
+ title: Description
2247
+ type: string
2248
+ vendor:
2249
+ description: Vendor or manufacturer name.
2250
+ maxLength: 255
2251
+ title: Vendor
2252
+ type: string
2253
+ tags:
2254
+ default: []
2255
+ description: Tags for categorization.
2256
+ items:
2257
+ maxLength: 255
2258
+ type: string
2259
+ title: Tags
2260
+ type: array
2261
+ kind:
2262
+ default: SELLABLE
2263
+ description: Whether the product is sellable or non-sellable.
2264
+ enum:
2265
+ - SELLABLE
2266
+ - NON_SELLABLE
2267
+ title: Kind
2268
+ type: string
2269
+ options:
2270
+ description: Product options (e.g. Size, Color) with their possible values.
2271
+ items:
2272
+ $ref: '#/components/schemas/bulk-product-family-option.schema'
2273
+ title: Options
2274
+ type: array
2275
+ images:
2276
+ description: Images for the product family.
2277
+ items:
2278
+ $ref: '#/components/schemas/bulk-product-family-image.schema'
2279
+ title: Images
2280
+ type: array
2281
+ variants:
2282
+ description: Product variants. At least 1 and up to 100 per product family.
2283
+ items:
2284
+ $ref: '#/components/schemas/bulk-variant.schema'
2285
+ maxItems: 100
2286
+ minItems: 1
2287
+ title: Variants
2288
+ type: array
2289
+ required:
2290
+ - title
2291
+ - variants
2292
+ title: Bulk Product Family
2293
+ type: object
2294
+ bulk-product-upload-request.schema:
2295
+ description: Request body for bulk uploading product families and their variants.
2296
+ properties:
2297
+ products:
2298
+ description: Product families to create or update. Between 1 and 1000 per request.
2299
+ items:
2300
+ $ref: '#/components/schemas/bulk-product-family.schema'
2301
+ maxItems: 1000
2302
+ minItems: 1
2303
+ title: Products
2304
+ type: array
2305
+ required:
2306
+ - products
2307
+ title: Bulk Product Upload Request
2308
+ type: object
2309
+ bulk-product-upload-response.schema:
2310
+ description: Response from a bulk product upload operation.
2311
+ properties:
2312
+ total_count:
2313
+ description: Total number of product families in the request.
2314
+ title: Total Count
2315
+ type: integer
2316
+ processed_count:
2317
+ description: Number of product families processed successfully.
2318
+ title: Processed Count
2319
+ type: integer
2320
+ error_count:
2321
+ description: Number of product families that failed to process.
2322
+ title: Error Count
2323
+ type: integer
2324
+ results:
2325
+ description: Per-product-family results.
2326
+ items:
2327
+ oneOf:
2328
+ - description: A product family that was created or updated successfully.
2329
+ properties:
2330
+ status:
2331
+ description: Whether the product family was created or updated.
2332
+ enum:
2333
+ - created
2334
+ - updated
2335
+ title: Status
2336
+ type: string
2337
+ product_family_id:
2338
+ description: Redo product family ID.
2339
+ title: Product Family ID
2340
+ type: string
2341
+ products:
2342
+ description: Variant results within this product family.
2343
+ items:
2344
+ properties:
2345
+ id:
2346
+ description: Redo product ID.
2347
+ title: ID
2348
+ type: string
2349
+ sku:
2350
+ description: Product SKU.
2351
+ title: SKU
2352
+ type: string
2353
+ required:
2354
+ - id
2355
+ - sku
2356
+ type: object
2357
+ title: Products
2358
+ type: array
2359
+ required:
2360
+ - status
2361
+ - product_family_id
2362
+ - products
2363
+ title: Success Result
2364
+ type: object
2365
+ - description: A product family that failed to process.
2366
+ properties:
2367
+ status:
2368
+ const: error
2369
+ description: Indicates an error occurred.
2370
+ title: Status
2371
+ type: string
2372
+ error:
2373
+ description: Error message describing what went wrong.
2374
+ title: Error
2375
+ type: string
2376
+ required:
2377
+ - status
2378
+ - error
2379
+ title: Error Result
2380
+ type: object
2381
+ title: Results
2382
+ type: array
2383
+ required:
2384
+ - total_count
2385
+ - processed_count
2386
+ - error_count
2387
+ - results
2388
+ title: Bulk Product Upload Response
2389
+ type: object
1887
2390
  person-name.schema:
1888
2391
  description: Person name.
1889
2392
  properties:
package/package.json CHANGED
@@ -31,5 +31,5 @@
31
31
  ]
32
32
  }
33
33
  },
34
- "version": "2.2.423"
34
+ "version": "2.2.432"
35
35
  }