---
schema_version: "1"
id: f1a6cc59b513a685ab7c2a6e471fb6209abbfaf5cfa9490f8eeb9167e5fbc16f
title: 21.3 Release
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/rn_b2c_rn_21_3_release.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_rn_21_3_release.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: f3a15d41b45dbeacd4c3082b943cd35176b45e5734fdebb6f8b5a2df1edb1628
description: The B2C Commerce 21.3 release occurs February 18, 2021 through March 23, 2021.
products:
  - Commerce
  - B2C Commerce
release: "264"
---
# 21.3 Release

The B2C Commerce 21.3 release occurs February 18, 2021 through March 23, 2021.

Stay current with all the important B2C Commerce product updates by reviewing the release notes! For a closer look at the features and enhancements in this release, watch the [21.3 Product Release Preview](https://salesforce.vidyard.com/watch/YtJQ2yFPWQAuo5NdUNdZUL?) video or [download](https://org62.my.salesforce.com/sfc/p/#000000000062/a/3y000000oTD4/iUSWIFV2uaD1goXQ81WTxMfsla2KH5bRB_a2b0p5o.8) a PDF of the Preview.

- **[Assign Promotions and Pricing to Specific Stores](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_3_commerce_w7929879_store_specific_pricing_promotions_lb.htm&release=264.0.0&type=5)**  
    Merchants can now assign price books and promotions to stores. This feature lets shoppers view pricing and promotions targeted to their selected store in session.
- **[Text in Content Slot Fields Validate Properly](https://help.salesforce.com/s/articleView?id=commerce.rn_b2c_21_3_commerce_w8680205_text_content_slot_field_validate_lb.htm&release=264.0.0&type=5)**  
    Free-form text in the content asset, product, and category Content Slot fields now validate properly. If an entry exceeds 3,500 bytes, an error is returned. To remedy the error, consider using Add to select IDs or limit entries to just the ID, instead of the entire content.
- **[Change Customer Passwords with the Headless Commerce API](https://help.salesforce.com/s/articleView?id=commerce.rn_change_customer_password_b2c_21_3_w8722575_as.htm&release=264.0.0&type=5)**  
    To provide this functionality, we updated the OCAPI Shop API `PUT customers/{customer_id}/password` endpoint to change the password in the PUT call instead of in the afterPUT hook. The Headless Commerce API doesn’t allow hooks. Also, the `dw.ocapi.shop.customer.password.afterPUT_v2` extension point replaces the `dw.ocapi.shop.customer.password.afterPUT` extension point. If you have customizations for this resource, update your code accordingly.
- **[Configure How Long Einstein Waits Before Recommending Already Purchased Products](https://help.salesforce.com/s/articleView?id=commerce.rn_ein_cnf_dnr_b2c_21_3_w8802156_mjb.htm&release=264.0.0&type=5)**  
    Einstein Configurator now lets you define how many days a recommender waits before recommending previously purchased products. You can choose from 7, 30, 60, or 90 days. The default setting is 30 days. Previously, Einstein Configurator provided a static 30-day wait time before recommending previously purchased products. For some customers, this setting was either too short or too long.
- **[Assign Promotions to Campaigns with Enhanced OCAPI Data API Endpoint](https://help.salesforce.com/s/articleView?id=commerce.rn_enhanced_api_endpoint_b2c_21_3_w8578766_lb.htm&release=264.0.0&type=5)**  
    \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now allows the \`PATCH\` method and accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values.
- **[Assign Promotions to Campaigns with Enhanced Data OCAPI Endpoints](https://help.salesforce.com/s/articleView?id=commerce.rn_enhanced_api_endpoints_b2c_21_3_w857876_lb.htm&release=264.0.0&type=5)**  
    \`/sites/{site\_id}/campaigns/{campaign\_id}/promotions/{promotion\_id}\` now accepts a body for the \`PUT\` and \`PATCH\` methods. This body is identical to the response of the \`/sites/{site\_id}/promotion\_campaign\_assignment\_search\` API, but it now supports a new \`required\_qualifier\` property. With this body, you can set qualifiers and other properties, such as rank, on a promotion assignment when you create it. You can also update these values.
- **[Embedded Objects Not Allowed in HTML Attributes](https://help.salesforce.com/s/articleView?id=commerce.rn_html_objects_b2c_21_3_w8774939_la.htm&release=264.0.0&type=5)**  
    For security reasons, only Business Manager users with strong authentication, such as through multi-factor authentication with Account Manager, can include objects embedded with `iframe`, `object`, `applet`, or `embed` tags in the HTML attributes of a database object. A Business Manager user with strong authentication can temporarily allow users without strong authentication to embed objects in HTML attributes.
- **[Organize Page Designer Pages in Folders](https://help.salesforce.com/s/articleView?id=commerce.rn_pd_folders_b2c_21_3_w8766771_la.htm&release=264.0.0&type=5)**  
    You can assign Page Designer pages to Business Manager content library folders. Folders keep pages organized and easy to find. Developers can write custom code that implements page navigation based on folders. For example, custom code can add breadcrumbs to the tops of pages or accordian-style page navigation based on folders. Developers can also write custom code that specifies that when a shopper performs a search, the shopper sees results organized by folder.
- **[No Restrictions for CONTENT\_SECURITY\_POLICY](https://help.salesforce.com/s/articleView?id=commerce.rn_policy_header_b2c_21_3_w8800481_la.htm&release=264.0.0&type=5)**  
    Set the `CONTENT_SECURITY_POLICY` in B2C Script class `dw.system.Response` to any string value. Previously, the only directive allowed was `frame-ancestors`.
- **[Strong Authentication Required for Some Business Manager Modules](https://help.salesforce.com/s/articleView?id=commerce.rn_strong_auth_b2c_21_3_w8774525_la.htm&release=264.0.0&type=5)**  
    For security reasons, to access certain Business Manager modules, you must now use strong authentication, such as multi-factor authentication (MFA) with Account Manager.