@gofynd/fdk-client-javascript 3.10.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 (36) 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/common/Constant.d.ts +5 -0
  6. package/sdk/common/Constant.js +5 -0
  7. package/sdk/partner/Theme/ThemePartnerModel.d.ts +3 -2
  8. package/sdk/partner/Theme/ThemePartnerModel.js +5 -2
  9. package/sdk/platform/Cart/CartPlatformApplicationValidator.d.ts +80 -80
  10. package/sdk/platform/Cart/CartPlatformApplicationValidator.js +48 -48
  11. package/sdk/platform/Cart/CartPlatformModel.d.ts +193 -35
  12. package/sdk/platform/Cart/CartPlatformModel.js +103 -46
  13. package/sdk/platform/Catalog/CatalogPlatformClient.d.ts +14 -48
  14. package/sdk/platform/Catalog/CatalogPlatformClient.js +85 -338
  15. package/sdk/platform/Catalog/CatalogPlatformModel.d.ts +210 -765
  16. package/sdk/platform/Catalog/CatalogPlatformModel.js +112 -394
  17. package/sdk/platform/Catalog/CatalogPlatformValidator.d.ts +15 -71
  18. package/sdk/platform/Catalog/CatalogPlatformValidator.js +14 -60
  19. package/sdk/platform/Content/ContentPlatformModel.d.ts +3 -2
  20. package/sdk/platform/Content/ContentPlatformModel.js +5 -2
  21. package/sdk/platform/Order/OrderPlatformApplicationClient.d.ts +36 -0
  22. package/sdk/platform/Order/OrderPlatformApplicationClient.js +252 -0
  23. package/sdk/platform/Order/OrderPlatformApplicationValidator.d.ts +34 -1
  24. package/sdk/platform/Order/OrderPlatformApplicationValidator.js +42 -0
  25. package/sdk/platform/Order/OrderPlatformClient.d.ts +70 -8
  26. package/sdk/platform/Order/OrderPlatformClient.js +454 -8
  27. package/sdk/platform/Order/OrderPlatformModel.d.ts +1851 -431
  28. package/sdk/platform/Order/OrderPlatformModel.js +1171 -448
  29. package/sdk/platform/Order/OrderPlatformValidator.d.ts +150 -16
  30. package/sdk/platform/Order/OrderPlatformValidator.js +105 -9
  31. package/sdk/platform/Theme/ThemePlatformModel.d.ts +3 -2
  32. package/sdk/platform/Theme/ThemePlatformModel.js +5 -2
  33. package/sdk/platform/User/UserPlatformModel.d.ts +2 -2
  34. package/sdk/platform/User/UserPlatformModel.js +2 -2
  35. package/utility.d.ts +3 -0
  36. package/utility.js +7 -0
@@ -367,8 +367,8 @@ const Joi = require("joi");
367
367
  * @property {CompareObject} [cart_quantity]
368
368
  * @property {string[]} [available_zones] - List of all zones on which promotion
369
369
  * is applicable
370
- * @property {number[]} [item_exclude_company] - List of all company id on which
371
- * promotion is not applicable
370
+ * @property {number[]} [item_exclude_company] - List of all company ids on
371
+ * which promotion is not applicable
372
372
  * @property {number[]} [item_id] - List of all item ids on which promotion is applicable
373
373
  * @property {number[]} [item_l1_category] - List of all L1 category on which
374
374
  * promotion is applicable
@@ -389,8 +389,8 @@ const Joi = require("joi");
389
389
  * promotion is not applicable
390
390
  * @property {number[]} [item_department] - List of all departments ids on which
391
391
  * promotion is applicable
392
- * @property {number[]} [item_exclude_store] - List of all item store ids on
393
- * which promotion is not applicable
392
+ * @property {number[]} [item_exclude_store] - List of all store ids on which
393
+ * promotion is not applicable
394
394
  * @property {number[]} [item_brand] - List of all brand ids on which promotion
395
395
  * is applicable
396
396
  * @property {number[]} [item_exclude_department] - List of all department ids
@@ -414,10 +414,47 @@ const Joi = require("joi");
414
414
  * @property {ItemSizeMapping} [meta]
415
415
  */
416
416
 
