1. Home
  2. Tracksies HQ
  3. Order Management
  4. Priority Rules

Priority Rules

Imagine your orders could sort themselves. Express shipping? Jump to the front. VIP customer? Priority lane. Order over $500? Flag it. That’s what Priority Rules does — every new order gets evaluated against the rules you’ve set up, and the first match determines its priority level. No more manually triaging your order queue every morning. It’s like hiring a warehouse manager who never takes a break and never misses a beat.

Why It Matters

When you’re packing 20 orders a day, it probably doesn’t matter which one you grab first. But when you’re packing 200? The order you grab first matters a lot. An express shipping order buried under a pile of standard deliveries means a missed delivery promise. A VIP customer waiting behind a first-time $12 purchase means your best customer gets the same treatment as everyone else.

Priority Rules fixes this by making sure the most important orders float to the top — automatically, consistently, and without you having to think about it.

Without this set up:

  • Express shipping orders get packed whenever you happen to spot them
  • Your highest-spending customers wait in the same line as everyone else
  • High-value orders don’t get the extra attention they deserve
  • An order can sit unfulfilled for days and nobody notices until a customer complains

Before You Start

  • Tracksies HQ installed and activated
  • WooCommerce with orders flowing in
  • The Priority Rules feature enabled — go to Tracksies > Settings > Features (under the WooCommerce section) and make sure the Priority Rules toggle is switched on. This tells the system to start evaluating orders against your rules.

The Steps

Understanding Priority Levels

Every order gets assigned one of four priority levels. Think of these like lanes on a highway — Urgent is the fast lane, Normal is the regular flow.

LevelLabelColourTypical Use
1UrgentRedVIP orders, time-critical, high value
2HighOrangeRepeat customers, expedited shipping
3ElevatedYellowSpecific product types, flagged items
4NormalGreyDefault for all orders

Every order starts at Normal (level 4) unless a rule matches it to something higher. You don’t need to create a rule for Normal — it’s the automatic baseline.

How First-Match-Wins Works

Here’s the most important thing to understand about Priority Rules: the first rule that matches an order wins. Rules are checked in order from top to bottom. The moment one matches, that rule sets the priority and the system moves on. No further rules are checked for that order.

This means rule order matters. A lot.

Think of it like airport security lanes. The system looks at each passenger and asks: “Are you first class?” If yes, fast lane. If not: “Are you a frequent flyer?” If yes, priority lane. If not: “Do you have express boarding?” The first “yes” determines your lane. Nobody gets checked twice.

So if you have a rule that matches “Express Shipping” at Urgent (position 1) and another that matches “VIP Customer” at High (position 2), an express-shipping order from a VIP customer gets Urgent — because the shipping rule matched first. If you’d rather VIP customers always get top priority regardless of shipping, drag the VIP rule above the shipping rule.

Finding the Priority Rules Settings

  1. In your WordPress admin sidebar, go to Tracksies > Settings
  2. Click the Priority Rules tab at the top of the page

You’ll see the rule builder organised into several tabs. Each tab handles a different category of conditions, so you’re not overwhelmed by all 26 condition types at once:

  • Sources — enable or disable which condition types you want to use. Think of this as choosing which tools to put on your workbench. If you don’t use shipping classes, turn that source off and it won’t clutter your rule builder.
  • Shipping — rules based on shipping method or shipping class
  • Customers — rules based on customer status, tags, lifetime value, order count, or WordPress role
  • Orders — rules based on order total, payment method, order status, or custom order meta fields
  • Products — rules based on specific products, categories, tags, attributes, stock status, or custom product meta fields
  • Priority Order — drag-and-drop to reorder your rules. This is where you control the “first match wins” sequence.
  • Protection — time-based escalation settings for orders that sit too long without being fulfilled

Creating a Rule

Let’s walk through creating a rule. Say you want all VIP customers to get High priority:

  1. Go to the Customers tab in Tracksies > Settings > Priority Rules
  2. Select Customer Status from the source dropdown — this tells the rule what piece of data to look at
  3. Choose equals as the operator — this is the comparison logic (more on operators below)
  4. Select VIP as the value — this is what the rule is looking for
  5. Set the priority level to High using the priority dropdown
  6. Click Save to store the rule
  7. Head over to the Priority Order tab and drag your new rule into the position you want — remember, rules higher in the list are checked first

