@omni-commerce/sdk 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -26,7 +26,7 @@ function normalizeClientOptions(options = {}) {
26
26
  }
27
27
 
28
28
  // src/version.ts
29
- var SDK_VERSION = "0.2.0";
29
+ var SDK_VERSION = "0.4.0";
30
30
  var SDK_USER_AGENT = `omnicommerce-js/${SDK_VERSION}`;
31
31
 
32
32
  // src/environments.ts
@@ -576,6 +576,427 @@ var AgentsClient = class {
576
576
  _http;
577
577
  general;
578
578
  };
579
+ var AnalyticsClient = class {
580
+ constructor(_http) {
581
+ this._http = _http;
582
+ }
583
+ _http;
584
+ /**
585
+ * Get Ads Analytics
586
+ *
587
+ * Ad spend, attributed sales, ROAS, and ACOS over the last 28 days, and per-product sales and ad metrics for today, yesterday, 7-day and 28-day averages, and the same day one and four weeks ago. Matches the Ads page. Requires `analytics:read`.
588
+
589
+ Amounts are in `data.filters.currency`. The periods count back from the end of the range.
590
+ *
591
+ * `GET /api/v1/analytics/ads`
592
+ */
593
+ getAds(request = {}, requestOptions) {
594
+ const {
595
+ organizationId,
596
+ from,
597
+ to,
598
+ timeZone,
599
+ marketplace,
600
+ country,
601
+ store,
602
+ currency
603
+ } = request ?? {};
604
+ return this._http.request({
605
+ method: "GET",
606
+ path: "/api/v1/analytics/ads",
607
+ query: {
608
+ organizationId,
609
+ from,
610
+ to,
611
+ timeZone,
612
+ marketplace,
613
+ country,
614
+ store,
615
+ currency
616
+ },
617
+ body: void 0,
618
+ ...mergeRequestOptions(requestOptions)
619
+ });
620
+ }
621
+ /**
622
+ * Get AI Traffic Analytics
623
+ *
624
+ * Visits and crawls from AI assistants and search engines: totals, a daily trend, breakdowns by source, route, country, and product, and recent events. Matches the AI Traffic page. Requires `analytics:read`.
625
+
626
+ A range covers at most 365 days; a longer one is shortened to the last 365 days. Read the applied range from `data.filters`.
627
+ *
628
+ * `GET /api/v1/analytics/ai-traffic`
629
+ */
630
+ getAiTraffic(request = {}, requestOptions) {
631
+ const {
632
+ organizationId,
633
+ from,
634
+ to,
635
+ timeZone,
636
+ source,
637
+ trafficType,
638
+ route,
639
+ country
640
+ } = request ?? {};
641
+ return this._http.request({
642
+ method: "GET",
643
+ path: "/api/v1/analytics/ai-traffic",
644
+ query: {
645
+ organizationId,
646
+ from,
647
+ to,
648
+ timeZone,
649
+ source,
650
+ trafficType,
651
+ route,
652
+ country
653
+ },
654
+ body: void 0,
655
+ ...mergeRequestOptions(requestOptions)
656
+ });
657
+ }
658
+ /**
659
+ * Get Video and LIVE Analytics
660
+ *
661
+ * Views, product clicks, orders, and GMV from shoppable videos and LIVE streams, by day, by content type, and per video. Matches the Video / LIVE page. Requires `analytics:read`.
662
+
663
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
664
+ *
665
+ * `GET /api/v1/analytics/content`
666
+ */
667
+ getContent(request = {}, requestOptions) {
668
+ const {
669
+ organizationId,
670
+ from,
671
+ to,
672
+ timeZone,
673
+ marketplace,
674
+ country,
675
+ store,
676
+ currency
677
+ } = request ?? {};
678
+ return this._http.request({
679
+ method: "GET",
680
+ path: "/api/v1/analytics/content",
681
+ query: {
682
+ organizationId,
683
+ from,
684
+ to,
685
+ timeZone,
686
+ marketplace,
687
+ country,
688
+ store,
689
+ currency
690
+ },
691
+ body: void 0,
692
+ ...mergeRequestOptions(requestOptions)
693
+ });
694
+ }
695
+ /**
696
+ * Get Order Analytics
697
+ *
698
+ * Order KPIs with their change against the previous period, a daily trend, sales by order status and by marketplace, and the top products by net sales. Repeat buyers are counted but not listed. Matches the Orders analysis page. Requires `analytics:read`.
699
+
700
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
701
+ *
702
+ * `GET /api/v1/analytics/orders`
703
+ */
704
+ getOrders(request = {}, requestOptions) {
705
+ const {
706
+ organizationId,
707
+ from,
708
+ to,
709
+ timeZone,
710
+ marketplace,
711
+ country,
712
+ store,
713
+ currency
714
+ } = request ?? {};
715
+ return this._http.request({
716
+ method: "GET",
717
+ path: "/api/v1/analytics/orders",
718
+ query: {
719
+ organizationId,
720
+ from,
721
+ to,
722
+ timeZone,
723
+ marketplace,
724
+ country,
725
+ store,
726
+ currency
727
+ },
728
+ body: void 0,
729
+ ...mergeRequestOptions(requestOptions)
730
+ });
731
+ }
732
+ /**
733
+ * Get Growth Overview
734
+ *
735
+ * Sales, traffic, and profit KPIs with their change against the previous period, a daily trend, the traffic funnel, sales by channel, top and lagging products, and ranked next actions. Matches the Growth Intelligence overview page. Requires `analytics:read`.
736
+
737
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
738
+ *
739
+ * `GET /api/v1/analytics/overview`
740
+ */
741
+ getOverview(request = {}, requestOptions) {
742
+ const {
743
+ organizationId,
744
+ from,
745
+ to,
746
+ timeZone,
747
+ marketplace,
748
+ country,
749
+ store,
750
+ currency
751
+ } = request ?? {};
752
+ return this._http.request({
753
+ method: "GET",
754
+ path: "/api/v1/analytics/overview",
755
+ query: {
756
+ organizationId,
757
+ from,
758
+ to,
759
+ timeZone,
760
+ marketplace,
761
+ country,
762
+ store,
763
+ currency
764
+ },
765
+ body: void 0,
766
+ ...mergeRequestOptions(requestOptions)
767
+ });
768
+ }
769
+ /**
770
+ * Get Pricing Analytics
771
+ *
772
+ * Selling products with their margin, velocity, stock cover, prices, competitor median, and a pricing recommendation. Matches the Pricing page. Requires `analytics:read`.
773
+
774
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
775
+ *
776
+ * `GET /api/v1/analytics/pricing`
777
+ */
778
+ getPricing(request = {}, requestOptions) {
779
+ const {
780
+ organizationId,
781
+ from,
782
+ to,
783
+ timeZone,
784
+ marketplace,
785
+ country,
786
+ store,
787
+ currency
788
+ } = request ?? {};
789
+ return this._http.request({
790
+ method: "GET",
791
+ path: "/api/v1/analytics/pricing",
792
+ query: {
793
+ organizationId,
794
+ from,
795
+ to,
796
+ timeZone,
797
+ marketplace,
798
+ country,
799
+ store,
800
+ currency
801
+ },
802
+ body: void 0,
803
+ ...mergeRequestOptions(requestOptions)
804
+ });
805
+ }
806
+ /**
807
+ * Get Product Analytics
808
+ *
809
+ * Per-product sales, traffic, price, stock, profit, and ad performance, ranked by net sales, with ranked insights. Pass `productId` for specific products, for example on a product page. Matches the Products page. Requires `analytics:read`.
810
+
811
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
812
+ *
813
+ * `GET /api/v1/analytics/products`
814
+ */
815
+ getProducts(request = {}, requestOptions) {
816
+ const {
817
+ organizationId,
818
+ from,
819
+ to,
820
+ timeZone,
821
+ marketplace,
822
+ country,
823
+ store,
824
+ currency,
825
+ q,
826
+ productId,
827
+ limit
828
+ } = request ?? {};
829
+ return this._http.request({
830
+ method: "GET",
831
+ path: "/api/v1/analytics/products",
832
+ query: {
833
+ organizationId,
834
+ from,
835
+ to,
836
+ timeZone,
837
+ marketplace,
838
+ country,
839
+ store,
840
+ currency,
841
+ q,
842
+ productId,
843
+ limit
844
+ },
845
+ body: void 0,
846
+ ...mergeRequestOptions(requestOptions)
847
+ });
848
+ }
849
+ /**
850
+ * Get Profit Analytics
851
+ *
852
+ * Revenue, costs, fees, and profit with a waterfall, cost breakdowns, a daily trend, the most and least profitable products, and products missing a cost price. Session members also need finance access. Matches the P&L Analysis page. Requires `analytics:read`.
853
+
854
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
855
+ *
856
+ * `GET /api/v1/analytics/profit`
857
+ */
858
+ getProfit(request = {}, requestOptions) {
859
+ const {
860
+ organizationId,
861
+ from,
862
+ to,
863
+ timeZone,
864
+ marketplace,
865
+ country,
866
+ store,
867
+ currency,
868
+ sku
869
+ } = request ?? {};
870
+ return this._http.request({
871
+ method: "GET",
872
+ path: "/api/v1/analytics/profit",
873
+ query: {
874
+ organizationId,
875
+ from,
876
+ to,
877
+ timeZone,
878
+ marketplace,
879
+ country,
880
+ store,
881
+ currency,
882
+ sku
883
+ },
884
+ body: void 0,
885
+ ...mergeRequestOptions(requestOptions)
886
+ });
887
+ }
888
+ /**
889
+ * Get Business Report
890
+ *
891
+ * The management summary: headline KPIs, top products, sales by marketplace, alerts, settlement totals, and data quality. Matches the Business Reports page. Requires `analytics:read`.
892
+
893
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
894
+ *
895
+ * `GET /api/v1/analytics/reports`
896
+ */
897
+ getReports(request = {}, requestOptions) {
898
+ const {
899
+ organizationId,
900
+ from,
901
+ to,
902
+ timeZone,
903
+ marketplace,
904
+ country,
905
+ store,
906
+ currency
907
+ } = request ?? {};
908
+ return this._http.request({
909
+ method: "GET",
910
+ path: "/api/v1/analytics/reports",
911
+ query: {
912
+ organizationId,
913
+ from,
914
+ to,
915
+ timeZone,
916
+ marketplace,
917
+ country,
918
+ store,
919
+ currency
920
+ },
921
+ body: void 0,
922
+ ...mergeRequestOptions(requestOptions)
923
+ });
924
+ }
925
+ /**
926
+ * Get Store Analytics
927
+ *
928
+ * Seller Centre shop metrics: visitors, page views, followers, the placed, paid, and confirmed buyer funnel, a daily trend, and the app and web split. Matches the Analytics (Seller Centre) page. Requires `analytics:read`.
929
+
930
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
931
+ *
932
+ * `GET /api/v1/analytics/stores`
933
+ */
934
+ getStores(request = {}, requestOptions) {
935
+ const {
936
+ organizationId,
937
+ from,
938
+ to,
939
+ timeZone,
940
+ marketplace,
941
+ country,
942
+ store,
943
+ currency
944
+ } = request ?? {};
945
+ return this._http.request({
946
+ method: "GET",
947
+ path: "/api/v1/analytics/stores",
948
+ query: {
949
+ organizationId,
950
+ from,
951
+ to,
952
+ timeZone,
953
+ marketplace,
954
+ country,
955
+ store,
956
+ currency
957
+ },
958
+ body: void 0,
959
+ ...mergeRequestOptions(requestOptions)
960
+ });
961
+ }
962
+ /**
963
+ * Get Traffic Analytics
964
+ *
965
+ * Impressions, page views, visitors, add-to-cart, and conversion, with the funnel, a daily trend, products ranked by lost conversion, diagnostics, and the videos that drive traffic. Matches the Traffic page. Requires `analytics:read`.
966
+
967
+ Amounts are in `data.filters.currency`. Only orders in that currency are counted; nothing is converted. A range covers at most 366 days.
968
+ *
969
+ * `GET /api/v1/analytics/traffic`
970
+ */
971
+ getTraffic(request = {}, requestOptions) {
972
+ const {
973
+ organizationId,
974
+ from,
975
+ to,
976
+ timeZone,
977
+ marketplace,
978
+ country,
979
+ store,
980
+ currency
981
+ } = request ?? {};
982
+ return this._http.request({
983
+ method: "GET",
984
+ path: "/api/v1/analytics/traffic",
985
+ query: {
986
+ organizationId,
987
+ from,
988
+ to,
989
+ timeZone,
990
+ marketplace,
991
+ country,
992
+ store,
993
+ currency
994
+ },
995
+ body: void 0,
996
+ ...mergeRequestOptions(requestOptions)
997
+ });
998
+ }
999
+ };
579
1000
  var AopClient = class {
580
1001
  constructor(_http) {
581
1002
  this._http = _http;
@@ -667,44 +1088,6 @@ var AopClient = class {
667
1088
  });
668
1089
  }
