Documentation

ABN Advanced Shipping — complete feature guide

Overview

ABN Advanced Shipping integrates with Shopify's Carrier Service API to calculate and display shipping rates in real time at checkout. Each rule is evaluated against the current cart — only methods whose conditions are met are returned.

📦

Flexible Pricing

Flat, per item, per kg, percentage — with formula support.

🎯

Smart Conditions

35+ condition types across location, cart, customer, time, delivery.

Additional Charges

Stack surcharges on top of the base fee.

🗂

Virtual Categories

Group products into dynamic segments at checkout.

Installation

The Carrier Service is registered automatically on first login. No manual setup required.

Requirements: Carrier-calculated shipping must be enabled — included on Shopify, Advanced, and Plus plans.
1

Install the app

Carrier Service registers automatically. Visible in Shopify Admin → Settings → Shipping → Carrier accounts.

2

Create your first shipping method

Go to Shipping Methods → Create method and configure base fee and conditions.

3

Test at checkout

Add products to cart, proceed to checkout, and verify methods appear correctly.

How It Works

At checkout, Shopify sends cart details to our callback endpoint. The app evaluates every active rule and returns matching methods with calculated rates.

// Shopify sends: { destination: { country, state, city, zip }, items: [ { product_id, quantity, grams, price } ] } // App returns matching methods: [ { service_name: "Standard", total_price: 1500 }, { service_name: "Express", total_price: 3000 } ]

Rules are evaluated in priority order. Each passing rule becomes a separate shipping option for the customer.

Shipping Methods — General Settings

FieldDescription
NameLabel shown to customers at checkout (e.g., "Standard Shipping 3–5 days")
Name TranslationsLocalized names for multi-language stores
DescriptionInternal notes — not shown to customers
PriorityDisplay order (lower number = shown first)
StatusActive / Inactive toggle. Inactive methods never appear at checkout.

Fee Configuration

Set the Base fee, choose a Calculation type, then configure the additional unit cost.

Flat Rate

A fixed fee regardless of cart contents.

Fee = Base fee

Example: Base fee = 9.99 → every qualifying order ships for $9.99.

Per Item

Base fee covers the first item. The additional fee is added for each extra item from the 2nd onward.

Fee = Base fee + Unit cost × max(0, qty − 1)
QtyBase = $10, Unit = $5
1 item$10 + $5×0 = $10.00
2 items$10 + $5×1 = $15.00
5 items$10 + $5×4 = $30.00

Per Weight (kg)

Base fee plus a rate per kilogram of total cart weight.

Fee = Base fee + Unit cost × total_weight_kg

Example: Base = $5, Unit = $2/kg, cart weighs 3kg → $5 + $2×3 = $11.00

Percentage

Shipping as a percentage of cart subtotal. Unit cost acts as a minimum fee floor.

Fee = max(subtotal × (Base % / 100), Minimum fee)

Example: Base = 10%, Minimum = $3. Cart = $20 → 10% = $2, but minimum = $3 → fee is $3.00

Formula Mode (Advanced)

The Base fee field accepts dynamic formulas with these variables:

VariableValue
[qty]Total item quantity in cart
[weight]Total cart weight in kg
[subtotal]Cart subtotal before discount
[unit_cost]The "Additional fee" field value
// Charge all items (not from 2nd): 20 + ([qty] * 5) // Weight-based with minimum: 5 + ([weight] * 2.5)

Conditions

Conditions determine when a shipping method is displayed. All conditions must pass (AND logic) by default.

📍 Location

CountryState / ProvinceCity / TownPostcodeShipping Zone

Postcode supports exact match, comma list (10001, 10002), and ranges (10000…19999).

🛒 Cart & Products

Cart has ProductCart has Variable ProductCart has product of collectionCart Subtotal (Before Discount)Cart Subtotal (After Discount)QuantityWeightCouponProduct attributeShipping ClassShipping Class totalShipping Class weightShipping Class qtyPayment MethodMax Product WidthMax Product HeightMax Product Length

