@wix/headless-stores 0.0.10 → 0.0.11

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 (133) hide show
  1. package/cjs/dist/enums/index.d.ts +2 -0
  2. package/cjs/dist/enums/index.js +18 -0
  3. package/cjs/dist/enums/social-platform-enums.d.ts +25 -0
  4. package/cjs/dist/enums/social-platform-enums.js +30 -0
  5. package/cjs/dist/enums/sort-enums.d.ts +17 -0
  6. package/cjs/dist/enums/sort-enums.js +21 -0
  7. package/cjs/dist/react/BuyNow.d.ts +2 -4
  8. package/cjs/dist/react/Category.d.ts +9 -11
  9. package/cjs/dist/react/Category.js +8 -23
  10. package/cjs/dist/react/Collection.d.ts +13 -3
  11. package/cjs/dist/react/Collection.js +30 -19
  12. package/cjs/dist/react/FilteredCollection.d.ts +45 -15
  13. package/cjs/dist/react/FilteredCollection.js +45 -12
  14. package/cjs/dist/react/PayNow.d.ts +2 -4
  15. package/cjs/dist/react/Product.d.ts +8 -35
  16. package/cjs/dist/react/Product.js +10 -31
  17. package/cjs/dist/react/ProductActions.d.ts +42 -0
  18. package/cjs/dist/react/ProductActions.js +83 -0
  19. package/cjs/dist/react/ProductModifiers.d.ts +16 -8
  20. package/cjs/dist/react/ProductModifiers.js +19 -10
  21. package/cjs/dist/react/ProductVariantSelector.d.ts +52 -68
  22. package/cjs/dist/react/ProductVariantSelector.js +58 -86
  23. package/cjs/dist/react/RelatedProducts.d.ts +8 -4
  24. package/cjs/dist/react/RelatedProducts.js +12 -7
  25. package/cjs/dist/react/SelectedVariant.d.ts +66 -0
  26. package/cjs/dist/react/SelectedVariant.js +52 -0
  27. package/cjs/dist/react/SocialSharing.d.ts +24 -31
  28. package/cjs/dist/react/SocialSharing.js +8 -2
  29. package/cjs/dist/react/Sort.d.ts +11 -14
  30. package/cjs/dist/react/Sort.js +10 -34
  31. package/cjs/dist/react/index.d.ts +11 -10
  32. package/cjs/dist/react/index.js +3 -2
  33. package/cjs/dist/services/buy-now-service.js +2 -2
  34. package/cjs/dist/services/catalog-options-service.d.ts +2 -2
  35. package/cjs/dist/services/catalog-options-service.js +39 -45
  36. package/cjs/dist/services/catalog-price-range-service.d.ts +2 -2
  37. package/cjs/dist/services/catalog-price-range-service.js +13 -11
  38. package/cjs/dist/services/category-service.d.ts +7 -6
  39. package/cjs/dist/services/category-service.js +15 -11
  40. package/cjs/dist/services/collection-service.d.ts +8 -8
  41. package/cjs/dist/services/collection-service.js +182 -67
  42. package/cjs/dist/services/filter-service.d.ts +1 -1
  43. package/cjs/dist/services/filter-service.js +15 -23
  44. package/cjs/dist/services/product-media-gallery-service.d.ts +3 -3
  45. package/cjs/dist/services/product-modifiers-service.d.ts +6 -8
  46. package/cjs/dist/services/product-modifiers-service.js +14 -7
  47. package/cjs/dist/services/product-service.d.ts +8 -7
  48. package/cjs/dist/services/product-service.js +36 -19
  49. package/cjs/dist/services/related-products-service.d.ts +4 -4
  50. package/cjs/dist/services/related-products-service.js +4 -4
  51. package/cjs/dist/services/selected-variant-service.d.ts +24 -16
  52. package/cjs/dist/services/selected-variant-service.js +271 -126
  53. package/cjs/dist/services/social-sharing-service.d.ts +2 -2
  54. package/cjs/dist/services/social-sharing-service.js +47 -63
  55. package/cjs/dist/services/sort-service.d.ts +3 -2
  56. package/cjs/dist/services/sort-service.js +8 -13
  57. package/dist/enums/index.d.ts +2 -0
  58. package/dist/enums/index.js +2 -0
  59. package/dist/enums/social-platform-enums.d.ts +25 -0
  60. package/dist/enums/social-platform-enums.js +27 -0
  61. package/dist/enums/sort-enums.d.ts +17 -0
  62. package/dist/enums/sort-enums.js +18 -0
  63. package/dist/react/BuyNow.d.ts +2 -4
  64. package/dist/react/Category.d.ts +9 -11
  65. package/dist/react/Category.js +10 -23
  66. package/dist/react/Collection.d.ts +13 -3
  67. package/dist/react/Collection.js +32 -21
  68. package/dist/react/FilteredCollection.d.ts +45 -15
  69. package/dist/react/FilteredCollection.js +49 -16
  70. package/dist/react/PayNow.d.ts +2 -4
  71. package/dist/react/Product.d.ts +8 -35
  72. package/dist/react/Product.js +11 -31
  73. package/dist/react/ProductActions.d.ts +42 -0
  74. package/dist/react/ProductActions.js +79 -0
  75. package/dist/react/ProductModifiers.d.ts +16 -8
  76. package/dist/react/ProductModifiers.js +22 -13
  77. package/dist/react/ProductVariantSelector.d.ts +52 -68
  78. package/dist/react/ProductVariantSelector.js +57 -84
  79. package/dist/react/RelatedProducts.d.ts +8 -4
  80. package/dist/react/RelatedProducts.js +15 -10
  81. package/dist/react/SelectedVariant.d.ts +66 -0
  82. package/dist/react/SelectedVariant.js +46 -0
  83. package/dist/react/SocialSharing.d.ts +24 -31
  84. package/dist/react/SocialSharing.js +11 -5
  85. package/dist/react/Sort.d.ts +11 -14
  86. package/dist/react/Sort.js +12 -34
  87. package/dist/react/index.d.ts +11 -10
  88. package/dist/react/index.js +11 -10
  89. package/dist/services/buy-now-service.js +2 -2
  90. package/dist/services/catalog-options-service.d.ts +2 -2
  91. package/dist/services/catalog-options-service.js +41 -47
  92. package/dist/services/catalog-price-range-service.d.ts +2 -2
  93. package/dist/services/catalog-price-range-service.js +15 -13
  94. package/dist/services/category-service.d.ts +7 -6
  95. package/dist/services/category-service.js +17 -13
  96. package/dist/services/collection-service.d.ts +8 -8
  97. package/dist/services/collection-service.js +188 -73
  98. package/dist/services/filter-service.d.ts +1 -1
  99. package/dist/services/filter-service.js +20 -28
  100. package/dist/services/product-media-gallery-service.d.ts +3 -3
  101. package/dist/services/product-modifiers-service.d.ts +6 -8
  102. package/dist/services/product-modifiers-service.js +16 -9
  103. package/dist/services/product-service.d.ts +8 -7
  104. package/dist/services/product-service.js +38 -21
  105. package/dist/services/related-products-service.d.ts +4 -4
  106. package/dist/services/related-products-service.js +6 -6
  107. package/dist/services/selected-variant-service.d.ts +24 -16
  108. package/dist/services/selected-variant-service.js +273 -127
  109. package/dist/services/social-sharing-service.d.ts +2 -2
  110. package/dist/services/social-sharing-service.js +49 -65
  111. package/dist/services/sort-service.d.ts +3 -2
  112. package/dist/services/sort-service.js +11 -16
  113. package/package.json +7 -1
  114. package/cjs/dist/react/ProductMediaGallery.d.ts +0 -128
  115. package/cjs/dist/react/ProductMediaGallery.js +0 -100
  116. package/dist/astro/BuyNowServiceContext.d.ts +0 -2
  117. package/dist/astro/BuyNowServiceContext.js +0 -6
  118. package/dist/astro/ManagerProviderContext.d.ts +0 -2
  119. package/dist/astro/ManagerProviderContext.js +0 -7
  120. package/dist/astro/withBuyButtonService.d.ts +0 -2
  121. package/dist/astro/withBuyButtonService.js +0 -16
  122. package/dist/react/CurrentCartServiceProvider.d.ts +0 -5
  123. package/dist/react/CurrentCartServiceProvider.js +0 -12
  124. package/dist/react/ProductMediaGallery.d.ts +0 -128
  125. package/dist/react/ProductMediaGallery.js +0 -92
  126. package/dist/react/VariantSelectorServiceProvider.d.ts +0 -7
  127. package/dist/react/VariantSelectorServiceProvider.js +0 -22
  128. package/dist/react/hookim/index.d.ts +0 -5
  129. package/dist/react/hookim/index.js +0 -22
  130. package/dist/services/CurrentCartService.d.ts +0 -18
  131. package/dist/services/CurrentCartService.js +0 -9
  132. package/dist/services/VariantSelectorServices.d.ts +0 -8
  133. package/dist/services/VariantSelectorServices.js +0 -20
