The order fulfillment feature allows you to create fulfillment rule sets. Fulfillment rule sets are used to direct orders to different fulfillment locations based on characteristics, such as geo-location, warehouse location, item price, order attribute type, and more.

Pre-requisites

Ensure you have the Orders & Inventory Editor or Administrator privilege for fabric Orders. For more information, see Role-Based Access Control.

Rule Setup

When creating a new fulfillment rule set, you must provide some basic information along with the rules in the order level rule group or item level rule group sections. Ensure that you create all your rules in a single fulfillment rule set because only one rule set can be active at a time.

Order level rule group

When you create rules in the Order Level Rule Group, they are executed in the order that they are sorted. This means rules are executed from the top down. You can drag and drop rules to execute in any order as needed. Its important to note that when a rules condition is met, the additional rules defined below it are not executed. If no rule conditions are met and no default condition is provided, the rules are all ignored.

Example

Let’s assume 2 rules are defined. One for fulfilling online orders at a specified fulfillment warehouse, and one for packaging specific online orders (based on the shipping location) at a different warehouse equipped to package unique orders. If the order of the rules contains our first rule at the top and our second rule below, the second rule cannot run because the first rules condition is always met before the second rule has executed. However, if we were to swap the rules order and run the second rule first, it would guarantee that the rule is run. If our rules condition is not met, fabric would proceed to run the next rule below and so on. This means the last rule (as a best practice) should be a default catchall and very specific rules with unique conditions should be run first.

Item level rule group

Item level rules run in parallel and execute all rules even if a previous rule condition is met (including order level rules). This means item level rules override order level rules. The Attribute type is limited to the Item attribute type and only allows you to create conditions based on item attribute values such as price.ItemUnitPrice. This allows item level rules to control where certain items are fulfilled from and guarantees a static fulfillment location regardless of the order level rules you have implemented.

Item level rules are often used when you set up certain item exclusions. This could be specific SKUs that ship from a particular warehouse, items under a certain price point, items that weigh a lot, and more.

Frequently asked questions

What happens if more than one condition is met for an order?

  • If the rules are within the Order Level Rule Group section, the rules are executed from the top down. For example, if the first rules condition is fulfilled, subsequent rules are not run on that order. Rules defined within Item Level Rule Group always execute. This is because the rules are run on specific item conditions rather than order conditions.

What happens if an item level rule conflicts with a order level rule?

  • Because item level rules run at the item level, they always take priority over order level rules. For example, an order level rule specifies shipping an order with 5 items and one of the items in the order fulfills the condition for an item level rule. In this event, 4 of the items are shipped based on the action defined in the order level rule. The item that meets the item level rule condition is shipped based on the action defined in the item level rule.

Next Steps

For more information, such as example rule sets, please begin by reading the Creating a rule set documentation.