0.5) B2C, B2B, B2B2C, B2C Lightning?
Is this a riddle? No, those are branding changes on this and related clouds. Let me try to clarify once and for all (until the next rebranding?).
- B2B is native commerce platform, which comes from the CloudCraze acquisition based on Experienced Cloud (previously named Community Cloud). The common term of B2B stands for Business To Business.
- B2C is completely separate technology platform, which comes from the acquisition of Demandware. The common term of B2C stands for Business To Consumer.
- B2B2C is a version of the native commerce platform which aims to handle better consumer volume but at a lower rate than what the B2C can offer. Check out the value added pricing model.
- B2C Lightning is what I have recently heard the above potentially confusing term of B2B2C may be rebranded as.
1) Integration Strategies
Something sort of ‘clicked’ for me this week, the fact that B2C Commerce reminds me in a fuzzy way of Marketing Cloud: a high volume robust application where you have to integrate with multiple external applications.
Aside from the MC Connector with core Salesforce, you have either Jobs – quite similar to the automation query and file-based capabilities from MC – or you can use APIs.
Another similarity is that you may have the base of the application, then you can pick and choose with extension products. For example with Marketing Cloud you have family products such as Push and SMS, Interaction Studio, Advertising, CDP, etc. With B2C commerce you may look at Order Management if you are using Service Cloud or extend with the option of Pick Up In Store.
Sure, each one has its own intricacies. Yet at a high level this understanding opens a lot of patterns and frameworks you can use when tackling a project around either/or: Synchronous vs Asynch, Push vs Pull, Client-side vs Server-side.
Also the understanding that neither is a system of record, but transient. It is our responsibility to put in place retention, transfer and periodic deletion of data processes.
⚠️ One big difference is that B2C Commerce is heavily code driven and that you have tons of access to back end and logs. The logs side of things is definitely one of my all-times wish for MC prior to the acquisition of ExactTarget.
2) Optimistic Concurrency
B2C Commerce uses this concept of Optimistic Concurrency, meaning that it allows many threads to read and write an object record, without requiring a lock. This is quite different to how Salesforce behaves.
Before committing each transaction verifies that no other transaction has modified the data it has read. In line with this is the concept of Optimistic Control Attribute, that is when it has been modified latest rather than on time on sequence.
A consequence of this idea is that the whole transaction rolls back, as the platform understands that it doesn’t know if the latest is an essential part of the job or not. (It can be restarted though.)
To mitigate this you have the functionality of Job Locking, meaning you have at hand the ability to control resource locking that can be set up on jobs.
Needless to say that it’s important to design to avoid optimistic concurrency. You do that by splitting processing of large number of records into several transactions, for example by certain status value.
At a more generic level try to avoid Optimistic Concurrency Exceptions (errors when 2 different threads / processes are modifying the record and trying to modify it on the data base). Avoid modifying records from storefront and job context.
3) 3rd Party Extensions
Product/bundles (LINK Cartridges) from the Marketplace are NOT reviewed and handled as you expect from AppExchange packages.
Although I knew they are free because they are made by vendors so that you can then connect easier to their external solution. And that they are sort of a code bundle that you add into your repo/code base.
I assumed there was a more robust process such as the security review that apps in the AppExchange go through.
Alright, so that’s it folks, some little goblets of joy about ‘B2C Commerce’ (Demandware) this week.