That’s it. From now on, every order placed by a VIP customer will be flagged as High priority — unless a rule above it in the priority order matches first.

All 26 Condition Sources

Priority Rules gives you 26 different condition types to build rules from. You don’t need to use all of them (most stores use 3-5), but they’re there when you need them.

Shipping Conditions

SourceWhat It Checks
Shipping MethodThe shipping method title or ID (e.g., “Express”, “Overnight”, “Free Shipping”)
Shipping ClassThe shipping class slug assigned to products in the order

Customer Conditions

SourceWhat It Checks
Customer StatusThe Tracksies customer status: Active, VIP, Caution, or Do Not Serve
Customer TagA specific tag the customer has earned. Uses the format channel:tag_slug (e.g., spending:big_spender)
Customer LTVThe customer’s lifetime value — their total spend across all orders. This is a numeric value, so you can check for “greater than $1000” or “at least $500”.
Customer Order CountHow many orders the customer has placed total. Also numeric — useful for flagging repeat customers.
Customer RoleTheir WordPress user role (e.g., Subscriber, Wholesale Customer, Shop Manager)

Order Conditions

SourceWhat It Checks
Order TotalThe total dollar amount of the order
Payment MethodWhich payment gateway was used (e.g., Stripe, PayPal, Bank Transfer). Matches against the gateway ID or title.
Order StatusThe current WooCommerce order status (e.g., Processing, On Hold, Pending Payment)
Order MetaAny custom meta field stored on the order. You’ll need to specify the meta key in the Source Key field that appears when you select this source.

Product Conditions

SourceWhat It Checks
Specific ProductA particular product or variation by name or ID
Product CategoryThe WooCommerce product category name or slug
Product TagA product tag (e.g., “fragile”, “handmade”, “perishable”) — matched by name or slug
Product AttributeA WooCommerce product attribute value. You’ll need to specify the attribute in the Source Key field (e.g., pa_size).
Stock StatusWhether items in the order are instock, outofstock, or onbackorder
Product MetaAny custom meta field stored on the product. Requires a meta key in the Source Key field.

Custom Fields — ACF

These appear automatically when Advanced Custom Fields (free or Pro) is installed and active. No extra configuration needed — Priority Rules detects ACF and adds its fields to the rule builder.

SourceWhat It Checks
ACF Product FieldsAny ACF field attached to products. Uses get_field() under the hood.
ACF Order FieldsAny ACF field attached to orders. Uses get_field() under the hood.

Custom Fields — Meta Box

These appear automatically when the Meta Box plugin (free or premium) is installed and active.

SourceWhat It Checks
Meta Box Product FieldsAny Meta Box field on products. Uses rwmb_get_value() under the hood.
Meta Box Order FieldsAny Meta Box field on orders. Uses rwmb_get_value() under the hood.

Product Add-on Fields

These appear automatically when the relevant add-on plugin is installed and active. Priority Rules reads the add-on field values from order item meta, so it can evaluate what the customer actually selected at checkout.

SourcePlugin RequiredWhat It Checks
Studio Wombat (WAPF)Advanced Product Fields for WooCommerceProduct add-on fields from order item meta
WP WhaleAdvanced Product Fields ProProduct add-on fields from order item meta
WCPA (Acowebs)Woo Custom Product Addons ProProduct add-on fields from order item meta

Understanding Operators

Operators are the comparison logic — the “how” of your rule. When you pick a source like “Order Total”, the operator determines whether you’re checking for an exact amount, a range, or something else.

String Operators

These work with text-based sources like shipping method names, customer roles, and product tags.

OperatorWhat It Does
equalsExact match. “Express” matches “Express” but not “Express Plus”.
not equalsAnything except this value.
containsThe value appears anywhere in the field. “Express” matches “Express Overnight”.
not containsThe value does NOT appear anywhere in the field.

A quick note on “contains” vs “equals”: if your shipping method is called “Express Shipping”, a rule using “equals” with the value “Express” won’t match — it’s looking for an exact match. Use “contains” instead, and “Express” will match “Express Shipping”, “Express Overnight”, and anything else with “Express” in the name.

