Shipit DocumentationShipit Documentation
Home
API
Webhooks
Shipit Delivery Checkout
Shipit Return and Exchange
Shopify Delivery Checkout
  • English
  • Suomi
  • Svenska
  • Eesti
  • Dansk
  • Norsk
Home
API
Webhooks
Shipit Delivery Checkout
Shipit Return and Exchange
Shopify Delivery Checkout
  • English
  • Suomi
  • Svenska
  • Eesti
  • Dansk
  • Norsk
  • Shipit Delivery Checkout

    • Shipit Delivery Checkout
  • Getting Started

    • What is Delivery Checkout?
    • How It All Fits Together
    • Your First Shipping Option
    • Testing Your Checkout Setup
  • Core Concepts

    • Checkout Setups
    • Shipping Options
    • Rules
    • Pricing
    • Presentation Settings
    • Pickup Points
    • Parcels
    • Fulfillment Settings
    • Translations
    • A/B Experiments
  • Reference

    • Checkout Setup Field Reference
    • Shipping Option Field Reference
    • Parcel Preset Field Reference
    • Rule Condition Reference
    • Rule Action Reference
  • Examples

    • Show free shipping when the order total is over €100
    • Charge more for heavier orders
    • Offer cash on delivery for a specific country
    • Stop showing express delivery after 2pm and on weekends
    • Route orders to the right warehouse
    • Show a free shipping badge during weekend sales
    • Add a pickup point shipping option
    • Show different shipping options to B2B and B2C customers
    • Bulk-import shipping options from a CSV file
    • Discount shipping for loyalty members
    • Show different carriers per destination country
    • Restrict same-day delivery to a specific postcode area
    • A/B test two checkout messaging variants
    • Offer a return shipment option at checkout
    • Hide parcel lockers when an order is too heavy
  • Glossary

    • Glossary

TL;DR

A rule is a condition-and-action pair attached to a shipping option. When a customer reaches checkout, Shipit checks each rule's conditions against the order — if the conditions match, the action runs. Rules run in priority order, highest number first, and only the first matching rule applies (except for pickup point rules, which work differently — see below).


What you can do with rules

Rules let you automate decisions that you would otherwise have to apply manually or handle through separate shipping options. Here are some things you can do:

  • Show free shipping automatically when the cart total is over €100
  • Hide express delivery after 2pm so you never promise same-day shipping you cannot fulfill
  • Add a surcharge for B2B customers who need commercial invoicing
  • Show different carriers in different countries without duplicating your whole setup
  • Remove parcel lockers from the available list when an order is too heavy to fit
  • Give loyalty members a discount on standard delivery
  • Block shipping to certain countries entirely
  • Show a cheaper option only during a weekend sale
  • Filter out outdoor parcel lockers in winter months

How a rule works

Think of a rule as a filter at the door of a shipping option. Every time a customer reaches checkout, the rule checks a few things about their order — where they are, how much they have in their cart, what time it is — and then decides what to do with this shipping option.

Each rule has two parts:

  1. Conditions — the criteria that must be true for the rule to fire. You can require that all conditions be met, or that at least one is met.
  2. Action — what happens when the conditions match: show the option, hide it, change its price, or filter the pickup points it offers.

If the conditions do not match, the rule does nothing and Shipit moves on to the next rule in priority order. If no rule matches at all, the shipping option falls back to its default behavior — visible at its base price.


Parts of a rule

FieldWhat it does
NameAn internal label shown only to you, never to customers. Use descriptive names like "Hide express after 2pm" so you can scan your rules list quickly.
Type / ActionWhat happens when the rule triggers. See Rule actions below.
PriorityA number that controls the order in which rules are checked. Higher numbers are checked first.
ActiveWhen turned off, the rule is saved but never evaluated. Use this to pause seasonal rules without deleting them.
Conditions matchEither "all" (every condition row must be true) or "any" (at least one condition row must be true).
ConditionsOne or more rows, each with a field, an operator, and a value.
OutcomeThe result of the action — for example, a price adjustment amount or a percentage discount. The fields shown here depend on which action type you chose.

