Skip to content

Shipping Rules

With Shipping Rules, you can automatically apply Value Added Services (VAS) to shipments based on definable conditions. For example, you can specify that all shipments over €500 are automatically insured, or that shipments to certain countries are always marked as "Named Person Only".

Opening the Page

  1. Open the DHL Dashboard → Click on the value next to "Active Rules".
  2. Or: Open the DHL Setup → Navigate to the "Shipping Rules" section → Click "Manage Rules".
  3. Or: Search directly for "DHL Shipping Rules" via the search bar.

Concept

Rule-Based VAS Application

Each shipping rule consists of three parts:

Part Description Example
Condition What is checked? Order amount > 500
Action Which VAS is set? Enable insurance
Priority In which order is it evaluated? 10 (lower = first)

Processing Logic

  1. With every label creation, all active rules are sorted by priority (lowest first).
  2. For each rule, the condition is checked against the shipment data.
  3. On match: The defined action is applied to the shipment.
  4. Multiple rules can match — actions stack.
  5. Non-destructive: If the user already selected a VAS option manually in the label dialog, it is never overwritten by a rule.

Rules add, never remove

Shipping rules add VAS — they never take anything away. If you already enabled "GoGreen Plus" in the label dialog and a rule would also set "GoGreen Plus", nothing additional happens. The user always retains control.

Rules always run — even without pre-selected services (zero-config)

Shipping rules are evaluated on every label creation — including simple shipments for which no Value Added Services have been selected manually. No pre-configuration is therefore required for the rules to take effect: as soon as a rule matches, its action is applied (zero-config automation). A VAS record that does not yet exist is created automatically when needed.


Condition Types

Condition Type Checks Against Example Value
Order Amount Goods value of the underlying document incl. VAT, in its currency 500 (with operator >)
Total Weight Total weight in grams 31500 (> 31.5 kg)
Ship-to Country ISO country code of recipient AT or CH
Ship-to Post Code Postal code of recipient 01 (starts with 01, with Contains)
Customer Group BC customer posting group WHOLESALE
Item Category Item category of the lines that actually travel ELECTRONICS
Shipping Agent Shipping agent code of the underlying document DHL

Which document decides

A label is created either from a sales order or from a posted sales shipment. That determines what the conditions evaluate:

Label created from … Conditions read …
sales order the order and its lines
posted shipment that shipment and its lines

This matters because Business Central deletes the order once it is fully invoiced. If Order Amount, Customer Group and Shipping Agent kept reading the order, they would come up empty for a label created from a posted shipment — and the rules would stop matching without any message.

Item Category evaluates only the lines that travel

The rule already takes effect when one of the travelling lines matches the chosen operator/value, regardless of what else the document holds. For rules such as "age verification for spirits" that is exactly the intended behaviour.

Only the lines going into this parcel are checked: for a label created from the sales order, the lines with Qty. to Ship greater than zero; for a label created from a posted shipment, that shipment's lines. Example: if you ship only the accessory of an order via DHL and the bicycle through your own carrier, a bulky-goods rule on category BICYCLE no longer turns the accessory parcel into bulky goods.

If nobody maintains Qty. to Ship in your system — for instance because Default Quantity to Ship is set to Blank in Sales & Receivables Setup — the whole order is evaluated as before. A rule therefore never falls silent unnoticed.

Order Amount in detail

For a label from a posted shipment the value is the sum of the shipment lines including VAT and less line discounts. An invoice discount at document level and a VAT base discount from payment terms do not exist on a posted shipment line and are not applied — the value may then be slightly too high, which for threshold rules such as "insure above 500" errs on the safe side.

Unlike Item Category, a label created from the sales order counts the entire order, including lines held back. On partial deliveries the same shipment may therefore be judged differently depending on whether you create the label before or after posting.

The threshold applies in the currency of the document — on a foreign-currency document it is not in euros.

Available Operators

Operator Description Suitable For
= Equal Exact match (country, group)
<> Not equal Exclusion (country ≠ DE)
> Greater than Amounts, weights
< Less than Amounts, weights
>= Greater or equal Thresholds
<= Less or equal Upper limits
Contains Contains substring Postal code ranges, text search

Action Types