669
1090
  };
670
- var ApiClient = class {
671
- constructor(_http) {
672
- this._http = _http;
673
- }
674
- _http;
675
- /**
676
- * API Root
677
- *
678
- * Public API discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.
679
- *
680
- * `GET /api`
681
- */
682
- root(requestOptions) {
683
- return this._http.request({
684
- method: "GET",
685
- path: "/api",
686
- query: void 0,
687
- body: void 0,
688
- ...mergeRequestOptions(requestOptions)
689
- });
690
- }
691
- /**
692
- * API v1 Root
693
- *
694
- * Public API v1 discovery root. Merchant payments are handled by organization-scoped checkout session endpoints.
695
- *
696
- * `GET /api/v1`
697
- */
698
- v1(requestOptions) {
699
- return this._http.request({
700
- method: "GET",
701
- path: "/api/v1",
702
- query: void 0,
703
- body: void 0,
704
- ...mergeRequestOptions(requestOptions)
705
- });
706
- }
707
- };
708
1091
  var CampaignsClient = class {
709
1092
  constructor(_http) {
710
1093
  this._http = _http;
@@ -1536,6 +1919,63 @@ var OrdersClient = class {
1536
1919
  ...mergeRequestOptions(requestOptions)
1537
1920
  });
1538
1921
  }