@@ -1,10 +1,11 @@
1
- import { type ServiceFactoryConfig } from "@wix/services-definitions";
2
- import type { Signal } from "./Signal";
3
- import { productsV3 } from "@wix/stores";
1
+ import { type ServiceFactoryConfig } from '@wix/services-definitions';
2
+ import type { Signal } from '../../Signal';
3
+ import { type V3Product } from '@wix/auto_sdk_stores_products-v-3';
4
4
  export interface ProductServiceAPI {
5
- product: Signal<productsV3.V3Product | null>;
5
+ product: Signal<V3Product>;
6
6
  isLoading: Signal<boolean>;
7
7
  error: Signal<string | null>;
8
+ loadProduct: (slug: string) => Promise<void>;
8
9
  }
9
10
  export declare const ProductServiceDefinition: string & {
10
11
  __api: ProductServiceAPI;
@@ -16,12 +17,12 @@ export declare const ProductService: import("@wix/services-definitions").Service
16
17
  __config: {};
17
18
  isServiceDefinition?: boolean;
18
19
  } & ProductServiceAPI, {
19
- product: productsV3.V3Product;
20
+ product: V3Product;
20
21
  }, import("@wix/services-definitions").ThreadMode.MAIN>;
21
22
  export type ProductServiceConfigResult = {
22
- type: "success";
23
+ type: 'success';
23
24
  config: ServiceFactoryConfig<typeof ProductService>;
24
25
  } | {
25
- type: "notFound";
26
+ type: 'notFound';
26
27
  };