Condition fields

Conditions are organized into groups. Each condition row picks one field from the list below, an operator that describes how to compare it, and a value to compare against.

Location

FieldPlain-English labelOperatorsExample value
destination_countryDelivery countrysameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notInFI
destination_postcodeDelivery postcodesameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notIn00100
destination_cityDelivery citysameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notInHelsinki
is_domesticOrder is within the same countryyes / noyes
is_internationalOrder crosses a country borderyes / noyes
origin_countryShipping from countrysameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notInFI
origin_postcodeShipping from postcodesameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notIn00520
origin_cityShipping from citysameAs, notSameAs, contains, notContains, startsWith, endsWith, in, notInHelsinki

Cart

FieldPlain-English labelOperatorsExample value
cart_weightTotal cart weight (in grams)sameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual10000 (= 10 kg)
cart_valueCart value (decimal)sameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual100.00
cart_subtotal_priceCart subtotal before discountssameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual80.00
cart_total_priceCart total after discountssameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual75.00
cart_item_countNumber of items in cartsameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual5

The unit for cart_weight depends on your store's weight unit setting. Confirm which unit your checkout provider sends before writing weight-based rules to avoid setting thresholds in the wrong unit.

Customer

FieldPlain-English labelOperatorsExample value
customer_typeCustomer typesameAs, notSameAsb2c or b2b
customer_originHow the customer arrivedsameAs, notSameAsorganic
customer_tagTag on the customer recordsameAs, notSameAs, contains, notContains, in, notInwholesale
loyalty_is_memberLoyalty program statussameAs, notSameAsnew_member, member, or vip

Time

FieldPlain-English labelOperatorsExample value
day_of_weekDay of the weeksameAs, notSameAs, in, notInfriday
time_of_dayCurrent time (HH:MM)sameAs, notSameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual14:00
timezoneTimezone for evaluating the timesameAs, notSameAsEurope/Helsinki

Always pair time_of_day with a timezone condition when your store serves multiple regions. Without a timezone, time comparisons use the server's default clock, which may not match your customers' expectations.

Checkout and experiments

FieldPlain-English labelOperatorsExample value
checkout_localeLanguage/locale of the checkoutsameAs, notSameAs, in, notInfi-FI
checkout_market_countryMarket the checkout is configured forsameAs, notSameAs, in, notInFI
experiment_nameName of an active A/B experimentsameAs, notSameAscheckout-v2
experiment_bucketWhich bucket the customer is insameAs, notSameAsa or b
shipping_zoneNamed shipping zonesameAs, notSameAs, in, notInnordic
product_collectionProduct collection in the cartsameAs, notSameAs, contains, notContains, in, notInfragile-items
store_typeWhether the store is B2C or B2BsameAs, notSameAsb2c or b2b

Warehouse and fulfillment

FieldPlain-English labelOperatorsExample value
warehouse_countNumber of warehouses fulfilling this ordersameAs, greaterThan, greaterThanOrEqual, lessThan, lessThanOrEqual2
has_multiple_warehousesOrder ships from more than one warehouseyes / noyes
multi_shipment_enabledMulti-shipment fulfillment is activeyes / noyes
multi_shipment_modeWhich multi-shipment mode is in usesameAs, notSameAsdepends on your setup

Pickup point

These conditions only apply when your rule action is one of the pickup point filter types (show/hide service point, parcel locker, etc.).

FieldPlain-English labelOperatorsExample value
pickup_point_typeCategory of the pickup pointsameAs, notSameAs, in, notInparcel_locker
pickup_point_service_typeService type string from the carriersameAs, notSameAs, contains, notContainsPUDO
pickup_point_service_codeSpecific service code from the carriersameAs, notSameAs, contains, notContainsFI_LOCKER_1

Operators