Numeric Operators

These work with number-based sources like order total, customer LTV, and order count.

OperatorWhat It Does
equalsExact match. $500 matches $500.
greater thanStrictly more than the value. $501 matches “greater than $500”, but $500 doesn’t.
less thanStrictly less than the value.
at leastEqual to or more than. $500 matches “at least $500”.
at mostEqual to or less than the value.

Advanced Operators

These work with list-based values and boolean (true/false) fields.

OperatorWhat It Does
in listMatches against a comma-separated list of values. Enter Express, Overnight, Priority and the rule matches any of them.
not in listThe value is NOT in the comma-separated list.
is emptyThe field has no value set.
is not emptyThe field has some value (anything at all).
is trueThe field is truthy — checked, enabled, or has a value. Available for ACF, Meta Box, and product add-on fields.
is falseThe field is falsy — unchecked, disabled, or empty. Available for ACF, Meta Box, and product add-on fields.

Reordering Rules

Since first match wins, getting your rule order right is crucial.

  1. Go to the Priority Order tab in Tracksies > Settings > Priority Rules
  2. Drag rules up or down to change their position — rules at the top are checked first
  3. Your changes save as you drag, so there’s no separate save step

Quick example: You have “Express Shipping -> Urgent” at position 1 and “VIP Customer -> High” at position 2. A VIP customer places an express order — which rule wins? Express Shipping, because it’s higher in the list. If you’d rather VIP always win, drag it above the shipping rule.

Worked Example: How Rules Show Up in Your Queue

The clearest way to understand first-match-wins is to walk through a real queue. Imagine you’ve set up three rules in this order:

PositionRule NameSourceMatchPriority Level
1VIP PriorityCustomer Statusequals VIPUrgent (1)
2Apparel Packs FirstProduct Categoryequals ApparelHigh (2)
3Accessories SecondProduct Categoryequals AccessoriesHigh (2)

A few orders come in. Here’s how they appear in the packing queue:

Card positionOrderCustomerAgeBadge shownWhy
1#2144Morgan (VIP)2 days“VIP Priority”Urgent beats High; same age as #2147, tied by ID
2#2147William (VIP)2 days“VIP Priority”Also Urgent, sits above all High orders
3#2159Priya3 days“Apparel Packs First”High (2), oldest of the High group
4#2161Yasmin3 days“Accessories Second”High (2), 3 days old. Order has accessories only — no apparel for rule 2 to catch first
5#2158Sung2 days“Apparel Packs First”High (2), 2 days
6#2164Jamal2 days“Accessories Second”High (2), 2 days, accessories-only
7#2170Jamal2 days“Apparel Packs First”High (2), 2 days
8#2165Yasmin12 hours“Apparel Packs First”High (2), newest — lands at bottom of High

Two important things to read out of this table:

The queue sorts by priority level first, then by date. All Urgents come before all Highs. Within High, the oldest order is at the top.

The badge tells you which rule fired, not which level. Orders #2161 and #2164 show “Accessories Second” instead of “Apparel Packs First” because their order contents had accessories but no apparel — so rule 2 didn’t match and rule 3 did. Both rules result in High priority, so the queue position is determined by date, not by which-of-the-two-Highs matched.

What if you want apparel orders to outrank accessories orders? Same level + same date won’t differentiate them. Give Apparel a higher level (e.g. Elevated -> level 3 -> wait, that’s lower; you’d want Urgent or use a different priority lane). Or add a more specific rule above both — e.g. “Apparel and Accessories together -> Urgent” — so mixed-category orders hit the Urgent lane while accessories-only stay at High.

Setting Up Time-Based Escalation

What about orders that don’t match any special rules? They start at Normal, and that’s fine — until they’ve been sitting unpacked for two days. Time-based escalation automatically bumps orders up in priority when they’ve been unfulfilled too long. Think of it like a ticking clock on each order — the longer it waits, the louder it gets.

Here are the default thresholds:

Time UnfulfilledEscalates To
24 hoursElevated (level 3)
36 hoursHigh (level 2)
48 hoursUrgent (level 1)