27
28
  export declare function loadProductServiceConfig(productSlug: string): Promise<ProductServiceConfigResult>;
@@ -4,41 +4,58 @@ exports.ProductService = exports.ProductServiceDefinition = void 0;
4
4
  exports.loadProductServiceConfig = loadProductServiceConfig;
5
5
  const services_definitions_1 = require("@wix/services-definitions");
6
6
  const signals_1 = require("@wix/services-definitions/core-services/signals");
7
- const stores_1 = require("@wix/stores");
8
- exports.ProductServiceDefinition = (0, services_definitions_1.defineService)("product");
7
+ const auto_sdk_stores_products_v_3_1 = require("@wix/auto_sdk_stores_products-v-3");
8
+ exports.ProductServiceDefinition = (0, services_definitions_1.defineService)('product');
9
9
  exports.ProductService = services_definitions_1.implementService.withConfig()(exports.ProductServiceDefinition, ({ getService, config }) => {
10
10
  const signalsService = getService(signals_1.SignalsServiceDefinition);
11
11
  const product = signalsService.signal(config.product);
12
12
  const isLoading = signalsService.signal(false);
13
13
  const error = signalsService.signal(null);
14
+ const loadProduct = async (slug) => {
15
+ isLoading.set(true);
16
+ const productResponse = await loadProductBySlug(slug);
17
+ if (!productResponse.product) {
18
+ error.set('Product not found');
19
+ }
20
+ else {
21
+ product.set(productResponse.product);
22
+ error.set(null);
23
+ }
24
+ isLoading.set(false);
25
+ };
14
26
  return {
15
27
  product,
16
28
  isLoading,
17
29
  error,
30
+ loadProduct,
18
31
  };
19
32
  });