417
+ /**
418
+ * @typedef DiscountItemCriteria
419
+ * @property {number[]} [item_store] - List of all store ids on which promotion
420
+ * is applicable
421
+ * @property {number[]} [item_company] - List of all company ids on which
422
+ * promotion is applicable
423
+ * @property {number[]} [item_brand] - List of all brand ids on which promotion
424
+ * is applicable
425
+ * @property {number[]} [item_exclude_brand] - List of all brand ids on which
426
+ * promotion is not applicable
427
+ * @property {number[]} [item_category] - List of all L3 category on which
428
+ * promotion is applicable
429
+ * @property {number[]} [item_exclude_category] - List of all L3 category on
430
+ * which promotion is not applicable
431
+ * @property {number[]} [item_l1_category] - List of all L1 category on which
432
+ * promotion is applicable
433
+ * @property {number[]} [item_exclude_l1_category] - List of all item ids on
434
+ * which promotion is not applicable
435
+ * @property {number[]} [item_l2_category] - List of all L2 category on which
436
+ * promotion is applicable
437
+ * @property {number[]} [item_exclude_l2_category] - List of all L2 category on
438
+ * which promotion is not applicable
439
+ * @property {number[]} [item_department] - List of all departments ids on which
440
+ * promotion is applicable
441
+ * @property {number[]} [item_exclude_department] - List of all department ids
442
+ * on which promotion is not applicable
443
+ * @property {number[]} [item_id] - List of all item ids on which promotion is applicable
444
+ * @property {number[]} [item_exclude_id] - List of all item ids on which
445
+ * promotion is not applicable
446
+ * @property {string[]} [buy_rules] - Buy rules that apply to this discount
447
+ * @property {string[]} [available_zones] - List of all zones ids on which
448
+ * promotion is applicable
449
+ * @property {string[]} [product_tags] - Product tags that qualify for the discount
450
+ * @property {boolean} [all_items] - Whether the discount applies to all items
451
+ */
452
+
417
453
  /**
418
454
  * @typedef DiscountOffer
419
455
  * @property {number} [max_discount_amount] - Maximum discount amount in promotion
420
- * @property {number} [discount_price] - Discount price in promotion
456
+ * @property {number} [discount_price] - Discount price which is price after
457
+ * deducting discount amount in fixed price promotion
421
458
  * @property {boolean} [apportion_discount] - Flag to distribute discount for each article
422
459
  * @property {boolean} [partial_can_ret] - Flag indicated return the product partially
423
460
  * @property {number} [max_usage_per_transaction] - Maximum usage per
@@ -427,6 +464,8 @@ const Joi = require("joi");
427
464
  * @property {number} [discount_amount] - Discount amount in promotion
428
465
  * @property {number} [discount_percentage] - Discount percentage in promotion
429
466
  * @property {number} [max_offer_quantity] - Maximum quantity of product in promotion
467
+ * @property {number} [item_sequence_number] - Cart sequence number of item for
468
+ * which offer is valid
430
469
  */
431
470
 
432
471
  /**
@@ -1366,6 +1405,7 @@ const Joi = require("joi");
1366
1405
  * @property {ProductPriceInfo} [price_per_unit]
1367
1406
  * @property {PromoMeta} [promo_meta]
1368
1407
  * @property {Object} [custom_order] - Whether MTO (Make to Order) is enabled or not.
1408
+ * @property {string} [item_type] - Type of the item in cart.
1369
1409
  */
1370
1410
 
1371
1411
  /**
@@ -2649,17 +2689,31 @@ const Joi = require("joi");
2649
2689
  * @property {string[]} [item_images_url] - List of free gift product images URL
2650
2690
  */
2651
2691
 
2692
+ /**
2693
+ * @typedef DiscountOfferRule
2694
+ * @property {string} [discount_type] - Discount offer type of the promotion
2695
+ * @property {DiscountOffer} [offer]
2696
+ * @property {DiscountItemCriteria} [item_criteria]
2697
+ * @property {string} [buy_condition] - Logical condition expression for buy rules
2698
+ * @property {number} [discounted_price] - Price of product after applying this
2699
+ * discount rule of promotion. Note - returned only when store id is provided
2700
+ * in request params.
2701
+ * @property {string[]} [matched_buy_rules] - List of buy rules that are
2702
+ * matching with item for this promotion
2703
+ * @property {ItemSizeMapping} [meta]
2704
+ */
2705
+
2652
2706
  /**
2653
2707
  * @typedef PromotionOffer
2654
2708
  * @property {string} [id] - Promotion unique identifier
2655
- * @property {Object} [buy_rules] - Buy rules of promotions
2709
+ * @property {BuyRuleItemCriteria} [buy_rules]
2656
2710
  * @property {string} [offer_text] - Offer title of promotion that used to display
2657
2711
  * @property {string} [promotion_type] - Type of Promotion like percentage,
2658
2712
  * amount, bogo etc.
2659
2713
  * @property {string} [promotion_name] - Name of the promotion
2660
2714
  * @property {string} [promotion_group] - Group of promotion belongs to
2661
2715
  * @property {string} [valid_till] - Datetime ISOString for promotion end date
2662
- * @property {Object[]} [discount_rules] - Discount rules of promotions
2716
+ * @property {DiscountOfferRule[]} [discount_rules] - Discount rules of promotions
2663
2717
  * @property {FreeGiftItems[]} [free_gift_items] - Details of free gift items
2664
2718
  * @property {string} [description] - Offer details including T&C
2665
2719
  */