1922
+ /**
1923
+ * Get Order Action Options
1924
+ *
1925
+ * Ask the marketplace which choices an action needs, such as pickup or drop-off for `ship`. Requires `orders:write`.
1926
+
1927
+ Send the chosen choice's `payload` with `POST /api/v1/orders/{orderId}/actions`.
1928
+ *
1929
+ * `GET /api/v1/orders/{orderId}/action-options`
1930
+ */
1931
+ getActionOptions(request, requestOptions) {
1932
+ const { orderId, organizationId, action } = request ?? {};
1933
+ return this._http.request({
1934
+ method: "GET",
1935
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/action-options`,
1936
+ query: { organizationId, action },
1937
+ body: void 0,
1938
+ ...mergeRequestOptions(requestOptions)
1939
+ });
1940
+ }
1941
+ /**
1942
+ * List Order Actions
1943
+ *
1944
+ * The order's 20 most recent action jobs, newest first, plus its latest successful label job. Requires `orders:read`.
1945
+
1946
+ Poll this after queueing an action. A succeeded `labels` job lists its label files in `labels`.
1947
+ *
1948
+ * `GET /api/v1/orders/{orderId}/actions`
1949
+ */
1950
+ listActions(request, requestOptions) {
1951
+ const { orderId, organizationId } = request ?? {};
1952
+ return this._http.request({
1953
+ method: "GET",
1954
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/actions`,
1955
+ query: { organizationId },
1956
+ body: void 0,
1957
+ ...mergeRequestOptions(requestOptions)
1958
+ });
1959
+ }
1960
+ /**
1961
+ * Queue Order Action
1962
+ *
1963
+ * Ship, cancel, generate shipping labels for, or update tracking on a marketplace order. Requires `orders:write`.
1964
+
1965
+ The marketplace call runs in the background: the response is `202` with `jobId`; poll `GET /api/v1/orders/{orderId}/actions`. A repeated `idempotencyKey` returns `200` with the original job.
1966
+ *
1967
+ * `POST /api/v1/orders/{orderId}/actions`
1968
+ */
1969
+ queueAction(request, requestOptions) {
1970
+ const { orderId, ...body } = request ?? {};
1971
+ return this._http.request({
1972
+ method: "POST",
1973
+ path: `/api/v1/orders/${encodePathParam("orderId", orderId)}/actions`,
1974
+ query: void 0,
1975
+ body,
1976
+ ...mergeRequestOptions(requestOptions)
1977
+ });
1978
+ }
1539
1979
  };
