@liquidcommerce/elements-sdk 2.6.0-beta.9 → 2.6.0-beta.90
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 +84 -2520
- package/dist/index.checkout.esm.js +16940 -0
- package/dist/index.esm.js +24189 -20939
- package/dist/ssr-stub.checkout.esm.js +18 -0
- package/dist/ssr-stub.esm.js +270 -0
- package/dist/types/auto-initialize/checkout.d.ts +2 -0
- package/dist/types/auto-initialize/shared-utils.d.ts +50 -0
- package/dist/types/{elements-base-client.d.ts → clients/base.d.ts} +15 -2
- package/dist/types/clients/builder.d.ts +3 -0
- package/dist/types/clients/checkout.d.ts +6 -0
- package/dist/types/{elements-client-helper.d.ts → clients/helpers.d.ts} +2 -1
- package/dist/types/clients/main.d.ts +3 -0
- package/dist/types/constants/core.constant.d.ts +2 -6
- package/dist/types/core/api/api-client.service.d.ts +20 -18
- package/dist/types/core/api/api-result.d.ts +19 -0
- package/dist/types/core/api/auth-client.service.d.ts +37 -13
- package/dist/types/core/api/http-client.service.d.ts +0 -8
- package/dist/types/core/base-component.service.d.ts +2 -1
- package/dist/types/core/client/actions/base-action.service.d.ts +22 -0
- package/dist/types/core/client/actions/client-address-action.service.d.ts +18 -0
- package/dist/types/core/client/actions/client-cart-action.service.d.ts +38 -0
- package/dist/types/core/client/actions/client-checkout-action.service.d.ts +69 -0
- package/dist/types/core/client/actions/client-product-action.service.d.ts +15 -0
- package/dist/types/core/client/client-action.service.d.ts +6 -74
- package/dist/types/core/client/client-config.service.d.ts +8 -5
- package/dist/types/core/google-tag-manager.service.d.ts +2 -1
- package/dist/types/core/logger/logger.service.d.ts +1 -1
- package/dist/types/core/pubsub/interfaces/address.interface.d.ts +3 -0
- package/dist/types/core/pubsub/interfaces/cart.interface.d.ts +1 -1
- package/dist/types/core/pubsub/interfaces/checkout.interface.d.ts +36 -51
- package/dist/types/core/pubsub/interfaces/core.interface.d.ts +11 -6
- package/dist/types/core/pubsub/pubsub.service.d.ts +1 -2
- package/dist/types/core/singleton-manager.service.d.ts +12 -8
- package/dist/types/core/store/interfaces/cart.interface.d.ts +2 -3
- package/dist/types/core/store/interfaces/checkout.interface.d.ts +18 -108
- package/dist/types/core/store/interfaces/core.interface.d.ts +12 -2
- package/dist/types/core/store/interfaces/metadata.interface.d.ts +11 -0
- package/dist/types/core/store/interfaces/product-list.interface.d.ts +30 -0
- package/dist/types/core/store/interfaces/product.interface.d.ts +1 -0
- package/dist/types/core/store/store.constant.d.ts +5 -0
- package/dist/types/core/store/store.service.d.ts +1 -0
- package/dist/types/core/telemetry/telemetry.service.d.ts +1 -0
- package/dist/types/enums/core.enum.d.ts +39 -1
- package/dist/types/enums/index.d.ts +0 -1
- package/dist/types/index.checkout.d.ts +8 -0
- package/dist/types/index.checkout.umd.d.ts +4 -0
- package/dist/types/index.d.ts +8 -3
- package/dist/types/interfaces/api/cart.interface.d.ts +12 -7
- package/dist/types/interfaces/api/checkout.interface.d.ts +239 -0
- package/dist/types/interfaces/api/index.d.ts +5 -0
- package/dist/types/interfaces/api/product-list.interface.d.ts +39 -0
- package/dist/types/interfaces/api/product.interface.d.ts +10 -4
- package/dist/types/interfaces/client.interface.d.ts +72 -0
- package/dist/types/interfaces/component.interface.d.ts +7 -0
- package/dist/types/interfaces/config.interface.d.ts +40 -0
- package/dist/types/interfaces/configs/address.interface.d.ts +1 -1
- package/dist/types/interfaces/configs/cart.interface.d.ts +1 -1
- package/dist/types/interfaces/configs/checkout.interface.d.ts +2 -1
- package/dist/types/interfaces/configs/global.interface.d.ts +5 -3
- package/dist/types/interfaces/configs/index.d.ts +1 -0
- package/dist/types/interfaces/configs/product-list.interface.d.ts +49 -0
- package/dist/types/interfaces/configs/product.interface.d.ts +3 -1
- package/dist/types/interfaces/injection.interface.d.ts +49 -0
- package/dist/types/modules/address/address.command.d.ts +2 -1
- package/dist/types/modules/address/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/cart/cart.commands.d.ts +4 -4
- package/dist/types/modules/cart/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/checkout/checkout.commands.d.ts +26 -10
- package/dist/types/modules/checkout/checkout.component.d.ts +2 -0
- package/dist/types/modules/checkout/components/checkout-billing.component.d.ts +2 -2
- package/dist/types/modules/checkout/components/checkout-completed.component.d.ts +3 -0
- package/dist/types/modules/checkout/components/checkout-header.component.d.ts +1 -0
- package/dist/types/modules/checkout/components/checkout-item-quantity.component.d.ts +3 -0
- package/dist/types/modules/checkout/components/checkout-items.component.d.ts +4 -3
- package/dist/types/modules/checkout/components/checkout-payment.component.d.ts +1 -1
- package/dist/types/modules/checkout/components/checkout-presale-countdown.component.d.ts +14 -1
- package/dist/types/modules/checkout/components/checkout-presale-expired.component.d.ts +7 -1
- package/dist/types/modules/checkout/components/checkout-stripe-form.component.d.ts +2 -1
- package/dist/types/modules/checkout/components/checkout-tips.component.d.ts +2 -2
- package/dist/types/modules/checkout/components/promo-pc-gc.component.d.ts +0 -2
- package/dist/types/modules/checkout/constant.d.ts +3 -0
- package/dist/types/modules/checkout/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/product/components/product-add-to-cart-section.component.d.ts +1 -0
- package/dist/types/modules/product/components/product-description.component.d.ts +1 -0
- package/dist/types/modules/product/components/product-image-carousel.component.d.ts +3 -0
- package/dist/types/modules/product/components/product-options.component.d.ts +2 -1
- package/dist/types/modules/product/components/product-retailers-carousel.component.d.ts +3 -0
- package/dist/types/modules/product/components/product-retailers-popup-list.component.d.ts +5 -2
- package/dist/types/modules/product/product.commands.d.ts +3 -3
- package/dist/types/modules/product/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/product-list/components/card-components/index.d.ts +5 -0
- package/dist/types/modules/product-list/components/card-components/product-badge.d.ts +9 -0
- package/dist/types/modules/product-list/components/card-components/product-button.d.ts +11 -0
- package/dist/types/modules/product-list/components/card-components/product-price-and-personalization.d.ts +13 -0
- package/dist/types/modules/product-list/components/card-components/product-quantity-selector.d.ts +10 -0
- package/dist/types/modules/product-list/components/card-components/product-sizes-list.d.ts +13 -0
- package/dist/types/modules/product-list/components/filter-components/index.d.ts +7 -0
- package/dist/types/modules/product-list/components/filter-components/product-list-apply-filter-button.d.ts +1 -0
- package/dist/types/modules/product-list/components/filter-components/product-list-chip.d.ts +5 -0
- package/dist/types/modules/product-list/components/filter-components/product-list-filters-chips.d.ts +13 -0
- package/dist/types/modules/product-list/components/filter-components/product-list-fulfillment-filter.d.ts +14 -0
- package/dist/types/modules/product-list/components/{product-list-filters-subcomponents/product-list-price-filter.components.d.ts → filter-components/product-list-price-filter.d.ts} +1 -1
- package/dist/types/modules/product-list/components/filter-components/product-list-toggle-filters.d.ts +7 -0
- package/dist/types/modules/product-list/components/index.d.ts +6 -2
- package/dist/types/modules/product-list/components/product-list-card-loading.component.d.ts +3 -1
- package/dist/types/modules/product-list/components/product-list-card.component.d.ts +39 -31
- package/dist/types/modules/product-list/components/product-list-engraving.component.d.ts +12 -0
- package/dist/types/modules/product-list/components/product-list-filters.component.d.ts +55 -36
- package/dist/types/modules/product-list/components/product-list-product-engraving-lines.component.d.ts +22 -0
- package/dist/types/modules/product-list/components/product-list-product-pre-cart.component.d.ts +50 -0
- package/dist/types/modules/product-list/components/product-list-search.component.d.ts +25 -0
- package/dist/types/modules/product-list/product-list-filter.utils.d.ts +8 -0
- package/dist/types/modules/product-list/product-list-query-params.utils.d.ts +3 -0
- package/dist/types/modules/product-list/product-list.commands.d.ts +23 -8
- package/dist/types/modules/product-list/product-list.component.d.ts +14 -47
- package/dist/types/modules/product-list/product-list.constants.d.ts +38 -0
- package/dist/types/modules/product-list/product-list.interface.d.ts +20 -35
- package/dist/types/modules/product-list/styles/product-list-card.style.d.ts +1 -0
- package/dist/types/modules/product-list/styles/product-list-filters.style.d.ts +1 -0
- package/dist/types/modules/product-list/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/theme-provider/constants/component-groupings.d.ts +1 -0
- package/dist/types/modules/theme-provider/constants/css-variable-mappings.d.ts +1 -1
- package/dist/types/modules/theme-provider/services/style-registry.service.d.ts +16 -0
- package/dist/types/modules/theme-provider/services/stylesheet-generator.service.d.ts +0 -1
- package/dist/types/modules/theme-provider/styles/register-styles.d.ts +1 -0
- package/dist/types/modules/theme-provider/theme-provider.service.d.ts +2 -2
- package/dist/types/modules/ui-components/drawer/drawer.component.d.ts +1 -0
- package/dist/types/modules/ui-components/engraving/engraving-form.component.d.ts +6 -1
- package/dist/types/modules/ui-components/engraving/engraving-view.component.d.ts +6 -1
- package/dist/types/modules/ui-components/input/index.d.ts +0 -1
- package/dist/types/modules/ui-components/input/input.component.d.ts +8 -1
- package/dist/types/modules/ui-components/lce-element/lce-element.component.d.ts +2 -1
- package/dist/types/modules/ui-components/promo-code-ticker/promo-code-ticker.component.d.ts +1 -1
- package/dist/types/modules/ui-components/ui.commands.d.ts +5 -1
- package/dist/types/ssr/stub.checkout.d.ts +6 -0
- package/dist/types/ssr/stub.d.ts +10 -0
- package/dist/types/static/icon/check.icon.d.ts +2 -0
- package/dist/types/static/icon/index.d.ts +1 -0
- package/dist/types/utils/dom-compat.d.ts +2 -0
- package/dist/types/utils/format.d.ts +0 -14
- package/dist/types/utils/product-selection.d.ts +16 -0
- package/dist/types/utils/product.d.ts +15 -0
- package/docs/v1/README.md +210 -0
- package/docs/v1/api/actions/address-actions.md +286 -0
- package/docs/v1/api/actions/cart-actions.md +357 -0
- package/docs/v1/api/actions/checkout-actions.md +525 -0
- package/docs/v1/api/actions/product-actions.md +204 -0
- package/docs/v1/api/client.md +517 -0
- package/docs/v1/api/configuration.md +532 -0
- package/docs/v1/api/injection-methods.md +292 -0
- package/docs/v1/api/typescript-types.md +419 -0
- package/docs/v1/api/ui-helpers.md +200 -0
- package/docs/v1/examples/advanced-patterns.md +199 -0
- package/docs/v1/examples/checkout-flow.md +90 -0
- package/docs/v1/examples/custom-theming.md +63 -0
- package/docs/v1/examples/multi-product-page.md +90 -0
- package/docs/v1/examples/simple-product-page.md +89 -0
- package/docs/v1/getting-started/concepts.md +502 -0
- package/docs/v1/getting-started/installation.md +328 -0
- package/docs/v1/getting-started/quick-start.md +405 -0
- package/docs/v1/guides/address-component.md +435 -0
- package/docs/v1/guides/best-practices.md +365 -0
- package/docs/v1/guides/cart-component.md +725 -0
- package/docs/v1/guides/checkout-component.md +670 -0
- package/docs/v1/guides/events.md +926 -0
- package/docs/v1/guides/product-component.md +731 -0
- package/docs/v1/guides/product-list-component.md +631 -0
- package/docs/v1/guides/theming.md +213 -0
- package/docs/v1/integration/angular.md +39 -0
- package/docs/v1/integration/laravel.md +41 -0
- package/docs/v1/integration/nextjs.md +69 -0
- package/docs/v1/integration/proxy-setup.md +106 -0
- package/docs/v1/integration/react.md +64 -0
- package/docs/v1/integration/vanilla-js.md +84 -0
- package/docs/v1/integration/vue.md +58 -0
- package/docs/v1/reference/browser-support.md +45 -0
- package/docs/v1/reference/error-handling.md +75 -0
- package/docs/v1/reference/performance.md +52 -0
- package/docs/v1/reference/troubleshooting.md +136 -0
- package/package.json +33 -37
- package/dist/types/elements-builder-client.d.ts +0 -2
- package/dist/types/elements-client.d.ts +0 -2
- package/dist/types/enums/cloud.enum.d.ts +0 -106
- package/dist/types/interfaces/cloud/catalog.interface.d.ts +0 -42
- package/dist/types/interfaces/cloud/checkout.interface.d.ts +0 -218
- package/dist/types/interfaces/cloud/core.interface.d.ts +0 -22
- package/dist/types/interfaces/cloud/index.d.ts +0 -4
- package/dist/types/interfaces/cloud/retailer.interface.d.ts +0 -67
- package/dist/types/interfaces/cloud/user.interface.d.ts +0 -100
- package/dist/types/interfaces/core.interface.d.ts +0 -111
- package/dist/types/modules/checkout/components/checkout.type.d.ts +0 -4
- package/dist/types/modules/product-list/components/product-list-filters-subcomponents/index.d.ts +0 -6
- package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-apply-filter-button.component.d.ts +0 -1
- package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-delivery-options-filter.components.d.ts +0 -16
- package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-search.component.d.ts +0 -16
- package/dist/types/modules/product-list/components/product-list-filters-subcomponents/product-list-toggle-filters.components.d.ts +0 -18
- package/dist/types/modules/theme-provider/styles/address/index.d.ts +0 -1
- package/dist/types/modules/theme-provider/styles/cart/index.d.ts +0 -1
- package/dist/types/modules/theme-provider/styles/checkout/index.d.ts +0 -1
- package/dist/types/modules/theme-provider/styles/product/index.d.ts +0 -3
- package/dist/types/modules/theme-provider/styles/product-list/index.d.ts +0 -1
- package/dist/types/modules/theme-provider/styles/ui/index.d.ts +0 -3
- package/dist/types/modules/ui-components/input/birthdate-input.component.d.ts +0 -53
- package/dist/types/utils/helper.d.ts +0 -28
- package/docs/ACTIONS.md +0 -1300
- package/docs/BROWSER_SUPPORT.md +0 -279
- package/docs/CONFIGURATION.md +0 -853
- package/docs/DOCUMENTATION_INDEX.md +0 -311
- package/docs/EVENTS.md +0 -798
- package/docs/PROXY.md +0 -228
- package/docs/THEMING.md +0 -592
- package/docs/TROUBLESHOOTING.md +0 -793
- package/umd/elements.js +0 -1
- /package/dist/types/{auto-initialize.d.ts → auto-initialize/main.d.ts} +0 -0
- /package/dist/types/modules/{theme-provider/styles/address → address/styles}/address.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/cart → cart/styles}/cart.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/checkout → checkout/styles}/checkout.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/product → product/styles}/image-carousel.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/product → product/styles}/product.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/product → product/styles}/retailers.style.d.ts +0 -0
- /package/dist/types/modules/product-list/components/{product-list-filters-subcomponents/product-list-checkbox-filter.components.d.ts → filter-components/product-list-checkbox-filter.d.ts} +0 -0
- /package/dist/types/modules/{theme-provider/styles/product-list → product-list/styles}/product-list.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/drawer.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/loading.style.d.ts +0 -0
- /package/dist/types/modules/{theme-provider/styles/ui → ui-components/styles}/promo-code-ticker.style.d.ts +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Browser Support
|
|
2
|
+
|
|
3
|
+
The Elements SDK requires modern browser features (Web Components + Shadow DOM). If you need to support older browsers, include polyfills.
|
|
4
|
+
|
|
5
|
+
## Minimum Versions
|
|
6
|
+
|
|
7
|
+
- Chrome 66+
|
|
8
|
+
- Firefox 60+
|
|
9
|
+
- Safari 12+
|
|
10
|
+
- Edge 79+
|
|
11
|
+
|
|
12
|
+
## Required Features
|
|
13
|
+
|
|
14
|
+
- Custom Elements (Web Components)
|
|
15
|
+
- Shadow DOM
|
|
16
|
+
- ES2018 JavaScript
|
|
17
|
+
- Fetch API
|
|
18
|
+
|
|
19
|
+
**LocalStorage (optional, recommended):** used as a fast path for session persistence (cart/address). When unavailable (incognito, Safari/Firefox private mode, in-app webviews, cross-origin iframes), the SDK falls back to a generated device fingerprint plus server-side session persistence, so functionality is preserved.
|
|
20
|
+
|
|
21
|
+
## Server-Side Rendering (SSR)
|
|
22
|
+
|
|
23
|
+
The SDK is browser-only, but it is safe to import in SSR frameworks (Next.js, Remix, Nuxt).
|
|
24
|
+
In non-browser environments, initialization is skipped. If you call the SDK on the server,
|
|
25
|
+
it returns `null` and logs a warning instead of throwing.
|
|
26
|
+
|
|
27
|
+
Call `Elements`, `ElementsCheckout`, or `ElementsBuilder` from client-only code (e.g., after mount)
|
|
28
|
+
to render components.
|
|
29
|
+
|
|
30
|
+
## Polyfills (Legacy Browsers)
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2/webcomponents-bundle.js"></script>
|
|
34
|
+
<script defer data-liquid-commerce-elements ...></script>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Notes
|
|
38
|
+
|
|
39
|
+
- Always load the SDK script with `defer` to avoid blocking page render.
|
|
40
|
+
- If you see Web Components errors in the console, add the polyfill before the SDK.
|
|
41
|
+
|
|
42
|
+
## Related Docs
|
|
43
|
+
|
|
44
|
+
- [Installation](../getting-started/installation.md)
|
|
45
|
+
- [Troubleshooting](./troubleshooting.md)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Error Handling
|
|
2
|
+
|
|
3
|
+
The SDK emits errors as events and (when applicable) throws a custom `SDKError`. Your app should handle both.
|
|
4
|
+
|
|
5
|
+
## SDKError
|
|
6
|
+
|
|
7
|
+
All SDK errors use a custom error class:
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
class SDKError extends Error {
|
|
11
|
+
constructor(message: string, reThrow?: boolean);
|
|
12
|
+
name: 'SDKError';
|
|
13
|
+
isSdk: boolean;
|
|
14
|
+
reThrow: boolean;
|
|
15
|
+
}
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Catching Errors
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
try {
|
|
22
|
+
// Structural input errors throw a catchable SDKError — e.g. a non-array
|
|
23
|
+
// argument or an empty array:
|
|
24
|
+
await window.LiquidCommerce.elements.injectProductElement([]);
|
|
25
|
+
} catch (error) {
|
|
26
|
+
if (error.name === 'SDKError') {
|
|
27
|
+
console.error('SDK Error:', error);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
> A well-formed entry with an invalid product identifier does **not** throw — it renders an error view inside the component and sets an error in the store. `try/catch` here only catches structural input errors (a non-array argument or an empty array).
|
|
33
|
+
|
|
34
|
+
## Error Isolation
|
|
35
|
+
|
|
36
|
+
Component failures are contained — a component that fails to load renders an error view and logs to the console without crashing your page. Action methods (like `cart.addProduct`) emit a `*_FAILED` event on failure, and re-throw only on an unexpected error; several soft-failure paths (e.g. no product found, no items added) emit the failure event but still resolve. Wrap calls in try/catch **and** listen for the corresponding `*_failed` event to reliably detect failures:
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
try {
|
|
40
|
+
await window.LiquidCommerce.elements.actions.cart.addProduct([/* invalid */]);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
console.log('Handled add-to-cart failure');
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Error Events
|
|
47
|
+
|
|
48
|
+
Listen for failure events to show user-friendly messages or trigger retries:
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
// Cart add failed
|
|
52
|
+
window.addEventListener('lce:actions.cart_product_add_failed', (event) => {
|
|
53
|
+
console.error('Failed to add:', event.detail.data.error);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Address failed
|
|
57
|
+
window.addEventListener('lce:actions.address_failed', (event) => {
|
|
58
|
+
console.error('Address error:', event.detail.data.error);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Checkout submit failed
|
|
62
|
+
window.addEventListener('lce:actions.checkout_submit_failed', (event) => {
|
|
63
|
+
console.error('Checkout failed:', event.detail.data.message);
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## UI Errors
|
|
68
|
+
|
|
69
|
+
When a component fails to load, the SDK renders an error view inside the container and logs details to the console.
|
|
70
|
+
|
|
71
|
+
## Related Docs
|
|
72
|
+
|
|
73
|
+
- [Events Guide](../guides/events.md)
|
|
74
|
+
- [Client API](../api/client.md)
|
|
75
|
+
- [Troubleshooting](./troubleshooting.md)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Performance Guide
|
|
2
|
+
|
|
3
|
+
The SDK is optimized out of the box. These tweaks help reduce load time and layout shift.
|
|
4
|
+
|
|
5
|
+
## 1) Load Non-Blocking
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<script defer data-liquid-commerce-elements ...></script>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 2) Use the Checkout-Only Build When Appropriate
|
|
12
|
+
|
|
13
|
+
If you only need checkout, use the tree-shaken build:
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
import { ElementsCheckout } from '@liquidcommerce/elements-sdk/checkout';
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 3) Inject Components When Needed
|
|
20
|
+
|
|
21
|
+
Inject above-the-fold products first, then load the rest:
|
|
22
|
+
|
|
23
|
+
```javascript
|
|
24
|
+
await client.injectProductElement([
|
|
25
|
+
{ containerId: 'hero-product', identifier: '001' }
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
setTimeout(async () => {
|
|
29
|
+
await client.injectProductElement([
|
|
30
|
+
{ containerId: 'related-1', identifier: '002' },
|
|
31
|
+
{ containerId: 'related-2', identifier: '003' }
|
|
32
|
+
]);
|
|
33
|
+
}, 1000);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## 4) Reserve Space to Prevent Layout Shift
|
|
37
|
+
|
|
38
|
+
```css
|
|
39
|
+
#product {
|
|
40
|
+
min-height: 600px;
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 5) Let the SDK Handle Media Optimization
|
|
45
|
+
|
|
46
|
+
The SDK automatically:
|
|
47
|
+
- Lazy loads carousel/thumbnail images (native `loading="lazy"`)
|
|
48
|
+
|
|
49
|
+
## Related Docs
|
|
50
|
+
|
|
51
|
+
- [Best Practices](../guides/best-practices.md)
|
|
52
|
+
- [Product Component](../guides/product-component.md)
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
Common setup issues and how to resolve them.
|
|
4
|
+
|
|
5
|
+
## SDK Script Not Loading
|
|
6
|
+
|
|
7
|
+
**Symptoms:** 404/CORS in Network tab, `window.LiquidCommerce.elements` is undefined.
|
|
8
|
+
|
|
9
|
+
**Fixes:**
|
|
10
|
+
- Verify the script URL and that the tag includes `data-liquid-commerce-elements`.
|
|
11
|
+
- Check ad blockers; proxy the API if needed.
|
|
12
|
+
- Confirm `data-env` is set correctly.
|
|
13
|
+
|
|
14
|
+
## Web Components Error
|
|
15
|
+
|
|
16
|
+
**Symptoms:** Console logs about Custom Elements or Shadow DOM.
|
|
17
|
+
|
|
18
|
+
**Fix:** Add the Web Components polyfill before the SDK:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2/webcomponents-bundle.js"></script>
|
|
22
|
+
<script defer data-liquid-commerce-elements ...></script>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Product Not Showing
|
|
26
|
+
|
|
27
|
+
**Symptoms:** Empty container or error view.
|
|
28
|
+
|
|
29
|
+
**Fixes:**
|
|
30
|
+
- Confirm the container ID matches your HTML.
|
|
31
|
+
- Verify the product identifier exists.
|
|
32
|
+
- Check for errors in the console or network tab.
|
|
33
|
+
|
|
34
|
+
## Cart Drawer Not Opening
|
|
35
|
+
|
|
36
|
+
**Symptoms:** Add to cart works but cart stays closed.
|
|
37
|
+
|
|
38
|
+
**Fixes:**
|
|
39
|
+
- Ensure a cart button is configured or call `window.LiquidCommerce.elements.actions.cart.openCart()`.
|
|
40
|
+
- Check for JavaScript errors in the console.
|
|
41
|
+
|
|
42
|
+
## Checkout Issues
|
|
43
|
+
|
|
44
|
+
**Symptoms:** Checkout fails to load or submit.
|
|
45
|
+
|
|
46
|
+
**Fixes:**
|
|
47
|
+
- Verify you are on a supported browser.
|
|
48
|
+
- Look for `checkout_*_failed` events in the console.
|
|
49
|
+
- Check for Stripe-related errors in the browser console.
|
|
50
|
+
|
|
51
|
+
## Address/Availability Problems
|
|
52
|
+
|
|
53
|
+
**Symptoms:** Products show unavailable or address prompts fail.
|
|
54
|
+
|
|
55
|
+
**Fixes:**
|
|
56
|
+
- Make sure the address is set and valid.
|
|
57
|
+
- Listen for `lce:actions.address_failed` to surface errors.
|
|
58
|
+
|
|
59
|
+
## SSR / Server-Side Rendering
|
|
60
|
+
|
|
61
|
+
**Symptoms:** Console warning "This SDK is designed for the browser. Calls made during SSR return null."
|
|
62
|
+
|
|
63
|
+
This is expected behavior. The SDK ships SSR stubs that are automatically resolved when bundled for Node.js (via the `node` export condition in `package.json`). There are two: the main build's stub (the `.` export) provides `Elements` and `ElementsBuilder` and warns with the `[LiquidCommerce Elements]` prefix; the checkout build's stub (the `./checkout` export) provides `ElementsCheckout` and warns with the `[LiquidCommerce Checkout]` prefix. Both re-export their types and enums for TypeScript compatibility and return `null` from the factory functions.
|
|
64
|
+
|
|
65
|
+
**No action required** — initialize the SDK in a client-only lifecycle hook (`useEffect`, `onMounted`, etc.) and the real client will activate in the browser.
|
|
66
|
+
|
|
67
|
+
## Styling Not Applied / CSS Not Working
|
|
68
|
+
|
|
69
|
+
**Symptoms:** Components render but custom styles are ignored, or host page styles leak into components.
|
|
70
|
+
|
|
71
|
+
**Cause:** Components use Shadow DOM for style isolation.
|
|
72
|
+
|
|
73
|
+
**Fixes:**
|
|
74
|
+
- Use `customTheme` in the client configuration to style components -- external CSS cannot penetrate Shadow DOM.
|
|
75
|
+
- For debugging, enable `development.openShadowDom: true` to make the shadow root open (`mode: 'open'`) so you can inspect component internals in DevTools (via `element.shadowRoot`). This does **not** disable style isolation — external CSS still cannot reach the components; use `customTheme` to style them. (Forced off in production.)
|
|
76
|
+
- Use the debug panel (`debugMode: 'panel'`) to inspect SDK logs, events, and GTM activity in real time — it surfaces a live stream of logger output and pubsub/GTM events (not component internal state), and auto-enables only in non-production environments.
|
|
77
|
+
|
|
78
|
+
## Component Not Updating After Data Changes
|
|
79
|
+
|
|
80
|
+
**Symptoms:** Component shows stale data after an action completes.
|
|
81
|
+
|
|
82
|
+
**Fixes:**
|
|
83
|
+
- Call `.rerender()` on the injected component to force a refresh:
|
|
84
|
+
```javascript
|
|
85
|
+
const components = client.getInjectedComponents();
|
|
86
|
+
components.get('product-1')?.rerender();
|
|
87
|
+
```
|
|
88
|
+
- Ensure you're not holding a stale reference -- call `getInjectedComponents()` again after injection.
|
|
89
|
+
|
|
90
|
+
## Cleanup / Memory Leaks
|
|
91
|
+
|
|
92
|
+
**Symptoms:** Components persist after navigating away in SPA, or duplicate components appear.
|
|
93
|
+
|
|
94
|
+
**Fixes:**
|
|
95
|
+
- Call `destroy()` on individual injected components when removing them:
|
|
96
|
+
```javascript
|
|
97
|
+
const component = client.getInjectedComponents().get('product-1');
|
|
98
|
+
component?.destroy();
|
|
99
|
+
```
|
|
100
|
+
- Call `client.destroy()` when tearing down the entire SDK (e.g., on SPA route change).
|
|
101
|
+
|
|
102
|
+
## Promo Ticker Not Showing
|
|
103
|
+
|
|
104
|
+
**Symptoms:** Promo ticker is configured but not visible.
|
|
105
|
+
|
|
106
|
+
**Fixes:**
|
|
107
|
+
- Verify all 5 required fields are set: `promoCode`, `text`, `separator`, `activeFrom`, `activeUntil`.
|
|
108
|
+
- Check that the current time falls between `activeFrom` and `activeUntil` (ISO 8601 UTC format).
|
|
109
|
+
- Ensure `global.layout.allowPromoCodes` is not set to `false`.
|
|
110
|
+
|
|
111
|
+
## Ad Blockers Blocking SDK Requests
|
|
112
|
+
|
|
113
|
+
**Symptoms:** Network requests fail, products don't load, but no code errors.
|
|
114
|
+
|
|
115
|
+
**Fixes:**
|
|
116
|
+
- Set up a proxy to route API requests through your own domain:
|
|
117
|
+
```javascript
|
|
118
|
+
proxy: { baseUrl: 'https://yoursite.com/api/elements-proxy' }
|
|
119
|
+
```
|
|
120
|
+
- See [Proxy Setup Guide](../integration/proxy-setup.md) for server-side implementation.
|
|
121
|
+
|
|
122
|
+
## Performance Issues on Large Product Lists
|
|
123
|
+
|
|
124
|
+
**Symptoms:** Slow rendering or high memory usage with many products.
|
|
125
|
+
|
|
126
|
+
**Fixes:**
|
|
127
|
+
- Reduce `rows` and `columns` to load fewer products per page.
|
|
128
|
+
- Limit the number of active filters.
|
|
129
|
+
- Use the checkout-only build on checkout pages to reduce bundle size.
|
|
130
|
+
|
|
131
|
+
## Related Docs
|
|
132
|
+
|
|
133
|
+
- [Installation](../getting-started/installation.md)
|
|
134
|
+
- [Browser Support](./browser-support.md)
|
|
135
|
+
- [Error Handling](./error-handling.md)
|
|
136
|
+
- [Proxy Setup](../integration/proxy-setup.md)
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "LiquidCommerce Elements SDK",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": "LiquidCommerce Team",
|
|
6
|
-
"version": "2.6.0-beta.
|
|
6
|
+
"version": "2.6.0-beta.90",
|
|
7
7
|
"homepage": "https://docs.liquidcommerce.co/elements-sdk",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -13,22 +13,28 @@
|
|
|
13
13
|
"url": "https://github.com/liquidcommerce/elements-sdk/issues"
|
|
14
14
|
},
|
|
15
15
|
"module": "./dist/index.esm.js",
|
|
16
|
-
"browser": "./umd/elements.js",
|
|
17
16
|
"types": "./dist/types/index.d.ts",
|
|
18
|
-
"packageManager": "pnpm@
|
|
17
|
+
"packageManager": "pnpm@11.8.0",
|
|
19
18
|
"exports": {
|
|
20
19
|
".": {
|
|
21
20
|
"types": "./dist/types/index.d.ts",
|
|
21
|
+
"node": "./dist/ssr-stub.esm.js",
|
|
22
|
+
"browser": "./dist/index.esm.js",
|
|
22
23
|
"import": "./dist/index.esm.js",
|
|
23
|
-
"browser": "./umd/elements.js",
|
|
24
24
|
"default": "./dist/index.esm.js"
|
|
25
25
|
},
|
|
26
|
+
"./checkout": {
|
|
27
|
+
"types": "./dist/types/index.checkout.d.ts",
|
|
28
|
+
"node": "./dist/ssr-stub.checkout.esm.js",
|
|
29
|
+
"browser": "./dist/index.checkout.esm.js",
|
|
30
|
+
"import": "./dist/index.checkout.esm.js",
|
|
31
|
+
"default": "./dist/index.checkout.esm.js"
|
|
32
|
+
},
|
|
26
33
|
"./package.json": "./package.json"
|
|
27
34
|
},
|
|
28
35
|
"files": [
|
|
29
36
|
"dist",
|
|
30
|
-
"
|
|
31
|
-
"docs",
|
|
37
|
+
"docs/v1",
|
|
32
38
|
"README.md",
|
|
33
39
|
"LICENSE"
|
|
34
40
|
],
|
|
@@ -39,21 +45,23 @@
|
|
|
39
45
|
"type": "module",
|
|
40
46
|
"sideEffects": [
|
|
41
47
|
"dist/index.esm.js",
|
|
48
|
+
"dist/index.checkout.esm.js",
|
|
42
49
|
"umd/elements.js",
|
|
43
|
-
"
|
|
44
|
-
"src/index.umd.ts"
|
|
50
|
+
"umd/elements-checkout.js"
|
|
45
51
|
],
|
|
46
52
|
"scripts": {
|
|
47
53
|
"build": "rollup -c",
|
|
48
|
-
"build:
|
|
54
|
+
"build:checkout": "rollup -c rollup.config.checkout.mjs",
|
|
55
|
+
"build:all": "pnpm build && pnpm build:checkout",
|
|
56
|
+
"build:demo-site": "pnpm build:all && mkdir -p demo-site/sdk && cp umd/elements.js umd/elements-checkout.js demo-site/sdk/",
|
|
49
57
|
"dev": "rollup -c -w",
|
|
50
58
|
"type-check": "tsc --noEmit",
|
|
51
59
|
"lint": "pnpm biome lint --write",
|
|
52
60
|
"format": "biome format --write",
|
|
53
61
|
"check": "pnpm biome check --write .",
|
|
54
|
-
"fl": "pnpm check && pnpm
|
|
62
|
+
"fl": "pnpm check && pnpm tsc --noEmit",
|
|
55
63
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
|
56
|
-
"clean": "rm -rf dist umd node_modules && pnpm install && pnpm build",
|
|
64
|
+
"clean": "rm -rf dist umd node_modules && pnpm install && pnpm build:all",
|
|
57
65
|
"prepublishOnly": "pnpm run build",
|
|
58
66
|
"deprecate:old": "npm deprecate @liquidcommerceteam/elements-sdk@\"*\" \"Package moved to @liquidcommerce/elements-sdk\"",
|
|
59
67
|
"prepare": "husky"
|
|
@@ -70,46 +78,34 @@
|
|
|
70
78
|
"embeddable commerce"
|
|
71
79
|
],
|
|
72
80
|
"devDependencies": {
|
|
73
|
-
"@biomejs/biome": "2.
|
|
74
|
-
"@commitlint/cli": "^
|
|
75
|
-
"@commitlint/config-conventional": "^
|
|
81
|
+
"@biomejs/biome": "^2.5.0",
|
|
82
|
+
"@commitlint/cli": "^21.0.2",
|
|
83
|
+
"@commitlint/config-conventional": "^21.0.2",
|
|
76
84
|
"@rollup/plugin-alias": "^6.0.0",
|
|
77
|
-
"@rollup/plugin-commonjs": "^29.0.
|
|
85
|
+
"@rollup/plugin-commonjs": "^29.0.3",
|
|
78
86
|
"@rollup/plugin-json": "^6.1.0",
|
|
79
87
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
80
88
|
"@rollup/plugin-replace": "^6.0.3",
|
|
81
|
-
"@rollup/plugin-terser": "^0.
|
|
89
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
82
90
|
"@semantic-release/changelog": "^6.0.3",
|
|
83
91
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
84
92
|
"@semantic-release/git": "^10.0.1",
|
|
85
|
-
"@semantic-release/github": "^12.0.
|
|
86
|
-
"@semantic-release/npm": "^13.1.
|
|
87
|
-
"@semantic-release/release-notes-generator": "^14.1.
|
|
93
|
+
"@semantic-release/github": "^12.0.8",
|
|
94
|
+
"@semantic-release/npm": "^13.1.5",
|
|
95
|
+
"@semantic-release/release-notes-generator": "^14.1.1",
|
|
88
96
|
"@types/core-js": "^2.5.8",
|
|
89
|
-
"@types/node": "^
|
|
90
|
-
"conventional-changelog
|
|
97
|
+
"@types/node": "^26.0.0",
|
|
98
|
+
"conventional-changelog": "^7.2.1",
|
|
91
99
|
"husky": "^9.1.7",
|
|
92
100
|
"process": "^0.11.10",
|
|
93
|
-
"rollup": "^4.
|
|
101
|
+
"rollup": "^4.62.2",
|
|
94
102
|
"rollup-obfuscator": "^4.1.1",
|
|
95
|
-
"rollup-plugin-typescript2": "^0.
|
|
96
|
-
"semantic-release": "^25.0.
|
|
103
|
+
"rollup-plugin-typescript2": "^0.37.0",
|
|
104
|
+
"semantic-release": "^25.0.5",
|
|
97
105
|
"ts-node": "^10.9.2",
|
|
98
|
-
"typescript": "
|
|
106
|
+
"typescript": "6.0.3"
|
|
99
107
|
},
|
|
100
108
|
"engines": {
|
|
101
109
|
"node": ">=22"
|
|
102
|
-
},
|
|
103
|
-
"pnpm": {
|
|
104
|
-
"peerDependencyRules": {
|
|
105
|
-
"ignoreMissing": []
|
|
106
|
-
},
|
|
107
|
-
"onlyBuiltDependencies": [
|
|
108
|
-
"@biomejs/biome",
|
|
109
|
-
"javascript-obfuscator"
|
|
110
|
-
],
|
|
111
|
-
"overrides": {
|
|
112
|
-
"@conventional-changelog/git-client@<2.0.0": ">=2.0.0"
|
|
113
|
-
}
|
|
114
110
|
}
|
|
115
111
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import type { ILiquidCommerceElementsBuilderClient, ILiquidCommerceElementsBuilderConfig } from '@/interfaces/core.interface';
|
|
2
|
-
export declare function ElementsBuilder(apiKey: string, config: ILiquidCommerceElementsBuilderConfig): Promise<ILiquidCommerceElementsBuilderClient | null>;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
export declare enum DAYS_OF_WEEK {
|
|
2
|
-
MONDAY = "monday",
|
|
3
|
-
TUESDAY = "tuesday",
|
|
4
|
-
WEDNESDAY = "wednesday",
|
|
5
|
-
THURSDAY = "thursday",
|
|
6
|
-
FRIDAY = "friday",
|
|
7
|
-
SATURDAY = "saturday",
|
|
8
|
-
SUNDAY = "sunday"
|
|
9
|
-
}
|
|
10
|
-
export declare const CART_EVENT_ENUM: {
|
|
11
|
-
readonly OOS: "OutOfStock";
|
|
12
|
-
readonly ITEMS_NOT_ADDED: "ItemsNotAdded";
|
|
13
|
-
readonly ITEMS_REQUESTED_NOT_ADDED: "ItemsRequestedNotAdded";
|
|
14
|
-
readonly ITEM_NOT_ENGRAVED: "ItemEngravingError";
|
|
15
|
-
readonly ADDRESS_CHANGE: "AddressChange";
|
|
16
|
-
readonly LOCATION_AVAILABILITY: "LocationAvailability";
|
|
17
|
-
readonly PARTNER_PRODUCT_CONFIGS: "PartnerProductConfigs";
|
|
18
|
-
readonly REMOVED_EXISTING_ITEMS: "RemovedExistingCartItems";
|
|
19
|
-
readonly RETAILER_MIN: "RetailerMinNotMet";
|
|
20
|
-
readonly NO_ITEMS_IN_CART: "NoItemsInCart";
|
|
21
|
-
readonly INVALID_ID: "InvalidId";
|
|
22
|
-
readonly NO_ID: "NoId";
|
|
23
|
-
readonly CART_CHECKOUT_PROCESSED: "CartCheckoutProcessed";
|
|
24
|
-
readonly NEW_CART: "NewCart";
|
|
25
|
-
readonly DEFAULT: "CartError";
|
|
26
|
-
readonly ITEM_QTY_CHANGE: "ItemQuantityChange";
|
|
27
|
-
readonly ITEM_ID_NOT_FOUND: "ItemIdNotFound";
|
|
28
|
-
readonly ITEMS_REMOVED: "ItemsRemoved";
|
|
29
|
-
readonly COUPON_PROCESSING_ERROR: "CouponProcessingError";
|
|
30
|
-
readonly COUPON_NOT_FOUND: "CouponNotFound";
|
|
31
|
-
readonly COUPON_EXPIRED: "CouponExpired";
|
|
32
|
-
readonly NO_APPLICABLE_DISCOUNT: "NoApplicableDiscount";
|
|
33
|
-
readonly COUPON_NOT_STARTED: "CouponNotStarted";
|
|
34
|
-
readonly MINIMUM_ORDER_VALUE_NOT_MET: "MinimumOrderValueNotMet";
|
|
35
|
-
readonly MINIMUM_ORDER_UNITS_NOT_MET: "MinimumOrderUnitsNotMet";
|
|
36
|
-
readonly MINIMUM_DISTINCT_ITEMS_NOT_MET: "MinimumDistinctItemsNotMet";
|
|
37
|
-
readonly QUOTA_EXCEEDED: "QuotaExceeded";
|
|
38
|
-
readonly USER_LIMIT_EXCEEDED: "UserLimitExceeded";
|
|
39
|
-
readonly NOT_FIRST_PURCHASE: "NotFirstPurchase";
|
|
40
|
-
readonly INVALID_COUPON: "InvalidCoupon";
|
|
41
|
-
readonly INVALID_MEMBERSHIP: "InvalidMembership";
|
|
42
|
-
readonly INVALID_DOMAIN: "InvalidDomain";
|
|
43
|
-
readonly INVALID_REQUIREMENTS: "InvalidRequirements";
|
|
44
|
-
readonly INVALID_ORGANIZATION: "InvalidOrganization";
|
|
45
|
-
readonly PRODUCT_NOT_ELIGIBLE: "ProductNotEligible";
|
|
46
|
-
readonly NOT_ENOUGH_PREVIOUS_ORDERS: "NotEnoughPreviousOrders";
|
|
47
|
-
readonly PRESALE_ITEMS_NOT_ALLOWED: "PresaleItemsNotAllowed";
|
|
48
|
-
readonly PRESALE_LIMIT_EXCEEDED: "PresaleLimitExceeded";
|
|
49
|
-
readonly PRESALE_NOT_STARTED: "PresaleNotStarted";
|
|
50
|
-
readonly PRESALE_EXPIRED: "PresaleExpired";
|
|
51
|
-
readonly PRESALE_MIXED_CART: "PresaleMixedCart";
|
|
52
|
-
readonly RETAILER_DOES_NOT_ALLOW_PROMOS: "RetailerDoesNotAllowPromos";
|
|
53
|
-
readonly RETAILERS_DO_NOT_ALLOW_PROMOS: "RetailersDoNotAllowPromos";
|
|
54
|
-
};
|
|
55
|
-
export type CartEventEnum = (typeof CART_EVENT_ENUM)[keyof typeof CART_EVENT_ENUM];
|
|
56
|
-
export declare const CHECKOUT_EVENT_ENUM: {
|
|
57
|
-
readonly ERROR_PROCESSING_GIFT_CARDS: "ErrorProcessingGiftCards";
|
|
58
|
-
readonly INVALID_GIFT_CARD_CODE: "InvalidGiftCardCodes";
|
|
59
|
-
readonly INVALID_GIFT_CARD_PARTNER: "InvalidGiftCardPartner";
|
|
60
|
-
readonly INACTIVE_GIFT_CARD: "InactiveGiftCard";
|
|
61
|
-
readonly GIFT_CARD_ALREADY_IN_USE: "GiftCardAlreadyInUse";
|
|
62
|
-
readonly GIFT_CARD_EXPIRED: "GiftCardExpired";
|
|
63
|
-
readonly GIFT_CARD_BALANCE_DEPLETED: "GiftCardBalanceDepleted";
|
|
64
|
-
readonly RETAILER_ONDEMAND_HOURS_NOT_AVAILABLE: "RetailerOnDemandHoursNotAvailable";
|
|
65
|
-
readonly ITEM_QTY_CHANGE: "ItemQuantityChange";
|
|
66
|
-
readonly MAX_QUANTITY_PER_ORDER_EXCEEDED: "MaxQuantityPerOrderExceeded";
|
|
67
|
-
readonly RETAILER_DOES_NOT_ALLOW_PROMOS: "RetailerDoesNotAllowPromos";
|
|
68
|
-
readonly RETAILERS_DO_NOT_ALLOW_PROMOS: "RetailersDoNotAllowPromos";
|
|
69
|
-
readonly RETAILER_DOES_NOT_ALLOW_GIFT_CARDS: "RetailerDoesNotAllowGiftCards";
|
|
70
|
-
readonly RETAILERS_DO_NOT_ALLOW_GIFT_CARDS: "RetailersDoNotAllowGiftCards";
|
|
71
|
-
};
|
|
72
|
-
export type CheckoutEventEnum = (typeof CHECKOUT_EVENT_ENUM)[keyof typeof CHECKOUT_EVENT_ENUM];
|
|
73
|
-
export declare const ENUM_ADDRESS_TYPE: {
|
|
74
|
-
readonly SHIPPING: "shipping";
|
|
75
|
-
readonly BILLING: "billing";
|
|
76
|
-
};
|
|
77
|
-
export type AddressType = (typeof ENUM_ADDRESS_TYPE)[keyof typeof ENUM_ADDRESS_TYPE];
|
|
78
|
-
export declare enum ENUM_FILTER_KEYS {
|
|
79
|
-
BRANDS = "brands",
|
|
80
|
-
FLAVOR = "flavor",
|
|
81
|
-
FULFILLMENT = "fulfillment",
|
|
82
|
-
TAGS = "tags",
|
|
83
|
-
REGION = "region",
|
|
84
|
-
VARIETY = "variety",
|
|
85
|
-
ENGRAVING = "engraving",
|
|
86
|
-
PRICE = "price",
|
|
87
|
-
PRESALE = "presale",
|
|
88
|
-
AVAILABILITY = "availability",
|
|
89
|
-
CATEGORIES = "categories",
|
|
90
|
-
SIZES = "sizes",
|
|
91
|
-
COLORS = "colors",
|
|
92
|
-
APPELLATION = "appellation",
|
|
93
|
-
COUNTRY = "country",
|
|
94
|
-
VINTAGE = "vintage",
|
|
95
|
-
MATERIALS = "materials",
|
|
96
|
-
COLLECTION_TAGS = "collectionTags"
|
|
97
|
-
}
|
|
98
|
-
export interface IFilterValue {
|
|
99
|
-
value: string;
|
|
100
|
-
count: number;
|
|
101
|
-
}
|
|
102
|
-
export type FacetFilterKeys = ENUM_FILTER_KEYS.BRANDS | ENUM_FILTER_KEYS.FLAVOR | ENUM_FILTER_KEYS.REGION | ENUM_FILTER_KEYS.VARIETY | ENUM_FILTER_KEYS.ENGRAVING | ENUM_FILTER_KEYS.PRESALE | ENUM_FILTER_KEYS.PRICE | ENUM_FILTER_KEYS.AVAILABILITY | ENUM_FILTER_KEYS.CATEGORIES | ENUM_FILTER_KEYS.SIZES | ENUM_FILTER_KEYS.COLORS | ENUM_FILTER_KEYS.APPELLATION | ENUM_FILTER_KEYS.COUNTRY | ENUM_FILTER_KEYS.VINTAGE | ENUM_FILTER_KEYS.MATERIALS | ENUM_FILTER_KEYS.TAGS;
|
|
103
|
-
export interface IFilterSchema {
|
|
104
|
-
filterCategory: FacetFilterKeys;
|
|
105
|
-
filterValues: IFilterValue[];
|
|
106
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { IProduct, IRetailer } from '@/interfaces/api/product.interface';
|
|
2
|
-
export declare enum ENUM_NAVIGATION_ORDER_DIRECTION_TYPE {
|
|
3
|
-
ASC = "asc",
|
|
4
|
-
DESC = "desc"
|
|
5
|
-
}
|
|
6
|
-
export declare enum ENUM_ORDER_BY {
|
|
7
|
-
PRICE = "price"
|
|
8
|
-
}
|
|
9
|
-
export interface ICatalogParams {
|
|
10
|
-
search?: string;
|
|
11
|
-
pageToken?: string;
|
|
12
|
-
entity?: string;
|
|
13
|
-
page?: number;
|
|
14
|
-
perPage?: number;
|
|
15
|
-
visitorId?: string;
|
|
16
|
-
retailers?: string[];
|
|
17
|
-
orderBy?: ENUM_ORDER_BY;
|
|
18
|
-
orderDirection?: ENUM_NAVIGATION_ORDER_DIRECTION_TYPE;
|
|
19
|
-
filters?: Array<Record<any, any>>;
|
|
20
|
-
[key: string]: any;
|
|
21
|
-
}
|
|
22
|
-
export interface ICatalog {
|
|
23
|
-
retailers: Record<string, IRetailer>;
|
|
24
|
-
products?: IProduct[];
|
|
25
|
-
navigation?: INavigationSchema;
|
|
26
|
-
}
|
|
27
|
-
export interface ICursorSchema {
|
|
28
|
-
nextPageToken: string;
|
|
29
|
-
previousPageToken: string;
|
|
30
|
-
}
|
|
31
|
-
export interface INavigationSchema {
|
|
32
|
-
id: string;
|
|
33
|
-
correctedQuery: string;
|
|
34
|
-
attributionToken: string;
|
|
35
|
-
currentPage: number;
|
|
36
|
-
totalPages: number;
|
|
37
|
-
totalCount: number;
|
|
38
|
-
availableOrderBy: ENUM_ORDER_BY[];
|
|
39
|
-
availableOrderDirection: ENUM_NAVIGATION_ORDER_DIRECTION_TYPE[];
|
|
40
|
-
cursor: ICursorSchema;
|
|
41
|
-
filters: any[];
|
|
42
|
-
}
|