Last Updated On : 28-Sep-2026


Salesforce Certified B2C Commerce Cloud Developer - Comm-Dev-101 Practice Test

Prepare with our free Salesforce Certified B2C Commerce Cloud Developer - Comm-Dev-101 sample questions and pass with confidence. Our Salesforce-B2C-Commerce-Cloud-Developer practice test is designed to help you succeed on exam day.

154 Questions
Salesforce 2026

Which item is appropriate content for custom logs implemented at checkout?

A. Payment gateway service response code

B. Customer ' s password at post-checkout sign up

C. Transaction ' s credit card information

A.   Payment gateway service response code

Explanation

In SFRA (Storefront Reference Architecture), when a developer extends an existing route using `server.append()`, the framework preserves the original (base) route's middleware chain and adds the custom middleware after it.

The behavior of the middleware chain with `server.append()`:

1. The base (original) route's handler executes first — the existing logic from the base cartridge runs.
2. Then the custom code (appended middleware) executes — the additional logic added via `server.append()` runs afterward.

So when extending a route and appending custom logic, the order is:

Base code → Custom code

This means the base behavior is preserved and the custom logic is layered on after it — making option A correct. This is the standard, expected behavior of `server.append()` in SFRA route extension.

Why the Other Options Are Incorrect

B. A RunTime error is thrown, "Error: Params do not match route".
– Extending a route with `server.append()` does not throw a "Params do not match route" runtime error. This error would occur in a different scenario — e.g., if a route were defined with a mismatched parameter signature or called incorrectly. Extending a route with middleware is a valid, supported operation and does not produce this error. So this option is incorrect.

C. The custom code executes and then the base code executes.
– This describes the behavior of `server.prepend()` (which adds middleware before the base handler), not the default extension behavior. When extending a route and appending, the base code runs first, followed by the custom code. The reverse order (custom → base) would only apply if using `prepend`, not the standard extension/append behavior described here. So this option is incorrect.

Reference

Salesforce B2C Commerce / SFRA documentation — the `server` module (`extend`, `append`, `prepend`) and route extension behavior in SFRA, which describes how the base route's middleware chain is preserved and how appended middleware executes after the base handler.

What is the expected result when extending a route without the middleware chain?

A. The base code executes and then the custom code executes.

B. A RunTime error is thrown, " Error: Params do not match route " .

C. The custom code executes and then the base code executes.

A.   The base code executes and then the custom code executes.

Explanation

In SFRA (Storefront Reference Architecture), when a developer extends an existing route using `server.append()`, the framework preserves the original (base) route's middleware chain and adds the custom middleware after it.

The behavior of the middleware chain with `server.append()`:

1. The base (original) route's handler executes first — the existing logic from the base cartridge runs.
2. Then the custom code (appended middleware) executes — the additional logic added via `server.append()` runs afterward.

So when extending a route and appending custom logic, the order is:

Base code → Custom code

This means the base behavior is preserved and the custom logic is layered on after it — making option A correct. This is the standard, expected behavior of `server.append()` in SFRA route extension.

Why the Other Options Are Incorrect

B. A RunTime error is thrown, "Error: Params do not match route".
– Extending a route with `server.append()` does not throw a "Params do not match route" runtime error. This error would occur in a different scenario — e.g., if a route were defined with a mismatched parameter signature or called incorrectly. Extending a route with middleware is a valid, supported operation and does not produce this error. So this option is incorrect.

C. The custom code executes and then the base code executes.
– This describes the behavior of `server.prepend()` (which adds middleware before the base handler), not the default extension behavior. When extending a route and appending, the base code runs first, followed by the custom code. The reverse order (custom → base) would only apply if using `prepend`, not the standard extension/append behavior described here. So this option is incorrect.

Reference

Salesforce B2C Commerce / SFRA documentation — the `server` module (`extend`, `append`, `prepend`) and route extension behavior in SFRA, which describes how the base route's middleware chain is preserved and how appended middleware executes after the base handler.

The developer created a new Storefront category in storefront-catalog-m-en, but when viewing the Storefront site, the category is not visible. Why might the categories not be visible?

A. The category does not contain available products.

B. The Storefront catalog is offline.

C. The categories are not sorted.

B.   The Storefront catalog is offline.

Explanation

In Salesforce B2C Commerce (SFCC), a catalog has an online/offline status that determines whether it is available to the storefront. When a catalog is offline, its categories and products are not visible on the storefront, regardless of whether the categories themselves are correctly created and configured.

If a developer creates a new category in `storefront-catalog-m-en` but the category does not appear on the storefront site, the most likely cause is that the Storefront catalog is offline. An offline catalog is not served to the storefront, so none of its categories (including the newly created one) will be visible until the catalog is set online.

