Shopify logo
Day & Ross logo

Shopify + Day & Ross Integration

Your Day & Ross contract rates quoted live at checkout, pickups booked and bills of lading raised on fulfillment, tracking flowing back to your customers. The carrier stays your carrier. Our adapter does the translation between Shopify and the rating and tracking interfaces Day & Ross provides to account holders.

mode:
Bidirectional
latency:
Live at checkout
maturity:
Scoped per account

what syncs

What syncs, which way, and how fast

Every row is a real data flow with a real trigger. The frequency column is what you should expect in production, not a best case.

Rate request

dir:
Shopify → Day & Ross
frequency:
Per checkout (live)

Our adapter sends origin, destination, freight class, weight, dimensions, and accessorials, and returns the quoted rate and transit days to the checkout. Rated on your account, so the price shown is your contract price.

Fallback rates

dir:
Cache → Shopify
frequency:
On slow response

Cached contract rates by lane and freight class. Shopify holds the rate request open only briefly, so when the carrier is slow the cache answers instead of the checkout falling through to backup flat rates.

Booking + BOL

dir:
Shopify → Day & Ross
frequency:
On fulfillment

A paid freight order books the pickup and raises the bill of lading from order data: handling units, class, accessorials, and delivery instructions, with bilingual document fields where the lane requires them.

Tracking events

dir:
Day & Ross → Shopify
frequency:
Polled on schedule

Status updates map to Shopify fulfillment events, so the delivery notification comes from your store rather than a carrier portal login.

Invoice reconciliation

dir:
Day & Ross → Reporting
frequency:
Per invoice

Quoted versus invoiced, line by line. Reweighs, reclassifications, and accessorial adjustments surface in a report instead of silently eroding margin.

architecture

How it actually works

Day & Ross provides rating and tracking interfaces to its account holders. This page documents our side of the wire rather than theirs: a canonical freight adapter that every carrier plugs into, engineered around the one hard constraint, which is that Shopify holds the checkout rate request open only briefly before falling back to backup rates.

  1. Shopify Carrier Service API

    At checkout Shopify calls our rating endpoint with the cart and destination, and holds that request open only briefly before showing backup rates instead. Everything downstream is therefore engineered against a response budget under eight seconds. That budget is our build target, and the whole adapter is designed around it.

  2. Canonical rate adapter

    The cart is translated into our canonical freight request: origin, destination, freight class, weight, dimensions, handling units, accessorials. Every carrier we support speaks this same shape, so adding or swapping a carrier never touches checkout logic.

  3. Day & Ross account connection

    The adapter rates through the rating and tracking interfaces Day & Ross provides to account holders, connected on your account, with the booking hand-off scoped per account. Quotes come back on your account, so pricing follows your contract and the fuel surcharge the carrier currently applies, not a marketplace blend.

  4. Rate cache + fallback

    Recent contract rates are cached by lane and class. When the carrier does not answer inside the budget, the cache answers and the miss is logged for review. The customer always sees a real freight price, never an empty shipping step.

  5. Tracking + reconciliation worker

    Polls tracking for open shipments and maps events to Shopify fulfillments, then compares each carrier invoice to its original quote so repricing is caught in a report rather than in the year-end accounts.

failure modes

What breaks, and what happens when it does

Every integration fails eventually. The difference between a good one and a bad one is whether it fails safely and tells you.

  • Carrier slow to quote at checkout

    Customers see your backup flat rates instead of live freight prices, and heavy orders either overcharge or lose money.

    handling

    Shopify holds the rate request open only briefly before using backup rates, so we engineer for a response budget under eight seconds and serve cached contract rates when the carrier cannot answer in time. Slow-quote periods are logged, so you can see exactly how often the cache carried the checkout.

  • Missing or wrong freight class

    The checkout quote and the carrier invoice disagree, and the difference lands as an invoice adjustment weeks later.

    handling

    Every freight SKU gets a class, dimensions, and weight in metafields during the catalogue audit before go-live. Unclassed products are blocked from freight rating rather than guessed, and invoice reconciliation flags reclassifications so a wrong class is corrected once instead of paid monthly.

  • Residential and liftgate surprises

    A delivery to a home or a business without a dock is repriced after the fact.

    handling

    Accessorial logic is conservative by design: an address without a company name rates as residential with liftgate, and the customer sees that price at checkout. Slightly overquoting beats a surprise invoice, and the reconciliation report shows whether the defaults are calibrated right for your customer mix.

  • Remote lane surcharges

    Deliveries to northern and remote communities come back with charges the live quote never showed.

    handling

    Some remote surcharges are applied by carriers after delivery, and no checkout integration can conjure those into a live quote. We flag remote postal ranges in checkout copy, apply a configurable buffer where you want one, and catch the remainder in reconciliation. Remote coverage is a genuine Day & Ross strength, which is exactly why this logic is worth getting right.

  • Cross-border paperwork gaps

    A Canada to US shipment sits at the border waiting for documents.

    handling

    Cross-border LTL needs a commercial invoice and PAPS processing before the truck reaches the border. Where you ship those lanes, customs document data is generated from the order at booking time and the workflow is configured explicitly in scope, not discovered at the first held shipment.

  • Quote and invoice drift

    Freight invoices run consistently higher than what checkout collected, and nobody can say why.

    handling

    Reweighs, reclassifications, accessorial corrections, and fuel surcharge movement all land on the invoice, not the quote. The reconciliation report compares every invoice to its checkout quote and categorises the difference, which turns margin leak into a fixable list: wrong dimensions on one SKU, a stale cached lane, a customer who always needs inside delivery.