@@ -2697,17 +2751,6 @@ const Joi = require("joi");
2697
2751
  * @property {string} field - The field in the request that caused the error.
2698
2752
  */
2699
2753
 
2700
- /**
2701
- * @typedef {| "storefront"
2702
- * | "store_os_pos"
2703
- * | "kiosk"
2704
- * | "scan_go"
2705
- * | "smart_trolley"
2706
- * | "marketplace"
2707
- * | "social_commerce"
2708
- * | "ondc"} OrderingSource
2709
- */
2710
-
2711
2754
  class CartPlatformModel {
2712
2755
  /** @returns {RedeemLoyaltyPoints} */
2713
2756
  static RedeemLoyaltyPoints() {
@@ -3137,6 +3180,30 @@ class CartPlatformModel {
3137
3180
  });
3138
3181
  }
3139
3182
 
3183
+ /** @returns {DiscountItemCriteria} */
3184
+ static DiscountItemCriteria() {
3185
+ return Joi.object({
3186
+ item_store: Joi.array().items(Joi.number()),
3187
+ item_company: Joi.array().items(Joi.number()),
3188
+ item_brand: Joi.array().items(Joi.number()),
3189
+ item_exclude_brand: Joi.array().items(Joi.number()),
3190
+ item_category: Joi.array().items(Joi.number()),
3191
+ item_exclude_category: Joi.array().items(Joi.number()),
3192
+ item_l1_category: Joi.array().items(Joi.number()),
3193
+ item_exclude_l1_category: Joi.array().items(Joi.number()),
3194
+ item_l2_category: Joi.array().items(Joi.number()),
3195
+ item_exclude_l2_category: Joi.array().items(Joi.number()),
3196
+ item_department: Joi.array().items(Joi.number()),
3197
+ item_exclude_department: Joi.array().items(Joi.number()),
3198
+ item_id: Joi.array().items(Joi.number()),
3199
+ item_exclude_id: Joi.array().items(Joi.number()),
3200
+ buy_rules: Joi.array().items(Joi.string().allow("")),
3201
+ available_zones: Joi.array().items(Joi.string().allow("")),
3202
+ product_tags: Joi.array().items(Joi.string().allow("")),
3203
+ all_items: Joi.boolean(),
3204
+ });
3205
+ }
3206
+
3140
3207
  /** @returns {DiscountOffer} */
3141
3208
  static DiscountOffer() {
3142
3209
  return Joi.object({
@@ -3144,12 +3211,13 @@ class CartPlatformModel {
3144
3211
  discount_price: Joi.number(),
3145
3212
  apportion_discount: Joi.boolean(),
3146
3213
  partial_can_ret: Joi.boolean(),
3147
- max_usage_per_transaction: Joi.number().allow(null),
3214
+ max_usage_per_transaction: Joi.number(),
3148
3215
  min_offer_quantity: Joi.number(),
3149
3216
  code: Joi.string().allow(""),
3150
3217
  discount_amount: Joi.number(),
3151
3218
  discount_percentage: Joi.number(),
3152
3219
  max_offer_quantity: Joi.number(),
3220
+ item_sequence_number: Joi.number(),
3153
3221
  });
3154
3222
  }
3155
3223
 
@@ -4118,6 +4186,7 @@ class CartPlatformModel {
4118
4186
  price_per_unit: CartPlatformModel.ProductPriceInfo(),
4119
4187
  promo_meta: CartPlatformModel.PromoMeta(),
4120
4188
  custom_order: Joi.object().pattern(/\S/, Joi.any()),
4189
+ item_type: Joi.string().allow(""),
4121
4190
  });
4122
4191
  }
4123
4192
 
@@ -5408,17 +5477,30 @@ class CartPlatformModel {
5408
5477
  });
