Rules are how you control which delivery estimate ArrivesBy shows — and to whom. Each rule defines which products it applies to, any additional filters (market, region, location), and the lead and transit times to display.
When a customer views a product, ArrivesBy finds every active rule that matches and applies them in priority order. Higher-priority rules override settings from lower-priority rules
.
The Starter plan includes up to 3 rules. Grow and above have unlimited rules.
Creating a rule
Click Add rule from the Rules page to create a new rule. Every rule has a name, a scope (what it applies to), optional additional filters, and delivery time settings.
Rule name
The name is for your reference only — customers never see it. Use something descriptive like "Express shipping — US East" or "Preorder: Spring Drop."
Status
A rule can be set to Active (live immediately) or Draft (saved but not applied). You can also schedule a rule to activate and expire on specific dates — see Publishing schedule below.
Applies to
This section controls which products the rule targets, plus any additional filters that narrow it further. Click + Add condition and choose a field — the menu covers Shipping region, Location, Market, Country, Product type, Tag, Vendor, Specific collections, and Specific products or variants. On the Plus plan, it also includes Product metafield and Variant metafield.
How conditions combine depends on the field:
Shipping region, Location, Market, Country — every one you add must match. Multiple values in the same field still work as "either" — Market = "United States" or "Canada" matches both.
Product type, Tag, Vendor, Specific collections, Specific products or variants — a product matches if it satisfies any one of these. For example, Tag = "fragile" or Product type = "Furniture" applies to products tagged "fragile" or products with type "Furniture."
Add conditions from both lists and they combine: the product must match at least one condition from the second list and every condition from the first. Add nothing from the second list and the rule applies to every product.
Permissions required
Market and location filters require ArrivesBy to have read access to your markets and locations. If you see a prompt to enable permissions, grant access so ArrivesBy can show location- and market-specific delivery dates.
Product and variant metafields (Plus)
On the Plus plan, you can scope a rule to a value stored in a product or variant metafield — for example, a metafield that marks a product as made to order. Metafield conditions need the Plus plan.
Market
Scope the rule to a specific Shopify market (for example, "United States" or "European Union"). Only customers shopping in that market will see this rule's estimates. Don't add a Market condition to apply to all markets.
Location
Scope the rule to orders fulfilled from a specific warehouse or fulfillment location. This is useful when your processing time varies by location — for example, your main warehouse ships in 1 day, but a secondary warehouse takes 3 days.
Shipping region
Scope the rule to a custom shipping region defined in ArrivesBy. Shipping regions let you group states and provinces into named delivery zones and apply different transit times to each. Supported countries: US, Canada, Australia, and New Zealand.
Inventory behavior and lead time
The Inventory behavior section of a rule controls what ArrivesBy does for two kinds of products: In stock products, and Preorder products (out of stock products that are set to continue selling in Shopify). You choose a response for each, and the two can differ.
Lead time is how long it takes for an order to be ready to ship after it's placed. ArrivesBy counts lead time in business days — the days your store processes and ships orders, as configured in your shop settings.
Show, hide, or skip
For each type of product, pick one response:
Show delivery estimate — the rule gives an estimate for these products. You set the lead time.
Hide delivery estimate — the rule applies, and its answer is "no estimate." Shoppers see nothing for these products.
Skip this rule — the rule steps aside for these products. ArrivesBy ignores it and uses the next matching rule.
The difference between hide and skip. Hide is a decision. Skip is a pass. If a rule set to Hide is the highest-priority match, shoppers see no estimate, even if a lower-priority rule would have shown one. If a rule set to Skip is the highest-priority match, ArrivesBy moves on to the next matching rule instead.
Use Skip when another rule should take over. Use Hide when these products should have no estimate.
If every rule that matches a product skips a status, there's no rule left to use and no estimate shows. The result looks like Hide, but no rule decided it.
Example
Your all-products rule shows 2 days for in-stock products and 14 days for preorder products. Two more rules rank above it:
A Vendor = Acme rule has In stock set to Skip and Preorder set to Show with 21 days. An in-stock Acme product skips this rule and gets 2 days from the all-products rule. A preorder Acme product uses this rule and gets 21 days.
A Product type = Custom engraving rule has In stock set to Hide. An in-stock engraved product matches this rule, so it shows no estimate. The 2 days from the all-products rule never apply.
In stock
Products with inventory available. Choose Show delivery estimate, then enter a Lead / processing time: the number of business days it takes you to process and ship an order. Use 0 for same-day dispatch.
Preorder
Out of stock products that are set to continue selling when out of stock in Shopify (preorder mode). Out of stock products that aren't set to continue selling never show an estimate, whatever you choose.
Choose Show delivery estimate, then pick how to set the lead time:
Business days — enter the number of business days until the order ships. This works the same as in-stock lead time but only applies when the product is out of stock.
Specific date — enter the exact date the order will ship. This is ideal for preorder products with a known restock or release date. ArrivesBy uses this as the ship date directly, jumping ahead to the next business day if it falls on a non-processing day.
Expired ship dates
If the specific ship date has passed, ArrivesBy will not show estimates for out-of-stock products until you update the date. Expired rules are flagged in the rules list.
Transit time
Transit time is how long the carrier takes to deliver after the order ships. Enter a min and max transit time in business days. ArrivesBy displays this as a date range to the customer — for example, "Arrives between Jun 12 – Jun 15."
To show a single exact date, enter the same value in both fields (or leave max blank).
Transit days are counted based on carrier operating days, configured in your shop settings.
Publishing schedule
Rules support optional Activate on and Expire on dates, useful for seasonal promotions, sale events, or temporary preorder windows.
Activate on — the rule goes live on this date. Before this date it behaves as a Draft even if its status is set to Active.
Expire on — the rule deactivates after this date and shows as Expired in the rules list.
Leave both fields blank for a rule that is always active. Rules can have four computed states:
Active — live now
Draft — manually set to Draft, not applied
Scheduled — status is Active, but Activate on is in the future
Expired — status is Active, but Expire on has passed
How rules are prioritized
When multiple active rules match, ArrivesBy applies them from lowest to highest priority. A higher-priority rule overrides settings supplied by lower-priority rules.
Scope conditions come first. A matching rule with more Shipping region, Location, Market, or Country conditions has higher priority. Each condition adds one level; these condition types have equal weight. Selecting multiple values in one condition still adds only one level. Any matching rule with a scope condition beats a rule without one, even if that unscoped rule targets a specific product or variant.
Product targeting breaks a scope tie. When rules have the same number of scope conditions, the product condition order from highest to lowest is: Specific variant → Specific product → Vendor → Tag → Product type → Specific collection → All products. If a rule has several product conditions, its highest-ranked condition determines its priority.
Equal priority has a tie-breaker. The older rule wins. When every tied rule targets a Location and sets an in-stock lead time, the rule with the shortest lead time wins; if those times are equal, the older rule wins.
Market-level delivery settings, when configured, are applied after unscoped rules and before rules with scope conditions. The order of rows on the Rules page is for browsing; it does not determine which rule wins.
Example
A rule for a specific Furniture product has a 7–10 day transit time. Another rule for the West Coast shipping region has a 1–2 day transit time. For a West Coast customer viewing that product, the region rule wins because its scope condition gives it a higher priority tier.
If no rule matches
ArrivesBy doesn't create a rule for you automatically. If a product doesn't match any of your rules — or you haven't created any yet — no delivery estimate is shown for it on your storefront.
To give every product a baseline estimate, create a rule with no Tag, Product type, Vendor, collection, or product conditions (see Applies to above) Its broad targeting gives it lower priority than matching rules with product or scope conditions.
In the Shopify theme editor's design mode, the ArrivesBy block shows a "no rules configured" warning so you can catch a missing baseline while you're setting up — customers never see this warning on your live storefront.
Troubleshooting
Rule systems can get complicated quickly. If you have many rules active at the same time — targeting overlapping collections, tags, vendors, or markets — it can be hard to predict which rule will win for a given product and customer. When a product matches multiple rules at the same priority level, the outcome may not be what you expect.
The best way to diagnose what's happening is to use Debug mode in Shopify's online theme editor. It's a setting on the Delivery Promises app embed, so the embed needs to be on. If it isn't yet, Switching to the Delivery Promises app embed shows how.
Open your store in the Shopify theme editor (Online Store → Themes → Customize).
Open the App embeds tab and select Delivery Promises.
Turn on Debug mode.
Navigate to a product page that's showing an unexpected estimate.
With Debug mode on, a panel in the theme editor shows the name of the rule that produced the current estimate. If no estimate shows, it tells you why — for example, no rules or an unavailable variant. It also shows the location and ZIP code it used. This tells you exactly which rule is winning — so you can go back to the Rules page and adjust its conditions accordingly.
The panel only appears in the theme editor. Shoppers never see it.
Tips for keeping rules manageable
Start with a broad, all-products rule (no Tag, Product type, Vendor, collection, or product conditions) and add specific rules only when you need different times for a subset of products.
Avoid creating multiple rules that could match the same product at the same priority level — use more specific conditions (individual products or collections) rather than broad attribute rules that might overlap.
Test your rules in the theme editor with Debug mode if you ever see something unexpected.