field mapping

A real slice of the mapping

This is an abridged Checkout → Canonical rate request mapping, shown so you can sanity-check it against your own system.

Checkout → Canonical rate request

shopify → day & ross

  • shipping_address.ziprate_request.destination.postal_code
  • location.ziprate_request.origin.postal_code

    Shipping origin location

  • product.metafield.freight_classrate_request.items[].freight_class

    NMFC class per SKU

  • line_item.gramsrate_request.items[].weight_lb

    Converted and summed

  • product.metafields (L, W, H)rate_request.handling_units[]

    Palletised by packing rules

  • shipping_address.companyrate_request.accessorials.residential

    Blank company implies residential + liftgate

  • shipping_rate.pricerate_quote.total

    Returned to checkout

  • shipping_rate.descriptionrate_quote.transit_days

    Shown as delivery estimate

This is our adapter shape, not carrier documentation. The carrier-side mapping is built against the rating and tracking interfaces Day & Ross provides to account holders, on your account, during the build.

implementation

Timeline and cost

typical duration

4 to 8 weeks

included in scope

  • Freight catalogue audit: class, dimensions, weight on every freight SKU
  • Live checkout rating inside the sub-eight-second budget
  • Cached contract rate fallback so checkout never shows nothing
  • Pickup booking and bill of lading raised on fulfillment
  • Tracking events mapped to Shopify customer notifications
  • Invoice-to-quote reconciliation report and handover runbook

what moves it up

  • Rate shopping across more than one LTL carrier
  • Cross-border lanes with customs document automation
  • Shopify B2B freight rules: pallet minimums, carrier preferences, terms
  • ERP-driven contract pricing feeding the rate cache
  • Multi-origin rating from more than one warehouse

questions

Questions buyers actually ask

Do we need our own Day & Ross account for a Shopify integration?

Yes, and that is the point. The integration rates through the rating and tracking interfaces Day & Ross provides to its account holders, connected on your account, so checkout pricing follows your contract and your accessorial terms, and pickup requests and BOL data are assembled on your account rather than through a middleman. Marketplace shipping apps quote from their own carrier accounts at blended rates, which is convenient at low volume but means the price in your checkout is not the price your freight spend negotiated. If you ship enough LTL to hold a Day & Ross account, your contract pricing is an asset, and the integration exists to put that asset in front of the customer at checkout.

How does a live LTL quote come back fast enough for Shopify checkout?

Shopify holds the checkout rate request open only briefly before giving up and showing your backup rates, so the whole build is engineered against a response budget of under eight seconds. That number is our build target, not something Shopify publishes. Inside the budget the adapter converts the cart into a freight request, calls the carrier, and returns the quote with transit days. When Day & Ross cannot answer in time, a cache of recent contract rates for that lane and class answers instead, so the customer always sees a real freight price. The alternative, letting checkout fall through to backup flat rates, is how freight merchants quietly lose money on every heavy order.

What is freight class and why does the integration depend on it?

Freight class is the NMFC classification LTL carriers rate against, running from class 50 for dense goods such as metal parts up to class 500 for light, bulky goods. It is driven mostly by density, and it changes the rate per hundred pounds substantially. For the integration, every product that ships freight carries its class, dimensions, and weight in Shopify metafields, because the live quote is computed from them. A missing or wrong class does not fail loudly: checkout shows a price, the carrier reweighs or reclassifies at pickup, and the correction arrives on the invoice weeks later. The catalogue audit before go-live exists to prevent exactly that, and the reconciliation report catches whatever drifts afterwards.

How are residential deliveries and remote addresses handled?

Conservatively, on purpose. LTL delivery assumes a loading dock, so a home or a farm counts as a residential stop, and any address without a dock, storefronts included, needs a liftgate, both of which are accessorial charges. The adapter treats an address without a company name as residential with liftgate and prices it that way at checkout, because slightly overquoting beats a surprise invoice. Remote lanes are where honesty matters most: some remote surcharges are applied by carriers after delivery and cannot appear in any live quote, so we flag remote postal ranges in checkout copy and reconcile the difference on the invoice. Broad coverage of remote and northern lanes is a genuine Day & Ross strength, which makes getting this logic right worth the effort.

Why would the carrier invoice differ from the rate quoted at checkout?

Because in LTL the quote is an estimate against declared freight and the invoice is reality. The carrier can reweigh the shipment, reclassify it, add an accessorial the delivery actually required, and apply the fuel surcharge in force when the freight moved. None of that is unique to Day & Ross. It is how the LTL industry works. The integration deals with it from both ends: accurate declared data going in, from the audited catalogue, and an invoice-to-quote reconciliation coming out that categorises every difference. Merchants who skip reconciliation do not have accurate freight margins, they have a feeling about them.

Should we use a multi-carrier freight app instead of a direct integration?

At lower freight volume, often yes, and we will say so. Multi-carrier platforms connect the major Canadian LTL carriers, including Day & Ross, and get you live rates without a build. A direct adapter earns its keep when your contract rates are meaningfully better than blended platform rates, when you need the checkout, BOL, tracking, and reconciliation loop under your own control, or when freight interacts with Shopify B2B: pallet minimums, account-level carrier preferences, wholesale orders on terms. The deciding number is usually monthly freight spend. High enough, and the rate difference alone pays for the integration.

shopify + day & ross

Put your contract rates in the checkout

Tell us your lanes, your monthly freight volume, and whether wholesale orders on terms are in scope. You get a scoped plan for wiring your Day & Ross account into Shopify, with a fixed price.