CreatePartialFulfilmentWithSourcingProfile
Changed on:
3 Aug 2026
Overview
Create Partial Fulfillment(s) using the specified Sourcing Profile.The Rule evaluates Fallback Sourcing Strategies in priority order and executes only the highest-priority Strategy whose Conditions are fully satisfied.Location ratings are recalculated after each allocation to reflect remaining unfulfilled demand.| Plugin Name | Order Reference Module |
|---|---|
| Namespace | [[account.id]].order |
UI Description
Apply the Sourcing Profile identified by {sourcingProfileRef} to a Sourcing Request (Order, Fulfillment Option, etc.) and produce Partial Fulfillment(s).
Accepts
- ORDER
- FULFILMENT_CHOICE
Actions
- This Rule produces a MutateAction
Rule parameters
| Name | Type | Description |
`sourcingProfileRef` | `String` | Reference to the Sourcing Profile to apply. |
Event attributes
Exceptions
- This Rule throws a
`PropertyNotFoundException`when the Rule parameter(s) is not provided.
- This Rule throws an
`IllegalArgumentException`if Sourcing Conditions or Criteria are improperly configured
Configuration example
1{
2 "name": "[[account.id]].order.CreatePartialFulfilmentWithSourcingProfile",
3 "props": {
4 "sourcingProfileRef": "GLOBAL_DEFAULT"
5 }
6}Detailed Technical Description
This Rule executes the following steps:- Validate the
`sourcingProfileRef`parameter. - Load the Sourcing Profile using the provided reference (
`SourcingUtils.loadSourcingProfile`). - Verify that the Sourcing Profile contains at least one Fallback Sourcing Strategy.
- Load the Sourcing Context and identify Unfulfilled Items (
`SourcingContextUtils.loadSourcingContext`). - Execute the first applicable Fallback Sourcing Strategy in
`priority`order: (`SourcingUtils.getPlanFinder().nextFallbackPlan()`):- Confirm that the Strategy
`status`is`ACTIVE` - Evaluate the Sourcing Conditions against the current Sourcing Request (skip the Strategy if its Conditions are not met)
- Load the relevant Locations and Positions (
`SourcingUtils.loadPositions`)
Virtual Positions with status`ACTIVE`,`AT_RISK`, and`OUT_OF_STOCK`are included - Attempt to find possible Fulfillment(s) using the loaded Locations, sorted by the Sourcing Criteria ratings (
`SourcingUtils.findHighestValuePartialFulfilment`), while:- Unfulfilled Items remain
- The Maximum Split has not been reached
- After each allocation, recalculate Location ratings against the remaining Unfulfilled Items so that each subsequent partial Fulfillment reflects current demand (
`SourcingUtils.findPartialFulfilmentPlan`)
- Confirm that the Strategy
- Set the fulfillment type for each Fulfillment based on Fulfillment Choice and Location (
`OrderUtils.fillFulfilmentType`). - Create the Fulfillment(s) (
`OrderUtils.createFulfilments`).
Version History
See previous versions