Releases: vtex/faststore
FastStore Release Notes: Version 3.95.0
Version 3.95.0 introduces SVG support in the public folder and includes fixes for cart synchronization, session validation, and SEO improvements for search results.
General
Improvements
Support for SVG files in the public folder (PR: #3123)
We've added support for .svg files in the public folder. Now, any SVG files placed in this directory will be correctly copied to the /.faststore/public folder during the build process, preventing them from being overwritten or deleted.
Fixes
Improved Cart Synchronization Across Multiple Sessions (PR: #3091)
Fixed a bug where using the same shopping cart across different devices or browsers could cause conflicting updates, leading to items being incorrectly removed. The validateCart mutation now includes session data when checking for `orderForm` changes, ensuring cart state is synchronized correctly between different user sessions.
Address session validation errors after postal code updates (PR: #3124)
Corrected an issue where the validateSession GraphQL mutation would fail, particularly after a user updated their postal code. The mutation payload was being sent with unnecessary fields, which have now been removed to ensure the request is processed successfully. This improves the stability of user session updates.
Fixed Meta Description on Search Results Page (PR: #3128)
Corrected an issue where the meta description for search result pages would display the term undefined in the page's source code. This change ensures the meta tag is correctly formatted at build time, improving SEO by preventing incorrect content from being shown to web crawlers.
FastStore Release Notes: Version 3.93.0
This FastStore release introduces support for right-to-left (RTL) layouts and delivers a series of UI and stability fixes.
General
Added Right-to-Left (RTL) Layout Support (PR: #3097)
Introduced a new direction property to the UIProvider context, enabling support for Right-to-Left (RTL) layouts. Components such as Dropdown, SearchInput, and Button will now automatically adjust their styles based on the configured direction (RTL or LTR).
Fixes
Footer component now renders without a logo (PR: #3094)
The Footer component will no longer fail to render if a logo image is not provided. Previously, removing the logo would cause the entire component to disappear from the page. Now, the footer will be displayed correctly without the logo image.
Prevent product price flickering on PDP (PR: #3112)
Introduced a loading skeleton that now displays on the Product Details Page (PDP) while the product's price is being validated. This change improves the user experience by preventing the price from flickering during load times. The <Price> component now accepts a loading component as a child to manage this state.
FastStore Release Notes: Version 3.92.0
This release improves search page metadata for better discoverability, and delivers UI refinements and stability for components.
General
Improvements
Enhanced image optimization, navigation behavior, and UI improvements (PR: #3092)
- Optimized image loading: The default image loader now uses FastStore, providing enhanced image optimization and improved performance.
- Smoother navigation with scroll restoration: An experimental scroll restoration feature has been introduced. This preserves the user's scroll position when navigating back, providing a more fluid browsing experience.
- Improved
TextareaFieldreadability: Long text within theTextareaFieldcomponent no longer scrolls underneath the floating label. The label now maintains its correct position, significantly improving readability.
Improved SEO for search pages (PR: #3081)
The Search SDK now includes dynamic SEO metadata for search results pages. The seo object in the search response automatically populates a descriptive title and a formatted description, such as "Products for: <search-term>, which improves the discoverability of these pages. This is an automatic improvement and requires no action.
Search result pages are noindex/nofollow by default; update your search SEO settings if you want them indexed. If Search SSR is disabled, the initial HTML contains default metadata, and dynamic values are applied after hydration; enabling Search SSR helps surface dynamic metadata in the initial HTML.
Fixes
Fixed flickering SignIn button (PR: #3078)
Fixed an issue that caused the SignIn button to appear during session validation for logged-in users. The component now displays a loading skeleton, ensuring a smoother visual transition during authentication checks.
My Account B2B
Data consistency (PR: #3092)
The deprecated purchaseAgentId property has been removed to ensure data consistency and eliminate redundant query parameters.
Buying policy alert now displays a dynamic description (PR: #3076)
The alert message on the Order Details page now dynamically displays the description from the buying policy condition. This provides approvers with a clearer context about why an order requires review.
FastStore Release Notes: Version 3.91.0
This FastStore release focuses on improving stability and developer experience across authentication and product component handling. It enhances user session reliability, simplifies GraphQL security validation, and ensures accurate behavior for Headless CMS-configured facets.
Improved user session and authentication handling (PR: #3065)
We’ve enhanced the authentication flow by improving user session validation and fixing server-side refresh token issues. This update resolves inconsistencies in cookie handling and data types, resulting in a more stable and predictable login experience for shoppers.
For developers, session validation has been centralized at the GraphQL layer using the @auth directive. This refactoring consolidates security checks, simplifies query protection, and enhances the robustness and maintainability of the overall authentication process.
Fixed ProductShelf and ProductTiles facet handling (PR: #3073)
We’ve fixed issues in the ProductShelf and ProductTiles components where selectedFacets were being incorrectly applied. Facets configured in the CMS, such as productClusterIds (collections), are now correctly respected.
Additionally, for stores using Delivery Promise, these components now rely on the global pickup point facet rather than inheriting shipping method filters from the Product Listing Page (PLP).
FastStore Release Notes: Version 3.90.0
Starting with version 3.90.0, FastStore is adopting a new release cadence. From now on, every new minor version will include a dedicated release note highlighting key improvements, fixes, and notable changes.
Version 3.90.0 focuses on improving analytics tracking, fixing authentication issues for Master Data requests, enhancing UI responsiveness, and refining B2B components. Check out the highlights below.
General
Improved Analytics tracking in SearchDropdown (PR: #3057)
The SearchDropdown component now ensures that analytics events for search suggestions are sent before navigation occurs, fixing a race condition. This results in more reliable tracking of autocomplete click events.
Refactored ProductShelf component loading (PR: #3059)
The ProductShelf component import was refactored from dynamic to static. This internal change resolves an intermittent loading error and does not impact existing project functionality.
My Account B2B (experimental)
Added
FastStore CLI support for /pvt page prefix (PR: #3052)
The FastStore CLI now supports the /pvt prefix for custom pages. This allows developers to create private pages within the context of the experimental My Account for B2B under paths like /pvt/account. Documentation: Enabling My Account
New My Account components and UI improvements (PR: #3040)
Introduced new MyAccountTable and MyAccountHeader components to standardize layouts and reduce code duplication in the My Account section. This update also includes several UI fixes for navigation, alignment, and spacing across the OrdersList and OrderDetails pages. Developers building or customizing My Account pages can now leverage these new components for a more consistent user experience.
Improvements
B2B: Organization Drawer displays corporateName (PR: #3062)
In B2B stores, the Organization Drawer now displays the organization’s corporateName, ensuring consistency with the experimental My Account B2B menu. This change updates the useOrganizations hook in the FastStore SDK to fetch and return the corporateName alongside the organization name.
B2B: contract name source updated (PR: #3051)
The B2B contract name is now sourced from the corporateName field in the user's session data (session.person.corporateName), which is retrieved from the Master Data CL entity. This change removes the accountName field from the StoreSession GraphQL type.
⚠️ Developers should update any custom components previously usingsession.accountNameto usesession.person.corporateName.
Removed “Placed by” column from Orders Page (PR: #3064)
The Placed by column and its corresponding filter have been removed from the Orders list page in the experimental My Account for B2B. As a result, the purchaser parameter is no longer available for filtering in the useSearchOrders hook and the searchOrders function.
Fixes
App Key/Token authentication for Master Data requests (PR: #3055)
A new utility automatically adds the X-VTEX-API-AppKey and X-VTEX-API-AppToken headers to Master Data (MD) API requests. This ensures proper authentication when fetching data from entities that require app-level credentials, resolving previous 403 Forbidden errors on pages like experimental My Account for B2B.
Search Filter Badge visibility (PR: #3061)
Fixed an issue where the Badge in the experimental My Account for B2B did not display when the count was 0. The Badge now correctly appears in all cases, ensuring consistent UI behavior.
Table component responsiveness (PR: #3066)
Fixed an issue where the Table component from @faststore/ui would overflow and break the page layout on smaller viewports. The component now includes horizontal scrolling for wide tables (e.g., the experimental My Account for B2B orders page), ensuring a responsive and user-friendly experience across all screen sizes.
Fixes in the Breadcrumb
Store Breadcrumb fixes and improvements
This release addresses issues with the breadcrumb functionality. Key changes include the removal of redundant categories in the breadcrumb list, fixes to visibility issues during scrolling, and updates to the dropdown menu styling.
⚠️ To benefit from these fixes, update your store FastStore package tov3.25.6using@faststore/cli. Refer to the previous release notes for further details.
🐛 Fixes
Removed similar categories in the breadcrumb list #2711
The breadcrumb list previously displayed all similar categories, causing clutter.
Now, only the main categories are shown in the breadcrumb list.
⚠ If you implemented any workarounds for this issue, they can be removed as they are no longer necessary.
| Before | After |
|---|---|
![]() |
![]() |
Breadcrumb visibility and styling #2714
Resolved issues with the breadcrumb section display, including:
- Ensuring either the
RegionBaror the breadcrumb appears when scrolling.
| Before - PDP | After - PDP |
|---|---|
![]() |
![]() |
- Restoring breadcrumb visibility on PLP (Product Listing Page) and search pages.
| Before - Dropdown menu | After - Dropdown menu |
|---|---|
![]() |
![]() |
- Updating the styling of the breadcrumb dropdown menu for consistency.
| Before - PLP | After - PLP |
|---|---|
![]() |
![]() |
Introducing SKUMatrix Component
The SKU Matrix feature allows users to select multiple product variations (such as color and size) simultaneously through an intuitive interface. It can be enabled on the Product Details Page via the SKU Matrix Configuration in the Headless CMS.
The component's documentation with more details will be published soon in FastStore Docs
FastStore: Improved search query with the `sponsoredCount` parameter
We've added a new parameter, sponsoredCount, to the search query. This parameter gives more control over the number of sponsored products returned in your store’s search results.
⚠️ Extension API users: If you are using theClientProductGalleryfragment, this change may cause errors. Make sure your implementation is updated to handle thesponsoredCountparameter accordingly by following the instructions in the next section.
What needs to be done?
- Open your FastStore project using your preferred code editor.
- Update your FastStore project to version
3.0.157or later, by running the following:
yarn upgrade -L --scope @faststore
- Run
yarn build.
API extension users
If you are using the ClientProductGallery fragment, after updating the store version to the latest one, you may encounter the following error:
[FAILED] GraphQL Document Validation failed with 1 errors;
[FAILED] Error 0: Fields "search" conflict because they have differing arguments. Use different aliases on the fields to fetch both if this was intentional.
[FAILED] at /Users/fanny.chien/Work/faststore.store/.faststore/src/sdk/product/usePageProductsQuery.ts:11:5
[FAILED] at /Users/fanny.chien/Work/faststore.store/.faststore/src/sdk/product/usePageProductsQuery.ts:3:5
[SUCCESS] Generate outputs
Running lifecycle hook "afterStart" scripts...To fix it, follow these steps:
- Go to the file, where you are using the
ClientManyProductsfragment, and add the missingsponsoredCountparameter.
import { gql } from "@faststore/core/api";
export const fragment = gql(`
fragment ClientManyProducts on Query {
search(
first: $first
after: $after
sort: $sort
term: $term
selectedFacets: $selectedFacets
sponsoredCount: $sponsoredCount // Add this parameter!
) {
…
}
}
`);- Save the changes.
- Run
yarn buildonce again.
FastStore v3.0.123: Renaming `faststore.config` to `discovery.config`
⚠️ This is part of an ongoing initiative to turn the store's repository into a monorepo, allowing for more customizable modules.
The faststore will manage a module called discovery, so we have renamed all configuration file from faststore.config to discovery.config, while maintaining compatibility with the legacy name.
What needs to be done?
After updating your store's FastStore package to v3.0.123, everything should continue to work as before. To update the package, see the previous release notes for more details.
If you're manually using the configuration file (for example, if you're importing it directly), you might encounter an error like this:
To resolve this:
- Rename
faststore.config.jsfile todiscovery.config.js. - Update any references pointing to
faststore.config.jsto usediscovery.config.jsinstead.
If you encounter any other errors, please:
- Check the faststore cli version installed:
Run faststore in the terminal
- If it's outdated, update it using the following command:
yarn upgrade -L --scope @faststorePRs that is related to this changes:
FastStore v3.0.117: Integration between FastStore and VTEX Ad Network
New integration between FastStore and VTEX Ad Network (#2438)
⚠️ This feature is only available for stores that are active publishers on the VTEX Ad Network.
FastStore now has support for displaying sponsored products when using Intelligent Search, helping retailers who are interested in VTEX Ad Network solution.
What needs to be done?
To benefit from this integration, follow these steps:
-
Update your store FastStore package to
v3.0.117using@faststore/cli. To update the package, see the previous release notes for further details. -
Create a campaign to be delivered to the store with valid products.
-
Update the
showSponsoredconfiguration in the store's settings to enable Intelligent Search to return sponsored products.
-
Open your FastStore project in a code editor and go to
faststore.config.jsfile. -
In the
faststore.config.jsfile, add the following configuration forapi:api: { ... showSponsored: true, },
- We encourage to indicate in the
ProductCardthat the product is promoted.
For more details refer to #2438








