@gofynd/fdk-client-javascript 3.4.1 → 3.4.2

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/README.md CHANGED
@@ -23,14 +23,13 @@ Using this method, you can `require` fdk-client-javascript like so:
23
23
 
24
24
  ```js
25
25
  const {
26
- ApplicationConfig,
27
26
  ApplicationClient,
28
27
  } = require("fdk-client-javascript");
29
28
  ```
30
29
 
31
30
  #### Browser
32
31
 
33
- you can load fdk-client-javascript's application browser bundle from CDN; `ApplicationConfig` and `ApplicationClient` will be attached to browser's `window` object.
32
+ you can load fdk-client-javascript's application browser bundle from CDN; `ApplicationClient` and `ApplicationModels` will be attached to browser's `window` object.
34
33
 
35
34
  ```html
36
35
  <script src="https://cdn.jsdelivr.net/gh/gofynd/fdk-client-javascript@<version>/dist/application.js"></script>
@@ -43,12 +42,12 @@ Install Specific version
43
42
  ```
44
43
 
45
44
  ```js
46
- const { ApplicationConfig, ApplicationClient } = window;
45
+ const { ApplicationClient } = window;
47
46
  ```
48
47
 
49
48
  ### Logging
50
49
 
51
- For logging support user can pass `logLevel` in `ApplicationConfig` or `PlatformConfig` while declaration.
50
+ For logging support user can pass `logLevel` in `ApplicationClient` or `PlatformClient` while declaration.
52
51
 
53
52
  ```
54
53
  Available logging levels: TRACE, DEBUG, INFO, WARN, ERROR.
@@ -59,14 +58,12 @@ Default log level: ERROR
59
58
  ### Sample Usage - ApplicationClient
60
59
 
61
60
  ```javascript
