Skip to content

Releases: vtex/faststore

FastStore Release Notes: Version 3.95.0

17 Dec 17:15

Choose a tag to compare

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

03 Dec 12:38

Choose a tag to compare

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

26 Nov 20:56

Choose a tag to compare

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 TextareaField readability: Long text within the TextareaField component 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

06 Nov 22:36

Choose a tag to compare

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

04 Nov 13:55

Choose a tag to compare

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 using session.accountName to use session.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

10 Mar 15:59

Choose a tag to compare

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 to v3.25.6 using @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 fix before breadcrumb fix after

Breadcrumb visibility and styling #2714

Resolved issues with the breadcrumb section display, including:

  • Ensuring either the RegionBar or the breadcrumb appears when scrolling.
Before - PDP After - PDP
image pdp before image
  • Restoring breadcrumb visibility on PLP (Product Listing Page) and search pages.
Before - Dropdown menu After - Dropdown menu
image dropdown before image
  • Updating the styling of the breadcrumb dropdown menu for consistency.
Before - PLP After - PLP
image plp before image

Introducing SKUMatrix Component

15 Jan 19:54

Choose a tag to compare

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.

image

The component's documentation with more details will be published soon in FastStore Docs

FastStore: Improved search query with the `sponsoredCount` parameter

19 Dec 13:07

Choose a tag to compare

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 the ClientProductGallery fragment, this change may cause errors. Make sure your implementation is updated to handle the sponsoredCount parameter accordingly by following the instructions in the next section.

What needs to be done?

  1. Open your FastStore project using your preferred code editor.
  2. Update your FastStore project to version 3.0.157 or later, by running the following:
yarn upgrade -L --scope @faststore
  1. 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:

  1. Go to the file, where you are using the ClientManyProducts fragment, and add the missing sponsoredCount parameter.
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!
   ) {

   }
 }
`);
  1. Save the changes.
  2. Run yarn build once again.

FastStore v3.0.123: Renaming `faststore.config` to `discovery.config`

07 Oct 14:21

Choose a tag to compare

⚠️ 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:

image

To resolve this:

  1. Rename faststore.config.js file to discovery.config.js.
  2. Update any references pointing to faststore.config.js to use discovery.config.js instead.

If you encounter any other errors, please:

Run faststore in the terminal

image
  • If it's outdated, update it using the following command:
yarn upgrade -L --scope @faststore

PRs that is related to this changes:

FastStore v3.0.117: Integration between FastStore and VTEX Ad Network

03 Oct 19:48

Choose a tag to compare

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:

  1. Update your store FastStore package to v3.0.117 using @faststore/cli. To update the package, see the previous release notes for further details.

  2. Create a campaign to be delivered to the store with valid products.

  3. Update the showSponsored configuration 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.js file.

  • In the faststore.config.js file, add the following configuration for api:

      api: {
         ...
         showSponsored: true,
       },
  1. We encourage to indicate in the ProductCard that the product is promoted.

369394602-119baa57-a5b8-4b7f-99c1-954aaae30e07

For more details refer to #2438