@gofynd/fdk-client-javascript 3.11.0 → 3.12.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.
Files changed (24) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/sdk/application/Catalog/CatalogApplicationClient.d.ts +16 -6
  4. package/sdk/application/Catalog/CatalogApplicationClient.js +71 -12
  5. package/sdk/platform/Cart/CartPlatformApplicationValidator.d.ts +80 -80
  6. package/sdk/platform/Cart/CartPlatformApplicationValidator.js +48 -48
  7. package/sdk/platform/Cart/CartPlatformModel.d.ts +6 -18
  8. package/sdk/platform/Cart/CartPlatformModel.js +2 -36
  9. package/sdk/platform/Catalog/CatalogPlatformClient.d.ts +14 -48
  10. package/sdk/platform/Catalog/CatalogPlatformClient.js +85 -338
  11. package/sdk/platform/Catalog/CatalogPlatformModel.d.ts +207 -763
  12. package/sdk/platform/Catalog/CatalogPlatformModel.js +107 -392
  13. package/sdk/platform/Catalog/CatalogPlatformValidator.d.ts +15 -71
  14. package/sdk/platform/Catalog/CatalogPlatformValidator.js +14 -60
  15. package/sdk/platform/Order/OrderPlatformApplicationClient.d.ts +36 -0
  16. package/sdk/platform/Order/OrderPlatformApplicationClient.js +252 -0
  17. package/sdk/platform/Order/OrderPlatformApplicationValidator.d.ts +34 -1
  18. package/sdk/platform/Order/OrderPlatformApplicationValidator.js +42 -0
  19. package/sdk/platform/Order/OrderPlatformClient.d.ts +69 -7
  20. package/sdk/platform/Order/OrderPlatformClient.js +453 -7
  21. package/sdk/platform/Order/OrderPlatformModel.d.ts +1851 -431
  22. package/sdk/platform/Order/OrderPlatformModel.js +1171 -448
  23. package/sdk/platform/Order/OrderPlatformValidator.d.ts +150 -16
  24. package/sdk/platform/Order/OrderPlatformValidator.js +105 -9
@@ -1922,54 +1922,6 @@ const Joi = require("joi");
1922
1922
  * @property {Page} page
1923
1923
  */
1924
1924
 
1925
- /**
1926
- * @typedef GetProductBundleCreateResponseSchema
1927
- * @property {string} choice - Specifies the type of bundle, e.g., single or multi.
1928
- * @property {number} [company_id] - Unique identifier for the company that owns
1929
- * the product bundle.
1930
- * @property {CreatedBy} [created_by]
1931
- * @property {string} [created_on] - Timestamp when the product bundle was created.
1932
- * @property {string} [id] - Unique identifier for the product bundle.
1933
- * @property {boolean} is_active - Indicates if the product bundle is active or not.
1934
- * @property {string} [logo] - URL of the product bundle's logo, or null if not available.
1935
- * @property {Object} [meta] - Additional metadata about the product bundle.
1936
- * @property {ModifiedBy} [modified_by]
1937
- * @property {string} [modified_on] - Timestamp when the product bundle was last modified.
1938
- * @property {string} name - Name of the product bundle.
1939
- * @property {string[]} [page_visibility] - Visibility settings for the product
1940
- * bundle across different pages.
1941
- * @property {ProductBundleItem[]} products - List of products that are part of
1942
- * the product bundle.
1943
- * @property {boolean} [same_store_assignment] - Indicates whether all products
1944
- * in the bundle belong to the same store.
1945
- * @property {string} slug - Unique slug used to identify the product bundle in URLs.
1946
- */
1947
-
1948
- /**
1949
- * @typedef GetProductBundleListingResponseSchema
1950
- * @property {GetProductBundleCreateResponseSchema[]} [items] - List of product
1951
- * bundles that are returned in the response.
1952
- * @property {Page} [page]
1953
- */
1954
-
1955
- /**
1956
- * @typedef GetProductBundleResponseSchema
1957
- * @property {string} [choice] - Specifies the type of product bundle, e.g.,
1958
- * 'single' or 'multi'.
1959
- * @property {number} [company_id] - The unique identifier of the company that
1960
- * owns the product bundle.
1961
- * @property {boolean} [is_active] - Indicates whether the product bundle is active.
1962
- * @property {string} [logo] - URL of the logo associated with the product bundle.
1963
- * @property {Object} [meta] - Additional metadata for the product bundle.
1964
- * @property {string} [name] - The name of the product bundle.
1965
- * @property {string[]} [page_visibility] - List of pages where the product
1966
- * bundle is visible, e.g., 'pdp'.
1967
- * @property {GetProducts[]} [products] - A list of products included in the bundle.
1968
- * @property {boolean} [same_store_assignment] - Indicates whether all products
1969
- * in the bundle are assigned to the same store.
1970
- * @property {string} [slug] - Unique URL-friendly identifier for the product bundle.
1971
- */
1972
-
1973
1925
  /**
1974
1926
  * @typedef GetProducts
1975
1927
  * @property {boolean} [allow_remove] - Indicates whether the product can be
@@ -2897,6 +2849,14 @@ const Joi = require("joi");
2897
2849
  * a link to an image or video resource.
2898
2850
  */
2899
2851
 
