@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.
- package/cjs/dist/enums/index.d.ts +2 -0
- package/cjs/dist/enums/index.js +18 -0
- package/cjs/dist/enums/social-platform-enums.d.ts +25 -0
- package/cjs/dist/enums/social-platform-enums.js +30 -0
- package/cjs/dist/enums/sort-enums.d.ts +17 -0
- package/cjs/dist/enums/sort-enums.js +21 -0
- package/cjs/dist/react/BuyNow.d.ts +2 -4
- package/cjs/dist/react/Category.d.ts +9 -11
- package/cjs/dist/react/Category.js +8 -23
- package/cjs/dist/react/Collection.d.ts +13 -3
- package/cjs/dist/react/Collection.js +30 -19
- package/cjs/dist/react/FilteredCollection.d.ts +45 -15
- package/cjs/dist/react/FilteredCollection.js +45 -12
- package/cjs/dist/react/PayNow.d.ts +2 -4
- package/cjs/dist/react/Product.d.ts +8 -35
- package/cjs/dist/react/Product.js +10 -31
- package/cjs/dist/react/ProductActions.d.ts +42 -0
- package/cjs/dist/react/ProductActions.js +83 -0
- package/cjs/dist/react/ProductModifiers.d.ts +16 -8
- package/cjs/dist/react/ProductModifiers.js +19 -10
- package/cjs/dist/react/ProductVariantSelector.d.ts +52 -68
- package/cjs/dist/react/ProductVariantSelector.js +58 -86
- package/cjs/dist/react/RelatedProducts.d.ts +8 -4
- package/cjs/dist/react/RelatedProducts.js +12 -7
- package/cjs/dist/react/SelectedVariant.d.ts +66 -0
- package/cjs/dist/react/SelectedVariant.js +52 -0
- package/cjs/dist/react/SocialSharing.d.ts +24 -31
- package/cjs/dist/react/SocialSharing.js +8 -2
- package/cjs/dist/react/Sort.d.ts +11 -14
- package/cjs/dist/react/Sort.js +10 -34
- package/cjs/dist/react/index.d.ts +11 -10
- package/cjs/dist/react/index.js +3 -2
- package/cjs/dist/services/buy-now-service.js +2 -2
- package/cjs/dist/services/catalog-options-service.d.ts +2 -2
- package/cjs/dist/services/catalog-options-service.js +39 -45
- package/cjs/dist/services/catalog-price-range-service.d.ts +2 -2
- package/cjs/dist/services/catalog-price-range-service.js +13 -11
- package/cjs/dist/services/category-service.d.ts +7 -6
- package/cjs/dist/services/category-service.js +15 -11
- package/cjs/dist/services/collection-service.d.ts +8 -8
- package/cjs/dist/services/collection-service.js +182 -67
- package/cjs/dist/services/filter-service.d.ts +1 -1
- package/cjs/dist/services/filter-service.js +15 -23
- package/cjs/dist/services/product-media-gallery-service.d.ts +3 -3
- package/cjs/dist/services/product-modifiers-service.d.ts +6 -8
- package/cjs/dist/services/product-modifiers-service.js +14 -7
- package/cjs/dist/services/product-service.d.ts +8 -7
- package/cjs/dist/services/product-service.js +36 -19
- package/cjs/dist/services/related-products-service.d.ts +4 -4
- package/cjs/dist/services/related-products-service.js +4 -4
- package/cjs/dist/services/selected-variant-service.d.ts +24 -16
- package/cjs/dist/services/selected-variant-service.js +271 -126
- package/cjs/dist/services/social-sharing-service.d.ts +2 -2
- package/cjs/dist/services/social-sharing-service.js +47 -63
- package/cjs/dist/services/sort-service.d.ts +3 -2
- package/cjs/dist/services/sort-service.js +8 -13
- package/dist/enums/index.d.ts +2 -0
- package/dist/enums/index.js +2 -0
- package/dist/enums/social-platform-enums.d.ts +25 -0
- package/dist/enums/social-platform-enums.js +27 -0
- package/dist/enums/sort-enums.d.ts +17 -0
- package/dist/enums/sort-enums.js +18 -0
- package/dist/react/BuyNow.d.ts +2 -4
- package/dist/react/Category.d.ts +9 -11
- package/dist/react/Category.js +10 -23
- package/dist/react/Collection.d.ts +13 -3
- package/dist/react/Collection.js +32 -21
- package/dist/react/FilteredCollection.d.ts +45 -15
- package/dist/react/FilteredCollection.js +49 -16
- package/dist/react/PayNow.d.ts +2 -4
- package/dist/react/Product.d.ts +8 -35
- package/dist/react/Product.js +11 -31
- package/dist/react/ProductActions.d.ts +42 -0
- package/dist/react/ProductActions.js +79 -0
- package/dist/react/ProductModifiers.d.ts +16 -8
- package/dist/react/ProductModifiers.js +22 -13
- package/dist/react/ProductVariantSelector.d.ts +52 -68
- package/dist/react/ProductVariantSelector.js +57 -84
- package/dist/react/RelatedProducts.d.ts +8 -4
- package/dist/react/RelatedProducts.js +15 -10
- package/dist/react/SelectedVariant.d.ts +66 -0
- package/dist/react/SelectedVariant.js +46 -0
- package/dist/react/SocialSharing.d.ts +24 -31
- package/dist/react/SocialSharing.js +11 -5
- package/dist/react/Sort.d.ts +11 -14
- package/dist/react/Sort.js +12 -34
- package/dist/react/index.d.ts +11 -10
- package/dist/react/index.js +11 -10
- package/dist/services/buy-now-service.js +2 -2
- package/dist/services/catalog-options-service.d.ts +2 -2
- package/dist/services/catalog-options-service.js +41 -47
- package/dist/services/catalog-price-range-service.d.ts +2 -2
- package/dist/services/catalog-price-range-service.js +15 -13
- package/dist/services/category-service.d.ts +7 -6
- package/dist/services/category-service.js +17 -13
- package/dist/services/collection-service.d.ts +8 -8
- package/dist/services/collection-service.js +188 -73
- package/dist/services/filter-service.d.ts +1 -1
- package/dist/services/filter-service.js +20 -28
- package/dist/services/product-media-gallery-service.d.ts +3 -3
- package/dist/services/product-modifiers-service.d.ts +6 -8
- package/dist/services/product-modifiers-service.js +16 -9
- package/dist/services/product-service.d.ts +8 -7
- package/dist/services/product-service.js +38 -21
- package/dist/services/related-products-service.d.ts +4 -4
- package/dist/services/related-products-service.js +6 -6
- package/dist/services/selected-variant-service.d.ts +24 -16
- package/dist/services/selected-variant-service.js +273 -127
- package/dist/services/social-sharing-service.d.ts +2 -2
- package/dist/services/social-sharing-service.js +49 -65
- package/dist/services/sort-service.d.ts +3 -2
- package/dist/services/sort-service.js +11 -16
- package/package.json +7 -1
- package/cjs/dist/react/ProductMediaGallery.d.ts +0 -128
- package/cjs/dist/react/ProductMediaGallery.js +0 -100
- package/dist/astro/BuyNowServiceContext.d.ts +0 -2
- package/dist/astro/BuyNowServiceContext.js +0 -6
- package/dist/astro/ManagerProviderContext.d.ts +0 -2
- package/dist/astro/ManagerProviderContext.js +0 -7
- package/dist/astro/withBuyButtonService.d.ts +0 -2
- package/dist/astro/withBuyButtonService.js +0 -16
- package/dist/react/CurrentCartServiceProvider.d.ts +0 -5
- package/dist/react/CurrentCartServiceProvider.js +0 -12
- package/dist/react/ProductMediaGallery.d.ts +0 -128
- package/dist/react/ProductMediaGallery.js +0 -92
- package/dist/react/VariantSelectorServiceProvider.d.ts +0 -7
- package/dist/react/VariantSelectorServiceProvider.js +0 -22
- package/dist/react/hookim/index.d.ts +0 -5
- package/dist/react/hookim/index.js +0 -22
- package/dist/services/CurrentCartService.d.ts +0 -18
- package/dist/services/CurrentCartService.js +0 -9
- package/dist/services/VariantSelectorServices.d.ts +0 -8
- package/dist/services/VariantSelectorServices.js +0 -20
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { type ServiceFactoryConfig } from
|
|
2
|
-
import type { Signal } from
|
|
3
|
-
import {
|
|
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<
|
|
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:
|
|
20
|
+
product: V3Product;
|
|
20
21
|
}, import("@wix/services-definitions").ThreadMode.MAIN>;
|
|
21
22
|
export type ProductServiceConfigResult = {
|
|
22
|
-
type:
|
|
23
|
+
type: 'success';
|
|
23
24
|
config: ServiceFactoryConfig<typeof ProductService>;
|
|
24
25
|
} | {
|
|
25
|
-
type:
|
|
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
|
|
8
|
-
exports.ProductServiceDefinition = (0, services_definitions_1.defineService)(
|
|
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
|
|
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:
|
|
55
|
+
return { type: 'notFound' };
|
|
39
56
|
}
|
|
40
57
|
return {
|
|
41
|
-
type:
|
|
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:
|
|
66
|
+
return { type: 'notFound' };
|
|
50
67
|
}
|
|
51
68
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type ServiceFactoryConfig } from
|
|
2
|
-
import type { Signal } from
|
|
3
|
-
import {
|
|
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<
|
|
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
|
|
8
|
-
exports.RelatedProductsServiceDefinition = (0, services_definitions_1.defineService)(
|
|
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 =
|
|
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 :
|
|
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 {
|
|
2
|
-
import type
|
|
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<
|
|
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<
|
|
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<
|
|
24
|
-
productOptions: ReadOnlySignal<
|
|
24
|
+
product: ReadOnlySignal<V3Product | null>;
|
|
25
|
+
productOptions: ReadOnlySignal<ConnectedOption[]>;
|
|
25
26
|
currency: ReadOnlySignal<string>;
|
|
26
|
-
selectedVariant: () =>
|
|
27
|
+
selectedVariant: () => Variant | null;
|
|
27
28
|
finalPrice: () => number;
|
|
28
|
-
isLowStock: (
|
|
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>;
|