Using Zones for Fulfillment

Purpose: Zone fulfillment provides a means to have the Routing Engine limit order assignment to particular store or warehouse locations based on the geographical area of the order’s shipping address.

Example: You prefer to use the distribution center in Hartford, Connecticut to ship orders to customers in the New England states, even if a location in California has a greater quantity available.

Why use zone fulfillment? You might use zone fulfillment to save on freight charges and expedite shipping in certain areas. Zone fulfillment logic can also increase the speed of location assignment, since it uses a limited number of eligible locations.

Fulfillment of delivery orders and sourcing for ship-for-pickup only: Zone fulfillment applies only to delivery and ship-for-pickup orders, and these types of locate items or product availability searches. It does not apply to store pickup orders.

Applies to both standard brokering and weighted brokering: Regardless of whether your organization uses standard brokering rules, or uses weighted brokering rules and assignment through the Science Engine, you can use zone fulfillment to route orders.

How does zone fulfillment work? When you use zone fulfillment, the Routing Engine determines whether a shipping address falls within a fulfillment zone. It then restricts the list of possible fulfilling locations to the one(s) specified for the zone. This evaluation takes place when the Routing Engine receives a submit order message, a product availability search request, a locate items request, or when an existing order is rejected by the assigned fulfilling location,

If the order cannot be fulfilled or sourced by the locations included in the zone, it is assigned to the default unfulfillable location. Similarly, in the case of a locate items or product availability search, the response message indicates that the requested item(s) is/are not available.

Primary and alternate locations: When you set up a zone for fulfillment you can specify:

  • primary locations: One or more locations where you prefer to place orders within the zone. At least one primary location is required.

    alternate locations: Optionally, one or more locations that are eligible for order assignment if the order cannot be fulfilled within the list of primary locations. You might set up alternate locations to help eliminate the possibility of losing a sale.

  • Selecting geographical areas for shipping addresses: You can set up zones to include shipping addresses based on:

  1. Zip code prefix range: For example, all orders shipping in zip codes that start with 021 through 025 should ship from any of the Boston retail locations. This option is available for United States addresses only.
  2. State or province: For example, all orders shipping to New York, New Jersey, Pennsylvania, and Delaware ship from the east coast distribution center or the outlet store. This option is available for United States and Canadian addresses only.

  3. Country: For example, all orders shipping to France, Germany, and Austria ship from the Austrian distribution center. This option is available for countries other than the United States and Canada only if the Use Proximity Locator preference is unselected for your organization. Contact your Oracle representative about how to use proximity calculation for countries other than the U.S. and Canada.

When attempting to assign an order, the Routing Engine starts zone selection with the most specific criterion (zip code prefix) and works through to the most general (country). If the shipping address on the order does not match any zones, then the Routing Engine uses the standard assignment logic as set up at the Preferences screen or the Edit Order Preference Override screen.


Illustrates the hierarchy of selecting a zone for fulfillment: first based on zip or postal code; then on state or province; then on country.

Example: You have set up the following active zones:

  • Portland, Maine Area: includes zip code prefixes 040 through 043

    • Northern New England: includes Maine, New Hampshire, and Massachusetts

    • United States

    • If a locate items request or the order’s shipping address is in:

    • Portland, Maine, zip code 04101: use the Portland, Maine Area zone

    • Anson, Maine, zip code 04911: use the Northern New England zone

    • Providence, Rhode Island, zip code 02903: use the United States zone

    • Toronto, Canada: do not restrict order assignment by zone

Order Broker selection criteria still apply: When a shipping address falls within a fulfillment zone, the Routing Engine uses existing rules when selecting and ordering locations, except that the eligible locations are restricted to those specified for the zone. For example, if you set the Order Broker preferences to select first based on On Hand Count, the primary location with the highest on-hand count is selected. Also, the Routing Engine executes this process first within the primary locations before checking any alternate locations, as described above.

If you group shipment locations: Zone fulfillment logic still applies to locate items processing if you use the grouping shipment locations option.

Requested location? The Routing Engine does not use zone fulfillment logic if:

  • the locate items request specifies a requested location

  • the submit order message specifies a location for fulfillment

    In both of these cases, the Routing Engine restricts location selection or assignment to the specified location, regardless of whether the shipping address falls within a zone that includes the location.

How to start using zones: The Routing Engine uses zones for fulfillment when:

  • the Use Zone Fulfillment flag at the Preferences screen is selected, and

  • the zone is flagged as Active

For more information: See the Fulfillment Zone Wizard.

Standard or weighted brokering? The primary and alternate search hierarchy within zones varies depending upon whether Use Weighted Brokering Rules is selected. See:

Primary and Alternate Search Hierarchy: Standard Brokering

The following process applies if Use Weighted Brokering Rules is not selected.

If splitting: If you use splitting orders, the Routing Engine attempts to:

  1. Assign the entire order to a single location within the primary locations specified for the zone; otherwise, if this is not possible;
  2. Split the order within the primary locations specified for the zone; otherwise, if this is not possible;

  3. Assign the entire order to a single location within the alternate locations specified for the zone; otherwise, if this is not possible;

  4. Split the order within the alternate locations specified for the zone; if this is not possible;

  5. Split the order across the primary and alternate locations; if this is not possible;

  6. Assign the order to the default unfulfillable location.

If not splitting: If you do not split orders, the Routing Engine attempts to:

  1. Assign the entire order to a single primary location specified for the zone; otherwise,
  2. Assign the entire order to a single alternate location specified for the zone; otherwise;

  3. Assign the order to the default unfulfillable location.

Primary and Alternate Search Hierarchy: Weighted Brokering

Weighted Brokering and the Science Engine: When you use weighted brokering, the Routing Engine passes information to the Science Engine indicating whether each eligible product location is in a primary or alternate location. The Science Engine then uses the same rules on order assignment and splitting as the Routing Engine uses for standard brokering. See Submit Order Request for Delivery Order (Weighted Brokering) for a discussion.

The following process applies when Use Weighted Brokering Rules is selected.

If splitting order is supported:

  1. Assign the entire order within the primary locations specified for the zone; if this is not possible,
  2. Assign the entire order by splitting it across the primary and alternate locations; if this is not possible;

  3. Assign the entire order within the alternate locations specified for the zone; if this is not possible;

  4. Assign the order to the default unfulfillable location.

If not splitting:

  1. Assign the entire order to a single primary location specified for the zone; otherwise,
  2. Assign the entire order to a single alternate location specified for the zone; otherwise;

  3. Assign the order to the default unfulfillable location.