2852
+ /**
2853
+ * @typedef BundleDetails
2854
+ * @property {string} seller_identifier - Seller identifier of child sku.
2855
+ * @property {number} net_quantity - The net quantity of the product in the bundle.
2856
+ * @property {boolean} [is_base] - Indicates whether this product is the base
2857
+ * product in the bundle.
2858
+ */
2859
+
2900
2860
  /**
2901
2861
  * @typedef Meta
2902
2862
  * @property {Object} [headers]
@@ -3262,70 +3222,6 @@ const Joi = require("joi");
3262
3222
  * @property {Page} [page]
3263
3223
  */
3264
3224
 
3265
- /**
3266
- * @typedef ProductBundleItem
3267
- * @property {boolean} [allow_remove] - Indicates whether the product can be
3268
- * removed from the bundle.
3269
- * @property {boolean} [auto_add_to_cart] - Specifies if the product is
3270
- * automatically added to the cart.
3271
- * @property {boolean} [auto_select] - Indicates if the product is automatically
3272
- * selected in the bundle.
3273
- * @property {number} max_quantity - Maximum quantity of the product that can be
3274
- * added to the bundle.
3275
- * @property {number} min_quantity - Minimum quantity of the product that must
3276
- * be added to the bundle.
3277
- * @property {number} product_uid - Unique identifier for the product.
3278
- */
3279
-
3280
- /**
3281
- * @typedef ProductBundleRequestSchema
3282
- * @property {string} choice - Specifies the type of product bundle (e.g.,
3283
- * 'single' or 'multi').
3284
- * @property {number} [company_id] - The unique identifier of the company to
3285
- * which the product bundle belongs.
3286
- * @property {Object} [created_by] - Information about the user who created the
3287
- * product bundle, including user ID and username.
3288
- * @property {string} [created_on] - The timestamp when the product bundle was created.
3289
- * @property {boolean} is_active - Indicates whether the product bundle is
3290
- * currently active.
3291
- * @property {string} [logo] - URL of the logo associated with the product
3292
- * bundle, if available. Can be null.
3293
- * @property {Object} [meta] - Additional metadata for the product bundle.
3294
- * @property {Object} [modified_by] - Information about the user who last
3295
- * modified the product bundle, including user ID and username.
3296
- * @property {string} [modified_on] - The timestamp when the product bundle was
3297
- * last modified.
3298
- * @property {string} name - The name of the product bundle.
3299
- * @property {string[]} [page_visibility] - Pages where the product bundle is
3300
- * visible (e.g., 'pdp' for product display page).
3301
- * @property {ProductBundleItem[]} products - A list of products included in the
3302
- * bundle. A maximum of 10 products can be added.
3303
- * @property {boolean} [same_store_assignment] - Indicates whether all products
3304
- * in the bundle are assigned to the same store.
3305
- * @property {string} slug - A URL-friendly unique identifier for the product bundle.
3306
- */
3307
-
3308
- /**
3309
- * @typedef ProductBundleUpdateRequestSchema
3310
- * @property {string} choice - Specifies the type of product bundle (e.g.,
3311
- * 'single' or 'multi').
3312
- * @property {number} [company_id] - The unique identifier of the company to
3313
- * which the product bundle belongs.
3314
- * @property {boolean} is_active - Indicates whether the product bundle is
3315
- * currently active.
3316
- * @property {string} [logo] - URL of the logo associated with the product
3317
- * bundle, if available. Can be null.
3318
- * @property {Object} [meta] - Additional metadata for the product bundle.
3319
- * @property {string} name - The name of the product bundle.
3320
- * @property {string[]} [page_visibility] - Pages where the product bundle is
3321
- * visible (e.g., 'pdp' for product display page).
3322
- * @property {ProductBundleItem[]} products - A list of products included in the
3323
- * bundle. A maximum of 10 products can be added.
3324
- * @property {boolean} [same_store_assignment] - Indicates whether all products
3325
- * in the bundle are assigned to the same store.
3326
- * @property {string} slug - A URL-friendly unique identifier for the product bundle.
3327
- */
3328
-
3329
3225
  /**
3330
3226
  * @typedef ProductConfigurationDownloads
3331
3227
  * @property {Object[]} [data]
@@ -3333,66 +3229,7 @@ const Joi = require("joi");
3333
3229
  */
3334
3230
 