5409
5478
  }
5410
5479
 
5480
+ /** @returns {DiscountOfferRule} */
5481
+ static DiscountOfferRule() {
5482
+ return Joi.object({
5483
+ discount_type: Joi.string().allow(""),
5484
+ offer: CartPlatformModel.DiscountOffer(),
5485
+ item_criteria: CartPlatformModel.DiscountItemCriteria(),
5486
+ buy_condition: Joi.string().allow(""),
5487
+ discounted_price: Joi.number(),
5488
+ matched_buy_rules: Joi.array().items(Joi.string().allow("")),
5489
+ meta: CartPlatformModel.ItemSizeMapping(),
5490
+ });
5491
+ }
5492
+
5411
5493
  /** @returns {PromotionOffer} */
5412
5494
  static PromotionOffer() {
5413
5495
  return Joi.object({
5414
5496
  id: Joi.string().allow(""),
5415
- buy_rules: Joi.object().pattern(/\S/, Joi.any()),
5497
+ buy_rules: CartPlatformModel.BuyRuleItemCriteria(),
5416
5498
  offer_text: Joi.string().allow(""),
5417
5499
  promotion_type: Joi.string().allow(""),
5418
5500
  promotion_name: Joi.string().allow(""),
5419
5501
  promotion_group: Joi.string().allow(""),
5420
5502
  valid_till: Joi.string().allow(""),
5421
- discount_rules: Joi.array().items(Joi.any()),
5503
+ discount_rules: Joi.array().items(CartPlatformModel.DiscountOfferRule()),
5422
5504
  free_gift_items: Joi.array().items(CartPlatformModel.FreeGiftItems()),
5423
5505
  description: Joi.string().allow(""),
5424
5506
  });
@@ -5464,30 +5546,5 @@ class CartPlatformModel {
5464
5546
  field: Joi.string().allow("").required(),
5465
5547
  });
5466
5548
  }
5467
-
5468
- /**
5469
- * Enum: OrderingSource Used By: Cart
5470
- *
5471
- * @returns {OrderingSource}
5472
- */
5473
- static OrderingSource() {
5474
- return Joi.string().valid(
5475
- "storefront",
5476
-
5477
- "store_os_pos",
5478
-
5479
- "kiosk",
5480
-
5481
- "scan_go",
5482
-
5483
- "smart_trolley",
5484
-
5485
- "marketplace",
5486
-
5487
- "social_commerce",
5488
-
5489
- "ondc"
5490
- );
5491
- }
5492
5549
  }
5493
5550
  module.exports = CartPlatformModel;
@@ -126,18 +126,6 @@ declare class Catalog {
126
126
  * @description: Helps to create a bulk asset upload job. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/createProductAssetsInBulk/).
127
127
  */