👤 Customer

UserUser Role

🕐 Time & Date

Day of the weekStart & End time

Example: Only show "Same-day delivery" on weekdays between 9:00 AM and 3:00 PM.

🚚 Delivery

Selected delivery dateSelected delivery daySelected nth delivery date from todayDelivery type (Delivery / Pickup / Dining)

📋 Purchase History

First OrderLast order totalNumber of orders during a periodTotal amount spent during a period

Example: Offer free shipping to customers placing their first order.

🗂 Virtual Category

Cart has product of Virtual CategoryVirtual category total ($)Virtual category quantity

Additional Charges

Stack extra fees on top of the base shipping fee. Enable the charge types you need and configure min/max brackets with a fee per range.

Match mode: When multiple rules match, choose to Sum all matched, take the Largest, or take the Smallest.

Cart-based

Cart QuantitySurcharge based on total item count
Cart WeightSurcharge based on total weight (kg)
Cart SubtotalSurcharge based on cart value ($)

Product-based

Product QuantityCharge per qty of a specific product
Product SubtotalCharge based on a product's total value
Product WeightCharge based on a product's total weight

Collection-based

Collection QuantityCharge per qty in a Shopify collection
Collection SubtotalCharge based on collection's total value
Collection WeightCharge based on collection's total weight

Virtual Category-based

Virtual Cat QuantityCharge per qty in a virtual category
Virtual Cat SubtotalCharge based on virtual category's total value

Fee Brackets Example

Min QtyMax QtyFeeResult
15$3.001–5 items → add $3
610$5.006–10 items → add $5
11$8.0011+ items → add $8

Virtual Categories

Create dynamic product groups without modifying your Shopify store's collections. Evaluated fresh at every checkout.

Use case: Charge a "Fragile items" surcharge for glass products that span multiple collections — create a virtual category, add those products, then reference it in Additional Charges or Conditions.

Include Mode

ModeHow it worksWhen to use
All ProductsStarts with all products in the store, then removes items in Exclude Products.Rule applies to most products; exclude only a few.
Selected ProductsStarts empty, adds items from Include Products. Exclude list further refines.Rule applies to a specific subset.

Selectors

Both Include and Exclude sections let you pick:

  • Collections to include/exclude — all products within a Shopify collection
  • Products to include/exclude — specific individual products via Shopify's native picker

Other Methods Control

SettingBehavior
No effect on other methodsAll other methods remain visible alongside this one.
Replace all other methodsWhen this method is active, all other methods are hidden.
Replace all except free shippingHides others but keeps free shipping options.
Add to cheapest methodAdds this fee on top of the cheapest available method.

FAQ

Do I need Shopify Plus?

No. Works on all plans that support third-party carrier-calculated shipping — Shopify, Advanced, and Plus. Basic plan users can add the feature as an add-on.

Does the Carrier Service expire?

No. It persists until the app is uninstalled or manually removed. If the callback URL is unreachable for an extended period, Shopify may disable it — go to Settings to re-register.

Why isn't my method showing at checkout?

  • The method is set to Inactive.
  • A condition is not met by the current cart or address.
  • The Carrier Service was removed — go to Settings to re-register.

Can multiple methods show at the same time?

Yes. Every rule that passes its conditions is returned as a separate option. Use Other Methods Control to hide competing methods when needed.

Virtual Categories vs. Shopify Collections?

Shopify Collections are permanent groupings in your store. Virtual Categories are dynamic, rule-based groups that only exist within ABN Advanced Shipping — no store changes required, evaluated fresh each checkout.

How does Per Item differ from a formula?

Per Item charges the base fee for the first item, then unit cost for each additional item. Equivalent formula in Flat mode: baseFee + ([qty]-1) * unitCost. Per Item is a user-friendly shortcut.