3335
3231
  /**
3336
- * @typedef ProductUpdateSchemaV2
3337
- * @property {Object} [_custom_json] - Custom JSON data that can be used for
3338
- * additional product properties.
3339
- * @property {string} [action] - The action to perform wrt to the product (e.g.,
3340
- * upsert, update, delete).
3341
- * @property {Object} [attributes] - Additional attributes related to the product.
3342
- * @property {number} brand_uid - Unique identifier for the product's brand.
3343
- * @property {string} [bulk_job_id] - Job ID associated with bulk operations.
3344
- * @property {string} category_slug - The category to which the product belongs.
3345
- * @property {string} [change_request_id] - Change request identifier for product updates.
3346
- * @property {number} company_id - Unique identifier for the company associated
3347
- * with the product.
3348
- * @property {string} country_of_origin - The country where the product was
3349
- * manufactured or sourced.
3350
- * @property {string} currency - The currency in which the product's price is listed.
3351
- * @property {CustomOrder} [custom_order]
3352
- * @property {number[]} departments - List of department IDs associated with the product.
3353
- * @property {string} [description] - A detailed description of the product.
3354
- * @property {string[]} [highlights] - Product highlights or key features.
3355
- * @property {boolean} [is_active] - Flag to indicate if the product is active.
3356
- * @property {boolean} [is_dependent] - Flag to indicate if the product is
3357
- * dependent on other products.
3358
- * @property {boolean} [is_image_less_product] - Flag to indicate if the product
3359
- * does not have associated images.
3360
- * @property {boolean} [is_set] - Flag to indicate if the product is part of a set.
3361
- * @property {string} item_code - Unique item code or SKU of the product.
3362
- * @property {string} item_type - Type of the product (e.g., standard, set,
3363
- * composite, digital).
3364
- * @property {Media[]} [media] - List of media URLs (images, videos) associated
3365
- * with the product.
3366
- * @property {boolean} [multi_size] - Indicates if the product supports multiple sizes.
3367
- * @property {string} name - The name of the product.
3368
- * @property {NetQuantity} [net_quantity]
3369
- * @property {number} [no_of_boxes] - Number of boxes required to package the product.
3370
- * @property {string[]} [product_group_tag] - Tags to group products together
3371
- * for classification.
3372
- * @property {ProductPublish} [product_publish]
3373
- * @property {string} [requester] - The role requesting the product operation
3374
- * (admin or user).
3375
- * @property {ReturnConfig} return_config
3376
- * @property {string} [short_description] - A short description of the product,
3377
- * up to 50 characters.
3378
- * @property {string} [size_guide] - Identifier for the product's size guide.
3379
- * @property {Object[]} sizes - List of sizes available for the product.
3380
- * @property {string} slug - URL-friendly identifier for the product.
3381
- * @property {string[]} [tags] - List of tags associated with the product.
3382
- * @property {TaxIdentifier} tax_identifier
3383
- * @property {string} [hs_code] - HS Code for the product.
3384
- * @property {TeaserTag} [teaser_tag]
3385
- * @property {string} template_tag - Template tag for the product, used for
3386
- * classification.
3387
- * @property {Trader[]} trader - List of traders associated with the product.
3388
- * @property {number} [uid] - Unique identifier for the product.
3389
- * @property {Object} [variant_group] - Variant group information for the product.
3390
- * @property {Object} [variant_media] - Media related to product variants.
3391
- * @property {Object} [variants] - Variants information for the product.
3392
- */
3393
-
3394
- /**
3395
- * @typedef ProductCreateSchemaV2
3232
+ * @typedef ProductCreateSchemaV3
3396
3233
  * @property {Object} [_custom_json] - Custom JSON data that can be used for
3397
3234
  * additional product properties.
3398
3235
  * @property {string} [action] - The action to perform wrt to the product (e.g.,
@@ -3418,8 +3255,11 @@ const Joi = require("joi");
3418
3255
  * does not have associated images.
3419
3256
  * @property {boolean} [is_set] - Flag to indicate if the product is part of a set.
3420
3257
  * @property {string} item_code - Unique item code or SKU of the product.
3421
- * @property {string} item_type - Type of the product (e.g., standard, set,
3422
- * composite, digital).
3258
+ * @property {string} item_type - Specifies the type of product, such as
3259
+ * standard, set, composite, digital, virtual_bundle, or physical_bundle. For
3260
+ * bundle types (virtual_bundle or physical_bundle), use the category,
3261
+ * department, and brand of the base child SKU. In this case, attributes are
3262
+ * optional. The bundle_details attribute must be included for bundle types.
3423
3263
  * @property {Media[]} [media] - List of media URLs (images, videos) associated
3424
3264
  * with the product.
3425
3265
  * @property {boolean} [multi_size] - Indicates if the product supports multiple sizes.
@@ -3438,7 +3278,7 @@ const Joi = require("joi");
3438
3278
  * @property {Object[]} sizes - List of sizes available for the product.
3439
3279
  * @property {string} slug - URL-friendly identifier for the product.
3440
3280
  * @property {string[]} [tags] - List of tags associated with the product.
3441
- * @property {TaxIdentifier} tax_identifier
3281
+ * @property {TaxIdentifierV3} tax_identifier
3442
3282
  * @property {TeaserTag} [teaser_tag]
3443
3283
  * @property {string} template_tag - Template tag for the product, used for
3444
3284
  * classification.
@@ -3446,10 +3286,14 @@ const Joi = require("joi");
3446
3286
  * @property {Object} [variant_group] - Variant group information for the product.
3447
3287
  * @property {Object} [variant_media] - Media related to product variants.
3448
3288
  * @property {Object} [variants] - Variants information for the product.
3289
+ * @property {string} [hs_code] - HS Code for the product. This is required for
3290
+ * indian companies.
3291
+ * @property {BundleDetails[]} [bundle_details] - List of bundle details for
3292
+ * products that are part of a bundle.
3449
3293
  */
3450
3294
 