1540
1980
  var OrganizationsClient = class {
1541
1981
  constructor(_http) {
@@ -1703,7 +2143,9 @@ var ProductsClient = class {
1703
2143
  *
1704
2144
  * List products for the authenticated organization with optional filters and pagination. Authenticate with an API key or OAuth bearer token. The organization is taken from that credential; do not send `organizationId`.
1705
2145
 
1706
- Rows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.
2146
+ ### Stock and variants
2147
+
2148
+ Rows are in `items`. Read catalog stock from `items[].stockQuantity`: parent rows already aggregate their non-deleted variants, and virtual bundles use component availability with any manual cap. Null means unknown, not zero. A row with `variantCount` above 0 has variants; fetch them from `GET /api/v1/products/{productId}`. List rows do not contain `inventoryQuantity`, `inventory.quantity`, or an embedded `variants` array.
1707
2149
  *
1708
2150
  * `GET /api/v1/products`
1709
2151
  */
@@ -1797,6 +2239,8 @@ var ProductsClient = class {
1797
2239
  - Localization content and cultural notes
1798
2240
  - Intent queries and signals
1799
2241
  - Sources and claims
2242
+
2243
+ A parent product returns its variants in `variants`, with each variant's option values, price, stock, image, and marketplace listings.
1800
2244
  *
1801
2245
  * `GET /api/v1/products/{productId}`
1802
2246
  */
@@ -1890,6 +2334,25 @@ var ProductsClient = class {
1890
2334
  ...mergeRequestOptions(requestOptions)
1891
2335
  });
1892
2336
  }
2337
+ /**
2338
+ * Get Product Listings
2339
+ *
2340
+ * Where a product is listed: each marketplace's store, live or delisted state, item id, buyer-facing URL, and the latest publish attempt with any rejection details. Requires `catalog:read`.
2341
+
2342
+ Poll after `POST /api/v1/products/{productId}/publish`.
2343
+ *
2344
+ * `GET /api/v1/products/{productId}/listings`
2345
+ */
2346
+ getListings(request, requestOptions) {
2347
+ const { productId, organizationId } = request ?? {};
2348
+ return this._http.request({
2349
+ method: "GET",
2350
+ path: `/api/v1/products/${encodePathParam("productId", productId)}/listings`,
2351
+ query: { organizationId },
2352
+ body: void 0,
2353
+ ...mergeRequestOptions(requestOptions)
2354
+ });
2355
+ }
1893
2356
  /**
1894
2357
  * Update Product Price
1895
2358
  *
@@ -2248,6 +2711,108 @@ var ReturnsClient = class {
2248
2711
  });
2249
2712
  }
2250
2713
  };
2714
+ var ReviewsClient = class {
2715
+ constructor(_http) {
2716
+ this._http = _http;
2717
+ }
2718
+ _http;
2719
+ /**
2720
+ * List Reviews
2721
+ *
2722
+ * List marketplace product reviews, newest first unless `sortBy` says otherwise. Requires `reviews:read`.
2723
+
2724
+ Use `priority=unreplied` for a reply queue. `replyRestriction` is null when a reply will be accepted.
2725
+ *
2726
+ * `GET /api/v1/reviews`
2727
+ */
2728
+ list(request = {}, requestOptions) {
2729
+ const {
2730
+ organizationId,
2731
+ q,
2732
+ marketplace,
2733
+ status,
2734
+ priority,
2735
+ store,
2736
+ productId,
2737
+ sortBy,
2738
+ limit,
2739
+ offset
2740
+ } = request ?? {};
2741
+ return this._http.request({
2742
+ method: "GET",
2743
+ path: "/api/v1/reviews",
2744
+ query: {
2745
+ organizationId,
2746
+ q,
2747
+ marketplace,
2748
+ status,
2749
+ priority,
2750
+ store,
2751
+ productId,
2752
+ sortBy,
2753
+ limit,
2754
+ offset
2755
+ },
2756
+ body: void 0,
2757
+ ...mergeRequestOptions(requestOptions)
2758
+ });
2759
+ }
2760
+ /**
2761
+ * Get Review
2762
+ *
2763
+ * Read one review by its OmniCommerce UUID. Requires `reviews:read`.
2764
+ *
2765
+ * `GET /api/v1/reviews/{reviewId}`
2766
+ */
2767
+ get(request, requestOptions) {
2768
+ const { reviewId, organizationId } = request ?? {};
2769
+ return this._http.request({
2770
+ method: "GET",
2771
+ path: `/api/v1/reviews/${encodePathParam("reviewId", reviewId)}`,
2772
+ query: { organizationId },
2773
+ body: void 0,
2774
+ ...mergeRequestOptions(requestOptions)
2775
+ });
2776
+ }
2777
+ /**
2778
+ * Draft Review Reply
2779
+ *
2780
+ * Draft a reply with AI from the review, the product, recent replies, and the brand kit. Uses AI credits. Requires `reviews:write`.
2781
+
2782
+ Nothing is posted; send the text with `POST /api/v1/reviews/actions`.
2783
+ *
2784
+ * `POST /api/v1/reviews/{reviewId}/draft-reply`
2785
+ */
2786
+ draftReply(request, requestOptions) {
2787
+ const { reviewId, organizationId, ...body } = request ?? {};
2788
+ return this._http.request({
2789
+ method: "POST",
2790
+ path: `/api/v1/reviews/${encodePathParam("reviewId", reviewId)}/draft-reply`,
2791
+ query: { organizationId },
2792
+ body,
2793
+ ...mergeRequestOptions(requestOptions)
2794
+ });
2795
+ }
2796
+ /**
2797
+ * Act on Reviews
2798
+ *
2799
+ * Reply to up to 50 reviews, or send Amazon review requests for solicitation rows. Requires `reviews:write`.
2800
+
2801
+ Each target succeeds or fails on its own; read `data.results`. `ok` is true only when every target succeeds.
2802
+ *
2803
+ * `POST /api/v1/reviews/actions`
2804
+ */
2805
+ actions(request, requestOptions) {
2806
+ const { ...body } = request ?? {};
2807
+ return this._http.request({
2808
+ method: "POST",
2809
+ path: "/api/v1/reviews/actions",
2810
+ query: void 0,
2811
+ body,
2812
+ ...mergeRequestOptions(requestOptions)
2813
+ });
2814
+ }
2815
+ };
2251
2816
  var SearchClient = class {
2252
2817
  constructor(_http) {
2253
2818
  this._http = _http;
@@ -2747,8 +3312,8 @@ var OmniGeneratedClient = class {
2747
3312
  constructor(_http) {
2748
3313
  this._http = _http;
2749
3314
  this.agents = new AgentsClient(this._http);
3315
+ this.analytics = new AnalyticsClient(this._http);
2750
3316
  this.aop = new AopClient(this._http);
2751
- this.api = new ApiClient(this._http);
2752
3317
  this.campaigns = new CampaignsClient(this._http);
2753
3318
  this.catalog = new CatalogClient(this._http);
2754
3319
  this.checkoutSessions = new CheckoutSessionsClient(this._http);
@@ -2770,6 +3335,7 @@ var OmniGeneratedClient = class {
2770
3335
  this.products = new ProductsClient(this._http);
2771
3336
  this.promotions = new PromotionsClient(this._http);
2772
3337
  this.returns = new ReturnsClient(this._http);
3338
+ this.reviews = new ReviewsClient(this._http);
2773
3339
  this.search = new SearchClient(this._http);
2774
3340
  this.settlements = new SettlementsClient(this._http);
2775
3341
  this.sync = new SyncClient(this._http);
@@ -2781,8 +3347,8 @@ var OmniGeneratedClient = class {
2781
3347
  }
2782
3348
  _http;
2783
3349
  agents;
3350
+ analytics;
2784
3351
  aop;
2785
- api;
2786
3352
  campaigns;
2787
3353
  catalog;
2788
3354
  checkoutSessions;
@@ -2804,6 +3370,7 @@ var OmniGeneratedClient = class {
2804
3370
  products;
2805
3371
  promotions;
2806
3372
  returns;
3373
+ reviews;
2807
3374
  search;
2808
3375
  settlements;
2809
3376
  sync;