The Data Model
Each Salesforce product comes with its own data model and I can easily say that the Salesforce Order Management data model is one of the biggest so far.
Before I deep dive into the data model, I’d like to say that whatever you see on this page may change in the future with the new releases and when I say change, it’s mostly additional standard objects or fields.
If you take at look Salesforce Order Management resources for the objects list, you will see a list which doesn’t cover all the objects. Therefore, I’ve prepared a diagram which displays the objects and the relationships between those objects including platform event objects as well.
Here you can see the current objects and the relationships. I didn’t add [Object]Share & [Object]History objects due to their common purpose. I also didn’t add ProcessException object either because it has relationship with almost all of the objects which would destroy my diagram.
Let’s see some of those objects in the order lifecycle.
Here you can see the current platform event objects and the relationships (only the related objects).
When you look at the diagram, you might think if you need to use all of these Salesforce objects and the answer is: maybe, it depends on your business but some of them, for sure. There are actually a couple of required objects you need to use. The rest are either optional or will be created automatically but all of them represent a different stage of the order and for that reason, I’ve used different colors to represent a different stage.
Beginning of the Lifecycle: Order & Order Summary
The beginning of the order lifecycle starts with the creation of Order.
Represents the customer’s intent, including order creation (Order) and order changes (Change Order). Does not change after it’s activated.
Represents (in a single view) the current state of an order, including fulfillment status, order changes, discounts, cancellations, returns, refunds, and reshipments.
Order Summary is a special type of object that acts like a hub and its data are gathered from underlying objects (payment, fulfillment, invoice and so on) which Salesforce allows you to view almost anything related to Order, in a single view.
Order Summary includes those information:
- Who placed the order, when and through what channel?
- What items have been (or can be) allocated, fulfilled, canceled, returned, discounted, reshipped?
- Where and how the items were shipped?
- How much money has been authorized, captured or refunded?
- What are the activities since the Order creation?
Here you can see a sample Order Summary layout (summary tab)
A Change Order (is actually Order object) represents a change to an order that affects charges and payments, such as canceling or returning a product from an order. A Change Order object updates the corresponding Order Summary object, but it doesn’t change the original order details in the Order object.
When a change occurs to an order, such as a cancellation, discount or return, Salesforce Order Management creates a Change Order behind the scene. By using those Change Orders, instead of modifying the original Order, Salesforce Order Management provides an easy way to track changes to an order, while maintaining a static record of the original order. That means, whatever you see on Order Summary reflects the current state of the Order. That allows users to view all the necessary information as up-to-date.
Understanding Order & Order Summary objects is important because the journey starts with an Order and Order Summary cannot live without an Order. Order Summary is literally the brain of the Order Lifecycle.
What about the other objects? I’ll try to explain all of them once the time has come. I’d like to explain objects with the features they belong to, like fulfillment process or return but in a nutshell: the more requirements you have, the more objects to use. For example, if you decide to handle payments (auth, capture/refund) you will use Payment related objects. If you need RMA, you will use Return Order & Return Order Line Item objects. The list goes since there are lots of features.