Implement Distributed Order Management
After completing this unit, you’ll be able to:
- Describe what distributed order management is.
- Explain the benefits of distributed order management.
- Discuss the automated routing options available in Salesforce Order Management.
What Is Distributed Order Management?
In the previous unit, you learned how to automate your fulfillment processes with flows. Automation helps you ensure the timely and accurate fulfillment of customer orders, which is crucial to the success of your business.
In today’s rapidly changing ecommerce environment, simply fulfilling orders is not enough. Customers want to interact and buy from your brand across online (ecommerce stores) and offline (physical stores) channels. And they want the experience to be seamless across those channels. To keep your customers happy, your fulfillment processes need to be flexible enough to handle a variety of sales and service scenarios.
Distributed order management (DOM) lets you optimize your fulfillment workflows to efficiently deliver orders on time and at the lowest cost, from all of your locations. And you can quickly adapt your workflows to incorporate new selling channels, fulfillment methods, and inventory locations.
By implementing a distributed order management workflow you can:
- Optimize your network: Use your network of stores and distribution centers to offer fulfillment from each location.
- Reduce costs: Build in logic to identify the smallest set of locations that can combine to fulfill the order to reduce shipping costs.
- Fulfill faster: Dynamically route orders to the best location for fulfillment based on time/speed to deliver to boost customer satisfaction.
- Work smarter: Seamlessly unify digital and physical experiences for a single source of truth across all data and order records.
Implement DOM in Salesforce Order Management
Salesforce Order Management includes a sample distributed order management flow package. This package includes sample flows, Apex classes, custom objects, and custom fields that together demonstrate a flow-based system for routing order items to fulfillment locations. You can modify and extend the components of the sample package by using your own custom business logic to automate and streamline your fulfillment processes.
The customizable components of the flow package make it easy for you to leverage your network of retail stores and distribution centers to optimize order fulfillment from every location in your network. In addition to fulfilling orders from in-store inventory or from a traditional warehouse or distribution center, you can make your products available when and where your customers want by unlocking the “buy online, pick up in store” (BOPIS) fulfillment option.
If you integrate Salesforce Order Management with Salesforce Omnichannel Inventory, you can also incorporate real-time inventory availability features into your order routing workflows.
Let’s take a closer look to see how distributed order management can help you improve the efficiency of your automated fulfillment processes.
Automated Order Routing
As you learned already, Salesforce Order Management uses a series of automated flows to pick up every new order and kick off order fulfillment. You can then use autolaunched flows to automatically route orders to fulfillment locations. With distributed order management functionality, you can extend this automation to determine the set of fulfillment locations that can most efficiently handle an order's items, and then route inventory reservations to those locations.
An automated routing process follows these basic steps.
- Schedule routing
- Determine route
- Execute routing
- Create invoice and ensure funds
- Fulfill reservation
Salesforce Order Management includes flow core actions that you can use to implement your routing rules and help improve the speed and efficiency of your automated routing processes. These actions let you minimize split shipments and use proximity based routing to find the optimal fulfillment location for each order.
These actions are designed to work together by first identifying sets of locations that can fulfill an order, and then determining which set is closest to the order recipient. Implemented together, these actions can lead to improved efficiency—and greater customer satisfaction—by shipping orders in the fewest number of shipments from the locations closest to the order recipient’s delivery address.
Minimize Split Shipments
The Find Routes with Fewest Splits action prioritizes fulfilling from locations that can fulfill an order in the least number of order splits.
The Find Routes with Fewest Splits action evaluates an order’s product quantities against available inventory to determine the smallest set of locations that can combine to fulfill the order. Because shipping a complete order is always a priority, it starts by looking for single locations with sufficient inventory to fulfill the entire list of ordered products. If it doesn't find any, it looks for pairs of locations whose combined inventory can fulfill the order. If it doesn’t find any pairs, it looks for sets of three locations, and so on.
You can specify a maximum number of splits to limit the search. The maximum number of locations in a single combination is one more than the maximum number that you specify. For example, if you specify a maximum of two splits, then the routing flow only looks for single locations, pairs of locations, and trios of locations that can fulfill the order.
If an order can be shipped complete, the Find Routes with Fewest Splits action returns a list of locations that can ship the order in a single shipment. If it can’t be shipped complete, the action moves on to one split, which means splitting the order into two shipments from two separate locations. If there is availability to ship in two shipments, then the action returns iterations of two locations that can accommodate the two shipments. If it can’t ship after being split once, then the action moves on to two splits, the maximum number of splits allowed. This means the order will be split into three shipments, and the action returns iterations of three locations that can accommodate the three shipments.
Proximity Based Routing
The Order Routing Rank By Average Distance action evaluates the sets of locations returned by the Find Routes with Fewest Splits action to determine which set has the shortest average delivery distance based on an order recipient's postal code.
For each set of locations identified, the action calculates the straight-line distance from each location to the order recipient's postal code. It then calculates their average and returns the location sets sorted by their average distance to the recipient.
In this way, you can prioritize shipping from the locations in that list that are closest to the delivery address.
Order Routing with Omnichannel Inventory
Salesforce Omnichannel Inventory provides several core flow actions for implementing inventory functionality in flows. If you’re using Omnichannel Inventory with Salesforce Order Management, you can combine its flow core actions with your routing logic to create and manage reservations as part of your automated fulfillment processes.
Adding real-time inventory availability information to your automated fulfillment processes can help improve the reliability and efficiency of your fulfillment workflow.
This table provides descriptions of the Salesforce Omnichannel Inventory core flow actions that you can use to improve your routing logic.
|Core Flow Action||Description|
Get Inventory Availability
Get inventory availability for one or more products at one or more inventory locations or location groups.
Transfer a Reservation
Transfer one or more inventory reservations between locations or location groups and update inventory availability at the locations or location groups.
Fulfill a Reservation
Fulfill one or more inventory reservations at a location and update inventory availability at the location.
Release a Reservation
Release one or more inventory reservations at a location and update inventory availability at the location or location group.
Track Order Routing Attempts
The Salesforce Order Management data model allows you to implement your own rerouting logic for orders that aren’t fully routed for fulfillment or that have a reservation canceled.
When implementing logic for rerouting orders, information about previous routing attempts can be very useful. To keep track of routing information, you can use the Order Summary Routing Schedule object and the Routing Attempts field on the Order Summary object.
Order Summary Routing Schedule
An order summary routing schedule record represents a single attempt to route an order. The record provides you with the scheduled date and time of the routing attempt, the status of the routing attempt (Scheduled, Completed, or Abandoned), and the reason that the attempt failed.
How you use order summary routing schedules is up to you. You can create them when scheduling future routing attempts, or to record past attempts. However, after you set the status of an order summary routing schedule to Completed or Abandoned, you can’t change the scheduled date and time.
Routing Attempts Field
The Routing Attempts field lets you record the number of routing attempts made for an order summary. As with order summary routing schedules, how you use it is up to you.
You’ve now seen how the pieces of the order management puzzle fit together. But there’s still one more thing to consider—the one thing that brings it all together—service.