@scayle/storefront-nuxt
8.47.0
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 - Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.47.0
- Minor
- Enhanced basket RPC methods to support order custom data functionality.
 
All basket RPC methods now integrate with thegetOrderCustomDataRPC method to fetch and include order custom data in SAPI requests. This enables developers to attach order-specific custom metadata, business rules, or additional context to orders throughout the basket lifecycle. The existingorderCustomDataparameter is deprecated and will be removed in the next major version. For now, both parameters are supported and merged together, where attributes from the parameter take precedence.
On default, this RPC returns an empty object but can be overridden by the developer to return a custom object.
ExamplegetOrderCustomDataRPC:
For further information, please refer to the Overriding Core RPC Methods.- Updated all basket RPC methods to pass the customer access token to the SAPI client, enabling the 
X-Customer-Tokenheader for promotion validation. 
The customer access token is now automatically included in basket requests when available. If the token has expired, it will be omitted from the request to prevent validation errors. 
8.46.0
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.46.0
- Minor
- Added 
getAttributeValuesByGroupIdfunction to theattributeHelpershelper for retrieving attribute values by their numeric attribute group ID. 
This function allows you to retrieve attribute values filtered by a specific attribute group ID, providing a more targeted approach when working with grouped product attributes. The existinggetAttributeValuesfunction has been renamed togetAttributeValuesByNameto better differentiate between the two lookup methods.Usage Examples
Both functions return an array of values for consistency, making them safe to use in iterations. For single-select attributes, the value is wrapped in an array. For multi-select attributes, the array is returned directly.Looking up by name (existing, now renamed):
Looking up by group ID (new):
When to Use Each Function
getAttributeValuesByName: Use when you know the attribute name key (e.g., 'color', 'size'). This is the most common use case in application code.getAttributeValuesByGroupId: Use when you have the numeric attribute group ID from the SCAYLE API, such as when processing API configurations, handling dynamic attribute mappings, or working with attribute group references.
 - Added 
 