These thresholds are checked by a background process that runs every hour. You can customise all three thresholds in the Protection tab within Tracksies > Settings > Priority Rules.

Business Hours Mode

Without business hours mode, an order placed at 4pm Friday starts escalating immediately — by Saturday afternoon, it’s flagged as Elevated even though your warehouse doesn’t work weekends. Business hours mode fixes this: the escalation clock only ticks during your working hours. That Friday 4pm order won’t start escalating until Monday morning.

Set it up in the Protection tab: enable the Business hours mode toggle, choose your working days using the day checkboxes, and set your start and end times using the time pickers. The system will only count hours within your defined schedule when calculating how long an order has been waiting.

Email Alerts

You can also enable email notifications in the Protection tab. When an order hits Urgent priority through escalation, the system sends you an alert so you can catch a backlog before it becomes a crisis.

Example Rules for Common Scenarios

Here are five rules that work well for most stores. Pick the ones that match how your business works.

  1. Express Shipping -> Urgent — Customers paying for express expect fast turnaround. Source: Shipping Method, Operator: contains, Value: Express, Priority: Urgent.
  1. VIP Customer -> High — Your best customers get priority treatment. Source: Customer Status, Operator: equals, Value: VIP, Priority: High.
  1. Order over $500 -> Elevated — High-value orders deserve extra attention and careful packing. Source: Order Total, Operator: greater than, Value: 500, Priority: Elevated.
  1. Product tagged “fragile” -> Elevated — Careful handling for delicate items. Source: Product Tag, Operator: equals, Value: fragile, Priority: Elevated.
  1. Backordered item -> High — Orders with backordered products need monitoring so customers aren’t left waiting without communication. Source: Stock Status, Operator: equals, Value: onbackorder, Priority: High.

Everything else stays at Normal — no rule needed for that, it’s the automatic default.

A good rule order for these would be: Express Shipping first (time-critical), then VIP Customer, then Backordered, then the two Elevated rules. But adjust based on what matters most to your business.

What Gets Tracked

When a rule matches an order, Priority Rules stores the following data on the order for your reference:

  • Matched Rule ID — which rule triggered the priority assignment
  • Priority Level — the current level (1-4)
  • Original Level — the level before any time-based escalation (so you can see what the rule originally assigned)
  • Escalated At — when time-based escalation bumped the priority
  • Escalation Reason — why it was escalated (e.g., unfulfilled for 24 hours, 36 hours, 48 hours)
  • Matched At — when the rule was first evaluated against the order

This data appears in the order details so you always know why an order has the priority it does.

How It Looks in the Packing Dashboard

When your warehouse staff are using the Packsie packing dashboard, priority rules come to life:

  • Queue cards show a coloured badge with the rule name — not just “Urgent” or “High”, but the actual name you gave the rule (e.g., “Same Day Service”, “Express Shipping”, “VIP Customer”). This gives packers instant context about why an order is flagged.
  • Priority stripes — a coloured bar on the left edge of each card for quick visual scanning.
  • Automatic sorting — Urgent orders float to the top, then High, then Elevated, then Normal. Within the same level, oldest orders come first.
  • Escalation indicators — orders that have been bumped up by time-based escalation show an additional badge with an arrow icon.

See the Packing Dashboard docs for the full staff workflow.

Common Questions

What happens if no rules match an order?
The order stays at Normal (level 4). Normal is the default for every order — rules only change orders to a higher priority.

Can I have multiple rules at the same priority level?
Yes. You might have three rules that all set Elevated. The first one that matches wins, but since they all result in the same priority level, it doesn’t matter which specific rule matches.

Do rules apply to existing orders or only new ones?
Rules are evaluated when a new order is placed, when an order status changes, and when a customer’s status changes. So if you promote a customer to VIP, their existing processing orders will be re-evaluated and could get bumped up in priority.

Can I test a rule without it affecting real orders?
Not directly — there’s no “draft” mode for rules. But here’s a workaround: create the rule and set it to Normal priority. It will match orders (you can verify this in the order details where it shows the matched rule), but since Normal is the default anyway, it won’t change anything. Once you’re confident it’s matching correctly, change it to the priority level you actually want.