128
128
  createProductAssetsInBulk({ body, requestHeaders }?: CatalogPlatformValidator.CreateProductAssetsInBulkParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.SuccessResponseSchema>;
129
- /**
130
- * @param {CatalogPlatformValidator.CreateProductBundleParam} arg - Arg object
131
- * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
132
- * @param {import("../PlatformAPIClient").Options} - Options
133
- * @returns {Promise<CatalogPlatformModel.GetProductBundleCreateResponseSchema>}
134
- * - Success response
135
- *
136
- * @name createProductBundle
137
- * @summary: Create product bundle
138
- * @description: Create product bundle in the catalog associated to a specific company - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/createProductBundle/).
139
- */
140
- createProductBundle({ body, requestHeaders }?: CatalogPlatformValidator.CreateProductBundleParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.GetProductBundleCreateResponseSchema>;
141
129
  /**
142
130
  * @param {CatalogPlatformValidator.CreateProductExportJobParam} arg - Arg object
143
131
  * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
@@ -694,30 +682,6 @@ declare class Catalog {
694
682
  search?: string;
695
683
  pageSize?: number;
696
684
  }): Paginator<CatalogPlatformModel.ProductBulkRequestList>;
697
- /**
698
- * @param {CatalogPlatformValidator.GetProductBundleParam} arg - Arg object
699
- * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
700
- * @param {import("../PlatformAPIClient").Options} - Options
701
- * @returns {Promise<CatalogPlatformModel.GetProductBundleListingResponseSchema>}
702
- * - Success response
703
- *
704
- * @name getProductBundle
705
- * @summary: List product bundles
706
- * @description: Retrieve a list of product bundles available in the catalog associated to a specific company. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/getProductBundle/).
707
- */
708
- getProductBundle({ q, slug, pageNo, pageSize, requestHeaders }?: CatalogPlatformValidator.GetProductBundleParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.GetProductBundleListingResponseSchema>;
709
- /**
710
- * @param {CatalogPlatformValidator.GetProductBundleDetailParam} arg - Arg object
711
- * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
712
- * @param {import("../PlatformAPIClient").Options} - Options
713
- * @returns {Promise<CatalogPlatformModel.GetProductBundleResponseSchema>}
714
- * - Success response
715
- *
716
- * @name getProductBundleDetail
717
- * @summary: Get product bundle
718
- * @description: Retrieve detailed information about a specific product bundle associated to a specific company. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/getProductBundleDetail/).
719
- */
720
- getProductBundleDetail({ id, requestHeaders }?: CatalogPlatformValidator.GetProductBundleDetailParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.GetProductBundleResponseSchema>;
721
685
  /**
722
686
  * @param {CatalogPlatformValidator.GetProductExportJobsParam} arg - Arg object
723
687
  * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
@@ -1057,6 +1021,20 @@ declare class Catalog {
1057
1021
  * @description: Retrieve values related to template brand types for a specific company. The filter type query parameter defines what type of data to return. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/listTemplateBrandTypeValues/).
1058
1022
  */
1059
1023
  listTemplateBrandTypeValues({ filter, templateTag, itemType, requestHeaders }?: CatalogPlatformValidator.ListTemplateBrandTypeValuesParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.ProductConfigurationDownloads>;
1024
+ /**
1025
+ * @param {CatalogPlatformValidator.PartialUpdateProductParam} arg - Arg object
1026
+ * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
1027
+ * @param {import("../PlatformAPIClient").Options} - Options
1028
+ * @returns {Promise<CatalogPlatformModel.SuccessResponseSchema>} - Success response
1029
+ * @name partialUpdateProduct
1030
+ * @summary: Patch a product
1031
+ * @description: Partially update an existing product in the catalog using PATCH method. This operation allows you to modify specific fields of a product without affecting other attributes. Only the fields provided in the request body will be updated, while all other existing product data remains unchanged.
1032
+ * For objects (e.g. attributes), merge keys shallowly: any key in the patch overrides the existing value.
1033
+ * For arrays of primitives (e.g. tags): replaced wholesale when present.
1034
+ * For arrays of objects (e.g. sizes): match on a unique identifier (seller_identifier) and apply the merge-patch per element; unmentioned elements remain unchanged.
1035
+ * - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/partialUpdateProduct/).
1036
+ */
1037
+ partialUpdateProduct({ itemId, body, requestHeaders }?: CatalogPlatformValidator.PartialUpdateProductParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.SuccessResponseSchema>;
1060
1038
  /**
1061
1039
  * @param {CatalogPlatformValidator.UpdateHsnCodeParam} arg - Arg object
1062
1040
  * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
@@ -1114,18 +1092,6 @@ declare class Catalog {
1114
1092
  * @description: Allows to update marketplace optin for a company by marketplace_slug. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/updateMarketplaceOptin/).
1115
1093
  */
1116
1094
  updateMarketplaceOptin({ marketplaceSlug, body, requestHeaders }?: CatalogPlatformValidator.UpdateMarketplaceOptinParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.UpdateMarketplaceOptinResponseSchema>;
1117
- /**
1118
- * @param {CatalogPlatformValidator.UpdateProductBundleParam} arg - Arg object
1119
- * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`
1120
- * @param {import("../PlatformAPIClient").Options} - Options
1121
- * @returns {Promise<CatalogPlatformModel.GetProductBundleCreateResponseSchema>}
1122
- * - Success response
1123
- *
1124
- * @name updateProductBundle
1125
- * @summary: Update product bundle
1126
- * @description: Modify the details of an existing product bundle in the catalog associated to a specific company. - Check out [method documentation](https://docs.fynd.com/partners/commerce/sdk/platform/catalog/updateProductBundle/).
1127
- */
1128
- updateProductBundle({ id, body, requestHeaders }?: CatalogPlatformValidator.UpdateProductBundleParam, { responseHeaders }?: object): Promise<CatalogPlatformModel.GetProductBundleCreateResponseSchema>;
1129
1095
  /**
1130
1096
  * @param {CatalogPlatformValidator.UpdateRealtimeInventoryParam} arg - Arg object
1131
1097
  * @param {object} [arg.requestHeaders={}] - Request headers. Default is `{}`