Filters are logic used to exclude fulfillment locations within a scenario that do not match certain criteria. For example, a filter can be created so that orders can only be assigned or viewed if a fulfiller is located within 100 miles of the customer.
Multiple filters can be applied to the same scenario to further narrow the list of fulfillers. For instance, two filters can be created so that the order can be only assigned or viewed if the fulfiller is located within 100 miles of the customer and the order total price is less than $1,000.
Note that changes to Order Routing settings may not immediately take effect when processing orders. It may take up to 15 minutes for updates to be reflected in the system while the cache refreshes.
View All Filters
The Filters page of the Order Routing interface displays all existing filters with a summary of what their logic was configured to do under the title. Expand the menu in the top right of a filter to delete, duplicate, or edit the filter (which will open a similar screen as the Create Filter form shown in the next section).
Create a Filter
To create a new filter from the Filters page:
- Click Create Filter from the actions menu on the left.
- This will take you to the filter configuration page.
- Enter the Filter Name.
- Enter the Filter Type. This is the type of data that the filter will be based off of, whether an existing data point or custom value(s).
- Select the Filter Attribute. This is the property that will determine whether the order should be assigned to a scenario with this filter. For an explanation of how each filter attribute works, see the table after the screenshot.
- Select the Logic that should be applied when comparing the attribute. The possible logic conditions will change depending on the data type of the attribute you selected.
- For logic conditions that support multiple values, such "or" and "any of," you will be able to select multiple values from the dropdown. For logic conditions that support only single conditions, like "equals" or "not equals," you will only be able to select one value.
- If you select a list filter type, it will support the "in" or "not in" logic conditions. For example, if your filter attribute was Material then you could use "in" to compare it against the Iron, Steel, and Aluminum custom values. If the item matches any one of those values, it will attempt assignment. These are available for both first-class and extensible attributes.
- Specify the Data Point Attribute or Custom Value that the filter should compare the first attribute against.
- The example statement below this option will update to describe your selected filter, helping you make sure you have configured it correctly. The below example shows a data point filter type.
- Click Save.
Add or Remove Filter from Scenario
You can change which scenarios a filter is applied to directly from the Filters page.
- Click Add Filter to Scenario or Remove filter from scenario underneath the filter you want to update.
- This will display a list of scenarios across your entire routing strategy. Select one or more scenarios in the list.
- Click Add or Remove.
Filter Attributes
First class fields, or fields that are available out-of-the-box for use in routing filters, are listed below. They are grouped by location, customer, product, and order field topics and can be selected as filter attributes or comparison properties.
To select custom attributes as filter properties, use Extensible Order Routing to enable those attributes. Once enabled, they will be available when configuring a filter.
Location Fields
These fields are part of the location object in API data.
Field | Display Name | Description |
---|---|---|
N/A | Distance from Fulfillment Location to Order | May be used to limit order assignment to locations within a certain distance from the order location. You can also use this to specify what distance the locations would be excluded from. This is calculated based on the latitude/longitude of the location's address and the order's destination.
Note that this does not automatically select the closest location for fulfillment - that is determined by the sort options configured for the route. |
countryCode | Fulfillment Location Country Code | Contained in the location address, this may be used to either prevent or allow assignment to locations that match a particular country code. This the set-up store location that is not part of the inbound order routing requests.
It is recommended to use the "shipping country code" filter instead of this one in most cases. |
name | Fulfillment Location Name | This may be used to select fulfillment by locations which have a certain name. |
stateOrProvince | Fulfillment Location State/Province | Contained in the location address, this may be used to either prevent or allow assignment to locations that match a particular state or province. This the set-up store location that is not part of the inbound order routing requests.
It is recommended to use the "shipping state/province" filter instead of this one in most cases. |
postalOrZipCode | Fulfillment Location Zip/Postal Code | Contained in the location address, this may be used to either prevent or allow assignment to locations that match a particular zip or postal code. This the set-up store location that is not part of the inbound order routing requests. |
Product Fields
Field | Display Name | Description |
---|---|---|
backorderable | Backorderable | If the inbound routing request has "backorderable" set to true on an item, then this will filter it appropriately. |
data | Custom Item Data Point | You can set custom data on order items (either when submitting the order by populating the items[].data object , or by using the exec.setItemData function in API Extension functions where it is available), which will allow you to filter on order items that have this specific (key, value) pair. |
isTaxable | Taxable | This may be used to filter assignment on items based on whether they are taxable or not, which is a true/false value. |
mfgPartNumber | Part Number | This may be used to filter assignment on items based on a specific Part number. |
packageHeight | Height | This may be used to filter assignment based on the dimensions of the item's package. |
packageLength | Length | This may be used to filter assignment based on the dimensions of the item's package. |
packageWeight | Weight | This may be used to filter assignment based on the dimensions of the item's package. |
packageWidth | Width | This may be used to filter assignment based on the dimensions of the item's package. |
productCode | SKU | This may be used to filter assignment on items with a specific SKU. |
productName | Product Title | This may be used to filter assignment on items based on a specific product name. |
upc | Item UPC | This may be used to filter assignment on items based on a specific UPC. |
Order Fields
Field | Display Name | Description |
---|---|---|
countryCode | Shipping Country Code | Contained in the shipping address, this may be used to either prevent or allow assignment to locations that match a particular country code. This is the customer's shipping address included in the inbound order routing requests.
It is recommended to use this filter instead of the "fulfillment location country code" in most cases. |
express | Express Shipping | May be used to filter out locations that do not offer express shipping. You can enable this on a location by toggling the "Can Fulfill Express Orders" option in the Locations page of the Admin UI. |
code | Pickup Location Code | For transfer orders, this may be used to filter on locations where the original pickup location matches a certain code. |
postalOrZipCode | Shipping Zip/Postal Code | Contained in the shipping address. |
quantity | Item Quantity | May be used to prioritize whether certain locations fulfill larger or smaller orders. |
stateOrProvince | Shipping State/Province | Contained in the shipping address, this may be used to either prevent or allow assignment to locations that match a particular state or province. This is the customer's shipping address included in the inbound order routing requests.
It is recommended to use this filter instead of the "fulfillment location state/province" in most cases. |
total | Total Order Price | This may be used to filter on orders less than, greater than, or equal to a certain amount if you want certain locations to handle larger or smaller order values. |
type | Type | Filters orders based on whether they are the "Offline" or "Online" order type. |