Do third-party plugin fields show up automatically?
Yes. When you install and activate a supported plugin (ACF, Meta Box, Studio Wombat, WP Whale, or WCPA), their fields automatically appear as available condition sources in the rule builder. Refresh the Priority Rules page after installing the plugin and the new fields will be there. The Sources tab shows which integrations are detected.

What’s the difference between “Order Meta” and “ACF Order Fields”?
Order Meta reads raw WordPress meta values using the meta key directly. ACF Order Fields uses ACF’s get_field() function, which handles ACF-specific formatting like repeater fields, relationship fields, and true/false toggles. If you’re using ACF to add fields to orders, use the ACF source — it’ll handle the data correctly. If you’re storing plain meta values (from custom code or another plugin), use Order Meta.

How does business hours mode affect orders placed outside working hours?
The escalation clock pauses outside your configured business hours. An order placed at 5pm on Friday (after your 9-5 workday ends) won’t start its 24-hour escalation countdown until 9am Monday. This prevents weekend orders from hitting Urgent before your team even sees them.

Troubleshooting

Rules aren’t applying to orders at all
Check that the feature is enabled: go to Tracksies > Settings > Features and look for Priority Rules under the WooCommerce section. If the toggle is switched off, none of your rules will run. Also confirm that the specific source type you’re using is enabled on the Sources tab within the Priority Rules settings.

A rule should match but doesn’t
The most common cause is rule order. Go to the Priority Order tab in Tracksies > Settings > Priority Rules and check whether a different rule higher up the list is matching the order first. Try temporarily dragging your rule to the very top to see if it matches then. If it does, you have a rule ordering issue — adjust positions until the right rule wins.

A rule using “equals” isn’t matching
Check for exact spelling and formatting. The “equals” operator requires an exact match — “Express” won’t match “Express Shipping”. If you need a partial match, switch to the “contains” operator instead. Also check for trailing spaces in your value.

Third-party fields aren’t showing in the rule builder
Make sure the plugin (ACF, Meta Box, Studio Wombat, WP Whale, or WCPA) is installed and activated — not only installed. Then refresh the Priority Rules page. If the fields still don’t appear, check that the plugin has fields defined for the relevant post type (products for product conditions, orders for order conditions). An ACF field group that’s only assigned to Posts won’t show up in the product conditions.

“Error loading field sets” message
Clear your browser cache and do a hard refresh (Ctrl+Shift+R on Windows, Cmd+Shift+R on Mac). If the error persists, open your browser’s developer console by pressing F12 and check for JavaScript errors in the Console tab. This can happen if a plugin update changed how fields are registered.

Time-based escalation isn’t happening
Escalation runs via WordPress cron (wp-cron), which is triggered by site visits. If your site has very low traffic, the cron job might not fire on schedule. Some hosts also disable or throttle wp-cron. The fix is to set up a real server cron job that calls wp-cron.php on a schedule — your hosting provider can help with this, and most good hosts offer it as a standard option.

Orders keep escalating even when they’ve been handled
Escalation checks whether an order has been fulfilled — meaning it’s been moved to a completed or shipped status. If you’re using custom statuses that Tracksies doesn’t recognise as “fulfilled”, the escalation clock keeps ticking. Make sure you’re using Tracksies’ built-in custom statuses (Packed, Shipped, etc.) or WooCommerce’s Completed status to mark orders as done.

A rule’s priority changed but existing orders still show the old level
Rules are re-evaluated on new orders and status changes, but changing a rule definition doesn’t retroactively re-evaluate every historical order. If you need to refresh existing orders, changing their status (e.g., toggling from Processing to On Hold and back) will trigger a re-evaluation.

What’s Next?

Priority Rules works best alongside other Tracksies HQ features:

  • Customer Profiles & Statuses — the customer data that powers rules like “VIP Customer” and “Customer LTV”
  • Customer Tags — use tag conditions in your rules (e.g., “big spender” tag -> High priority)
  • Custom Order Statuses — Packed, Shipped, and other statuses that tell escalation when an order has been handled
  • Email Templates — customise the alert emails sent when orders hit Urgent priority

How can we help?