33
+ const loadProductBySlug = async (slug) => {
34
+ const productResponse = await (0, auto_sdk_stores_products_v_3_1.getProductBySlug)(slug, {
35
+ fields: [
36
+ 'DESCRIPTION',
37
+ 'DIRECT_CATEGORIES_INFO',
38
+ 'BREADCRUMBS_INFO',
39
+ 'INFO_SECTION',
40
+ 'MEDIA_ITEMS_INFO',
41
+ 'PLAIN_DESCRIPTION',
42
+ 'THUMBNAIL',
43
+ 'URL',
44
+ 'VARIANT_OPTION_CHOICE_NAMES',
45
+ 'WEIGHT_MEASUREMENT_UNIT_INFO',
46
+ ],
47
+ });
48
+ return productResponse;
49
+ };
20
50
  async function loadProductServiceConfig(productSlug) {
21
51
  try {
22
52
  // Use getProductBySlug directly - single API call with comprehensive fields
23
- const productResponse = await stores_1.productsV3.getProductBySlug(productSlug, {
24
- fields: [
25
- "DESCRIPTION",
26
- "DIRECT_CATEGORIES_INFO",
27
- "BREADCRUMBS_INFO",
28
- "INFO_SECTION",
29
- "MEDIA_ITEMS_INFO",
30
- "PLAIN_DESCRIPTION",
31
- "THUMBNAIL",
32
- "URL",
33
- "VARIANT_OPTION_CHOICE_NAMES",
34
- "WEIGHT_MEASUREMENT_UNIT_INFO",
35
- ],
36
- });
53
+ const productResponse = await loadProductBySlug(productSlug);
37
54
  if (!productResponse.product) {
38
- return { type: "notFound" };
55
+ return { type: 'notFound' };
39
56
  }
40
57
  return {
41
- type: "success",
58
+ type: 'success',
42
59
  config: {
43
60
  product: productResponse.product,
44
61
  },
@@ -46,6 +63,6 @@ async function loadProductServiceConfig(productSlug) {
46
63
  }
47
64
  catch (error) {
48
65
  console.error(`Failed to load product for slug "${productSlug}":`, error);
49
- return { type: "notFound" };
66
+ return { type: 'notFound' };
50
67
  }
51
68
  }
@@ -1,8 +1,8 @@
1
- import { type ServiceFactoryConfig } from "@wix/services-definitions";
2
- import type { Signal } from "./Signal";
3
- import { productsV3 } from "@wix/stores";
1
+ import { type ServiceFactoryConfig } from '@wix/services-definitions';
2
+ import type { Signal } from '../../Signal';
3
+ import { type V3Product } from '@wix/auto_sdk_stores_products-v-3';
4
4
  export interface RelatedProductsServiceAPI {
5
- relatedProducts: Signal<productsV3.V3Product[]>;
5
+ relatedProducts: Signal<V3Product[]>;
6
6
  isLoading: Signal<boolean>;
7
7
  error: Signal<string | null>;
8
8
  hasRelatedProducts: Signal<boolean>;
@@ -4,8 +4,8 @@ exports.RelatedProductsService = exports.RelatedProductsServiceDefinition = void
4
4
  exports.loadRelatedProductsServiceConfig = loadRelatedProductsServiceConfig;
5
5
  const services_definitions_1 = require("@wix/services-definitions");
6
6
  const signals_1 = require("@wix/services-definitions/core-services/signals");
7
- const stores_1 = require("@wix/stores");
8
- exports.RelatedProductsServiceDefinition = (0, services_definitions_1.defineService)("relatedProducts");
7
+ const auto_sdk_stores_products_v_3_1 = require("@wix/auto_sdk_stores_products-v-3");
8
+ exports.RelatedProductsServiceDefinition = (0, services_definitions_1.defineService)('relatedProducts');
9
9
  exports.RelatedProductsService = services_definitions_1.implementService.withConfig()(exports.RelatedProductsServiceDefinition, ({ getService, config }) => {
10
10
  const signalsService = getService(signals_1.SignalsServiceDefinition);
11
11
  const relatedProducts = signalsService.signal([]);
@@ -16,13 +16,13 @@ exports.RelatedProductsService = services_definitions_1.implementService.withCon
16
16
  isLoading.set(true);
17
17
  error.set(null);
18
18
  try {
19
- let relatedQuery = stores_1.productsV3.queryProducts().ne("_id", productId);
19
+ let relatedQuery = (0, auto_sdk_stores_products_v_3_1.queryProducts)().ne('_id', productId);
20
20
  const relatedResult = await relatedQuery.limit(limit).find();
21
21
  relatedProducts.set(relatedResult.items || []);
22
22
  hasRelatedProducts.set((relatedResult.items || []).length > 0);
23
23
  }
24
24
  catch (err) {
25
- const errorMessage = err instanceof Error ? err.message : "Failed to load related products";
25
+ const errorMessage = err instanceof Error ? err.message : 'Failed to load related products';
26
26
  error.set(errorMessage);
27
27
  relatedProducts.set([]);
28
28
  hasRelatedProducts.set(false);
@@ -1,40 +1,51 @@
1
- import { type ServiceFactoryConfig } from "@wix/services-definitions";
2
- import type { Signal, ReadOnlySignal } from "./Signal";
3
- import { productsV3 } from "@wix/stores";
1
+ import type { Signal, ReadOnlySignal } from '../../Signal';
2
+ import { type V3Product, type Variant, type ConnectedOption } from '@wix/auto_sdk_stores_products-v-3';
4
3
  export interface SelectedVariantServiceAPI {
4
+ selectedQuantity: Signal<number>;
5
5
  selectedChoices: Signal<Record<string, string>>;
6
6
  selectedVariantId: ReadOnlySignal<string | null>;
7
- currentVariant: ReadOnlySignal<productsV3.Variant | null>;
7
+ currentVariant: ReadOnlySignal<Variant | null>;
8
8
  currentPrice: ReadOnlySignal<string>;
9
9
  currentCompareAtPrice: ReadOnlySignal<string | null>;
10
10
  isInStock: ReadOnlySignal<boolean>;
11
11
  isPreOrderEnabled: ReadOnlySignal<boolean>;
12
+ preOrderMessage: ReadOnlySignal<string | null>;
12
13
  isLoading: Signal<boolean>;
13
14
  error: Signal<string | null>;
14
- variants: Signal<productsV3.Variant[]>;
15
+ variants: Signal<Variant[]>;
15
16
  options: Signal<Record<string, string[]>>;
16
17
  basePrice: Signal<number>;
17
18
  discountPrice: Signal<number | null>;
18
19
  isOnSale: Signal<boolean | null>;
19
- quantityAvailable: Signal<number>;
20
+ quantityAvailable: Signal<number | null>;
21
+ trackQuantity: Signal<boolean>;
20
22
  productId: Signal<string>;
21
- sku: Signal<string>;
22
23
  ribbonLabel: Signal<string | null>;
23
- product: ReadOnlySignal<productsV3.V3Product | null>;
24
- productOptions: ReadOnlySignal<productsV3.ConnectedOption[]>;
24
+ product: ReadOnlySignal<V3Product | null>;
25
+ productOptions: ReadOnlySignal<ConnectedOption[]>;
25
26
  currency: ReadOnlySignal<string>;
26
- selectedVariant: () => productsV3.Variant | null;
27
+ selectedVariant: () => Variant | null;
27
28
  finalPrice: () => number;
28
- isLowStock: (threshold?: number) => boolean;
29
+ isLowStock: () => boolean;
29
30
  setSelectedChoices: (choices: Record<string, string>) => void;
30
31
  addToCart: (quantity?: number, modifiers?: Record<string, any>) => Promise<void>;
31
32
  setOption: (group: string, value: string) => void;
33
+ setSelectedQuantity: (quantity: number) => void;
34
+ incrementQuantity: () => void;
35
+ decrementQuantity: () => void;
32
36
  selectVariantById: (id: string) => void;
33
- loadProductVariants: (data: productsV3.Variant[]) => void;
34
37
  resetSelections: () => void;
35
38
  getAvailableChoicesForOption: (optionName: string) => string[];
39
+ getChoiceInfo: (optionName: string, choiceValue: string) => {
40
+ isAvailable: boolean;
41
+ isInStock: boolean;
42
+ isPreOrderEnabled: boolean;
43
+ };
36
44
  isChoiceAvailable: (optionName: string, choiceValue: string) => boolean;
45
+ isChoiceInStock: (optionName: string, choiceValue: string) => boolean;
46
+ isChoicePreOrderEnabled: (optionName: string, choiceValue: string) => boolean;
37
47
  hasAnySelections: () => boolean;
48
+ IsAllVariantsAreOutOfStock: () => boolean;
38
49
  }
39
50
  export declare const SelectedVariantServiceDefinition: string & {
40
51
  __api: SelectedVariantServiceAPI;
@@ -45,7 +56,4 @@ export declare const SelectedVariantService: import("@wix/services-definitions")
45
56
  __api: SelectedVariantServiceAPI;
46
57
  __config: {};
47
58
  isServiceDefinition?: boolean;
48
- } & SelectedVariantServiceAPI, {
49
- product: productsV3.V3Product;
50
- }, import("@wix/services-definitions").ThreadMode.MAIN>;
51
- export declare function loadSelectedVariantServiceConfig(productSlug: string): Promise<ServiceFactoryConfig<typeof SelectedVariantService>>;
59
+ } & SelectedVariantServiceAPI, {}, import("@wix/services-definitions").ThreadMode.MAIN>;