Pick Wave Rules

Pick wave rules allow you to improve pick wave efficiency and accuracy by configuring rules to customize criteria for creating pick waves. When creating a pick wave based on a rule, only shipments matching its criteria will be included in the wave. 

Pick Wave Rule Criteria

Pick wave rules are based on expressions called product, customer, and shipment rules. At least one of these expressions is required to create a pick wave rule. They are made up of a set of conditions that can be used with logical operators like OR or AND, such as in a product rule of "Category = Shoes AND Brand = Adidas" that would restrict the pick wave rule to products that fit those conditions.

Product rules can be based on product type, code, variant, static category, attribute, and some other first class fields. For example, a product-based pick wave rule could consider:

  • Whether a specific product can be included in pick waves
  • Whether to pick products in a specific static category
  • Whether to pick products above a certain weight 

Customer rules can be based on either customer accounts or segments. If neither is provided, the rule will apply to all customers and customer segments. For example, a customer-based pick wave rule could consider:

  • Whether to pick items for a specific B2B customer account
  • Whether to pick items for a B2C segment of Gold level customers

Shipment rules can be used to specify whether to pick Direct Ship, BOPIS, Delivery, and/or Transfer shipments. If a shipment type is not specified, then the rule will check for shipments matching the criteria across all types. Additionally, a shipment-based pick wave rule could consider:

  • Whether the shipment includes one or multiple items
  • Whether to pick shipments for a specific carrier, delivery provider, and/or shipping method
  • Whether to pick shipments based on their Estimated Delivery Date (if you are using the Estimated Delivery Dates feature)
  • Whether to pick shipments in a certain SLA status, such as Late (if you are using the SLA feature)

Customer and shipment rules are available to all implementations out-of-the-box. If you want to use product rules, your implementation must have a Catalog. Then, submit a request to Kibo Support to enable product rules for you.

Restricted Content

The tenant attribute catalog-admin-ProductRulesEnabled must be set to true in order to create and use product rules.

Enable Pick Wave Rules 

A single Enable Pick and Pack checkbox is displayed in location group configurations that applies to all fulfillment types. Enable this for the locations that you want to use pick waves rules for.

The following behaviors allow users to view and update pick wave rules. The Admin and SuperAdmin roles have these behaviors by default.

  • Product Rule
    • Product Rule Read, Product Rule Create, Product Rule Update, Product Rule Delete
  • Customer Rule
    • Customer Rule Read, Customer Rule Create, Customer Rule Update, Customer Rule Delete
  • Shipment Rule
    • Shipment Rule Read, Shipment Rule Create, Shipment Rule Update, Shipment Rule Delete
  • Pick Wave Rule
    • Pick Wave Rule Read, Pick Wave Rule Create, Pick Wave Rule Update, Pick Wave Rule Delete

All Fulfiller users have the Pick Wave Rule Read behavior by default so that they can select rules while creating a pick wave. You can add the Create and Update behaviors to any other roles that you want to manage rules, such as store managers, as needed.

Configure Pick Wave Rules

To create a pick wave rule:

  1. Go to Pick Wave Rules in the Fulfiller navigation menu.
  2. Click Create Pick Wave Rule.
  3. Enter a Code. If not provided, the system will generate one automatically.
  4. Enter a Name.
  5. Enter an optional Description.Example pick wave configurations
  6. Select or create a product, customer, or shipment rule. At least one rule type must be selected.
    • If you select a product rule, you must also select a Master Catalog from the dropdown menu.
    • Creating or editing a rule will open an expression editor that you can view in Query, JSON, or Text format. Here you can define one or more conditions by entering a product property, logical operator, and value to compare the property against and grouping them as needed.
    • Product and customer rules cannot be shared across any other rule features, such as purchase limit rules. This means that only those that were created as part of pick wave rules will be available here.
    An example shipment rule for STH UPS shipments
  7. Test the rule by selecting a location from the dropdown menu above the query expressions and then clicking Preview to view a list of shipments that would be included in these pick wave conditions. Though rules are not tied to specific locations, you must select one because pick waves will always be created in the context of a location and limited to the qualifying shipments at that location.
  8. Click Save in the top right of the pick wave rule when you are done configuring it.

Best Practices

Kibo recommends to keep the following best practices in mind when creating pick wave rules:

  • Start with simple, reusable rules based on common fulfillment flows (such as Shipment Type = STH or Carrier = FedEx) and what's needed most frequently.
  • Use meaningful rule names that clearly indicate their purpose, such as "BOPIS Same Day."
  • Combine shipment, product, and customer rules judiciously. Only add multiple rule types (e.g., product and shipment) if truly required as overly specific rules may limit flexibility.
  • Always preview a new rule to ensure it pulls in expected shipments before activating it for live use.
  • Periodically review and retire outdated or unused rules to avoid clutter.