3451
3295
  /**
3452
- * @typedef ProductCreateSchemaV3
3296
+ * @typedef ProductUpdateSchemaV3
3453
3297
  * @property {Object} [_custom_json] - Custom JSON data that can be used for
3454
3298
  * additional product properties.
3455
3299
  * @property {string} [action] - The action to perform wrt to the product (e.g.,
@@ -3475,8 +3319,11 @@ const Joi = require("joi");
3475
3319
  * does not have associated images.
3476
3320
  * @property {boolean} [is_set] - Flag to indicate if the product is part of a set.
3477
3321
  * @property {string} item_code - Unique item code or SKU of the product.
3478
- * @property {string} item_type - Type of the product (e.g., standard, set,
3479
- * composite, digital).
3322
+ * @property {string} item_type - Specifies the type of product, such as
3323
+ * standard, set, composite, digital, virtual_bundle, or physical_bundle. For
3324
+ * bundle types (virtual_bundle or physical_bundle), use the category,
3325
+ * department, and brand of the base child SKU. In this case, attributes are
3326
+ * optional. The bundle_details attribute must be included for bundle types.
3480
3327
  * @property {Media[]} [media] - List of media URLs (images, videos) associated
3481
3328
  * with the product.
3482
3329
  * @property {boolean} [multi_size] - Indicates if the product supports multiple sizes.
@@ -3496,77 +3343,79 @@ const Joi = require("joi");
3496
3343
  * @property {string} slug - URL-friendly identifier for the product.
3497
3344
  * @property {string[]} [tags] - List of tags associated with the product.
3498
3345
  * @property {TaxIdentifierV3} tax_identifier
3346
+ * @property {string} [hs_code] - HS Code for the product. This is required for
3347
+ * indian companies.
3499
3348
  * @property {TeaserTag} [teaser_tag]
3500
3349
  * @property {string} template_tag - Template tag for the product, used for
3501
3350
  * classification.
3502
3351
  * @property {Trader[]} trader - List of traders associated with the product.
3352
+ * @property {number} [uid] - Unique identifier for the product.
3503
3353
  * @property {Object} [variant_group] - Variant group information for the product.
3504
3354
  * @property {Object} [variant_media] - Media related to product variants.
3505
3355
  * @property {Object} [variants] - Variants information for the product.
3506
- * @property {string} [hs_code] - HS Code for the product. This is required for
3507
- * indian companies.
3356
+ * @property {BundleDetails[]} [bundle_details] - List of bundle details for
3357
+ * products that are part of a bundle. This will have child skus along with
3358
+ * net quantity used in bundle formation.
3508
3359
  */
3509
3360
 
3510
3361
  /**
3511
- * @typedef ProductUpdateSchemaV3
3362
+ * @typedef ProductPatchSchemaV3
3512
3363
  * @property {Object} [_custom_json] - Custom JSON data that can be used for
3513
3364
  * additional product properties.
3514
- * @property {string} [action] - The action to perform wrt to the product (e.g.,
3515
- * upsert, update, delete).
3516
3365
  * @property {Object} [attributes] - Additional attributes related to the product.
3517
- * @property {number} brand_uid - Unique identifier for the product's brand.
3518
- * @property {string} [bulk_job_id] - Job ID associated with bulk operations.
3519
- * @property {string} category_slug - The category to which the product belongs.
3520
- * @property {string} [change_request_id] - Change request identifier for product updates.
3521
- * @property {number} company_id - Unique identifier for the company associated
3522
- * with the product.
3523
- * @property {string} country_of_origin - The country where the product was
3366
+ * @property {string} [country_of_origin] - The country where the product was
3524
3367
  * manufactured or sourced.
3525
- * @property {string} currency - The currency in which the product's price is listed.
3526
3368
  * @property {CustomOrder} [custom_order]
3527
- * @property {number[]} departments - List of department IDs associated with the product.
3528
3369
  * @property {string} [description] - A detailed description of the product.
3370
+ * Provide base64 encoded value in input.
3529
3371
  * @property {string[]} [highlights] - Product highlights or key features.
3530
3372
  * @property {boolean} [is_active] - Flag to indicate if the product is active.
3531
3373
  * @property {boolean} [is_dependent] - Flag to indicate if the product is
3532
3374
  * dependent on other products.
3533
- * @property {boolean} [is_image_less_product] - Flag to indicate if the product
3534
- * does not have associated images.
3535
- * @property {boolean} [is_set] - Flag to indicate if the product is part of a set.
3536
- * @property {string} item_code - Unique item code or SKU of the product.
3537
- * @property {string} item_type - Type of the product (e.g., standard, set,
3538
- * composite, digital).
3539
3375
  * @property {Media[]} [media] - List of media URLs (images, videos) associated
3540
3376
  * with the product.
3541
3377
  * @property {boolean} [multi_size] - Indicates if the product supports multiple sizes.
3542
- * @property {string} name - The name of the product.
3378
+ * @property {string} [name] - The name of the product.
3543
3379
  * @property {NetQuantity} [net_quantity]
3544
3380
  * @property {number} [no_of_boxes] - Number of boxes required to package the product.
3545
3381
  * @property {string[]} [product_group_tag] - Tags to group products together
3546
3382
  * for classification.
3547
3383
  * @property {ProductPublish} [product_publish]
3548
- * @property {string} [requester] - The role requesting the product operation
3549
- * (admin or user).
3550
- * @property {ReturnConfig} return_config
3384
+ * @property {ReturnConfig} [return_config]
3551
3385
  * @property {string} [short_description] - A short description of the product,
3552
3386
  * up to 50 characters.
3553
3387
  * @property {string} [size_guide] - Identifier for the product's size guide.
3554
- * @property {Object[]} sizes - List of sizes available for the product.
3555
- * @property {string} slug - URL-friendly identifier for the product.
3388
+ * @property {ProductSizePatch[]} [sizes] - List of sizes available for the product.
3556
3389
  * @property {string[]} [tags] - List of tags associated with the product.
3557
- * @property {TaxIdentifierV3} tax_identifier
3390
+ * @property {TaxIdentifierV3} [tax_identifier]
3558
3391
  * @property {string} [hs_code] - HS Code for the product. This is required for
3559
3392
  * indian companies.
3560
3393
  * @property {TeaserTag} [teaser_tag]
3561
- * @property {string} template_tag - Template tag for the product, used for
3394
+ * @property {string} [template_tag] - Template tag for the product, used for
3562
3395
  * classification.
3563
- * @property {Trader[]} trader - List of traders associated with the product.
3564
- * @property {number} [uid] - Unique identifier for the product.
3396
+ * @property {Trader[]} [trader] - List of traders associated with the product.
3565
3397
  * @property {Object} [variant_group] - Variant group information for the product.
3566
3398
  * @property {Object} [variant_media] - Media related to product variants.
3567
3399
  * @property {Object} [variants] - Variants information for the product.
3568
3400
  */