To resolve this, the catalog must be set online (via Merchant Tools > Products & Catalogs > Catalogs, where the catalog's online status can be set/refreshed). Once the catalog is online, its categories become visible on the storefront (assuming the site is assigned to that catalog and the categories are properly configured).

Why the Other Options Are Incorrect

A. The category does not contain available products.
– An empty category (one without products) can still be visible on the storefront — many storefronts display empty categories with a "no products found" message, or the category may still appear in navigation depending on configuration. A category not containing available products is not the primary reason it would be entirely invisible. Additionally, categories are generally visible based on their online status and catalog status, not solely on whether products are assigned. So this is not the reason the category is not visible.

C. The categories are not sorted.
– Sorting affects the order in which categories appear (e.g., alphabetical, manual sort order), not whether they appear at all. An unsorted category would still be visible — it would just appear in a default or unspecified order. Sorting has no bearing on category visibility, so this is not the cause.

Reference

Salesforce B2C Commerce documentation — Catalogs and Catalog Online/Offline status in Business Manager (Merchant Tools > Products & Catalogs > Catalogs), which determines whether a catalog's categories and products are available/visible on the storefront.

Which is an appropriate use of the < isif > ISML tag that follows B2C Commerce and SFRA best practices?

A. Display a section of the page to logged users only.

B. Implement involved business logic through conditional statements.

C. Redirect users to the registration page if they are not logged in.

A.   Display a section of the page to logged users only.

Explanation

In Salesforce B2C Commerce (SFCC) / SFRA, the `` ISML tag is a presentation-layer tag used for simple conditional rendering in templates. It should be used to decide what to display on the page based on a condition — for example, showing or hiding a section of the page depending on the user's state.

Why the Other Options Are Incorrect

B. Implement involved business logic through conditional statements.
– Involved (complex) business logic should not be implemented in ISML templates. Templates are for presentation, and putting complex logic in `` (and other ISML tags) violates the separation of concerns between the controller/script layer and the view layer. Complex business logic belongs in controllers or Script API modules, not in ISML. ISML conditionals should remain simple. So this is not a best-practice use.

C. Redirect users to the registration page if they are not logged in.
– Redirects are not performed in ISML templates. Redirect logic belongs in the controller (e.g., using `res.redirect(...)` or route middleware) before rendering. ISML templates render content; they do not issue HTTP redirects. Attempting to handle a redirect via `` in a template is not the correct layer and does not follow best practice. So this is an inappropriate use.

Reference

Salesforce B2C Commerce / SFRA documentation — ISML tags (``) and template best practices, which emphasize keeping ISML for simple presentation-layer conditionals and placing business logic and redirects in controllers/scripts.

Given the sandbox with:
• Service configured and assigned to its profile and credential
• A code version that uses that service
And given the requirement to limit the number of success or error calls the code can perform to a restricted
number of calls per second. Which configuration should the developer perform?

A. Set the service as limited and change the services profile site preferences with the required values.

B. Set the rate limiter in the service profile and configure its values with the ones required.

C. Set a new quota limit for the service profile and assign the service to it.

B.   Set the rate limiter in the service profile and configure its values with the ones required.

Explanation

In Salesforce B2C Commerce (SFCC), the Service framework allows developers to configure rate limiting on a service to control how many calls can be made within a given time window — protecting the target system from being overwhelmed and respecting the third-party API's usage limits.

The rate limiter is configured in the Service Profile. In Business Manager, the service profile includes a Rate Limiter setting where you can specify:

* The number of calls allowed (the call limit).
* The time interval (e.g., per second, per minute).

Once the rate limiter is enabled and configured with the required values in the service profile, the service framework enforces the limit — allowing only the specified number of calls per time interval. Calls exceeding the limit are throttled/rejected according to the rate limiter behavior.

Since the requirement is to limit calls to a restricted number per second, the developer must set the rate limiter in the service profile and configure its values — making option B correct.

Why the Other Options Are Incorrect

A. Set the service as limited and change the services profile site preferences with the required values.
– There is no "set the service as limited" action, and rate limiting is not configured through site preferences. Rate limiting is a property of the service profile itself, configured via its rate limiter settings. This option misidentifies where and how rate limiting is configured.

C. Set a new quota limit for the service profile and assign the service to it.
– While SFCC does have quotas (which govern resource consumption limits such as the number of service calls over a longer period, API call quotas, etc.), a quota is not the mechanism for limiting calls per second in the way described. The requirement — a restricted number of calls per second — is specifically handled by the rate limiter in the service profile, not by a quota. Quotas are about overall usage limits, not per-second rate control. So this option addresses the wrong mechanism.

Reference

Salesforce B2C Commerce documentation — Service framework and Service Profiles in Business Manager (Administration > Operations > Services), specifically the rate limiter configuration that controls the number of calls allowed within a specified time interval (e.g., calls per second).

Salesforce-B2C-Commerce-Cloud-Developer Exam Questions - Home Previous
Page 3 out of 31 Pages