OperatorWhat it meansExample
sameAsExactly equals the valueCountry sameAs FI — matches Finland only
notSameAsDoes not equal the valueCountry notSameAs FI — matches everywhere except Finland
containsText includes the value as a substringCity contains borg — matches "Gothenburg", "Helsingborg"
notContainsText does not include the substringPostcode notContains 00 — excludes postcodes with "00"
startsWithText begins with the valuePostcode startsWith 00 — matches "00100", "00200"
endsWithText ends with the valuePostcode endsWith 00 — matches "10000", "20100"
greaterThanNumber is strictly more than the valueWeight greaterThan 5000 — over 5 kg
greaterThanOrEqualNumber is equal to or more than the valueCart value greaterThanOrEqual 100.00 — €100 or more
lessThanNumber is strictly less than the valueTime lessThan 14:00 — before 2pm
lessThanOrEqualNumber is equal to or less than the valueItem count lessThanOrEqual 3 — three items or fewer
inValue matches one item in a comma-separated listCountry in FI,SE,NO — Finland, Sweden, or Norway
notInValue does not appear in the listCountry notIn RU,BY — excludes Russia and Belarus

The in and notIn operators accept a comma-separated list with no spaces. For example, to match three countries write FI,SE,NO — not FI, SE, NO.


Rule actions

Visibility actions

Visibility rules show or hide a shipping option for the entire checkout. Only the first matching visibility rule applies.

enable_method — Show this shipping option

Use this when a shipping option should be hidden by default and only shown for certain orders. For example, show a same-day delivery option only for local postcodes.

disable_method — Hide this shipping option

Use this to hide an option when specific conditions are met. For example, hide express delivery after 2pm, or hide a carrier entirely for international orders.

Visibility rules and pricing rules stop at the first match. Once a rule matches, no further rules of the same type are checked for that option. Plan your priority order carefully.


Pricing actions

modify_method_price — Adjust the price up or down

This action changes the displayed price for the shipping option. You can apply a fixed amount adjustment, a percentage adjustment, or both.

Outcome fields:

FieldWhat it doesExample
AmountA fixed value added to (or subtracted from) the price. Use a negative number for a discount.-3.00 removes €3
CurrencyThe currency for the fixed amount.EUR
PercentageA percentage to add or subtract. Use a negative number for a discount.-100 makes shipping free

To make shipping free, set the percentage to -100. This is cleaner than setting a fixed amount because it works regardless of the base price.


Pickup point filter actions

Pickup point rules filter the list of pickup locations offered to the customer. Unlike visibility and pricing rules, all matching pickup point rules apply — not just the first one. This lets you combine multiple filters (for example, hide parcel lockers AND hide outdoor lockers for heavy orders).

ActionWhat it does
show_service_pointInclude service point locations (post offices, shops) in the list
hide_service_pointRemove service point locations from the list
show_parcel_lockerInclude indoor parcel lockers in the list
hide_parcel_lockerRemove indoor parcel lockers from the list
show_outdoor_parcel_lockerInclude outdoor parcel lockers in the list
hide_outdoor_parcel_lockerRemove outdoor parcel lockers from the list
show_letter_boxInclude letter box delivery points in the list
hide_letter_boxRemove letter box delivery points from the list

When to use these: Use pickup point filter rules when you need to limit which types of locations a customer can choose. For example, hide outdoor parcel lockers for large or fragile parcels that should not be left outside, or hide letter box delivery for orders too bulky to fit.


Shipment flag actions

Shipment flag actions do not change what the customer sees at checkout. They attach information to the shipment that is used when the shipment is created and handed off to the carrier.

ActionWhat it does
enable_limited_quantitiesMarks the shipment as containing goods with limited quantity restrictions (relevant for some dangerous goods regulations)
enable_dangerous_goodsMarks the shipment as containing dangerous goods, triggering carrier-specific handling requirements

Legacy action types

The following action types are still functional but have been superseded by the actions above. You may see them in older setups.

ActionReplaced by
visibilityenable_method / disable_method
pricingmodify_method_price
textNot directly replaced

