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. These filters are used to "filter out" fulfillers within the location group that do not match certain criteria. 

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.

Examples

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 also be applied to a group 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.

Create a Filter

To create a new filter from the Filters page:

  1. Click the New Filter action at the bottom of the left-hand navigation menu.The New Filter action button
  2. Enter a name for the filter.
  3. Enter the Filter Type: the type of data that the filter will be based off of, whether an existing data point or custom value(s).
  4. Select the Filter Attribute: the property that will determine whether the order should be assigned to a location group with this filter. For an explanation of how each filter attribute works, see the table after the screenshot.
  5. 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.
  6. Specify the Data Point Attribute or Custom Value that the filter should compare the first attribute against.
  7. 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.An example of a data point filter
  8. Click Save.

Filter Actions

Expand the menu in the top right of a filter to delete, copy, or edit the filter. Editing the filter will provide the same list of options as seen above for creating a new filter. An example filter with a callout for the filter action menu

Click Add Filter to Group or Remove Filter from Group to quickly edit the fulfillment method groups that the filters applies to. 

The Add Filter To Group quick menu

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.

FieldDisplay NameDescription
N/ADistance from Fulfillment Location to OrderMay 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.
countryCodeFulfillment Location Country CodeContained 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.
nameFulfillment Location NameThis may be used to select fulfillment by locations which have a certain name.
stateOrProvinceFulfillment Location State/ProvinceContained 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.
postalOrZipCodeFulfillment Location Zip/Postal CodeContained 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

FieldDisplay NameDescription
backorderableBackorderableIf the inbound routing request has "backorderable" set to true on an item, then this will filter it appropriately.
dataCustom Item Data PointYou 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.
isTaxableTaxableThis may be used to filter assignment on items based on whether they are taxable or not, which is a true/false value.
mfgPartNumberPart NumberThis may be used to filter assignment on items based on a specific Part number.
packageHeightHeightThis may be used to filter assignment based on the dimensions of the item's package.
packageLengthLengthThis may be used to filter assignment based on the dimensions of the item's package.
packageWeightWeightThis may be used to filter assignment based on the dimensions of the item's package.
packageWidthWidthThis may be used to filter assignment based on the dimensions of the item's package.
productCodeSKUThis may be used to filter assignment on items with a specific SKU.
productNameProduct TitleThis may be used to filter assignment on items based on a specific product name.
upcItem UPCThis may be used to filter assignment on items based on a specific UPC.

Order Fields

FieldDisplay NameDescription
countryCodeShipping Country CodeContained 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.
expressExpress ShippingMay 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.  
codePickup Location CodeFor transfer orders, this may be used to filter on locations where the original pickup location matches a certain code.
postalOrZipCodeShipping Zip/Postal CodeContained in the shipping address.
quantityItem QuantityMay be used to prioritize whether certain locations fulfill larger or smaller orders.
stateOrProvinceShipping State/ProvinceContained 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.
totalTotal Order PriceThis 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.
typeTypeFilters orders based on whether they are the "Offline" or "Online" order type.