62
- const config = new ApplicationConfig({
61
+ const applicationClient = new ApplicationClient({
63
62
  applicationID: "YOUR_APPLICATION_ID",
64
63
  applicationToken: "YOUR_APPLICATION_TOKEN",
65
64
  locationDetails: "LOCATION_DETAILS_OBJECT"
66
65
  });
67
66
 
68
- const applicationClient = new ApplicationClient(config);
69
-
70
67
  applicationClient.setLocationDetails({
71
68
  pincode:"385001",
72
69
  country: "India",
@@ -92,21 +89,23 @@ getProductDetails();
92
89
  ### Sample Usage - PlatformClient
93
90
 
94
91
  ```javascript
95
- const { PlatformConfig, PlatformClient } = require("fdk-client-javascript");
96
-
97
- let platformConfig = new PlatformConfig({
98
- companyId: "COMPANY_ID",
99
- apiKey: "API_KEY",
100
- apiSecret: "API_SECRET",
101
- domain: "DOMAIN",
102
- useAutoRenewTimer: true // Setting `true` will use timer based logic to refresh the access token. With `false` will issue refresh token just before any api call when it is expired.
103
- });
92
+ const { PlatformClient } = require("fdk-client-javascript");
104
93
 
105
94
  async function getData() {
106
95
  try {
107
- // TODO: get token using OAuth
108
- platformConfig.oauthClient.setToken(token.access_token);
109
- const client = new PlatformClient(platformConfig);
96
+ const client = new PlatformClient({
97
+ companyId: "COMPANY_ID",
98
+ apiKey: "API_KEY",
99
+ apiSecret: "API_SECRET",
100
+ domain: "DOMAIN",
101
+ useAutoRenewTimer: true // Setting `true` will use timer based logic to refresh the access token. With `false` will issue refresh token just before any api call when it is expired.
102
+ });
103
+
104
+ const token = await platformClient.getAccesstokenObj({
105
+ grant_type: 'client_credentials'
106
+ })
107
+
108
+ platformClient.setToken(token);
110
109
 
111
110
  // API's without application_id
112
111
  const tickets = await client.lead.getTickets();
@@ -219,17 +218,15 @@ To print the curl command in the console for all network calls made using `appli
219
218
 
220
219
  ```javascript
221
220
  const {
222
- ApplicationClient, ApplicationConfig,
221
+ ApplicationClient,
223
222
  } = require("fdk-client-javascript");
224
223
 
225
- let applicationConfig = new ApplicationConfig({
224
+ let applicationClient = new ApplicationClient({
226
225
  applicationID: "YOUR_APPLICATION_ID",
227
226
  applicationToken: "YOUR_APPLICATION_TOKEN",
227
+ logLevel: "debug"
228
228
  });
229
229
 
230
- applicationConfig.setLogLevel("debug");
231
- let applicationClient = new ApplicationClient(applicationConfig);
232
-
233
230
  let response = await applicationClient.theme.getAppliedTheme();
234
231
  console.log("Active Theme: ", response.information.name);
235
232
  ```
@@ -237,7 +234,7 @@ console.log("Active Theme: ", response.information.name);
237
234
  The above code will log the curl command in the console
238
235
 
239
236
  ```bash
240
- curl --request GET "https://api.fynd.com/service/application/theme/v1.0/applied-theme" --header 'authorization: Bearer <authorization-token>' --header 'x-fp-sdk-version: 3.4.1' --header 'x-fp-date: 20230222T115108Z' --header 'x-fp-signature: v1.1:1e3ab3b02b5bc626e3c32a37ee844266ade02bbcbaafc28fc7a0e46a76a7a1a8'
237
+ curl --request GET "https://api.fynd.com/service/application/theme/v1.0/applied-theme" --header 'authorization: Bearer <authorization-token>' --header 'x-fp-sdk-version: 3.4.2' --header 'x-fp-date: 20230222T115108Z' --header 'x-fp-signature: v1.1:1e3ab3b02b5bc626e3c32a37ee844266ade02bbcbaafc28fc7a0e46a76a7a1a8'
241
238
  Active Theme: Emerge
242
239
  ```
243
240
 
@@ -248,7 +245,7 @@ Active Theme: Emerge
248
245
  fdk-client-javascript includes Typescript definitions.
249
246
 
250
247
  ```typescript
251
- import { ApplicationConfig, ApplicationClient } from "fdk-client-javascript";
248
+ import { ApplicationClient } from "fdk-client-javascript";
252
249
  ```
253
250
 
254
251
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gofynd/fdk-client-javascript",
3
- "version": "3.4.1",
3
+ "version": "3.4.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -6,8 +6,8 @@ export = ApplicationClient;
6
6
  */
7
7
  declare class ApplicationClient {
8
8
  /** @param {import("./ApplicationConfig")} config - The application configuration. */
9
- constructor(config: import("./ApplicationConfig"));
10
- config: import("./ApplicationConfig");
9
+ constructor(config: import("./ApplicationConfig"), options: any);
10
+ config: ApplicationConfig;
11
11
  cart: Cart;
12
12
  catalog: Catalog;
13
13
  common: Common;
@@ -65,6 +65,7 @@ declare class ApplicationClient {
65
65
  responseHeaders?: boolean;
66
66
  }): Promise<import("axios").AxiosResponse<any, any>>;
67
67
  }
68
+ import ApplicationConfig = require("./ApplicationConfig");
68
69
  import Cart = require("./Cart/CartApplicationClient");
69
70
  import Catalog = require("./Catalog/CatalogApplicationClient");
70
71
  import Common = require("./Common/CommonApplicationClient");
@@ -19,6 +19,7 @@ const { FDKClientValidationError } = require("../common/FDKError");
19
19
  const { Logger } = require("../common/Logger");
20
20
  const { convertStringToBase64 } = require("../common/utils");
21
21
  const { execute } = require("./ApplicationAPIClient");
22
+ const ApplicationConfig = require("./ApplicationConfig");
22
23
 
23
24
  /**
24
25
  * Represents the client for the application.
@@ -27,25 +28,30 @@ const { execute } = require("./ApplicationAPIClient");
27
28
  */
28
29
  class ApplicationClient {
29
30
  /** @param {import("./ApplicationConfig")} config - The application configuration. */
30
- constructor(config) {
31
- this.config = config;
32
- this.cart = new Cart(config);
33
- this.catalog = new Catalog(config);
34
- this.common = new Common(config);
35
- this.communication = new Communication(config);
36
- this.configuration = new Configuration(config);
37
- this.content = new Content(config);
38
- this.fileStorage = new FileStorage(config);
39
- this.finance = new Finance(config);
40
- this.lead = new Lead(config);
41
- this.logistic = new Logistic(config);
42
- this.order = new Order(config);
43
- this.payment = new Payment(config);
44
- this.rewards = new Rewards(config);
45
- this.share = new Share(config);
46
- this.theme = new Theme(config);
47
- this.user = new User(config);
48
- this.webhook = new Webhook(config);
31
+ constructor(config, options) {
32
+ if (config instanceof ApplicationConfig) {
33
+ this.config = config;
34
+ } else {
35
+ let applicationConfig = new ApplicationConfig(config, options);
36
+ this.config = applicationConfig;
37
+ }
38
+ this.cart = new Cart(this.config);
39
+ this.catalog = new Catalog(this.config);
40
+ this.common = new Common(this.config);
41
+ this.communication = new Communication(this.config);
42
+ this.configuration = new Configuration(this.config);
43
+ this.content = new Content(this.config);
44
+ this.fileStorage = new FileStorage(this.config);
45
+ this.finance = new Finance(this.config);
46
+ this.lead = new Lead(this.config);
47
+ this.logistic = new Logistic(this.config);
48
+ this.order = new Order(this.config);
49
+ this.payment = new Payment(this.config);
50
+ this.rewards = new Rewards(this.config);
51
+ this.share = new Share(this.config);
52
+ this.theme = new Theme(this.config);
53
+ this.user = new User(this.config);
54
+ this.webhook = new Webhook(this.config);
49
55
  }
50
56
 
51
57
  /**
@@ -57,9 +57,12 @@ const generateUrlWithParams = (item = {}, params) => {
57
57
  let url = "";
58
58
  for (let linkSubString of linkArr) {
59
59
  if (linkSubString.startsWith(":")) {
60
- linkSubString = linkSubString.slice(1);
61
- url += `${joinedParamsObj[linkSubString]}`;
62
- } else url += `${linkSubString}`;
60
+ const paramKey = linkSubString.slice(1);
61
+ const paramVal = joinedParamsObj[paramKey];
62
+ url += paramVal || ""; // Prevent undefined
63
+ } else {
64
+ url += linkSubString;
65
+ }
63
66
  url += "/";
64
67
  }
65
68
  url = trimChar(url);
@@ -11,8 +11,8 @@ declare class PartnerClient {
11
11
  * @param {import("./PartnerConfig")} config - The configuration for the
12
12
  * partner client.
13
13
  */
14
- constructor(config: import("./PartnerConfig"));
15
- config: import("./PartnerConfig");
14
+ constructor(config: import("./PartnerConfig"), options: any);
15
+ config: PartnerConfig;
16
16
  fileStorage: FileStorage;
17
17
  lead: Lead;
18
18
  logistics: Logistics;
@@ -33,7 +33,10 @@ declare class PartnerClient {
33
33
  headers: any;
34
34
  responseHeaders?: boolean;
35
35
  }): Promise<import("axios").AxiosResponse<any, any>>;
36
+ getAccesstokenObj(options: any): Promise<import("axios").AxiosResponse<any, any>>;
37
+ setToken(token: any): void;
36
38
  }
39
+ import PartnerConfig = require("./PartnerConfig");
37
40
  import FileStorage = require("./FileStorage/FileStoragePartnerClient");
38
41
  import Lead = require("./Lead/LeadPartnerClient");
39
42
  import Logistics = require("./Logistics/LogisticsPartnerClient");
@@ -10,6 +10,7 @@ const Webhook = require("./Webhook/WebhookPartnerClient");
10
10
 
11
11
  const { FDKClientValidationError } = require("../common/FDKError");
12
12
  const { execute } = require("./PartnerAPIClient");
13
+ const PartnerConfig = require("./PartnerConfig");
13
14
 
14
15
  /**
15
16
  * Represents the client for the partner APIs.
@@ -23,13 +24,18 @@ class PartnerClient {
23
24
  * @param {import("./PartnerConfig")} config - The configuration for the
24
25
  * partner client.
25
26
  */
26
- constructor(config) {
27
- this.config = config;
28
- this.fileStorage = new FileStorage(config);
29
- this.lead = new Lead(config);
30
- this.logistics = new Logistics(config);
31
- this.theme = new Theme(config);
32
- this.webhook = new Webhook(config);
27
+ constructor(config, options) {
28
+ if (config instanceof PartnerConfig) {
29
+ this.config = config;
30
+ } else {
31
+ let partnerConfig = new PartnerConfig(config, options);
32
+ this.config = partnerConfig;
33
+ }
34
+ this.fileStorage = new FileStorage(this.config);
35
+ this.lead = new Lead(this.config);
36
+ this.logistics = new Logistics(this.config);
37
+ this.theme = new Theme(this.config);
38
+ this.webhook = new Webhook(this.config);
33
39
  }
34
40
 
35
41
  /**
@@ -58,6 +64,14 @@ class PartnerClient {
58
64
  responseHeaders,
59
65
  });
60
66
  }
67
+
68
+ getAccesstokenObj(options) {
69
+ return this.config.oauthClient.getAccesstokenObj(options);
70
+ }
71
+
72
+ setToken(token) {
73
+ this.config.oauthClient.setToken(token);
74
+ }
61
75
  }
62
76
 
63
77
  module.exports = PartnerClient;
@@ -2453,88 +2453,9 @@ export = CartPlatformModel;
2453
2453
  * | "kiosk"
2454
2454
  * | "scan_go"
2455
2455
  * | "smart_trolley"
2456
- * | "gofynd"
2457
- * | "uniket"
2458
2456
  * | "marketplace"
2459
2457
  * | "social_commerce"
2460
- * | "ondc"
2461
- * | "nexus"
2462
- * | "nykaa_fashion"
2463
- * | "etsy"
2464
- * | "vuivui"
2465
- * | "zilingo"
2466
- * | "firstcry"
2467
- * | "bukalapak"
2468
- * | "myntra_ppmp"
2469
- * | "lazada"
2470
- * | "tiktok"
2471
- * | "sfcc"
2472
- * | "debenhams"
2473
- * | "prestomall"
2474
- * | "meesho"
2475
- * | "amazon_vdf"
2476
- * | "bigcommerce"
2477
- * | "sendo"
2478
- * | "storehippo"
2479
- * | "cdiscount"
2480
- * | "nykaa"
2481
- * | "trendyol"
2482
- * | "weloveshopping"
2483
- * | "jollee"
2484
- * | "wish"
2485
- * | "tiki"
2486
- * | "central_online"
2487
- * | "q10"
2488
- * | "cred"
2489
- * | "walmart"
2490
- * | "snapdeal"
2491
- * | "flipkart"
2492
- * | "blibli"
2493
- * | "ajio_jit"
2494
- * | "pharmeasy"
2495
- * | "ezmall"
2496
- * | "adobe_commerce"
2497
- * | "kartmax"
2498
- * | "shopee"
2499
- * | "zalora"
2500
- * | "prestashop"
2501
- * | "smytten"
2502
- * | "amazon_sc"
2503
- * | "urbanpiper"
2504
- * | "flipkart_quick"
2505
- * | "woocommerce"
2506
- * | "zivame"
2507
- * | "lelong"
2508
- * | "facebook"
2509
- * | "jiomart"
2510
- * | "gmc"
2511
- * | "robins"
2512
- * | "akulaku"
2513
- * | "noon"
2514
- * | "tatacliq"
2515
- * | "kartrocket"
2516
- * | "inorbit"
2517
- * | "ajio_business"
2518
- * | "swiggy"
2519
- * | "asos"
2520
- * | "tokopedia"
2521
- * | "limeroad"
2522
- * | "myntra_omni"
2523
- * | "spoyl"
2524
- * | "amazon_mlf"
2525
- * | "fulfilled_by_lazada"
2526
- * | "ebay"
2527
- * | "jd"
2528
- * | "amazon_pharmacy"
2529
- * | "ajio_vms"
2530
- * | "daraz"
2531
- * | "oker"
2532
- * | "flipkart_b2b"
2533
- * | "amazon_mlf_ss"
2534
- * | "woovly"
2535
- * | "tata1mg"
2536
- * | "zomato"
2537
- * | "shopify"} OrderingSource
2458
+ * | "ondc"} OrderingSource
2538
2459
  */
2539
2460
  declare class CartPlatformModel {
2540
2461
  }
@@ -8687,4 +8608,4 @@ type ValidationError = {
8687
8608
  * @returns {OrderingSource}
8688
8609
  */
8689
8610
  declare function OrderingSource(): OrderingSource;
8690
- type OrderingSource = "storefront" | "store_os_pos" | "kiosk" | "scan_go" | "smart_trolley" | "gofynd" | "uniket" | "marketplace" | "social_commerce" | "ondc" | "nexus" | "nykaa_fashion" | "etsy" | "vuivui" | "zilingo" | "firstcry" | "bukalapak" | "myntra_ppmp" | "lazada" | "tiktok" | "sfcc" | "debenhams" | "prestomall" | "meesho" | "amazon_vdf" | "bigcommerce" | "sendo" | "storehippo" | "cdiscount" | "nykaa" | "trendyol" | "weloveshopping" | "jollee" | "wish" | "tiki" | "central_online" | "q10" | "cred" | "walmart" | "snapdeal" | "flipkart" | "blibli" | "ajio_jit" | "pharmeasy" | "ezmall" | "adobe_commerce" | "kartmax" | "shopee" | "zalora" | "prestashop" | "smytten" | "amazon_sc" | "urbanpiper" | "flipkart_quick" | "woocommerce" | "zivame" | "lelong" | "facebook" | "jiomart" | "gmc" | "robins" | "akulaku" | "noon" | "tatacliq" | "kartrocket" | "inorbit" | "ajio_business" | "swiggy" | "asos" | "tokopedia" | "limeroad" | "myntra_omni" | "spoyl" | "amazon_mlf" | "fulfilled_by_lazada" | "ebay" | "jd" | "amazon_pharmacy" | "ajio_vms" | "daraz" | "oker" | "flipkart_b2b" | "amazon_mlf_ss" | "woovly" | "tata1mg" | "zomato" | "shopify";
8611
+ type OrderingSource = "storefront" | "store_os_pos" | "kiosk" | "scan_go" | "smart_trolley" | "marketplace" | "social_commerce" | "ondc";
@@ -2666,88 +2666,9 @@ const Joi = require("joi");
2666
2666
  * | "kiosk"
2667
2667
  * | "scan_go"
2668
2668
  * | "smart_trolley"
2669
- * | "gofynd"
2670
- * | "uniket"
2671
2669
  * | "marketplace"
2672
2670
  * | "social_commerce"
2673
- * | "ondc"
2674
- * | "nexus"
2675
- * | "nykaa_fashion"
2676
- * | "etsy"
2677
- * | "vuivui"
2678
- * | "zilingo"
2679
- * | "firstcry"
2680
- * | "bukalapak"
2681
- * | "myntra_ppmp"
2682
- * | "lazada"
2683
- * | "tiktok"
2684
- * | "sfcc"
2685
- * | "debenhams"
2686
- * | "prestomall"
2687
- * | "meesho"
2688
- * | "amazon_vdf"
2689
- * | "bigcommerce"
2690
- * | "sendo"
2691
- * | "storehippo"
2692
- * | "cdiscount"
2693
- * | "nykaa"
2694
- * | "trendyol"
2695
- * | "weloveshopping"
2696
- * | "jollee"
2697
- * | "wish"
2698
- * | "tiki"
2699
- * | "central_online"
2700
- * | "q10"
2701
- * | "cred"
2702
- * | "walmart"
2703
- * | "snapdeal"
2704
- * | "flipkart"
2705
- * | "blibli"
2706
- * | "ajio_jit"
2707
- * | "pharmeasy"
2708
- * | "ezmall"
2709
- * | "adobe_commerce"
2710
- * | "kartmax"
2711
- * | "shopee"
2712
- * | "zalora"
2713
- * | "prestashop"
2714
- * | "smytten"
2715
- * | "amazon_sc"
2716
- * | "urbanpiper"
2717
- * | "flipkart_quick"
2718
- * | "woocommerce"
2719
- * | "zivame"
2720
- * | "lelong"
2721
- * | "facebook"
2722
- * | "jiomart"
2723
- * | "gmc"
2724
- * | "robins"
2725
- * | "akulaku"
2726
- * | "noon"
2727
- * | "tatacliq"
2728
- * | "kartrocket"
2729
- * | "inorbit"
2730
- * | "ajio_business"
2731
- * | "swiggy"
2732
- * | "asos"
2733
- * | "tokopedia"
2734
- * | "limeroad"
2735
- * | "myntra_omni"
2736
- * | "spoyl"
2737
- * | "amazon_mlf"
2738
- * | "fulfilled_by_lazada"
2739
- * | "ebay"
2740
- * | "jd"
2741
- * | "amazon_pharmacy"
2742
- * | "ajio_vms"
2743
- * | "daraz"
2744
- * | "oker"
2745
- * | "flipkart_b2b"
2746
- * | "amazon_mlf_ss"
2747
- * | "woovly"
2748
- * | "tata1mg"
2749
- * | "zomato"
2750
- * | "shopify"} OrderingSource
2671
+ * | "ondc"} OrderingSource
2751
2672
  */
2752
2673
 
2753
2674
  class CartPlatformModel {
@@ -5489,169 +5410,11 @@ class CartPlatformModel {
5489
5410
 
5490
5411
  "smart_trolley",
5491
5412
 
5492
- "gofynd",
5493
-
5494
- "uniket",
5495
-
5496
5413
  "marketplace",
5497
5414
 
5498
5415
  "social_commerce",
5499
5416
 
5500
- "ondc",
5501
-
5502
- "nexus",
5503
-
5504
- "nykaa_fashion",
5505
-
5506
- "etsy",
5507
-
5508
- "vuivui",
5509
-
5510
- "zilingo",
5511
-
5512
- "firstcry",
5513
-
5514
- "bukalapak",
5515
-
5516
- "myntra_ppmp",
5517
-
5518
- "lazada",
5519
-
5520
- "tiktok",
5521
-
5522
- "sfcc",
5523
-
5524
- "debenhams",
5525
-
5526
- "prestomall",
5527
-
5528
- "meesho",
5529
-
5530
- "amazon_vdf",
5531
-
5532
- "bigcommerce",
5533
-
5534
- "sendo",
5535
-
5536
- "storehippo",
5537
-
5538
- "cdiscount",
5539
-
5540
- "nykaa",
5541
-
5542
- "trendyol",
5543
-
5544
- "weloveshopping",
5545
-
5546
- "jollee",
5547
-
5548
- "wish",
5549
-
5550
- "tiki",
5551
-
5552
- "central_online",
5553
-
5554
- "q10",
5555
-
5556
- "cred",
5557
-
5558
- "walmart",
5559
-
5560
- "snapdeal",
5561
-
5562
- "flipkart",
5563
-
5564
- "blibli",
5565
-
5566
- "ajio_jit",
5567
-
5568
- "pharmeasy",
5569
-
5570
- "ezmall",
5571
-
5572
- "adobe_commerce",
5573
-
5574
- "kartmax",
5575
-
5576
- "shopee",
5577
-
5578
- "zalora",
5579
-
5580
- "prestashop",
5581
-
5582
- "smytten",
5583
-
5584
- "amazon_sc",
5585
-
5586
- "urbanpiper",
5587
-
5588
- "flipkart_quick",
5589
-
5590
- "woocommerce",
5591
-
5592
- "zivame",
5593
-
5594
- "lelong",
5595
-
5596
- "facebook",
5597
-
5598
- "jiomart",
5599
-
5600
- "gmc",
5601
-
5602
- "robins",
5603
-
5604
- "akulaku",
5605
-
5606
- "noon",
5607
-
5608
- "tatacliq",
5609
-
5610
- "kartrocket",
5611
-
5612
- "inorbit",
5613
-
5614
- "ajio_business",
5615
-
5616
- "swiggy",
5617
-
5618
- "asos",
5619
-
5620
- "tokopedia",
5621
-
5622
- "limeroad",
5623
-
5624
- "myntra_omni",
5625
-
5626
- "spoyl",
5627
-
5628
- "amazon_mlf",
5629
-
5630
- "fulfilled_by_lazada",
5631
-
5632
- "ebay",
5633
-
5634
- "jd",
5635
-
5636
- "amazon_pharmacy",
5637
-
5638
- "ajio_vms",
5639
-
5640
- "daraz",
5641
-
5642
- "oker",
5643
-
5644
- "flipkart_b2b",
5645
-
5646
- "amazon_mlf_ss",
5647
-
5648
- "woovly",
5649
-
5650
- "tata1mg",
5651
-
5652
- "zomato",
5653
-
5654
- "shopify"
5417
+ "ondc"
5655
5418
  );
5656
5419
  }
5657
5420
  }