Sourcing

Sourcing Overview

Sourcing determines which warehouse a demand line should be sourced from based on configuration.

The primary factors for this determination are inventory availability and proximity to end destination. Using these factors, along with other business logic, Orchestrate loops a demand line through several sourcing policies and corresponding warehouses until a feasible solution is found.

While Sourcing can be used without inventory awareness, we highly encourage grouping these functions together.

Additionally, inventory awareness allows sourcing logic to factor in a Ship-Complete philosophy, meaning you can prioritize shipping an entire order line from a single warehouse before attempting to split it across multiple locations.


Workflow


 Sourcing Request JSON

The Sourcing Request JSON provides all data necessary to execute sourcing business logic.

It is a multi-threaded endpoint, meaning it can be used to submit many demand line records in a single request.


 Evaluate First (Next) Sourcing Policy

The Sourcing Policy evaluation begins at this point for each demand line. Each demand line is evaluated on its own before moving to the next record.

Downstream, where demand lines fail to match within the loop, they return here to evaluate the next sourcing policy in the sequence.

Configuration Pages

Endpoints

  • Swagger


 Attribute-Policy Match

The first decision point in the loop determines whether the attribute(s) for the demand line match the characteristics for the sourcing policy.

Example

The first sourcing policy includes a distribution center meant entirely for wholesale customers so the expected attribute for a demand line would contain “Wholesale.”

  • If the attribute match succeeds, the demand line proceeds.

  • If the attribute match fails, the loop restarts until a match is found or none exist.

Configuration Pages

Endpoints

  • Swagger


 Within Standard Lead Days

If an attribute match occurs, the logic next examines the ship date on the demand line to see if it occurs during the time fence set on the policy.

  • If a ship date falls outside the date range (defined as days past due and lead days), it returns back to the start of the loop.

  • If a ship date falls within the date range, the demand line continues to the next loop.

Configuration Pages

Endpoints

  • Swagger


 Evaluate First (Next) Region

The second loop of the sourcing logic matches geographical areas to warehouses. These regions are sequenced on the sourcing policy.

Each region is defined by one or more address records. Records are configured using details such as country, state/province, county, city, and street address. You can also use postal codes, but not with the former details, in case of incompatible overlap.

Configuration Pages

Endpoints

  • Swagger


 Address-Region Match

Here, the sourcing logic seeks to match at the highest level.

Example

You have an address for 321 Main St, Seattle, WA, and a configured region for Seattle, USA; this is considered a match.

Until a match is found, the logic continues to loop through regions.

If no match is found, the logic returns to the first loop and restarts.

Configuration Pages

Endpoints

  • Swagger


 Inventory Check

If the demand line passed all previous matches, inventory availability now comes into effect. Orchestrate logic uses the host system’s API connection to check how much inventory is available at that location.

This is important to determine not only how much of a line can be fulfilled but also whether the sourcing warehouse is able to completely fulfill the line. In such cases, it is possible that a demand line has to be split.

Configuration Pages

Endpoints

  • Swagger

  • Inventory API


 Inventory Evaluations (Availability, Ship Complete, Fulfillment)

After the inventory check, Orchestrate logic decides on the next three events in the process: availability to fulfill anything, ship-complete prioritization, and complete fulfillment.

If the answer to any of the following questions is no, Orchestrate logic returns to evaluate the next region in the policy:

  • Is there inventory to fulfill at least one unit in the demand line requested?

  • Is there inventory to fulfill the entire request from this warehouse (Prioritize Ship Complete)?

  • Is there inventory to fulfill the entire line?

Configuration Pages

Endpoints

  • Swagger

  • Inventory API


 Assign Matching Warehouse

If the requested amount can be fulfilled, partially or otherwise, Orchestrate logic assigns that warehouse to the demand line.

Configuration Pages

Endpoints

  • Swagger


 Direct Delivery

If the assigned warehouse is a direct delivery warehouse, Orchestrate logic checks the item-vendor combination for the demand line.

If one is configured, the vendor address is appended to the Response JSON.

Configuration Pages

Endpoints

  • Swagger


 Sourcing Response JSON

After each demand line has either been assigned a warehouse or failed all sourcing policies, the Response JSON can be pulled to the host system.

The JSON includes the warehouse results from the sourcing logic and any pertinent vendor information where a direct delivery has been assigned.

Configuration Pages

Endpoints

  • Swagger



FAQs

QDoes Sourcing account for allocation constraints such as budgets and safety nets?

  • ASourcing does not account for constraints. It only looks at the inventory available and determines whether there is enough to fulfill the requested line.

QDoes Sourcing track inventory in real-time when multiple demand lines are submitted for a single request?

  • A Sourcing does not currently adjust inventory against demand requests (e.g., if two lines separately request 20 units and the sourcing warehouse only has 20 available, both are provided with that warehouse).
  • ABecause sourcing is not aware of other source orders, whether inbound or outbound, it does not consider adjusting the available inventory with each request.
  • A The ability to determine whether these preceding order lines should be included in the calculation is on the development roadmap.


Feedback

Submit feedback.