All Release Notes

Improved Store Launchpad for B2B Manufacturing

4 April 2024
Enhancement
Store launchpads

The Store Launchpad for B2B Manufacturing contains new and enhanced functionality. Additionally, we fixed some bugs.

New functionality

  • The products, prices, and discounts that are displayed on the storefront and that appear in the search results now depend on the Business Unit and Store selected from the drop-down in the account menu. The Blueprint for B2B Manufacturing sample data includes the required configurations. However, if configuration is required, do the following:
    1. In the Merchant Center, create a Store.
    2. Create Business Units and link the Store you created to them.
    3. Create at least one Associate Role for each Business Unit.
    4. In the Project area in the Studio, edit the commercetools Composable Commerce extension section by entering the Store key and the Associate Role keys in the related fields.
  • User permissions regarding Business Units, Carts, Orders, Quotes, and Quote Requests are adjusted based on the users' Associate Role Permissions.
  • Standalone Prices are now supported.

Enhancements

  • The navigation of sub-categories in the menu is now improved with an intermediary page for categories with three or more sub-categories. The page does not appear by default; to activate it, do the following:
    1. In the Dynamic pages area in the Studio, edit the page version associated with the Category dynamic page.
    2. In the page builder, select the Product List component.
    3. In Component settings > Category configuration, set the Use Intermediary Category Page toggle to active.
  • Associates can now have multiple roles (for example, both admin and buyer roles). This reflects the Associate Roles feature and provides a smoother and more efficient user experience because users don't need to log in with different user accounts depending on the actions they need to execute.
  • The process for signing up users as Associates is more streamlined. After the administrator creates the Associate account, the user receives an email confirming the creation of their account. The email contains a link to the new Sign up associate page, where the user can add their name and password. After signing up, the user is redirected to the registration success page.
  • When a user selects a Business Unit and a Store from the drop-down in the account navigation menu, the storefront now dynamically updates to display data pertinent to the selected Business Unit and Store. For example, the Business Unit selected in the Business Unit drop-down on the Company Admin page will be the same as the one selected from the drop-down in the account navigation. This ensures the accuracy and relevance of the displayed information.
  • The discountedPricePerQuantity and taxRate fields were added to the LineItem type. The addition makes it possible to calculate and display the total discount amount applied to a quote on the frontend because such information is not provided by Composable Commerce.
    The discountedPricePerQuantity field provides the discounted price of a single quantity of the Line Item.
    The taxRate field provides the applicable tax rate for the discounted Line Item to calculate taxes on the discounted price.
    With this addition, developers can implement comprehensive discount summaries to improve transparency and user experience in the rendering of quotes.
  • Nodemailer libraries were updated to ensure compliance with email dispatch and data protection standards.

Bug fixes

  • All categories in the navigation menu now expand correctly to display sub-categories. Previously, only the first four categories expanded, despite the fact all categories contained sub-categories.
  • Routing was fixed to ensure that URLs containing language codes such as en/en or en/en/en are correctly redirected to the appropriate language root (in this case, /en). Previously, the routing for such language codes did not work correctly. The fix makes the URL structure clearer, improves the user experience by making the redirection process seamless, and applies to all supported languages.
  • When filtering data by a date range (for example, orders), the results now include records for the selected start and end dates, as expected. Previously, the end date was excluded causing data to be filtered incorrectly.
  • We fixed the window is not defined UI-related error that occurred when the window object used by the useMediaQuery hook was missing. To address the issue, the useMediaQuery hook was refactored with the following changes:
    • Screen size storage in cookies: the useMediaQuery hook now stores the last used screen size in cookies to retrieve the screen size information on the server side.
    • Layout flicker mitigation: to mitigate a slight layout flicker that occurs in the first millisecond after the website loads, the screen size is not initially stored in cookies. Subsequent site loads for returning users are free of this flicker.
    • The useMediaQuery hook was removed from the following components: TablePagination, AuthLayout, OrderSummary, CompanyAdmin, and Header. These components now use CSS media queries instead of the useMediaQuery hook.
      The remaining components still use the useMediaQuery hook because it cannot be replaced due to specific requirements.
  • The product query functionality now passes the distributionChannelId and supplyChannelId parameters to correctly display product prices and availability on category pages. Previously, the displayed prices and availability were wrong.

Other change

  • The Addresses page where buyers could add or remove addresses was removed because it does not meet any real use cases.