8.45.1
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] - Updated SCAYLE Resource Center references
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.45.1
- Patch
- Updated SCAYLE Resource Center references
 
 
8.45.0
Minor Changes
- The API routes structure was updated for multi-shop environments. The 
apiBasePathoption was removed from per-shop configuration but remains configurable at the module level.
NOTE: Update yournuxt.config.tsto ensurerouteRulesfor/api/**uses the manually setapiBasePathvalue to prevent caching issues with session-related RPC's and potentially failing requests!
Before (per-shop apiBasePath):
After (module-level apiBasePath):
Additionally, the types for the Storefront module options and Storefront runtime configuration have been cleaned up to properly reflect which settings can be set at runtime and which cannot. This clarifies the distinction between configuration that is static (set at build/module level) and configuration that is dynamic (set at runtime), improving type safety and developer experience. 
Patch Changes
Dependencies
@scayle/storefront-core v8.45.0
- No changes in this release.
 
8.44.2
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.44.2
- No changes in this release.
 
8.44.1
Patch Changes
- Use latest 
[email protected]for build. Compatibility with previous version has not changed and is specified via packagepeerDependenciesand Nuxtcompatibilityflag. 
Dependencies
@scayle/storefront-core v8.44.1
- No changes in this release.
 
8.44.0
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.44.0
- Minor
- Export 
unwrap,generateBasketKey,generateWishlistKeyandUnstorageCache. 
 - Export 
 
8.43.4
Patch Changes
Dependencies
@scayle/storefront-core v8.43.4
- No changes in this release.
 
8.43.3
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.43.3
- No changes in this release.
 
8.43.2
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.43.2
- No changes in this release.
 
8.43.1
Patch Changes
Dependencies
@scayle/storefront-core v8.43.1
- No changes in this release.
 
8.43.0
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.43.0
- Minor
- Added an export of the new promotion type 
ComboDealEffect 
This type is also included in thePromotionEffectTypetype and can be used to check if the promotion is of typeComboDealEffect.
Example: - Added an export of the new promotion type 
 
8.42.2
Patch Changes
Dependencies
@scayle/storefront-core v8.42.2
- No changes in this release.
 
8.42.1
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.42.1
- Patch
- Increased the default cache timeout to 1000ms to reduce cases of prematurely skipping the cache.
 
 
8.42.0
Minor Changes
- Added 
promotionsfield toBasketItemtype to support multiple promotions per basket item.
Thepromotionsfield is an array ofBasketItemPromotionobjects. With the introduction of the newpromotionsarray field, thepromotionfield is now deprecated.
Before:
After:
For more details, see the Storefront API documentation. - Updated the parameters of the RPC functions 
updateBasketItemRpcandupdateBasketItemwith the newpromotionsattribute.
This attribute is used to support multiple promotions on basket items.
Before:
After:
For more details, see the Add a variant and Update an item guides. 
Patch Changes
Dependencies
@scayle/storefront-core v8.42.0
- Minor
- Added 
promotionsfield toBasketItemtype to support multiple promotions per basket item. 
Thepromotionsfield is an array ofBasketItemPromotionobjects. With the introduction of the newpromotionsarray field, thepromotionfield is now deprecated.
Before:
After:
For more details, see the Storefront API documentation. - Added 
 
8.41.4
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.41.4
- No changes in this release.
 
8.41.3
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.41.3
- Patch
- Fixed the case where a 
postLoginfunction was inadvertently registered as an RPC method. 
 - Fixed the case where a 
 
8.41.2
Patch Changes
Dependencies
@scayle/storefront-core v8.41.2
- No changes in this release.
 
8.41.1
Patch Changes
Dependencies
@scayle/storefront-core v8.41.1
- Patch
- Improved logging around cache errors to provide more details.
 
 
8.41.0
Patch Changes
Dependencies
@scayle/storefront-core v8.41.0
- Minor
- Introduce a new 
updatePromotionsRPC method to wrap the Storefront API "Bulk update promotions" endpoint. This allows to update all promotions applied to basket's items in a single API call. For more details, see the Storefront API documentation. 
 - Introduce a new 
 
8.40.0
Minor Changes
- Deprecated 
relativeReductionsinuseProductPricein favor ofappliedReductions.
Previously,relativeReductionsdid not return absolute reductions in the correct format. The newappliedReductionsproperty returns all reductions as raw values, leaving formatting responsibilities to the component.
Before:
After: 
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.40.0
- No changes in this release.
 
8.39.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.39.1
- Patch
- Added 
'token'and'code'to the list of defaultblacklistedKeys. This will more proactively redact server logs to prevent leaked data. 
 - Added 
 
8.39.0
Minor Changes
- OTEL When recording span exceptions, also include the 
error.causeif it exists. 
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
Dependencies
@scayle/storefront-core v8.39.0
- Patch
- Use a custom error type for OAuth API errors to improve troubleshooting OAuth errors.
 
 
8.38.4
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.38.4
- No changes in this release.
 
8.38.3
Patch Changes
Dependencies
@scayle/storefront-core v8.38.3
- Patch
- Refactored internals of 
getOrderDataByCbd. This change has no noticable impact. 
 - Refactored internals of 
 
8.38.2
Patch Changes
- Fixed a compatibility issue with the Nuxt 4 directory structure where the 
rpcDirwas not resolved correctly. 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.38.2
- No changes in this release.
 
8.38.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.38.1
- Patch
- Resolved an issue where 
Paginationwas not exported correctly as atype. 
 - Resolved an issue where 
 
8.38.0
Minor Changes
- Refined the 
ContextWithoutSessiontype to accurately represent actual data:wishlistKey,basketKey, andsessionIdare now typed asstringinstead ofundefined, since even logged-out users have these values set. 
Patch Changes
Dependencies
@scayle/storefront-core v8.38.0
- Minor
- Refined the 
ContextWithoutSessiontype to accurately represent actual data:wishlistKey,basketKey, andsessionIdare now typed asstringinstead ofundefined, since even logged-out users have these values set. - Made 
getCheckoutTokencallable by logged-in and not logged-in users. When called by a not logged-in user, the RPC returns only thecheckoutJWT. For logged-in users, it continues to return both thecheckoutJWTand a refreshedaccessTokenas before. 
 - Refined the 
 
8.37.0
Minor Changes
- Created the composable 
useCampaignwhich uses the RPCgetCampaignto fetch the first active campaign 
Patch Changes
Dependencies
@scayle/storefront-core v8.37.0
- Minor
- The 
whereparameter for thegetProductsByCategoryandgetProductsCountRPCs was extended to include the previously missing optionssellableAt,hasCampaignReduction, andcontainsSearch. 
 - The 
 - Patch
- Added missing export of the RPC 
getCampaign 
 - Added missing export of the RPC 
 
8.36.0
Patch Changes
Dependencies
@scayle/storefront-core v8.36.0
- Minor
- Created a new RPC method 
getCampaignto retrieve the first active campaign. 
More details can be found in the official SCAYLE Resource Center under API Guides / Storefront API / Campaigns / List Campaigns. - Created a new RPC method 
 
8.35.0
Patch Changes
Dependencies
@scayle/storefront-core v8.35.0
- Minor
- Removed optional key 
fbookfromShopUserinterface - Renamed incorrectly formatted function 
getBackurlFromBreadcrumbstogetBackURLFromBreadcrumbs 
 - Removed optional key 
 - Patch
- Renamed interface incorrectly named 
IdenfitierFilterItemWithValuestoIdentifierFilterItemWithValues 
 - Renamed interface incorrectly named 
 
8.34.1
Patch Changes
- Updated dependency 
zod@^3.23.8tozod@^4.0.0 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.34.1
- No changes in this release.
 
8.34.0
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.34.0
- Minor
- Added export of 
Paginationtype. - Breaking: Improved type safety of the 
mergeBasketsRPC method. The method now returns the correct typePromise<BasketResponse<Product, Variant> | AddManyItemsBasketResponse<Product, Variant> | undefined>instead ofany. 
 - Added export of 
 
8.33.2
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/storefront-core@workspace:* - Updated dependency 
@scayle/unstorage-compression-driver@^1.0.0to@scayle/unstorage-compression-driver@workspace:* - Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.33.2
- Patch
- Updated dependency 
@scayle/[email protected]to@scayle/storefront-api@workspace:* - Updated dependency 
@scayle/[email protected]to@scayle/unstorage-scayle-kv-driver@workspace:* 
 - Updated dependency 
 
8.33.1
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/storefront-core@workspace:* - Updated dependency 
@scayle/unstorage-compression-driver@^1.0.0to@scayle/unstorage-compression-driver@workspace:* - Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.33.1
- Patch
- Updated dependency 
@scayle/[email protected]to@scayle/storefront-api@workspace:* - Updated dependency 
@scayle/[email protected]to@scayle/unstorage-scayle-kv-driver@workspace:* 
 - Updated dependency 
 
8.33.0
Patch Changes
Dependencies
@scayle/storefront-core v8.33.0
- Minor
- Added test factories for order and all related types.
 
It is now possible to build orders with factory functions for testing purposes. This will reduce the amount of boilerplate code needed to create test data. 
8.32.1
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/[email protected] 
Dependencies
@scayle/storefront-core v8.32.1
- No changes in this release.
 
8.32.0
Patch Changes
Dependencies
@scayle/storefront-core v8.32.0
- Minor
- Added 
minReductionandmaxReductionfilter parameters to theFetchProductsCountParams.wheretype and updated thegetProductsCountRPC method to accept and handle these new reduction-based filtering conditions. 
 - Added 
 - Patch
- Fixed the 
getFiltersRPC method to properly applyminReductionandmaxReductionfilter parameters when fetching product counts. 
 - Fixed the 
 
8.31.0
Patch Changes
Dependencies
@scayle/storefront-core v8.31.0
- Minor
- Added 
minReductionandmaxReductionfilter parameters toFetchProductsByCategoryParams.whereandFetchFiltersParams.wheretypes, and updated thegetProductsByCategoryandgetFiltersRPC methods to accept and handle these new reduction-based filtering conditions. 
 - Added 
 
8.30.3
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.30.3
- No changes in this release.
 
8.30.2
Patch Changes
Dependencies
@scayle/storefront-core v8.30.2
- Patch
- Fixed an incorrect internal import for category related RPC methods. This should resolve potential type issues.
 
 
8.30.1
Patch Changes
Dependencies
@scayle/storefront-core v8.30.1
- No changes in this release.
 
8.30.0
Patch Changes
Dependencies
@scayle/storefront-core v8.30.0
- Minor
- Added 
defineRpcHandlerutility function that enhances RPC handlers with type-safe metadata for improved registration and invocation of RPC handlers. While defining RPC handlers without this utility remains supported, its usage is recommended and may become mandatory in a future major release. 
Existing RPC handlers can be easily migrated to usedefineRpcHandlerby passing the existing handler todefineRpcHandler. - Added 
 - Patch
- Removed unused 
AwaitedandPromiseReturnTypetypes. 
 - Removed unused 
 
8.29.0
Patch Changes
Dependencies
@scayle/storefront-core v8.29.0
- Minor
- Added an 
includeProductSortingboolean parameter to all category RPC method endpoints (getRootCategories,getCategoryByPath,getCategoriesByPath,getCategoryById,getCategoryTree). This flag allows consumers to retrieve product sorting data, including thesmartSortingKeyandcustomSortingKeyproperties. Developers can leverage this data to seamlessly apply smart sorting keys on the product listing page by passing those parameters when fetching products. - Added an optional 
hideEmptyCategoriesparameter togetCategoryTree. When enabled, the product count for each category is retrieved, and categories (including their children) without any products are removed. Enabling this option may increase response times, especially for large category trees. 
or - Added an 
 
8.28.7
Patch Changes
Dependencies
@scayle/storefront-core v8.28.7
- Patch
- Fixed the return type of 
flattenFieldSetto reflect the flattened field set. 
 - Fixed the return type of 
 
8.28.6
Patch Changes
Dependencies
@scayle/storefront-core v8.28.6
- No changes in this release.
 
8.28.5
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.28.5
- No changes in this release.
 
8.28.4
Patch Changes
- Added dependency 
utility-types@^3.11.0 
Dependencies
@scayle/storefront-core v8.28.4
- No changes in this release.
 
8.28.3
Patch Changes
- Updated 
FormatCurrencyOptionsto markcurrencyas an optional param. Whencurrencyis not provided, the currency code for the current shop will be used. However, attempting to use this fallback could result in a TypeScript error due to the incorrect typing. 
Dependencies
@scayle/storefront-core v8.28.3
- No changes in this release.
 
8.28.2
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.28.2
- No changes in this release.
 
8.28.1
Patch Changes
- Exposed 
useCategoryTreethrough the#storefront/composablesalias. 
Dependencies
@scayle/storefront-core v8.28.1
- No changes in this release.
 
8.28.0
Minor Changes
- Introduced the 
useCategoryTreecomposable for streamlined category tree retrieval. 
Patch Changes
Dependencies
@scayle/storefront-core v8.28.0
- Minor
- Introduced the 
getCategoryTreeRPC for retrieving the complete category tree. 
 - Introduced the 
 
8.27.0
Minor Changes
- Updated 
useBasketto include agetApplicablePromotionsByCodefunction. This function fetches the applicable promotions for the current basket. 
Patch Changes
Dependencies
@scayle/storefront-core v8.27.0
- Minor
- Added a new 
getApplicablePromotionsByCodeRPC method which can be used to fetch applicable promotions for a basket. 
 - Added a new 
 
8.26.2
Patch Changes
Dependencies
@scayle/storefront-core v8.26.2
- No changes in this release.
 
8.26.1
Patch Changes
Dependencies
@scayle/storefront-core v8.26.1
- No changes in this release.
 
8.26.0
Minor Changes
- [Utilities] Added 
useProductPricecomposable to simplify accessing price data like total price, strike-through prices, and applied reductions. 
Patch Changes
Dependencies
@scayle/storefront-core v8.26.0
- No changes in this release.
 
8.25.6
Patch Changes
Dependencies
@scayle/storefront-core v8.25.6
- No changes in this release.
 
8.25.5
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
@scayle/storefront-core v8.25.5
- No changes in this release.
 
8.25.4
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
Dependencies
@scayle/storefront-core v8.25.4
- No changes in this release.
 
8.25.3
Patch Changes
Dependencies
@scayle/storefront-core v8.25.3
- Patch
- Expose 
MemberRole,FilterValuesEndpointParametersandGetRedirectsEndpointParameterstype 
 - Expose 
 
8.25.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.25.2
- No changes in this release.
 
8.25.1
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/[email protected] - Updated dependency 
@scayle/[email protected]to@scayle/[email protected] 
Dependencies
@scayle/storefront-core v8.25.1
- No changes in this release.
 
8.25.0
Minor Changes
- This change introduces the ability for the host application to define its own storage mounts, enhancing the flexibility of managing cache and session storage options within the Nuxt project.
To provide preconfigured storage mounts, the host application needs to mount storage drivers with specific names. The names 
storefront-sessionandstorefront-cacheare used for general cache and session storage, respectively. Additionally, shop-specific cache and session drivers can be configured by appending:<shopId>to the name, such asstorefront-session:1001andstorefront-cache:1001.
Preconfigured storage mounts can be implemented via a Nuxt server plugin within./server/plugins. If necessary, theruntimeConfigcan be utilized to store the drivers' configuration:
In scenarios where the build must not be runtime agnostic, the storage can also be configured statically in thenuxt.config.tsfile. However, this is not the recommended approach:
With the introduction of the new approach for configuring storefront storage mounts, the global and shop-specificstorageoption within the@scayle/storefront-nuxtruntime configuration has been deprecated. 
Patch Changes
- Fix 
.d.tsvalidation errors reported by AreTheTypesWrong. - Fix an issue caused by Nitro 2.11.7 which caused the context to be lost between RPC requests.
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
@scayle/storefront-core v8.25.0
- Patch
- [Code Style] Refactored brands and navigation tree RPCs to avoid destructuring the RPC context within function signatures
 
 
8.24.1
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/[email protected] 
Dependencies
@scayle/storefront-core v8.24.1
- No changes in this release.
 
8.24.0
Minor Changes
- Update to 
@nuxt/module-builder@1. This version of Nuxt Module Builder is ESM-only, so CommonJS (.cjs) files will no longer be built or distributed with the package. However as of Nuxt 3, only esm is used so this should not have any impact as this module does not support Nuxt 2. 
Patch Changes
Dependencies
@scayle/storefront-core v8.24.0
- No changes in this release.
 
8.23.0
Patch Changes
- Fix an issue where the 
runtimeConfigcaching plugin returned a frozenruntimeConfigobject. The behavior should now match that of theruntimeConfigwhich is generated for each request and should ensure compatibility with any code which depends on modifying theruntimeConfigduring a request. 
Dependencies
@scayle/storefront-core v8.23.0
- Minor
- Deprecated attribute group specific utilities 
getFlattenedVariantCrosssellingsandgetFlattenedMaterialComposition. 
These functions should be a part of the Storefront Application. - Deprecated attribute group specific utilities 
 
8.22.0
Minor Changes
- The 
useIDPcomposable supports theauthUrlParametersoption forgetExternalIdpRedirects. Values provided here will be processed by the Auth service and appended to the IDP URL.
Example: 
Patch Changes
Dependencies
@scayle/storefront-core v8.22.0
- Minor
- Allow passing 
authUrlParametersto thegetExternalIdpRedirectRPC method. This parameter is an optionalRecord<string, string>. Values provided here will be processed by the Auth service and appended to the final redirect URL. - Exported the 
ShopCountryCustomDatainterface. 
 - Allow passing 
 
8.21.0
Patch Changes
Dependencies
@scayle/storefront-core v8.21.0
- Minor
- Expose the following filter types from 
storefront-api: FilterItemWithValuesBooleanFilterItemWithValuesRangeFilterItemWithValuesIdentifierFilterItemWithValuesAttributesFilterValue
 - Expose the following filter types from 
 
8.20.1
Patch Changes
Dependencies
@scayle/storefront-core v8.20.1
- Patch
- Re-exported 
BasketKeyandApplicablePromotionfrom@scayle/storefront-api 
 - Re-exported 
 
8.20.0
Minor Changes
- Add 
originalIpto the RPCContext which represents the IP address of the request without considering thex-forwarded-forheader. 
Patch Changes
Dependencies
@scayle/storefront-core v8.20.0
- Minor
- Include additional client information to Auth API requests to improve security.
 - Add 
originalIpto the RPCContext which represents the IP address of the request without considering thex-forwarded-forheader. 
 - Patch
- [Basket] Pass 
campaignKeyto SAPI when updating an basket item using theupdateBasketItemRPC. 
 - [Basket] Pass 
 
8.19.1
Patch Changes
Dependencies
@scayle/storefront-core v8.19.1
- Patch
- Fix 
getCategoriesByPathRPC to return 404 for non-existing categories. 
 - Fix 
 
8.19.0
Minor Changes
- Add a new 
outputoption to the log config. It controls where server-side logs are sent and can be set tostderr,stdoutorauto.stderrandstdoutwill send all logs to the configured steam, whileautowill send error logsstderrand other logs tostdout.autois the default value. - Add a new 
jsonoption to the log config. When this is enabled via the nuxt.config or settingNUXT_PUBLIC_STOREFRONT_LOG_JSON=truein the.env, logs will be output in a JSON format. 
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
@scayle/storefront-core v8.19.0
Dependencies
8.18.0
Patch Changes
@scayle/storefront-core v8.18.0
- Minor
- Update RPC methods to use explicit typing. This is an internal change to enable Typescript's 
isolatedDeclarationsoption. It will not impact regular usage of RPC methods, however if you are importing one of the functions directly, the explicit rather than inferred type will be used. 
 - Update RPC methods to use explicit typing. This is an internal change to enable Typescript's 
 
Dependencies
8.17.1
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/[email protected] - Updated dependency 
@scayle/unstorage-compression-driver@^0.2.4to@scayle/unstorage-compression-driver@^0.2.5 
@scayle/storefront-core v8.17.1
- Patch
- Ensure that the 
getAttributehelper function can handle multi-value attributes. 
 - Ensure that the 
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.17.0
Patch Changes
@scayle/storefront-core v8.17.0
- Minor
- Fix return type of 
RpcMethodCallto reflect that it returns aPromise<TResult>instead ofTResult. This change emphasizes thatcallRpcinRpcContextis indeed an asynchronous operation. 
 - Fix return type of 
 - Patch
- Ensure that 
pricePromotionKeyset in the right place when calling the deletion wishlist item operation of SAPI. 
 - Ensure that 
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.16.0
Minor Changes
- Redirects Extend the redirects feature with a new option: 
redirects.strategy. This property can be set to two values:before-requestandon-missing. When set tobefore-request, the server will check for potential redirects before processing each request. This is the current behavior and will also be used when no value is set. Whenon-missingis used, the server will check for redirects only if the response for the request is a 404.
To enable the new strategy, update yournuxt.config.ts.
Also, keep in mind that when this option is enabled, the redirect logic will only be executed when the request would otherwise result in a 404. There are three ways in which a 404 can occur.- No route found
 
If there is no matching route for the request's path, the framework will return a 404 response.Responsewith 404 status
If the request handler returns aResponseobject with astatusof 404, a 404 response will be returned to the client.- Thrown H3Error with 404 status
 
If the request handler throws an H3Error with astatusCode404, a 404 response will be returned to the client. 
Patch Changes
@scayle/storefront-core v8.16.0
Dependencies
8.15.1
Patch Changes
@scayle/storefront-core v8.15.1
Dependencies
8.15.0
Patch Changes
@scayle/storefront-core v8.15.0
- Minor
- Filter out orders from 
user.orderSummarythat are not associated with the current shop ID. 
 - Filter out orders from 
 
Dependencies
8.14.4
Patch Changes
@scayle/storefront-core v8.14.4
Dependencies
8.12.4
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.12.3
Patch Changes
- OTEL Ensure the correct tracer is used when creating spans.
 
8.12.2
Patch Changes
- OTEL Do not create bootstrap span when bootstrapping is skipped
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.12.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.12.0
Minor Changes
OrderItemandOrdernow accept generics: BothOrderItemandOrderinterfaces now accept generic type parameters forProductandVariant. Previously, these were implicitly typed asRecord<string, unknown>. This change allows to strongly type theproductandvariantdata within orders and order items, leading to better type checking and potentially fewer runtime errors. This allows for compile-time checks and autocompletion when working withproductandvariantproperties ofOrderItemand items property ofOrder.
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.11
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] - Added 
@scayle/storefront-api@>=18.1.0topeerDependencies. 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.10
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.9
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.8
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
8.11.7
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.6
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.5
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.4
Patch Changes
- Updated dependency 
jose@^5.2.0tojose@^6.0.8 - Updated dependency 
[email protected]to[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.3
Patch Changes
- Support 
@scayle/unstorage-scayle-kv-driverfor caching. 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.2
Patch Changes
- Updated dependency 
@scayle/[email protected]to@scayle/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.11.0
Minor Changes
- Include 
rpcCallwhen building the context. This utility function can be used within RPC methods to invoke another RPC method. 
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 - Updated dependency to @scayle/[email protected]
 
8.10.4
Patch Changes
- Updated dependency 
@vercel/[email protected]to@vercel/[email protected] 
8.10.3
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.10.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.10.1
Patch Changes
- Added dependency 
@vercel/[email protected] - Add necessary runtime dependencies to nitro's external.inline config
 
8.10.0
Minor Changes
- Remove explicit inline external for runtime helpers
 
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
8.9.2
Patch Changes
- Deprecate 
key,packages,shippingDates,isEmpty,countWithoutSoldOutItems,removeItem,contains,findItem,products,generateBasketKeyandmergeBasketsfromuseBasket.
Required updates:key:packages:shippingDates:isEmpty:countWithoutSoldOutItems:products:removeItem:contains:findItem:generateBasketKey:generateBasketKey:
 - Improve bootstrap performance by avoiding object merge and reflection
 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.9.1
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.9.0
Minor Changes
- Update 
ExistingItemHandlingnames due to update to newest@scayle/storefront-coreversion. 
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.8.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.8.1
Patch Changes
- Deprecate 
useSearchDatain favor ofuseSearchwithin the@scayle/storefront-searchpackage. 
8.8.0
Minor Changes
- Rpc Add check for the existence of the rpc directory, in order to prevent errors when trying import custom Rpc's.
 
8.7.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.7.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.7.0
Minor Changes
- Introduce a flexible interface for registering custom RPC methods from other modules
Currently, applications can configurerpcDirandrpcMethodNamesin the module configuration to register custom RPC methods, however this does not extend to modules. This release adds a new module hookstorefront:custom-rpc:extendwhich can be used to register custom RPC methods. By registering a callback to this hook, other modules can add custom RPC methods to the application.
The hook functions similarly torpcDirandrpcMethodNames. Hook registrants receive an array of custom RPC imports and can add their own. The import definition should include asourcewhich defines the file to import the RPC methods from and anamesarray which controls the exports of this file which should be registered as RPC methods.
rpc-methods.ts
module.ts
As part of this change, theRPCMethodtypes are automatically extended with all custom RPC methods. It is no longer necessary to extendRpcMethodsStorefront. This applies both for therpcDir+rpcMethodNamesstrategy as well as the new hook-based implementation. 
Patch Changes
- RPC Improve warning about missing RPC method overrides
 - Improve error handling when bootstrapping fails due to a missing shop.
 
8.6.1
Patch Changes
- Consider 
baseURLconfiguration when bootstrapping error pages. This ensures error pages have the correctcurrentShop. 
8.6.0
Minor Changes
- Basket Add support to update existing basket items to 
useBasket 
8.5.4
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.5.3
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.5.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.5.1
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.5.0
Minor Changes
- Performance Remove the 'autobinding' of the methods on the 
Cachedinstance. Instead theexecutemethod only is bound when constructing theRpcContext. This simplifies the code and improves the performance of thebootstrapfunction. This change is internal tostorefront-coreand the API ofRpcContextis unchanged. 
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 - Updated dependency to @scayle/[email protected]
 
8.4.0
Minor Changes
- Do not save empty sessions by default. This should significantly reduce the usage of the session database, especially in scenarios with many unique anonymous visitors.
 
Patch Changes
- Use 
consolafor config validation output to align with overall usage across Storefront and Nuxt. 
8.3.4
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.3.3
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
8.3.2
Patch Changes
- Removed dependency 
@nuxt/kit@^3.12.2 - Fixed misspelling of interface 
BasketItemDisplayDataItemtoBasketItemDisplayDataItem 
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.3.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.3.0
Minor Changes
- Complete removal of shop-prefixed API endpoints. In version 8.0.0, support for shop-prefixed API endpoints was dropped. However, not all the code was removed until now.
 
8.2.1
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected] 
Dependencies
- Updated dependency to @scayle/[email protected]
 - Updated dependency to @scayle/[email protected]
 
8.2.0
Minor Changes
storefront-nuxtnow includes experimental support for OpenTelemetry spans covering the bootstrapping and redirects middlewares. This aims to provide better insights into their performance impact. Please note that this is an experimental feature and its implementation and API might change in future releases.
Patch Changes
- Updated dependency 
@scayle/h3-session@^0.5.0to@scayle/[email protected] 
8.1.6
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 - Updated dependency to @scayle/[email protected]
 
8.1.5
Patch Changes
- Updated dependency 
@scayle/h3-session@^0.4.1to@scayle/h3-session@^0.4.2 - Updated to 
@scayle/[email protected] 
8.1.4
Patch Changes
- We've updated to 
[email protected] 
8.1.3
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.1.2
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.1.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.1.0
Minor Changes
- Breaking: 
useBasketno longer acceptsorderCustomDatain its parameters. This functionality was unintentionally added and was never officially supported. Now it has been removed. 
8.0.1
Patch Changes
Dependencies
- Updated dependency to @scayle/[email protected]
 
8.0.0
Major Changes
- [💥 BREAKING] Removed deprecated 
transformLegacyConfigfunction in favor of the new unifiedstorefront.storageconfiguration system. Legacy configuration optionsproviderandredisconfiguration are no longer supported and have been deprecated since Storefront Boilerplate v1.0.0-rc.05.
You'll need to migrate your existing storage settings to the newstorefront.storageformat. Check the SCAYLE Resource Center for more details.- No Longer Supported: Legacy Storage Setup in (
nuxt.config.ts): - Current Unified Storage Approach (
nuxt.config.ts): 
 - No Longer Supported: Legacy Storage Setup in (
 - [💥 BREAKING] The composable 
useSearchhas been replaced byuseStorefrontSearch, consolidating and transitioning to SCAYLE Search v2.- Previous Usage of 
useSearch: - Current Usage of 
useStorefrontSearch: 
 - Previous Usage of 
 - [💥 BREAKING] The previous use of the 
useFacetcomposable for category-related product listings was overly complex and difficult to customize. To simplify things, dedicated composables are being introduced:useProductsByCategory: ReplacesuseFacetfor fetching products within a specific category.useFiltersoruseProductListFilters: Provide focused filter management capabilities.- Previous Usage of 
useFacet: - Current Usage of dedicated Category-Specific Composables:
 
 - [💥 BREAKING] We've renamed the 
useNavigationTreecomposable touseNavigationTreeByIdfor better clarity. Its functionality, parameters and return values stay identical. - [💥 BREAKING] The composable 
useQueryFilterStatehas been superseded by theuseFilteranduseAppliedFilters(part of@scayle/storefront-product-listing) composables.- Previous Usage of 
useQueryFilterState: - Current Usage of 
useFilteranduseAppliedFilters: 
 - Previous Usage of 
 - [💥 BREAKING] The 
getBadgeLabelhelper function has been removed, giving you more control over badge label display.- Note: This change doesn't affect projects using SCAYLE Storefront Boilerplate v1.0 or later.
 - For applications based on older versions or using 
getBadgeLabel, you can refer to the previous implementation below: 
 - [💥 BREAKING] The 
storeoption in the module configuration has been removed.@scayle/[email protected]introduced theshopsoption as a replacement, but maintained backward compatibility with thestoreoption. Going forward, configuring shops must be done using theshopskeyword.- For more information, please refer to the documentation.
 - NOTE: These changes might impact your environment variables used for deployments. Please check your infrastructure and deployment setup and adapt accordingly!
 - Previous Store Configuration in 
nuxt.config.ts: - Previous Environment Variables for Store Configuration:
 - Current Shops Configuration in 
nuxt.config.ts: - Current Environment Variables for Shops Configuration:
 
 - [💥 BREAKING] To better align with the current Nuxt 3 architecture make key handling more explicit, we've simplified how you interact with the key parameter in RPC composables from version 8 onwards.
Instead of placing the key within the composable's options object, you'll now provide it as the second argument when calling the composable.
- Previous 
keyas options parameter: - Current 
keyas dedicated composables argument: 
 - Previous 
 - [💥 BREAKING] Introducing a new feature flag 
storefront.legacy.enableSessionMigrationto control the automatic migration of legacy session data, set tofalseby default. Starting with@scayle/[email protected]Storefront uses unique session cookie names for each shop, simplifying implementation and enhancing stability. Instead of relying on the Path attribute, each shop receives a distinct cookie name. This change is internal and should not require code modifications.- Cookie format before 
@scayle/[email protected]:Set-Cookie: $session=s:fa3746f9-88c8-4065-a6c9-0c7bee473dd8.pSoaN6Q7iFHHyWKE7s9gQAqdDzGb9fS8a478P7PHLxw; Path=/de
 - Cookie format after 
@scayle/[email protected]:Set-Cookie: $session-1001=s:fa3746f9-88c8-4065-a6c9-0c7bee473dd8.pSoaN6Q7iFHHyWKE7s9gQAqdDzGb9fS8a478P7PHLxw; Path=/
 - NOTE: Upgrading directly to this version from a version prior to 
@scayle/[email protected]without enabling thestorefront.legacy.enableSessionMigrationfeature flag will lead to loss of user sessions. Ensure version@scayle/[email protected]or higher has been deployed in production for a period exceeding the configured session TTL before upgrading to this version. This ensures all legacy sessions have been migrated. Consult the updated documentation for details on the cookie format changes and migration procedures. 
 - Cookie format before 
 - [💥 BREAKING] We've optimized the way Identity Provider (IDP) logins are handled. Instead of using the 
handleIDPLoginCallbackRPC method, which has been removed, from theuseIDPcomposable, you'll now use theloginIDPfunction, which has been moved to theuseAuthenticationcomposable. This change consolidates IDP login functionality withinuseAuthenticationfor a more unified approach.- Previous Usage of 
handleIDPLoginCallback: - Current Usage of 
loginIDP: 
 - Previous Usage of 
 - [🧹 NON-BREAKING] Addressed various type resolution errors that were present when using the 
@scayle/storefront-nuxtpackage with different Node.js versions and module systems. These errors manifested as internal resolution errors or ESM dynamic import only warnings. With this fix, the package now more consistently resolves types correctly across Node.js 16 (CJS and ESM), and bundlers, ensuring a smoother developer experience. - [💥 BREAKING] The 
useBasketcomposable now gracefully handles cases where adding items to the basket results in a smaller quantity being added than originally requested by checking againstAddToBasketFailureKind. - [💥 BREAKING] The deprecated 
autoFetchoption ofuseRpchas been removed in favor of theimmediateoption. This also applies to all data fetching composables provided by@scayle/storefront-nuxt.- Previous 
useRpcwithautoFetch: - Current 
useRpcwithimmediate: 
 - Previous 
 - [💥 BREAKING] The attribute 
isCmsPreviewhas been removed fromRpcContext. - [💥 BREAKING] The attribute 
storeCampaignKeywordhas been removed fromRpcContext.- The 
campaignKeyis now automatically determined by fetching campaign data through the Storefront API client by retrieving a list of all campaigns from the API. It then narrows down the list by filtering for campaigns that are still active, ensuring any returned campaign is currently running. These active campaigns are then sorted by their start date, ensuring chronological order. Finally, it iterates through the sorted campaigns to find the first one that is currently active, returning its key as an identifier. If no active campaign is found or an error occurs, it returns nothing. - The 
storeCampaignKeywordis also no longer used to determine the active campaign key. The functionality to run only certain campaigns for specific countries is now supported through the SCAYLE Panel out of the box. 
 - The 
 - [💥 BREAKING] The composable 
useStorefrontSearchis now consistent withuseRpcreturn values. Thefetchingboolean is replaced bystatuswith statesidle,pending,errororsuccess.- Previous 
useStorefrontSearchreturningfetching: - Current 
useStorefrontSearchreturningstatus: 
 - Previous 
 - [💥 BREAKING] We've simplified composable caching and clarified the control you have over shared state behavior. The configuration option 
disableDefaultGetCachedDataOverridehas been replaced withlegacy.enableDefaultGetCachedDataOverride, and its logic has been reversed. Now, whenlegacy.enableDefaultGetCachedDataOverrideis not set or set tofalse, the default behavior maintains the shared state functionality ofuseRpc, where multiple calls with the same key use the same cached data. Setting the option totruebypasses this shared caching, providing data isolation between calls. To maintain your existing caching behavior, simply change the value ofdisableDefaultGetCachedDataOverrideto its opposite in yournuxt.config.tsfile.
Old config- Previous 
disableDefaultGetCachedDataOverrideinnuxt.config.ts: - Current 
enableDefaultGetCachedDataOverrideinnuxt.config.ts: 
 - Previous 
 - [💥 BREAKING] The 
useRpccomposable has been updated to provide a more modern and robust data fetching experience, aligning its interface with the current and underlying Nuxt 3useAsyncData.. The separatefetchfunction has been replaced with a single, intuitiverefreshfunction that can be used to refresh the data returned by thehandlerfunction. Additionally, the booleanpendingflag has been superseded by a more informativestatusreturn value, offering greater insight into the fetching lifecycle with possible states:idle,pending,success, anderror. These changes enhance the developer experience and provide greater clarity and control over data fetching operations within components.- NOTE: This update not only impacts the 
useRpccomposable directly, but also extends to other RPC composables relying on it, such asuseProductsanduseCategories! 
 - NOTE: This update not only impacts the 
 - [💥 BREAKING] Removed special handling for 
BAPIErrorandBaseErrorthrown in RPC methods. These customErrorclasses were previously used in RPC methods to allow customizing the status code and message of errors. However, they have been deprecated since January 2024 when the preferred approach was changed to return the nativeResponseobject. This provides performance benefits by limiting the transformations necessary in the response pipeline, and aligns@scayle/storefront-nuxtwith web standards. It also simplifies the implementation and means@scayle/storefront-nuxtno longer needs to be aware of third-party libraries used and their possible errors. In this release, the legacy special handling forBAPIErrorandBaseErrorhas been removed. Now they will be treated like any otherError. If they are thrown uncaught during the execution of an RPC method, a 500 status code will be used in the response. They have also been removed from@scayle/storefront-nuxt. For most users, this change will have no impact as the core RPC methods have been updated for some time. However, if you have custom RPC methods you should review their implementation. In order to have an RPC method use a specific status code, it should return aResponseobject.- Previous Usage with 
BaseError: - Current Usage with 
Responseobject andstatuscode: 
 - Previous Usage with 
 - [💥 BREAKING] We've updated how API routes are structured in multi-shop environments using path-based selection (
pathorpath_except_default). Instead of being nested under each shop's specific path, all API routes will now be mounted globally under a single path, which defaults to/api. This means the option to customize theapiBasePathon a per-shop basis has been removed. This change promotes consistency and makes API route management more straightforward. - [💥 BREAKING] The methods 
getBasket,removeItemFromBasket,addItemsToBasket, andaddItemToBaskethave been updated. Instead of returning the basket object directly, the basket will now be accessible as a property within the response body. Furthermore, errors occurring duringaddItemToBasketandaddItemsToBasketwill from now on return HTTP 400. The error kind can be identified by checking theerrorproperty of the response. 
Patch Changes
- Updated dependency 
@vueuse/[email protected]to@vueuse/[email protected]Dependencies - Updated dependency to @scayle/[email protected]