Action Type Description Action Value
Set Insurance Enable transport insurance Insurance amount (e.g., 500)
Set Age Check Enable visual age check A16 or A18
Set Bulky Goods Mark as bulky goods (empty)
Set GoGreen Plus Climate-neutral shipping (empty)
Set Product Override shipping agent service / product code Service / product code (e.g., V01PAK)
Set Named Person Only Personal delivery only (empty)
Set Preferred Neighbour Set preferred neighbour Neighbour's name
Set Signed by Recipient Signature required (empty)
Set No Neighbour Delivery No neighbour delivery (empty)

Set Product overrides the Contract Resolver input

The Set Product action overrides the shipping agent service code that the Contract Resolver subsequently uses to resolve the DHL product / billing number. This lets you control rule-based which product is used for shipping (e.g., an international product for certain countries). An empty action value is ignored — the originally determined service code then remains unchanged.


Managing Rules

Creating a New Rule

  1. Open the Shipping Rules list.
  2. Click New (or Ctrl+Insert).
  3. Fill in the fields:
  4. Code: Unique identifier (e.g., INS-500)
  5. Description: Short description (e.g., "Insurance from 500 €")
  6. Priority: Processing order (default: 100)
  7. Enabled: Yes/No
  8. Condition Type: What is checked
  9. Operator: Comparison operator
  10. Condition Value: Comparison value
  11. Action Type: Which VAS is set
  12. Action Value: Optional value for the action

Changing Priority

Priority determines the processing order:

  • Lower number = higher priority (processed first)
  • Use the actions Move Up / Move Down to quickly change priority by ±10.
  • Default priority for new rules: 100

Enabling / Disabling Rules

  • Single rule: Set the "Enabled" field to Yes/No.
  • All rules: Use the actions Enable All / Disable All.

Disabled Rules

Disabled rules are completely ignored during label creation. However, they remain saved and can be re-enabled at any time.


Examples

Example 1: Insurance from €500

Field Value
Code INS-500
Description Insurance from order value 500 €
Priority 10
Condition Type Order Amount
Operator >=
Condition Value 500
Action Type Set Insurance
Action Value 500

Result: All shipments with an order value of 500 € or more automatically receive transport insurance for 500 €.

Example 2: Age Check for Electronics

Field Value
Code AGE-ELEC
Description Age check 18+ for electronics
Priority 20
Condition Type Item Category
Operator =
Condition Value ELECTRONICS
Action Type Set Age Check
Action Value A18

Result: Shipments containing items in the "ELECTRONICS" category automatically receive a visual age check (18+).

Example 3: GoGreen Plus for Switzerland

Field Value
Code GREEN-CH
Description GoGreen Plus for Switzerland
Priority 30
Condition Type Ship-to Country
Operator =
Condition Value CH
Action Type Set GoGreen Plus
Action Value (empty)

Result: All shipments to Switzerland are automatically shipped climate-neutral.

Example 4: Bulky Goods above 31.5 kg

Field Value
Code BULKY-31
Description Bulky goods above 31.5 kg
Priority 5
Condition Type Total Weight
Operator >
Condition Value 31500
Action Type Set Bulky Goods
Action Value (empty)

Result: Shipments over 31.5 kg (31,500 g) are automatically marked as bulky goods.


VAS Conflicts and Mutual Exclusions

Some VAS options are mutually exclusive. If rules would set conflicting VAS, the rule with the higher priority (lower number) wins:

VAS A VAS B Result
Visual Age Check Signed by Recipient Only one option possible
Named Person Only Signed by Recipient Only one option possible
No Neighbour Delivery Visual Age Check Only one option possible
Preferred Neighbour Preferred Location Only one option possible

Automatic Conflict Resolution

When two rules set conflicting VAS, the rule with the lower priority number wins. The later rule is ignored for the conflicting VAS.


Interaction with the Label Dialog

When you create a label manually via the "Create Label" dialog:

  1. You select VAS options in the dialog (e.g., GoGreen Plus ✓).
  2. When you click "OK", the Shipping Rules are applied.
  3. Rules add additional VAS without overwriting your manual selection.
  4. The final VAS set (manual + rules) is sent to the DHL API.

For bulk shipping, rules are evaluated individually for each shipment — conditions such as order value or weight can differ for each shipment.