Last Updated On : 7-Apr-2026


Salesforce Accredited B2B Commerce Developer - AP-202 Practice Test

Prepare with our free Salesforce Accredited B2B Commerce Developer - AP-202 sample questions and pass with confidence. Our B2B-Commerce-Developer practice test is designed to help you succeed on exam day.

211 Questions
Salesforce 2026

How are version related upgrades passed on to subscriber API extensions/overrides?

A. APIs callback with specific versions specified; the user must know which version number to use.

B. Copy and paste of specific code is "built-in"

C. Extensions and overridden APIs don't support-related upgrades.

D. The "delegate" allows inherited method calls access to the most recently specified service version

D.   The "delegate" allows inherited method calls access to the most recently specified service version

Explanation:

The B2B Commerce API is designed using a Delegation Pattern. When you extend a service (for example, ccServiceProduct or ccLogicCartPlaceOrder), your custom class inherits from a base class that holds a reference to a delegate.

The Role of the Delegate:
The delegate is an internal object that knows which version of the logic is currently being executed.

Seamless Upgrades:
When Salesforce releases a new version of the managed package with updated logic, the delegate is updated. Because your custom extension calls super.methodName(), the delegate ensures that the call descends into the latest version of the underlying logic without you having to manually update version numbers in your code.

Version Context:
The API maintains a version context (often passed in the cc_RemoteActionContext). The delegate uses this context to ensure that even if you have customized a method, the parts you did not customize still benefit from the latest platform improvements.

Detailed Analysis of Incorrect Answers

A. APIs callback with specific versions specified...
This is incorrect. While you can specify a version in the inputData map, the developer does not need to manually manage or hardcode version numbers within every extension to receive upgrades. The framework handles the version routing internally via the delegate.

B. Copy and paste of specific code is "built-in"
This is incorrect. Copying and pasting code is the opposite of a managed upgrade path. If you copy code from the managed package into a custom class, that code becomes frozen and will not receive any bug fixes or enhancements provided by Salesforce in future releases.

C. Extensions and overridden APIs don't support-related upgrades
This is incorrect. One of the primary value propositions of the B2B Commerce Service/Logic architecture is that it does support upgrades. By following the extension patterns (using super calls), customizations remain upgrade-compatible.

References
Salesforce B2B Commerce Developer Guide: Logic Class Extension and Overrides
Salesforce Help: B2B Commerce Global API Versioning

Which out of the box Salesforce B2B Commerce page can give instructions to web crawlers from accessing specific Salesforce B2B Commerce pages?

A. CCCat?SiteMap

B. cc_RobotsTxT

C. CCSiteIndex

D. CCPage

B.   cc_RobotsTxT

Explanation:

In Salesforce B2B Commerce (formerly CloudCraze, now B2B Commerce on Lightning / Visualforce-based storefronts), the out-of-the-box page responsible for serving a robots.txt file is the Visualforce page named cc_RobotsTxT (or ccrz__cc_RobotsTxT in the namespace).

This page dynamically generates the robots.txt content based on configuration settings such as:
CO.RobotsTxtAllow
CO.RobotsTxtDisallow

It allows administrators to specify which paths/URLs web crawlers (search engine bots) should be allowed or blocked from accessing.

Example content it might produce:

