The Salesforce B2C Commerce platform involves integrating various third-party services for a delightful shopping experience. Some of these typically include checkout services, such as tax services, the shipping and the payment processors. Besides, the implementation might also include a repository of product videos that shall be displayed on the product page and links to social handles.

Each B2C merchant has unique integration requirement. Therefore, it is critical to put in the right integration strategies in place to improve data flow and have a scalable application.

In this blog, we shall talk about SFCC integration best practices for an amazing shopping experience. But before we delve into it, we shall explore a little more about the integration process.

Integration Interfaces

The interfaces that you can use for integration include the Salesforce B2C Commerce Web Services framework and the B2C Commerce scheduled jobs interface. You can choose an interface based on your implementation requirement, or you can even use both.

In the Salesforce Commerce Cloud platform there are the options of using B2C Commerce Headless/Commerce API and the Open Commerce API (OCAPI) for programmatic access.

Integration Strategies

After knowing the integration interfaces, the next step is to learn about the various integration strategies. Some of them are:

  • Synchronous (real-time) versus asynchronous (batch)
  • Push versus pull
  • Client-side versus server-side

There’s no one size fits all strategy, each of them has their strength and weaknesses. It depends on the technical architect to opt for one of these strategies, considering the integration scenario. There are also instances of combining more than one strategy.

Quick Tip: The strategy for integration to show loyalty points will differ from the one that imports product data.

Source: Trailhead

Synchronous Integration

Synchronous integration is real time for immediate data availability. You can implement this strategy using the Web Services framework. It’s a tool that allows you to manage calls to web services and analyze service performance. Within the Web Services framework, B2C Commerce storefront request processing is suspended until the third party responds or times out.

Synchronous integration strategy is most common for implementing stateless third-party integration designs such as loyalty points, tax calculation, and real-time order history view from an order management system.

Asynchronous Integration

Asynchronous integration happens at a specific time. The strategy is perfect when real-time data views or updates aren’t required. You can implement this integration using a data file or a web service/API call. Some include:

  • Catalog imports from product information management (PIM)
  • Order exports to an order management system (OMS)
  • Customer data export to a customer relationship management (CRM) system
  • LINK cartridge for ratings and reviews

For asynchronous integrations, you must create a scheduled job for reusable steps or run the jobs manually for transferring data in or out of the B2C Commerce platform. Also, it’s necessary to time these jobs at off-peak hours to improve platform performance.

The best practice is to implement communication with third parties for file upload/download or API/web service calls using the Web Services framework.

To understand whether you should push or pull the data, you need to consider the below factors:

The table above represents ways to integrate customer relationship management (CRM) into an application. You can do a one-time CRM extract. For instance, by pulling via a job. This is for the initial data load that’s initiated by the B2C Commerce system.

If you want to do delta (change) updates as they occur or in batch mode by pushing to the OCAPI Data API, the below diagram can guide you.

Client-Side Versus Server-Side

Choosing of the client-side or server-side integration depends on the type of integration. For the B2C Commerce platform, the client-side is the browser layer, and the B2C backend custom layer is on the server-side.

Mostly third-party tracking and tagging are on the client-side. Some third-party systems provide direct client-side integration options. Some examples are ratings/reviews, captcha verification, and maps integration. The client-side provides an asynchronous experience using Ajax.

You may use the server-side integration for login/password or a secret token to access a third-party service. You should also use it if you need to persist or include third-party data in search indexes.

Integration Principles

Applying the right integration principle, such as loose coupling and transfer server, helps you deliver a scalable and stable platform. Let us understand how to make that possible.

Loose Coupling

Coupling is interdependence between software modules, and a measure of how closely connected two routines or modules are. A loosely coupled system is where each component makes little or use of other components. The benefits of loose coupling are that the components of one system don’t heavily depend on each other by making assumptions about other components’ functionality. When two parts are loosely coupled, they are more independent of each other and less likely to break when the other components change.

Loose coupling provides room for fault tolerance, making an integration robust. It reduces the risk in one system when another system is down. With fault tolerance, the assumption is that any integration has the possibility of failing. Therefore, it is critical to determine how the integration can overcome failure and also identify the expected impact on the shopping experience. Depending on whether the integration is on a critical path, your fault tolerance strategy can change.

Transfer Server

Developers use a transfer server to transfer data between B2C Commerce and a third party. While using a transfer server, it’s important that files and data are consumable by the other systems. Most implementations support multiple types of data, for example, product, customer, coupon, tax, and so on. Hence, each integration that follows the transfer server principle must have its own process. A decoupled integration makes the process seamless.

Closing Thoughts

Now that you understand there are certain best practices for third party integration on a SFCC B2C Commerce platform, next time you go for an integration you will certainly weigh your business requirements before you take a plunge since this entire process is like a jigsaw puzzle wherein only the right piece will fit into the missing space to deliver a smooth shopping experience.