CertsPoint
See all results for ""
Exams About Us
Sign In Get Started
Exam Overview
Exam Code B2B-Commerce-Developer
Exam Name Salesforce Accredited B2B Commerce Developer
Vendor Salesforce
Total Questions 221
Last Updated 26-Oct, 2026
Why CertsPoint?
  • Latest & Verified Questions
  • Detailed Explanations
  • Regular Updates
  • Full-Length Practice Tests
  • Boost Your Exam Confidence

PDF Study Materials

Downloadable guides and resources

Practice Tests

Full-length tests with real exam experience

Progress Tracking

Monitor your performance and improvement

Study Anywhere

Access on desktop, tablet, and mobile

Excellent
4.6 (398 Up Votes)
Secure Payment Privacy Protected Money Back Guarantee

Free B2B-Commerce-Developer Practice Questions

Explore 9 free practice questions for the Salesforce B2B-Commerce-Developer exam and review the answers and explanations to support your preparation.

  1. Question 1

    Single answer

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


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


      Correct
    • Option B:
      Copy and paste of specific code is "built-in"


      Correct
    • Option C:
      Extensions and overridden APIs don't support-related upgrades.


      Correct
    • Option D:
      The "delegate" allows inherited method calls access to the most recentlyspecified service version


      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: D

    Explanation

    Version related upgrades are passed on to subscriber API extensions/overrides by using the
    “delegate” keyword, which allows inherited method calls access to the most recently specified
    service version. For example, delegate.getCart() will invoke the getCart() method of the latest service
    version that is available for the current storefront. This way, extensions and overrides can leverage
    the new features and enhancements of the upgraded service versions without modifying their code.
  2. Question 2

    Single answer

    How are variables bound when services use the ccSercviceDao classto execute queries?


    • Option A:
      Global variables


      Correct
    • Option B:
      Apex local variables


      Correct
    • Option C:
      String substitution


      Correct
    • Option D:
      Apex class variables
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: C

    Explanation

    When services use the ccServiceDao class to execute queries, variables are bound by string
    substitution. This means that the query string contains placeholders for variables that are replaced by
    their values at runtime. For example, ccrz.ccServiceDao.getQuery('SELECT Id FROM Account WHERE
    Name = :name') will replace :name with the value of the name variable.
  3. Question 3

    Multiple answers

    For which two reasons is it preferable to extend the Salesforce B2B Commerce remote invocation
    object instead of using the standard Salesforce remote action invocation manager (2 answers)

    • Option A:
      A standard remote action will not have access to Salesforce B2B Commerce objects.
      Correct
    • Option B:
      The APEX method called by the remote action will be passed as a Salesforce B2B Commerce
      context object.
      Correct
    • Option C:
      Salesforce B2B Commerce includes do not support standard SalesForce remote actions.
      Correct
    • Option D:
      The Salesforce B2B Commerce logger cannot be utilized in standard remote actions
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: B, D

    Explanation

    It is preferable to extend the Salesforce B2B Commerce remote invocation object instead of using the
    standard Salesforce remote action invocation manager for two reasons:
    The APEX method called by the remote action will be passed as a Salesforce B2B Commerce context
    object, which contains useful information such as the current user, cart, storefront, and configuration
    settings. This can simplify the development and testing of the remote action.
    The Salesforce B2B Commerce logger can be utilized in the remote action, which allows logging
    messages and errors to the debug log or to a custom object. This can facilitate debugging and
    troubleshooting of the remote action.
  4. Question 4

    Single answer

    A developer is trying to troubleshoot why a field is not displaying on the Product Detail Page. What
    should be typed in the Developer Tools Console in the browser to view the fields available for the
    Product Detail Page?

    • Option A:
      CCRZ.productSearchView
      Correct
    • Option B:
      CCRZ.cartView
      Correct
    • Option C:
      CCRZ.productDetailModel
      Correct
    • Option D:
      CCRZ.productDetailView
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: C

    Explanation

    To view the fields available for the Product Detail Page, the developer should type
    CCRZ.productDetailModel in the Developer Tools Console in the browser. This will display the
    product detail model object, which contains the product data and attributes that are rendered on the
    page. The other options are either not valid or not relevant for the Product Detail Page.
  5. Question 5

    Single answer

    A Developer created a custom field that a project wants to expose on a given page.
    How does the Developer ensure that the field is available to display on a given page?


    • Option A:
      Override the Service Class that the page uses and update the ServiceManagementin CCAdmin for
      the given storefront to use this new Service Class.


      Correct
    • Option B:
      Override the Logic Class that the page uses and update the Service Management inCCAdmin for
      the given storefront to use this new Service Class


      Correct
    • Option C:
      Create a new Service Classthat the page uses and update the Service Managementin CCAdmin for
      the given storefront to use this new Service Class
      Correct
    • Option D:
      Create a new Logic Class that the page uses and update the Service Managementin CCAdmin for
      the given storefront to use this new Service Class
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: A

    Explanation

    To ensure that a custom field is available to display on a given page, the Developer needs to override
    the Service Class that the page uses and update the Service Management in CCAdmin for the given
    storefront to use this new Service Class. The Service Class is responsible for retrieving and setting
    data for a given page. The Logic Class is responsible for implementing business logic and validation
    rules for a given page. Creating a new Service Class or Logic Class is not necessary, as overriding an
    existing one can achieve the same result. Salesforce Reference: B2B Commerce and D2C Commerce
    Developer Guide, Service Classes, Logic Classes
  6. Question 6

    Single answer

    A configuration value, CO.NewOrder, is set to TRUE. What is one way of
    preventing anexisting payment page from being shown on the checkout payment page?

    • Option A:
      Delete the Visualforce page from the code base.
      Correct
    • Option B:
      Remove the value matching the page name from the pmt.whitelist configurationsetting, then
      rebuild and activate a new Configuration cache
      Correct
    • Option C:
      Remove the payment type associated with the payment page from CO.pmts, thenrebuild and
      activate a new cache.
      Correct
    • Option D:
      Override the front end template and modify the way the embedded payment page getsloaded
      from the payment list configuration.
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: B

    Explanation

    This approach effectively removes the payment page from the list of allowed pages, ensuring it is not
    displayed during the checkout process.
    Reference: Salesforce B2B Commerce documentation on checkout process customization and
    configuration settings, specifically focusing on payment page handling and the pmt.whitelist setting.
    This approach effectively removes the payment page from the list of allowed pages, ensuring it is not
    displayed during the checkout process.
    Reference: Salesforce B2B Commerce documentation on checkout process customization and
    configuration settings, specifically focusing on payment page handling and the pmt.whitelist setting.
    The pmt.whitelist configuration setting in Salesforce B2B Commerce is used to manage the
    Visualforce pages that support all payment types on the storefront1. If you want to prevent an
    existing payment page from being shown on the checkout payment page, one way to do it is to
    remove the value matching the page name from the pmt.whitelist configuration setting. After doing
    this, you would need to rebuild and activate a new Configuration cache for the changes to take
    effect1. Please note that this information is based on the Salesforce B2B Commerce documentation
    and best practices1.
  7. Question 7

    Single answer

    The ccUtil apex class in Salesforce B2B Commerce provides numerous utility
    functions that can be leveraged in subscriber classes. Which command will
    return the value in the given Map if found or a default value in the event that
    the Map is null, empty, or an object is not found for that key? 

    • Option A:
      ccrz.ccUtil.defv (Map<String.Object> mp, String key , Object ob) 
      Correct
    • Option B:
      ccrz.ccUtil.defVal (Map<String.Object> mp, String key, Object ob) 
      Correct
    • Option C:
      ccrz.ccUtil.. (Map<String.Object> mp, String key, Object ob) 
      Correct
    • Option D:
      ccrz.ccUtil.defaultValue(Map<String.Object> mp, String key , Object ob)
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: B

    Explanation

    The ccrz.ccUtil.defVal (Map<String.Object> mp, String key, Object ob) method will return the value in
    the given Map if found or a default value in the event that the Map is null, empty, or an object is not
    found for that key. This method is useful for providing fallback values for configuration settings or
    input parameters that may be missing or invalid. Salesforce Reference: B2B Commerce and D2C
    Commerce Developer Guide, ccUtil Class
  8. Question 8

    Multiple answers

    The ccUtil apex class in Salesforce B2B Commerce provides numerous utility
    functions that can be leveraged in subscriber classes.
    What are two ways to check the input or return data of the Global API's? (2 answers)

    • Option A:
      ccrz.ccUtil.isNotEmpty(Map<String, Object>) andccrz.ccUtil.isNotEmpty(List<Object>)
      Correct
    • Option B:
      ccrz.ccUtil.isNotValid(Map<String, Object>) andccrz.ccUtil.isNotValid(List<Object>)
      Correct
    • Option C:
      ccrz.ccUtil.isValid(Map<String, Object>) and ccrz.ccUtil.isValid(List<Object>)
      Correct
    • Option D:
      ccrz.ccUtil.isEmpty(Map<String, Object>) and ccrz.ccUtil.isEmpty(List<Object>)
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: A, D

    Explanation

    The ccUtil apex class provides two methods to check the input or return data of the Global API’s:
    ccrz.ccUtil.isNotEmpty(Map<String, Object>) and ccrz.ccUtil.isEmpty(Map<String, Object>). These
    methods return true if the map is not null and contains at least one entry, or if the map is null or
    empty, respectively. Similarly, ccrz.ccUtil.isNotEmpty(List<Object>) and
    ccrz.ccUtil.isEmpty(List<Object>) return true if the list is not null and contains at least one element,
    or if the list is null or empty, respectively. These methods are useful for validating the input
    parameters or the output results of the Global API’s.
  9. Question 9

    Multiple answers

    Although Salesforce B2B Commerce and Salesforce recommend against using
    "without sharing classes" whenever possible, sometimes it is unavoidable. Which three
    items will open up a major security hole? (3 answers)


    • Option A:
      Executing dynamic SOQL inside a without sharing class with a bind variable
      fromPageReference.getParameters().


      Correct
    • Option B:
      Executing dynamic SOQL inside a without sharing class with a bind variable from theUserInfo class.


      Correct
    • Option C:
      Executing dynamic SOQL inside a without sharing class with a bind variable
      fromPageReference.getCookies().


      Correct
    • Option D:
      Executing dynamic SOQL inside a without sharing class with a bind variable
      fromcc_RemoteActionContentex class.


      Correct
    • Option E:
      Executing dynamic SOQL inside a without sharing class with a bind variable
      fromccAPI.CURRENT_VERSION.
      Correct
    Show Answer & Explanation Hide Answer & Explanation

    Correct Answer: A, C, D

    Explanation

    Executing dynamic SOQL inside a without sharing class with a bind variable from
    PageReference.getParameters(), PageReference.getCookies(), or cc_RemoteActionContext class will
    open up a major security hole because these sources of input are not sanitized and can be
    manipulated by malicious users to inject SOQL queries that bypass the sharing rules and access data
    that they are not supposed to see. For example, a user can modify the URL parameters or cookies to
    include a SOQL query that returns sensitive data from the database. To prevent this, it is
    recommended to use static SOQL or escape the bind variables before executing dynamic SOQL.