3569
3401
 
3402
+ /**
3403
+ * @typedef ProductSizePatch
3404
+ * @property {number} [item_width] - Width of the item in the specified dimension unit.
3405
+ * @property {number} [item_height] - Height of the item in the specified dimension unit.
3406
+ * @property {number} [item_weight] - Weight of the item in the specified weight unit.
3407
+ * @property {number} [price] - Listed price of the product before discounts.
3408
+ * @property {boolean} [track_inventory] - Indicates whether inventory tracking
3409
+ * is enabled for this item.
3410
+ * @property {Object} [_custom_json] - Custom attributes or additional metadata
3411
+ * for the product.
3412
+ * @property {string} [seller_identifier] - Unique identifier assigned by the
3413
+ * seller for this product or size variant.
3414
+ * @property {number} [item_length] - Length of the item in the specified dimension unit.
3415
+ * @property {number} [price_effective] - Effective or discounted price after
3416
+ * applying promotions.
3417
+ */
3418
+
3570
3419
  /**
3571
3420
  * @typedef ProductDetail
3572
3421
  * @property {Object} [attributes] - Key-value pairs representing various
@@ -3982,6 +3831,9 @@ const Joi = require("joi");
3982
3831
  * typically used in business transactions.
3983
3832
  * @property {boolean} [track_inventory] - Indicates if inventory is being
3984
3833
  * tracked for this size.
3834
+ * @property {BundleDetails[]} [bundle_details] - List of bundle details for
3835
+ * products that are part of a bundle. This will have child skus along with
3836
+ * net quantity used in bundle formation.
3985
3837
  */
3986
3838
 
3987
3839
  /**
@@ -4040,7 +3892,8 @@ const Joi = require("joi");
4040
3892
  * @property {string} [item_code] - Unique code used to identify the product,
4041
3893
  * often used internally or by sellers.
4042
3894
  * @property {string} [item_type] - Describes the type of product (e.g.,
4043
- * "standard" or "set").
3895
+ * "standard" or "set"). In case of bundle items type will be
3896
+ * ("virtual_bundle" or "physical_bundle")
4044
3897
  * @property {string[]} [l3_mapping] - Hierarchical mapping of the product to
4045
3898
  * categories (e.g., "electronics>qled_television").
4046
3899
  * @property {Media[]} [media] - Media assets associated with the product, such
@@ -7255,55 +7108,6 @@ class CatalogPlatformModel {
7255
7108
  });
7256
7109
  }
7257
7110
 
7258
- /** @returns {GetProductBundleCreateResponseSchema} */
7259
- static GetProductBundleCreateResponseSchema() {
7260
- return Joi.object({
7261
- choice: Joi.string().allow("").required(),
7262
- company_id: Joi.number(),
7263
- created_by: CatalogPlatformModel.CreatedBy(),
7264
- created_on: Joi.string().allow(""),
7265
- id: Joi.string().allow(""),
7266
- is_active: Joi.boolean().required(),
7267
- logo: Joi.string().allow("").allow(null),
7268
- meta: Joi.object().pattern(/\S/, Joi.any()),
7269
- modified_by: CatalogPlatformModel.ModifiedBy(),
7270
- modified_on: Joi.string().allow(""),
7271
- name: Joi.string().allow("").required(),
7272
- page_visibility: Joi.array().items(Joi.string().allow("")),
7273
- products: Joi.array()
7274
- .items(CatalogPlatformModel.ProductBundleItem())
7275
- .required(),
7276
- same_store_assignment: Joi.boolean(),
7277
- slug: Joi.string().allow("").required(),
7278
- });
7279
- }
7280
-
7281
- /** @returns {GetProductBundleListingResponseSchema} */
7282
- static GetProductBundleListingResponseSchema() {
7283
- return Joi.object({
7284
- items: Joi.array().items(
7285
- CatalogPlatformModel.GetProductBundleCreateResponseSchema()
7286
- ),
7287
- page: CatalogPlatformModel.Page(),
7288
- });
7289
- }
7290
-
7291
- /** @returns {GetProductBundleResponseSchema} */
7292
- static GetProductBundleResponseSchema() {
7293
- return Joi.object({
7294
- choice: Joi.string().allow(""),
7295
- company_id: Joi.number(),
7296
- is_active: Joi.boolean(),
7297
- logo: Joi.string().allow(""),
7298
- meta: Joi.object().pattern(/\S/, Joi.any()),
7299
- name: Joi.string().allow(""),
7300
- page_visibility: Joi.array().items(Joi.string().allow("")),
7301
- products: Joi.array().items(CatalogPlatformModel.GetProducts()),
7302
- same_store_assignment: Joi.boolean(),
7303
- slug: Joi.string().allow(""),
7304
- });
7305
- }
7306
-
7307
7111
  /** @returns {GetProducts} */
