FAQ on SalesForce Commerce Cloud: B2B Connector
Q: Why do I get product variants as well as main product items in the product grid or search pages?
Salesforce Commerce Cloud: B2B includes product variants in product search results, unlike some other Commerce Backend Platforms - such as commercetools or ElasticPath - which usually include only main product items, excluding product variants, in the search results.
This behavior is based on how product variants are constructed with the Aggregated Product concept in Salesforce Commerce Cloud: B2B backend which allows to construct an aggregation from multiple products and let the aggregation include product variants from other products. It is a different perspective from other Commerce Backend Platforms such as commercetools or ElasticPath, where product variants are treated as child components of the main product item, rather than independent entities. As a result, the search results from Salesforce Commerce Cloud: B2B may include product variants separately as well.
If you want the search results to include only main product items, then let the product grid or search components invoke Bloomreach Discovery connector instead of invoking the Salesforce Commerce Cloud: B2B connector directly. When the product catalog is migrated to Bloomreach Discovery, products and the associations with variants can be resolved by nesting variants inside its main product. As a result, the product grid and search results will include only the main product items if the requests are made against Bloomreach Discovery connector.
Q: How do I test my connection/merchant account with Salesforce B2B Commerce?
If the merchant account used in the configuration has been set up with the correct permissions (i.e. can read the product catalog and price list), then you should be able to do a search call. To test this, you can use Postman or any similar client. Using Postman as the example, create a new Access Token with your credentials:
Using the generated Access Token, make the following POST call:
curl --location --request POST 'https://<your_instance>.force.com/DefaultStore/services/apexrest/ccrz/ccproduct/v8/find' \ --header 'Authorization: Bearer <bearer>' \ --header 'Content-Type: application/json' \ --header 'Cookie: BrowserId=BCS37J4lEeq8M2s-9G_JyA' \ --data-raw '{"LOCALE":"en_US","SORTDESC":true,"PRODUCTLIMIT":12,"INCLUDECOUNT":true,"SEARCHTERM":"<search_term>","ORDERBY":"piOrderByStartDate"}'
On success you should get a list of products (according to the search term).
If the call returns an exception, please confirm that the merchant account belongs to an account group with permissions to read the product catalog. Depending on the settings for your storefront you might need to apply different rules. For a more detailed explanation of Salesforce rules and which ones should be used, please check the following page: