What shipping rules do
A shipping rule tells Arcus which carrier and service to suggest when you rate-shop a package. Rules match on the order’s source channel, total weight, item count, destination, and product category. The first matching rule’s suggested service is surfaced as the Suggested badge on every rate row, and (when configured) the label is purchased automatically when you Pack with Mighty. Shipping rules are managed in Settings > Shipping & Fulfillment > Shipping Rules, or via the API at/v1/shipping-rules.
Rule conditions
Every condition is optional. When set, all conditions are combined with AND. A rule with no conditions matches every package.Priority and the category override
Rules are evaluated in priority order (lower number runs first). When two rules have the same priority, the older one (earliestcreated_at) wins.
A category-scoped rule (one with product_category_id set) always wins over a
non-category rule, even when the non-category rule has a higher priority. This is the
“any product in this category always ships by this carrier” pattern.
The order header override
If the order itself carries an explicit shipping method (default_shipping_method), that
method overrides every rule. The sales rep’s choice at order entry always wins over an
automated rule.
Auto-buy and cost absorption
A rule can do more than suggest. Two per-rule behaviors:auto_buy— when the rule matches and resolves to exactly one carrier service, Pack with Mighty purchases the label automatically. Ambiguous rules (multiple allowed services) never auto-buy.absorb_cost— whether your business absorbs the carrier cost (true), charges it to the customer (false), or defers to the entity-wide default (null). When the cost is charged, a freight line is added to the order. When absorbed, the carrier cost posts to your Freight Out expense account and the customer is not billed.
- Who pays the carrier is the Shipping charge policy in Settings > Shipping & Fulfillment > Shipping: Absorb (your business pays the carrier), the default, or Charge customer (pass actual cost on). A rule’s own
absorb_costoverrides it. - Whether labels are bought automatically by default is the Auto-buy by default setting in Settings > Shipping & Fulfillment > Mighty Packing.
Suggested rates in the API
The rate-shop response includes asuggestion block and tags each rate row:
is_suggested— the rate matches a service the rule suggested.suggested_priority— 1..N rank within the suggestion (1 = primary).is_default— the cheapest rate row.
source is header_override when the order’s shipping method drove the suggestion, rule
when a shipping rule matched, or none when no rule matched.
Creating a rule via the API
POST /v1/shipping-rules creates one rule. name is required, and rule names are unique within your entity. A carrier-routing rule (one with no outcome) also needs at least one of shipping_tokens, flat_rate or free_shipping_threshold, or the call returns 400 with code: ambiguous_rule_outcome.
settings:write scope. Supply Idempotency-Key to make the create safely
retryable.
Importing rules without duplicates
When you supplyexternal_source (and external_id), Arcus stamps the calling API key on the rule as its import source, and a unique index on the source and ID makes a re-import idempotent: posting the same imported rule again returns 409 instead of creating a duplicate. A location_id that does not belong to your entity is refused with 400.