User-agent: *
Disallow: /cart
Disallow: /checkout
Allow: /
Sitemap: [https://yourdomain.com/apex/ccrz__CCSiteIndex](https://yourdomain.com/apex/ccrz__CCSiteIndex)

You access it at a URL like:
/apex/cc_RobotsTxT
or
/apex/ccrz__cc_RobotsTxT

Search engines automatically look for it at /robots.txt (routed via the site's configuration or rewrite rules in Experience Cloud).

Salesforce provides this as a default out-of-the-box page specifically for controlling crawler access instructions per the robots.txt standard.

Why the Other Options Are Incorrect

A. CCCat?SiteMap
This appears to be a typo/misspelling/reference to CCCatSiteMap (ccrz__CCCatSiteMap), which is the Visualforce page that generates a category-based sitemap (XML format for categories/products). It helps crawlers discover content but does not give disallow/allow instructions to bots.

C. CCSiteIndex
This is the Visualforce page (ccrz__CCSiteIndex) that generates the main sitemap index file (an XML sitemap index pointing to sub-sitemaps like product, category, content). It is referenced in robots.txt (for example, Sitemap: .../apex/ccrz__CCSiteIndex), but it does not provide crawler instructions itself — it is for discovery, not control.

D. CCPage
This is a generic Visualforce page controller/handler (ccrz__CCPage) used for rendering custom or dynamic storefront pages with a pageKey parameter (for example, /apex/ccrz__CCPage?pageKey=aboutUs). It has nothing to do with robots.txt or crawler instructions.

References
Salesforce Help: Control Traffic from Search Engines with robots.txt — Describes the default robots.txt provided by B2B Commerce for Visualforce, including how it is assigned to the Experience Cloud site and links to the sitemap (often via CCSiteIndex).

B2B Commerce Developer Guide / Exam Study Material — Out-of-the-box pages section covers cc_RobotsTxT as the page serving robots.txt content.

A developer needs to implement specific styling for a standard component on a single page of the B2B Commerce store using an Aura template. The component should use the default style on all other pages How should the developer implement the required changes over multiple instances?

A. Use a Custom CSS file in a static resource and add the import using the Edit Head Markup Editor in the Experience Builder.

B. Create a Custom Content Layout Lightning web component that imports the custom CSS file. Set up the page to use this Content Layout.

C. Create a Custom Theme Layout Aura component that imports the custom CSS file. Set up the page to use this Theme Layout.

D. Use the Override CSR Editor in the Experience Builder and add the desired CSS to change the styles.

C.   Create a Custom Theme Layout Aura component that imports the custom CSS file. Set up the page to use this Theme Layout.

Explanation

In Salesforce B2B Commerce (Experience Cloud storefronts), styling scope depends on where CSS is applied:

Theme Layouts control the structure and styling scope at the page level.

Assigning a custom Theme Layout to a single page allows styling changes that affect:
Standard components
Multiple component instances
Only that specific page

👉 The requirement says:

Apply styling to a standard component
Only on one page
Keep default styling everywhere else
Work across multiple instances

A Custom Theme Layout Aura component is the correct mechanism because it allows you to load custom CSS that applies only to pages using that layout.

Typical approach:

Create an Aura Theme Layout.
Import CSS (usually from a static resource).
Assign this Theme Layout only to the target page in Experience Builder.

This scopes the styling properly without affecting the rest of the site.

Why the Other Options Are Incorrect

A. Use a Custom CSS file in a static resource via Edit Head Markup
❌ Incorrect

Head Markup applies globally across the entire Experience site.
This would affect all pages, violating the requirement.

B. Create a Custom Content Layout LWC
❌ Incorrect

Content Layouts control content region structure, not global page styling behavior.
They are not intended for overriding styling of standard components across the whole page.

D. Use the Override CSR Editor
❌ Incorrect

CSR (Component Style Overrides) are not the recommended or scalable way.
Overrides may apply broadly and are harder to scope cleanly to one page.
Not suitable for managing multiple component instances consistently.

Salesforce Concept Reference

Experience Cloud Architecture:

Theme Layout
Defines header, footer, and page wrapper.
Best place for scoped CSS affecting a full page.

Content Layout
Defines content regions only.

Head Markup
Global scope.

Salesforce Docs:

Experience Builder → Theme Layout Components
Customize Experience Cloud Site Layouts
B2B Commerce Storefront Customization

AP-202 Exam Tip

When you see:

“Apply styling only on ONE page” + “standard components” + “multiple instances”

Think immediately:

✅ Custom Theme Layout (Aura)

What is one requirement to keep in mind when including additional JavaScript 1h files in a Lightning Web Component?

A. The files must be ES6 modules and must have names that are unique within the component's folder.

B. Only five of the files can be used with an import statement

C. All the files must be imported to a singleton.js file and the singleton.js file can be used with an import statement

D. Only one of the files can be used with an import statement

A.   The files must be ES6 modules and must have names that are unique within the component's folder.

Explanation:

When including additional JavaScript files in a Lightning Web Component, those files must be ES6 modules. Additionally, each file must have a unique name within the component's folder structure. This ensures proper module resolution and prevents naming conflicts when importing these modules into your main component JavaScript file.

Why the other options are incorrect:

B: There is no limit of only five files that can be imported. You can import as many ES6 modules as needed.

C: There is no requirement to import all files into a single singleton.js file. You can import modules directly where needed.

D: There is no restriction that only one file can be used with an import statement. You can import multiple modules as needed.

Reference:
Salesforce Developer Guide: Create a Lightning Web Component That Uses Another JavaScript Module

How does a project implement the process to persist payment information datain the Checkout flow for Salesforce B2B Commerce version 4.2 and beyond?

A. Trigger a remote action when the process payment button is selected to capture the payment.

B. Trigger a remote action to store the payment information in the URL query parameters.

C. Trigger the processPayment event and pass in the payment information object as an argument.

D. Trigger the externalprocessedPayment and pass in the payment information object as an argument.

C.   Trigger the processPayment event and pass in the payment information object as an argument.

Explanation:

Beginning with Salesforce B2B Commerce (CloudCraze) version 4.2 and later, payment handling in Checkout follows an event-driven architecture.

To persist payment information during checkout, a custom payment component must:

👉 Fire the processPayment event

and include the payment information object as the event payload.

This event:
Signals Checkout that payment processing should begin
Passes payment data into the Commerce checkout pipeline
Allows the platform to securely persist and process payment details
Integrates with configured payment integrations

❌ Why the Other Options Are Incorrect
❌ A. Trigger a remote action when the process payment button is selected
Older patterns used remote actions, but they are not the recommended mechanism from v4.2 onward.

❌ B. Store payment information in URL query parameters
This is insecure and not supported for payment persistence.

❌ D. externalprocessedPayment
This is not a valid checkout event used for payment persistence.

B2B-Commerce-Developer Exam Questions - Home Previous
Page 6 out of 43 Pages