Create Pick Waves with Rules

Once a rule is configured, you will be able to select it during pick wave creation as shown below. Clicking Edit Selected Rule or Create New Rule will open a tab with the rule configurations for you to modify without leaving the pick wave creation page.

The Create Pick Wave page with a rule selected

If some of the shipments displayed in the rule preview are not present in the created pick wave, this is because the preview qualifies all shipments that meet the rule's criteria. When creating the pick wave, some shipments that qualified for the rule may not be able to be included in a pick wave (such as those with a Pending payment status).

View Pick Wave Rules

The Pick Wave Rules page of the Fulfiller UI displays all existing rules and allows you to manage them with the below actions: 

  • Click Create Pick Wave Rule to create a new one.
  • Toggle the Status icon on a specific rule to activate or deactivate it.
  • Expand the actions menu on a specific rule to Edit or Delete it.
  • Check multiple rules and then use the Actions menu in the top right to delete, enable, or disable them.

The pick wave rules page with example rules

API Integration

You can also create and manage pick wave rules with the following Pick Wave Rules API endpoints. The API documentation will be updated with their full schemas soon.

  • Create Pick Wave Rule: POST .../api/commerce/rules/pickwave
  • Get Pick Wave Rules: GET .../api/commerce/rules/pickwave
  • Get Pick Wave Rule by Code: GET .../api/commerce/rules/pickwave/{code}
  • Update Pick Wave Rule: PUT .../api/commerce/rules/pickwave/{code}
  • Delete Pick Wave Rule: DELETE .../api/commerce/rules/pickwave/{code}

The example below demonstrates a Create Pick Wave request based on product, shipment, and customer rules:

{
  "code": "1",
  "name": "Pick Wave Rule 1",
  "description": "an example rule",
  "enabled": true,
  "productRules": [
    {
      "code": "Product_PickWave",
      "masterCatalogId": 1
    }
  ],
  "shipmentRules": [
    {
      "code": "12",
      "masterCatalogId": 1
    }
  ],
  "customerRule": [
    "cust01"
  ],
  "auditInfo": {
    "updateDate": "2025-05-12T09:13:43.828Z",
    "createDate": "2025-05-12T09:13:43.828Z",
    "updateBy": "admin",
    "createBy": "admin"
  }
}

The Product Rules, Customer Rules, and Shipment Rules APIs (.../api/commerce/rules/shipment) can be used to manage the supporting product, customer, and shipment rules. The Shipment Rules API endpoints are structured similarly to those of the product and customer rules, and can be based on any of the following expression properties. 

  • shipmentType (such as "STH" or "BOPIS")
  • pickwaveType ("single" to include only shipments that contain a single item, "multiple" to include shipments that contain multiple items, and "normal" to include both)
  • carrierId
  • shippingMethod
  • inventoryLocator
  • isExpress
  • EDD
  • ServiceLevelAgreement
  • OrderPlacedDate

The API documentation will be updated with these shipment endpoints and linked here soon. The below example demonstrates a rule to evaluate shipments for those belonging to orders placed before 10 days ago. 

{
  "code": "1",
  "name": "Shipment Rule 1",
  "description": "example shipment rule",
  "expression": {
    "tree": {
      "type": "container",
      "logicalOperator": "or",
      "nodes": [
        {
          "type": "predicate",
          "left": "OrderPlacedDate",
          "operator": "bf",
          "right": "10_days"
        }
      ]
    }
  },
  "metaData": [
    {
      "key1": "value1"
    }
  ],
  "auditInfo": {
    "updateDate": "2025-05-30T08:33:37.788Z",
    "createDate": "2025-05-30T08:33:37.788Z",
    "updateBy": "admin",
    "createBy": "admin"
  }
}

The Create Pick Wave endpoint at POST .../commerce/pickwaves/rules-based also allows you to generate a pick wave via API based on a specified location, rule code, and optional list of shipment numbers to be considered. The pick wave will be created with any valid shipments that match the rule from the list you provided.

{
  "fulfillmentLocationCode": "LOC1",
  "pickWaveRuleCode": "PW007",
  "maxShipments": 10,
  "fulfillableShipmentsOnly": true,
  "shipmentNumbers": [
    1000110,
    1000112,
    1000119,
    1000124,
    1000137
  ]
}