7308
7112
  static GetProducts() {
7309
7113
  return Joi.object({
@@ -8296,6 +8100,15 @@ class CatalogPlatformModel {
8296
8100
  });
8297
8101
  }
8298
8102
 
8103
+ /** @returns {BundleDetails} */
8104
+ static BundleDetails() {
8105
+ return Joi.object({
8106
+ seller_identifier: Joi.string().allow("").required(),
8107
+ net_quantity: Joi.number().required(),
8108
+ is_base: Joi.boolean(),
8109
+ });
8110
+ }
8111
+
8299
8112
  /** @returns {Meta} */
8300
8113
  static Meta() {
8301
8114
  return Joi.object({
@@ -8695,58 +8508,6 @@ class CatalogPlatformModel {
8695
8508
  });
8696
8509
  }
8697
8510
 
8698
- /** @returns {ProductBundleItem} */
8699
- static ProductBundleItem() {
8700
- return Joi.object({
8701
- allow_remove: Joi.boolean(),
8702
- auto_add_to_cart: Joi.boolean(),
8703
- auto_select: Joi.boolean(),
8704
- max_quantity: Joi.number().required(),
8705
- min_quantity: Joi.number().required(),
8706
- product_uid: Joi.number().required(),
8707
- });
8708
- }
8709
-
8710
- /** @returns {ProductBundleRequestSchema} */
8711
- static ProductBundleRequestSchema() {
8712
- return Joi.object({
8713
- choice: Joi.string().allow("").required(),
8714
- company_id: Joi.number(),
8715
- created_by: Joi.object().pattern(/\S/, Joi.any()),
8716
- created_on: Joi.string().allow(""),
8717
- is_active: Joi.boolean().required(),
8718
- logo: Joi.string().allow("").allow(null),
8719
- meta: Joi.object().pattern(/\S/, Joi.any()),
8720
- modified_by: Joi.object().pattern(/\S/, Joi.any()),
8721
- modified_on: Joi.string().allow(""),
8722
- name: Joi.string().allow("").required(),
8723
- page_visibility: Joi.array().items(Joi.string().allow("")),
8724
- products: Joi.array()
8725
- .items(CatalogPlatformModel.ProductBundleItem())
8726
- .required(),
8727
- same_store_assignment: Joi.boolean(),
8728
- slug: Joi.string().allow("").required(),
8729
- });
8730
- }
8731
-
8732
- /** @returns {ProductBundleUpdateRequestSchema} */
8733
- static ProductBundleUpdateRequestSchema() {
8734
- return Joi.object({
8735
- choice: Joi.string().allow("").required(),
8736
- company_id: Joi.number(),
8737
- is_active: Joi.boolean().required(),
8738
- logo: Joi.string().allow("").allow(null),
8739
- meta: Joi.object().pattern(/\S/, Joi.any()),
8740
- name: Joi.string().allow("").required(),
8741
- page_visibility: Joi.array().items(Joi.string().allow("")),
8742
- products: Joi.array()
8743
- .items(CatalogPlatformModel.ProductBundleItem())
8744
- .required(),
8745
- same_store_assignment: Joi.boolean(),
8746
- slug: Joi.string().allow("").required(),
8747
- });
8748
- }
8749
-
8750
8511
  /** @returns {ProductConfigurationDownloads} */
8751
8512
  static ProductConfigurationDownloads() {
8752
8513
  return Joi.object({
@@ -8755,8 +8516,8 @@ class CatalogPlatformModel {
8755
8516
  });
8756
8517
  }
8757
8518
 
8758
- /** @returns {ProductUpdateSchemaV2} */
8759
- static ProductUpdateSchemaV2() {
8519
+ /** @returns {ProductCreateSchemaV3} */
8520
+ static ProductCreateSchemaV3() {
8760
8521
  return Joi.object({
8761
8522
  _custom_json: Joi.object().pattern(/\S/, Joi.any()),
8762
8523
  action: Joi.string().allow(""),
@@ -8794,20 +8555,22 @@ class CatalogPlatformModel {
8794
8555
  .required(),
8795
8556
  slug: Joi.string().allow("").required(),
8796
8557
  tags: Joi.array().items(Joi.string().allow("")),
8797
- tax_identifier: CatalogPlatformModel.TaxIdentifier().required(),
8798
- hs_code: Joi.string().allow(""),
8558
+ tax_identifier: CatalogPlatformModel.TaxIdentifierV3().required(),
8799
8559
  teaser_tag: CatalogPlatformModel.TeaserTag(),
8800
8560
  template_tag: Joi.string().allow("").required(),
8801
8561
  trader: Joi.array().items(CatalogPlatformModel.Trader()).required(),
8802
- uid: Joi.number().allow(null),
8803
8562
  variant_group: Joi.object().pattern(/\S/, Joi.any()),
8804
8563
  variant_media: Joi.object().pattern(/\S/, Joi.any()),
8805
8564
  variants: Joi.object().pattern(/\S/, Joi.any()),
8565
+ hs_code: Joi.string().allow(""),
8566
+ bundle_details: Joi.array()
8567
+ .items(CatalogPlatformModel.BundleDetails())
8568
+ .allow(null, ""),
8806
8569
  });
8807
8570
  }
8808
8571
 
8809
- /** @returns {ProductCreateSchemaV2} */
8810
- static ProductCreateSchemaV2() {
8572
+ /** @returns {ProductUpdateSchemaV3} */
8573
+ static ProductUpdateSchemaV3() {
8811
8574
  return Joi.object({
8812
8575
  _custom_json: Joi.object().pattern(/\S/, Joi.any()),
8813
8576
  action: Joi.string().allow(""),
@@ -8845,114 +8608,65 @@ class CatalogPlatformModel {
8845
8608
  .required(),
8846
8609
  slug: Joi.string().allow("").required(),
8847
8610
  tags: Joi.array().items(Joi.string().allow("")),
8848
- tax_identifier: CatalogPlatformModel.TaxIdentifier().required(),
8611
+ tax_identifier: CatalogPlatformModel.TaxIdentifierV3().required(),
8612
+ hs_code: Joi.string().allow(""),
8849
8613
  teaser_tag: CatalogPlatformModel.TeaserTag(),
8850
8614
  template_tag: Joi.string().allow("").required(),
8851
8615
  trader: Joi.array().items(CatalogPlatformModel.Trader()).required(),
8616
+ uid: Joi.number().allow(null),
8852
8617
  variant_group: Joi.object().pattern(/\S/, Joi.any()),
8853
8618
  variant_media: Joi.object().pattern(/\S/, Joi.any()),
8854
8619
  variants: Joi.object().pattern(/\S/, Joi.any()),
8620
+ bundle_details: Joi.array().items(CatalogPlatformModel.BundleDetails()),
8855
8621
  });
8856
8622
  }
8857
8623
 
8858
- /** @returns {ProductCreateSchemaV3} */
8859
- static ProductCreateSchemaV3() {
8624
+ /** @returns {ProductPatchSchemaV3} */
8625
+ static ProductPatchSchemaV3() {
8860
8626
  return Joi.object({
8861
8627
  _custom_json: Joi.object().pattern(/\S/, Joi.any()),
8862
- action: Joi.string().allow(""),
8863
8628
  attributes: Joi.object().pattern(/\S/, Joi.any()),
8864
- brand_uid: Joi.number().required(),
8865
- bulk_job_id: Joi.string().allow(""),
8866
- category_slug: Joi.string().allow("").required(),
8867
- change_request_id: Joi.string().allow("").allow(null),
8868
- company_id: Joi.number().required(),
8869
- country_of_origin: Joi.string().allow("").required(),
8870
- currency: Joi.string().allow("").required(),
8629
+ country_of_origin: Joi.string().allow(""),
8871
8630
  custom_order: CatalogPlatformModel.CustomOrder(),
8872
- departments: Joi.array().items(Joi.number()).required(),
8873
8631
  description: Joi.string().allow(""),
8874
- highlights: Joi.array().items(Joi.string().allow("")).allow(null, ""),
8632
+ highlights: Joi.array().items(Joi.string().allow("")),
8875
8633
  is_active: Joi.boolean(),
8876
8634
  is_dependent: Joi.boolean(),
8877
- is_image_less_product: Joi.boolean(),
8878
- is_set: Joi.boolean(),
8879
- item_code: Joi.string().allow("").required(),
8880
- item_type: Joi.string().allow("").required(),
8881
- media: Joi.array().items(CatalogPlatformModel.Media()).allow(null, ""),
8635
+ media: Joi.array().items(CatalogPlatformModel.Media()),
8882
8636
  multi_size: Joi.boolean(),
8883
- name: Joi.string().allow("").required(),
8637
+ name: Joi.string().allow(""),
8884
8638
  net_quantity: CatalogPlatformModel.NetQuantity(),
8885
8639
  no_of_boxes: Joi.number(),
8886
8640
  product_group_tag: Joi.array().items(Joi.string().allow("")),
8887
8641
  product_publish: CatalogPlatformModel.ProductPublish(),
8888
- requester: Joi.string().allow(""),
8889
- return_config: CatalogPlatformModel.ReturnConfig().required(),
8642
+ return_config: CatalogPlatformModel.ReturnConfig(),
8890
8643
  short_description: Joi.string().allow(""),
8891
8644
  size_guide: Joi.string().allow(""),
8892
- sizes: Joi.array()
8893
- .items(Joi.object().pattern(/\S/, Joi.any()))
8894
- .required(),
8895
- slug: Joi.string().allow("").required(),
8645
+ sizes: Joi.array().items(CatalogPlatformModel.ProductSizePatch()),
8896
8646
  tags: Joi.array().items(Joi.string().allow("")),
8897
- tax_identifier: CatalogPlatformModel.TaxIdentifierV3().required(),
8647
+ tax_identifier: CatalogPlatformModel.TaxIdentifierV3(),
8648
+ hs_code: Joi.string().allow(""),
8898
8649
  teaser_tag: CatalogPlatformModel.TeaserTag(),
8899
- template_tag: Joi.string().allow("").required(),
8900
- trader: Joi.array().items(CatalogPlatformModel.Trader()).required(),
8650
+ template_tag: Joi.string().allow(""),
8651
+ trader: Joi.array().items(CatalogPlatformModel.Trader()),
8901
8652
  variant_group: Joi.object().pattern(/\S/, Joi.any()),
8902
8653
  variant_media: Joi.object().pattern(/\S/, Joi.any()),
8903
8654
  variants: Joi.object().pattern(/\S/, Joi.any()),
8904
- hs_code: Joi.string().allow(""),
8905
8655
  });
8906
8656
  }
8907
8657
 
8908
- /** @returns {ProductUpdateSchemaV3} */
8909
- static ProductUpdateSchemaV3() {
8658
+ /** @returns {ProductSizePatch} */
8659
+ static ProductSizePatch() {
8910
8660
  return Joi.object({
8661
+ item_width: Joi.number(),
8662
+ item_height: Joi.number(),
8663
+ item_weight: Joi.number(),
8664
+ price: Joi.number(),
8665
+ track_inventory: Joi.boolean(),
8911
8666
  _custom_json: Joi.object().pattern(/\S/, Joi.any()),
8912
- action: Joi.string().allow(""),
8913
- attributes: Joi.object().pattern(/\S/, Joi.any()),
8914
- brand_uid: Joi.number().required(),
8915
- bulk_job_id: Joi.string().allow(""),
8916
- category_slug: Joi.string().allow("").required(),
8917
- change_request_id: Joi.string().allow("").allow(null),
8918
- company_id: Joi.number().required(),
8919
- country_of_origin: Joi.string().allow("").required(),
8920
- currency: Joi.string().allow("").required(),
8921
- custom_order: CatalogPlatformModel.CustomOrder(),
8922
- departments: Joi.array().items(Joi.number()).required(),
8923
- description: Joi.string().allow(""),
8924
- highlights: Joi.array().items(Joi.string().allow("")).allow(null, ""),
8925
- is_active: Joi.boolean(),
8926
- is_dependent: Joi.boolean(),
8927
- is_image_less_product: Joi.boolean(),
8928
- is_set: Joi.boolean(),
8929
- item_code: Joi.string().allow("").required(),
8930
- item_type: Joi.string().allow("").required(),
8931
- media: Joi.array().items(CatalogPlatformModel.Media()).allow(null, ""),
8932
- multi_size: Joi.boolean(),
8933
- name: Joi.string().allow("").required(),
8934
- net_quantity: CatalogPlatformModel.NetQuantity(),
8935
- no_of_boxes: Joi.number(),
8936
- product_group_tag: Joi.array().items(Joi.string().allow("")),
8937
- product_publish: CatalogPlatformModel.ProductPublish(),
8938
- requester: Joi.string().allow(""),
8939
- return_config: CatalogPlatformModel.ReturnConfig().required(),
8940
- short_description: Joi.string().allow(""),
8941
- size_guide: Joi.string().allow(""),
8942
- sizes: Joi.array()
8943
- .items(Joi.object().pattern(/\S/, Joi.any()))
8944
- .required(),
8945
- slug: Joi.string().allow("").required(),
8946
- tags: Joi.array().items(Joi.string().allow("")),
8947
- tax_identifier: CatalogPlatformModel.TaxIdentifierV3().required(),
8948
- hs_code: Joi.string().allow(""),
8949
- teaser_tag: CatalogPlatformModel.TeaserTag(),
8950
- template_tag: Joi.string().allow("").required(),
8951
- trader: Joi.array().items(CatalogPlatformModel.Trader()).required(),
8952
- uid: Joi.number().allow(null),
8953
- variant_group: Joi.object().pattern(/\S/, Joi.any()),
8954
- variant_media: Joi.object().pattern(/\S/, Joi.any()),
8955
- variants: Joi.object().pattern(/\S/, Joi.any()),
8667
+ seller_identifier: Joi.string().allow(""),
8668
+ item_length: Joi.number(),
8669
+ price_effective: Joi.number(),
8956
8670
  });
8957
8671
  }
8958
8672
 
@@ -9400,6 +9114,7 @@ class CatalogPlatformModel {
9400
9114
  seller_identifier: Joi.string().allow(""),
9401
9115
  price_transfer: Joi.number(),
9402
9116
  track_inventory: Joi.boolean(),
9117
+ bundle_details: Joi.array().items(CatalogPlatformModel.BundleDetails()),
9403
9118
  });
9404
9119
  }
9405
9120