Solver as a Service
Sign Up Now →Sign Up Now

Order Fulfillment Allocation

Fulfill a batch of sales orders across fulfillment networks (distribution centers + carriers) at lowest total cost: for each order, jointly choose the cheapest network/DC/carrier that has inventory and can deliver to the destination zip within the required transit time for the SKU, where cost = pick-and-pack at the DC + transportation to meet the promised window (+ network overhead). Routes deliveries under driver capacity and minimizes shipment splits.

Previewproblem type order_fulfillmentmanifest 1.0

Objectives#

What the solver optimizes. Enabled objectives are weighed together.

ObjectiveWhat it meansDirectionOn by defaultWeight
Minimize Cost to Fulfill
minimize_fulfillment_cost
Primary objective: minimize total cost to fulfill the batch = DC pick-and-pack cost + carrier transportation cost to meet the delivery window + network overhead. When more than one fulfillment network can deliver an order, choose the cheapest.minimizeYes1.0
Minimize Shipment Splits
minimize_shipment_splits
Prefer plans that fulfill each delivery location from as few distribution centers/drivers as possible (each split adds handling and transportation cost).minimizeYes0.8
Maximize Order Fill Rate
maximize_order_fill_rate
Prefer plans that fully fulfill more orders from available inventory.minimizeYes0.9
Maximize On-Time Delivery
maximize_on_time_delivery
Prefer carriers whose transit time meets each order's required delivery timeframe (OTIF).maximizeYes0.7
Honor Assigned Distribution Center
minimize_off_preferred_sourcing
Prefer fulfilling an order from its pre-assigned (preferred) distribution center, mirroring the OptaPlanner single-source / assigned-DDC preference.minimizeYes0.5
Minimize Drive Distance
minimize_total_distance
Minimize total driver route distance (depot to delivery stops to depot) across the fleet.Yes0.3

Problem inputs#

The setup values you send with a problem. The console renders them as form fields.

Fulfillment Policy#

InputNameTypeRequiredDefaultDescription
allow_split_flagAllow Split ShipmentsbooleanYesTrueWhether a single sales order may be fulfilled from multiple distribution centers.
max_splits_per_order_countMax Splits Per OrderintegerYes3Upper bound on the number of distribution centers that may ship a single order.

Tradeoff Preference#

InputNameTypeRequiredDefaultDescription
distance_weightDistance WeightnumberNo0.01Relative weight given to fulfillment distance versus split count in the objective.
source_preference_weightAssigned-DC Preference WeightnumberNo1.0Relative weight given to honoring an order's pre-assigned distribution center versus distance.
transit_weightTransit Time WeightnumberNoRelative weight given to preferring faster carriers among those that meet the service level.
split_penaltySplit Penalty CostnumberNoExtra cost charged per additional shipment split, on top of the handling and transportation cost a split already incurs.

Routing Fleet#

InputNameTypeRequiredDefaultDescription
vehicle_capacityDriver CapacitynumberNoDefault case load a single driver/vehicle can carry. Per-DC overrides allowed. Unset means uncapped routing.
vehicle_countDrivers Per DCintegerNoDefault number of drivers/vehicles available at each DC. Per-DC overrides allowed. Unset means unlimited.

Constraints#

A hard constraint must hold or the problem is infeasible; a soft one adds a penalty when broken.

ConstraintWhat it requiresKindOn by default
Inventory Conservation
inventory_conservation
Quantity allocated from a distribution center may not exceed its on-hand quantity for that SKU across the batch.hardYes
Demand Satisfaction
demand_satisfaction
Each order line should be fully fulfilled from allocated inventory.softYes
Split Cap
split_cap
An order may not be fulfilled from more distribution centers than the configured maximum.hardYes
Assigned Distribution Center Preference
source_assignment_preference
Discourage fulfilling an order from a distribution center other than its pre-assigned one (OptaPlanner failedToAllocateInDifferentDDCThanAssigned).softYes
Driver Capacity
driver_capacity
Total case load assigned to a single driver/vehicle may not exceed its capacity (OptaPlanner vehicleOverCapacity).hardNo
Route Distance
route_distance
Minimize total vehicle route distance (depot to stops to depot), the OptaPlanner distanceToPreviousStandstill plus return-to-depot soft constraints.softNo
Route Duration
route_duration
A vehicle route may not exceed the maximum allowed driving duration. Roadmap: requires a speed/service-time model.hardNo
Network Membership
network_membership
A delivery must pair a distribution center with a carrier that shares a fulfillment network with it.hardYes
Carrier Zip Coverage
carrier_zip_coverage
The chosen carrier must cover the order's destination zip code.hardYes
Carrier SKU Compatibility
carrier_sku_compatibility
The chosen carrier must be able to carry every SKU in the shipment (e.g. hazmat / cold-chain restrictions).hardYes
Delivery Service Level
delivery_service_level
The carrier's transit time to the order's zip must meet the order's required delivery timeframe.hardNo
Cost To Fulfill
cost_to_fulfill
Total fulfillment cost (DC pick-and-pack + carrier transportation + network overhead) that the plan minimizes; drives the choice of fulfillment network when more than one can deliver.softNo