---
title: Creating Delivery Rules
description: "Delivery rules let you create different delivery promises for specific products, categories, shipping methods, destinations, or stock statuses. Use delivery rules when your default delivery estimate is not enough for every order. For example, you may want: - Express shipping…"
url: "https://wpruby.com/knowledgebase/creating-delivery-rules/"
updated: "2026-07-01"
category: Delivery Promise for WooCommerce
---

# Creating Delivery Rules

Delivery rules let you create different delivery promises for specific products, categories, shipping methods, destinations, or stock statuses.

Use delivery rules when your default delivery estimate is not enough for every order.

For example, you may want:

- Express shipping to show a faster delivery estimate
- International orders to show a longer delivery estimate
- Backorder products to show extra processing time
- Bulky products to show a freight delivery window
- Specific product categories to use custom lead times

Table of Contents

 [Toggle](#)

- [What is a delivery rule?](#What_is_a_delivery_rule)
- [Where to create delivery rules](#Where_to_create_delivery_rules)
- [Rule name](#Rule_name)
- [Rule priority](#Rule_priority)
- [Conditions](#Conditions)
  - [Shipping method](#Shipping_method)
  - [Shipping country](#Shipping_country)
  - [Product or category](#Product_or_category)
  - [Shipping class](#Shipping_class)
  - [Stock status](#Stock_status)
- [Processing time](#Processing_time)
- [Delivery time after dispatch](#Delivery_time_after_dispatch)
- [Example: Express shipping rule](#Example_Express_shipping_rule)
- [Example: Backorder rule](#Example_Backorder_rule)
- [Example: International shipping rule](#Example_International_shipping_rule)
- [Custom message override](#Custom_message_override)
- [Testing a rule](#Testing_a_rule)
- [Troubleshooting](#Troubleshooting)
  - [My rule is not matching](#My_rule_is_not_matching)
  - [The estimate is too early](#The_estimate_is_too_early)
  - [The estimate is too late](#The_estimate_is_too_late)
  - [The wrong rule is being used](#The_wrong_rule_is_being_used)

## What is a delivery rule?

A delivery rule is a set of conditions and timing values.

When the conditions match the customer’s order, Delivery Promise uses that rule to calculate the dispatch and delivery estimate.

A rule can control:

- Processing time before dispatch
- Delivery time after dispatch
- Cutoff time
- Working days
- Product or category conditions
- Shipping method conditions
- Shipping country conditions
- Stock status conditions
- Custom message override

## Where to create delivery rules

To create a delivery rule:

1. Go to **WooCommerce → Delivery Promise**.
2. Open the **Rules** tab.
3. Click **Add Rule**.
4. Enter a rule name.
5. Choose the rule conditions.
6. Set the processing and delivery timing.
7. Save the rule.

## Rule name

Give the rule a clear name so you can understand it later.

Examples:

- Standard Shipping
- Express Shipping
- International Shipping
- Backorder Products
- Made-to-Order Items
- Bulky Freight Products

A clear name also makes it easier to understand results in the Delivery Promise Tester.

## Rule priority

Priority controls which rule should be used when multiple rules could match.

Use priority to control rule order.

Example:

- Express Shipping — Priority 10
- Standard Shipping — Priority 20
- International Shipping — Priority 30

Check the helper text in your Rules screen to confirm whether lower or higher numbers are applied first in your version of the plugin.

## Conditions

Conditions decide when a rule should apply.

If a condition is empty, the rule usually applies to any value for that condition.

For example, if you leave the product field empty, the rule can apply to all products.

Common conditions include:

### Shipping method

Use this when different shipping methods have different delivery times.

Example:

- Standard Shipping: 3–5 days
- Express Shipping: 1–2 days

### Shipping country

Use this when orders to certain countries need a different delivery estimate.

Example:

- Domestic orders: 2–3 days
- International orders: 7–14 days

### Product or category

Use this when specific products need different processing time.

Example:

- Handmade products: 5–10 processing days
- Bulky products: 2–4 processing days
- Digital products: no delivery promise needed

### Shipping class

Use this when WooCommerce shipping classes represent fulfillment differences.

Example:

- Freight class
- Fragile class
- Oversized class

### Stock status

Use this when in-stock and backorder products need different delivery estimates.

Example:

- In stock: dispatch today
- On backorder: dispatch in 7–14 days

## Processing time

Processing time is the time before the order is dispatched.

Example:

```php
Processing time: 1–2 working days
```

This means your store needs 1 to 2 working days before the order is expected to dispatch.

## Delivery time after dispatch

Delivery time after dispatch is the transit time after the order leaves your store.

Example:

```php
Delivery time after dispatch: 2–3 working days
```

This means the package is expected to arrive 2 to 3 working days after dispatch.

## Example: Express shipping rule

Use this rule for faster shipping methods.

```php
Rule name: Express Shipping
Condition: Shipping method = Express Shipping
Processing time: 0–1 working days
Delivery time after dispatch: 1–2 working days
Cutoff time: 14:00
```

Customer may see:

```php
Estimated delivery: July 2 – July 3
```

## Example: Backorder rule

Use this rule for products that are not immediately available.

```php
Rule name: Backorder Products
Condition: Stock status = On backorder
Processing time: 7–14 working days
Delivery time after dispatch: 2–5 working days
```

Customer may see:

```php
Estimated delivery for backorder items: July 12 – July 24
```

## Example: International shipping rule

Use this rule for cross-border orders.

```php
Rule name: International Shipping
Condition: Shipping country is not your store country
Processing time: 1–3 working days
Delivery time after dispatch: 7–14 working days
```

Customer may see:

```php
International delivery estimate: July 10 – July 18
```

## Custom message override

A rule can use a custom message instead of the default message.

Example:

```php
Estimated express delivery: {delivery_range}
```

Or:

```php
Made to order. Estimated delivery: {delivery_range}
```

Useful placeholders include:

```php
{dispatch_date}
{dispatch_range}
{delivery_date}
{delivery_range}
{shipping_method}
{cutoff_time}
{countdown}
```

## Testing a rule

After creating a rule, use the **Delivery Promise Tester**.

1. Go to **WooCommerce → Delivery Promise**.
2. Open the **Tester** tab.
3. Select a product.
4. Choose a shipping method and country.
5. Run the test.

The tester shows:

- matched rule
- processing time used
- delivery time used
- cutoff status
- skipped holidays or non-working days
- final delivery message

## Troubleshooting

### My rule is not matching

Check:

- the rule is enabled
- the product/category condition is correct
- the shipping method condition matches the selected method
- the stock status condition is correct
- the shipping country condition is correct
- another rule with higher priority is matching first

### The estimate is too early

Check:

- processing days are not too low
- transit days are not too low
- holidays are configured
- working days are correct
- cutoff time is correct

### The estimate is too late

Check:

- processing maximum days
- delivery maximum days
- product-level lead time
- backorder settings
- matched rule priority

### The wrong rule is being used

Use the Delivery Promise Tester to see which rule matched and why.

Adjust rule priority or make your rule conditions more specific.