Tip: If you have existing rules using legacy action types, they will continue to work without changes. When you next edit one of those rules, recreate the action using the current type: visibility → enable_method or disable_method; pricing → modify_method_price. New rules should always use current action types.


How priority works

Every rule has a priority number. Shipit evaluates rules in descending order — the rule with the highest number runs first.

Higher priority number = checked first. This is the opposite of what many people expect. A rule with priority 100 runs before a rule with priority 10.

Best practice: space your priorities in steps of 10 (10, 20, 30, 40...). This leaves room to insert new rules between existing ones without having to renumber everything.

Example priority order for a shipping option with four rules:

PriorityRule nameWhat it does
40VIP loyalty free shippingRemoves price for VIP members — checked first
30B2B surchargeAdds €5 for B2B customers
20Hide after 2pmDisables the option after the cutoff
10Default free shipping over €100Removes price for large orders — checked last

In this example, a VIP member placing a B2B order would get free shipping because priority 40 fires first and no further pricing rules apply.


Conditions: all vs any

When you add more than one condition row to a rule, you must choose whether all conditions must be true or any one of them must be true.

"All" means every condition must match — think of it as AND logic.

Example: Hide express delivery if the destination is outside Finland AND the cart weight is over 5 kg. Both must be true to trigger the rule.

Conditions match: all
  - destination_country  notSameAs  FI
  - cart_weight          greaterThan  5000

"Any" means at least one condition must match — think of it as OR logic.

Example: Hide the option if the destination is Russia OR the destination is Belarus. Either country alone is enough to trigger the rule.

Conditions match: any
  - destination_country  sameAs  RU
  - destination_country  sameAs  BY

You cannot mix AND and OR logic within a single rule. If you need complex logic (for example, "B2B customers AND order over €200, OR VIP members"), create two separate rules with the same action and appropriate priorities.


Common patterns

Free shipping over €100

Goal: Automatically remove the shipping charge when the cart total reaches €100 or more.

SettingValue
Actionmodify_method_price
Conditions matchall
Conditioncart_value greaterThanOrEqual 100.00
Outcome — Percentage-100

This removes 100% of the price, making shipping free regardless of what the base price is set to.


No express delivery after 2pm

Goal: Hide same-day or express shipping options after the order cutoff time.

SettingValue
Actiondisable_method
Conditions matchall
Condition 1time_of_day greaterThanOrEqual 14:00
Condition 2timezone sameAs Europe/Helsinki

Without the timezone condition, the time is evaluated against the server clock, which may differ from your warehouse location.


B2B surcharge

Goal: Add a €5 handling fee for business customers.

SettingValue
Actionmodify_method_price
Conditions matchall
Conditioncustomer_type sameAs b2b
Outcome — Amount5.00
Outcome — CurrencyEUR

Block shipping to a country

Goal: Hide a shipping option entirely for orders going to a specific country.

SettingValue
Actiondisable_method
Conditions matchall
Conditiondestination_country sameAs RU

To block multiple countries with one rule, use the in operator:

Conditiondestination_country in RU,BY,KP

Loyalty member discount

Goal: Give customers with an active loyalty membership a €3 discount on standard delivery.

SettingValue
Actionmodify_method_price
Conditions matchany
Condition 1loyalty_is_member sameAs member
Condition 2loyalty_is_member sameAs vip
Outcome — Amount-3.00
Outcome — CurrencyEUR

Using "any" here means either member or vip status qualifies for the discount. Set the priority for this rule higher than any other pricing rule on the same option so loyalty discounts are applied first.


What to do next

See these examples for complete walkthroughs:

  • Free shipping over a threshold — step-by-step setup with screenshots
  • Time-based cutoffs — handling same-day delivery windows across timezones
  • B2B vs B2C options — showing different carriers to different customer types
Last Updated: 6/13/26, 7:25 AM
Contributors: Brian Faust
Prev
Shipping Options
Next
Pricing