Skip to main content
Store operations and content

Shopify's rate request has no dimensions — how LTL freight quote apps work around it

Shopify's CarrierService rate request carries a weight in grams per line item and no length, width, or height, and a product variant has no native dimension field. Shopify's own documentation says only the default package's dimensions are used in the checkout. Old Dominion's LTL rate API, by contrast, requires per-item dimensions, freight class, and NMFC. That gap is why every LTL app keeps dimensions in metafields or a CSV. Eight apps compared on USD pricing, from free-to-install up to $600 per month, plus billing denominator, CCS plan requirement, and accessorial handling, and worked numbers from the Estes, ODFL, and XPO liftgate schedules. Researched September 3, 2026.

AIEC App Lab AI Editorial TeamPublished Updated Read 22 min#Shopify blog operations#App comparisons

What you will learn

On this pageContentsCloseOpen

If you sell sofas, gym racks, or generators, you know a weight-based rate can miss by hundreds of dollars on a pallet, and that the fallback — a "call for a freight quote" form — closes zero orders at 11pm.

The usual explanation is that Shopify does not connect to LTL carriers. The sharper one: Shopify never holds or sends the data an LTL carrier needs. Everything an LTL app does — metafields, CSV imports, the "enable pallets" toggle — exists to close that gap. Below: the gap, then eight apps compared on price, billing denominator, plan requirement, and accessorial handling, plus a 300 lb and a 3,000 lb pallet run through three carriers' published liftgate and residential schedules.

Where Shopify's built-in rates stop

Shopify offers flat, price-based, and weight-based rates, plus built-in carrier-calculated rates from USPS, DHL, and UPS at US fulfillment locations, which it says "are available on all plans."

To plug in your own negotiated account, Shopify's third-party carrier-calculated shipping (CCS) supports five parcel carriers: UPS, USPS, Australia Post, Canada Post, and FedEx. Estes, Old Dominion, XPO, R+L, Saia, and ABF are not on that list, and no plan upgrade adds them. Per Shopify's plan availability table, CCS is "Available for an additional monthly fee, or included with annual billing" on Shopify Grow, "Included in plan" on Shopify Advanced and Shopify Plus, and "Not available" on all other plans — so on Basic or Starter, no app here reaches checkout.

Labels tell the same story. Shopify's requirements page for buying labels covers parcel carriers only and never uses the words freight, LTL, or pallet. The documented US ceiling for UPS and for FedEx Ground, Home Delivery, and Express is 150 lb and 165 inches of length plus girth; the economy tiers, UPS Ground Saver and FedEx Ground Economy, stop at 70 lb and 130 inches.

The break that matters: dimensions never arrive

A variant has no dimension fields. A product's Shipping section offers Physical product, Weight, Package, and Customs information — no L, W, or H. In the GraphQL Admin API, ProductVariant no longer carries weight at all; it moved to InventoryItem.measurement, and InventoryItemMeasurement exposes exactly two fields, id and weight. Dimensions exist only as an attribute of a saved package.

Only one package's dimensions reach checkout. Shopify's requirements page for buying shipping labels is blunt: "Only the default package's dimensions are used in the checkout." It points you to a shipping app for anything else, and Shopify's packages documentation adds that a package assigned to a variant "works only for single item orders."

The rate request confirms it. The example items array in Shopify's CarrierService reference contains name, sku, quantity, grams, price, vendor, requires_shipping, taxable, fulfillment_service, properties, product_id, and variant_id — no length, width, height, or class. The documented cache key list includes "default shipping box weight and dimensions," confirming which dimensions Shopify holds at rate time. The read timeout for a carrier service callback is dynamic on top of that — 10 seconds under 1,500 requests per minute, 5 seconds from 1,500 to 3,000, 3 seconds above 3,000 — and "There is no retry mechanism."

So a freight app receives a variant_id and a sku and looks up everything else itself. How it does that is a real differentiator. One review of the XPO app puts it plainly: "weights have to be manually entered, they do not recognize the weights you have already loaded into the Shopify product data" (Perigee Direct, United States, July 18, 2023 — a single 3-star review, not a pattern).

What an LTL carrier actually asks for

Old Dominion's getLTLRateEstimate, read from the published WSDL, requires per freight item: length, width, height, dimensionUnits, weight, weightUnits, numberOfUnits, ratedClass, nmfc, and nmfcSub. At shipment level it wants numberPallets, numberStackablePallets, loosePieces, linearFeet, totalCubicVolume, accessorials, and pickupDateTime, and the response breaks out fuelSurcharge, totalAccessorialCharge, and linearFeetCharge separately.

Saia's Rate Quote WSDL asks the same per detail item — Width, Length, Height, Weight, Class, NMFCCode, Subclass — and returns ActualWeight and RatedWeight as separate fields. Inputs still vary: ODFL requires a pickup date, Saia's request has no date field.

Freight class, NMFC, and why 2025 raised the stakes

Freight class comes from the National Motor Freight Classification (NMFC), published by the National Motor Freight Traffic Association, Inc. (NMFTA): 18 classes from 50 to 500, assigned on density, handling, stowability, and liability. NMFTA's summary of the direction: "The denser and easier to move, the lower the class—and the lower the cost."

Two operational facts follow. The data is not free — "To purchase the NMFC Book, a ClassIT+® license is required" — so free lookup tables on the web are unofficial. And if you skip it the carrier picks for you: ODFL's brochure states "Failure to list class or description defaults to class 100."

NMFTA's 2025 restructuring came out of a multi-year initiative it calls Classification Reimagined, which pushed the system toward density. Docket 2025-1's supplement took effect Saturday, July 19, 2025, and Supplement 2025-2 on December 6, 2025. What matters for a Shopify catalog: NMFTA wrote that carriers "will absolutely need to obtain handling unit dimensions and weight from shippers and 3PLs," and Supplement 2025-2 revised Item 250100 to add "and/or Dimensions" to the section title and clarify that verification of dimensions is allowed. The carrier's right to measure your pallet and re-rate it is now written down.

Accessorials are per-hundredweight, with a floor and a ceiling

This is where a flat "+$75 for liftgate" model loses money. Carriers bill a rate per hundredweight (cwt, per 100 pounds) with a minimum and a maximum.

AccessorialEstes (schedule effective November 17, 2025)ODFL (tariff ODFL 100-Q, effective January 7, 2026)XPO (tariff CNWY 199-AI, effective January 15, 2024)
LiftgateItem 567: $4.95/cwt, min $75.00, max $350.00Item 891: $4.40/cwt, min $105.00, max $330.00Item 218: $12.10/CWT, min $237.00, max $578.00
Residential / limited accessItem 751 residential: $8.50/cwt, min $75.00, max $550.00. Item 751-10 limited access: $85.00 flatItems 753-1 to 753-4, residences folded into limited access: $7.20/cwt, min $115.00, max $580.00Item 224, residential and limited access combined: $14.50/CWT, min $162.00, max $797.50
Notification / appointmentItem 647: $30.00Item 647: $30.00Item 221 notification $15.50; Item 253 appointment $61.00
RedeliveryItem 830: $10.00/100 lbs, min $85.00, max $900.00Item 830: $7.20/cwt, min $150.00, max $580.00Item 229: $16.75/CWT, min $158.75, max $500.00

Every figure above comes from the carrier's own published schedule on the effective date shown, and carriers reissue these documents on their own timetable. Re-read the current schedule before you hardcode any of it.

Three structural observations. Estes bills residential and limited access as separate items, while ODFL and XPO fold residential into a single limited-access item, so the same house delivery appears under a different name by carrier. Items 647 and 830 are shared across all three, but liftgate is 567, 891, and 218 — you cannot map accessorials by number. And fuel is a separate line everywhere; Estes ties its Item 530 surcharge to the DOE weekly On-Highway Diesel Price, so any hardcoded percentage is wrong within seven days.

Now the arithmetic promised above, for a residential delivery needing a liftgate: the published schedules multiplied out, not quotes, excluding linehaul, fuel, and discounts. ODFL notes its brochure "represents an abbreviated form or quick reference guide."

ShipmentEstesODFLXPO
300 lb (3 cwt), liftgate$75.00 (minimum applies; rate math gives $14.85)$105.00 (minimum applies; $13.20)$237.00 (minimum applies; $36.30)
300 lb, residential / limited access$75.00 (minimum applies; $25.50)$115.00 (minimum applies; $21.60)$162.00 (minimum applies; $43.50)
300 lb, both$150.00$220.00$399.00
3,000 lb (30 cwt), liftgate$148.50$132.00$363.00
3,000 lb, residential / limited access$255.00$216.00$435.00
3,000 lb, both$403.50$348.00$798.00

At 300 lb every cell is a minimum charge, so the per-cwt rate is irrelevant and the carrier with the lowest rate costs the most; at 3,000 lb the ordering inverts, so one flat accessorial assumption cannot be right at both ends. ODFL also publishes an absolute minimum charge inside the 48 states — $141.00 intrastate, $159.00 interstate to 699 miles, $195.00 for 700 to 1,199, $245.00 at 1,200 or more.

Why light freight gets expensive

Cubic capacity. Estes Item 615 applies a minimum charge when a shipment "exceeds 350 cubic feet of carrier's vehicle," re-rating at 6 pounds per cubic foot against the customer's Class 125 rate; its own illustrative example ends at $639.86 after a 55% discount. Item 615 also treats height as 84 inches when packaging prevents stacking to the ceiling, so a "Do not stack" label inflates the billed cube. ODFL Item 610-1 uses the same 350 cu ft threshold, for shipments under 3 pcf requiring 350 to 749 cubic feet, or under 6 pcf requiring 750 or more.

The lineal-foot rule, which is not the same number everywhere.

CarrierTriggerMinimum charge
Estes, Item 39120.0 ft or more long, and 49.0 in or more wide, and 51.0 in or more high"the charge will not be less than $695.00"
ODFL, Item 390"Shipments requiring linear length of 20 feet or greater" or 20,000 lbs or morePer ODFL 100 series Item 390
XPO, Item 23414 ft or more, and 49 in or more wide, and 51 in or more high; or 112 sq ft of floor space and 51 in or more high"Subject to a minimum charge of $762.00"

The same load triggers a re-rate at XPO six feet before it does at Estes or ODFL, so a single internal rule of thumb breaks down as soon as you rate-shop.

Nobody can pick a liftgate at Shopify checkout

ShipperHQ's documentation states it directly: "BigCommerce and Shopify do not natively support accessorial freight options in checkout." Customers cannot select liftgate or inside delivery, and surcharges appear neither separately nor as toggles. Its documented workaround — duplicate an LTL carrier and rename one copy so it reads as a liftgate option — is one ShipperHQ itself calls clunky and hard to manage. How each app resolves this is a legitimate selection axis: the accessorials column below.

One more native trap: Shopify warns that "Flat rates are always displayed when eligible, so customers might choose them even when calculated rates are working." Leave a $19.99 flat rate in the zone where your freight rates appear and customers will take it.

Cart-side estimates versus a rate at checkout

A rate that shows at checkout as a selectable shipping method comes through Shopify's carrier service — the thing gated behind a CCS-eligible plan.

Shipduo makes the split visible in its pricing: the Free tier lists discounted rates from major LTL carriers, but Real-Time Rates at Checkout starts at Plus, $49/month, so you can rate shipments you book and still show nothing at checkout. ShipperHQ meters both surfaces, defining a shipping request as generated "anytime a customer gets a shipping rate in the cart or checkout," so a cart-side estimate consumes the same monthly allowance as a checkout rate.

Across the apps checked for this article, we could not confirm one that returns a rate at Shopify checkout without a CCS-eligible plan. ShipperHQ, Shipduo, and Eniture all document the requirement. For FreightClub, the Shopify plan requirement is not stated in the app's official documentation — no vendor page we fetched mentions carrier-calculated shipping or a plan name. Treat that as unknown, not as "not required."

Eight apps, same axes

Pricing, ratings, and review counts are from the Shopify App Store in the en locale on September 3, 2026. None of the ten listings reviewed for this article displayed a Built for Shopify badge.

AppPricing (USD)Billed onShopify CCS planOwn carrier accountAccessorialsRating (reviews)
ShipperHQ: Shipping & CheckoutEssentials $75/month, Standard $350/month, Advanced $600/month; 15-day free trialCarriers, rules, advanced features, origins, and orders per month (200 / 1K / 2K)Required, documented by vendorRequiredApplied automatically; customer cannot select at checkout4.8 (69)
Shipduo Freight LTL ShippingFree $0, Plus $49/month, Pro $499/month; 14-day free trial on paid tiersPlan tier, orders per month, carrier connectionsRequired, documented by vendorOptional; own LTL carrier on Plus and ProLiftgate auto-detected from address; NMFC in metafields4.8 (27)
FreightClub | Ship LTL&ParcelFree to install; "Additional charges may apply."Freight charges only, no subscriptionNot stated in the app's official documentationNot requiredSold as service levels, from Back of Truck to White Glove4.7 (12)
DIY Real Time Shipping QuotesBasic $30, Standard $55, Advanced $75, Enterprise $90 per month; 14-day free trialNumber of enabled providers (1 / 3 / 5 / 8)Required, documented by vendorRequiredDepends on the enabled providers4.8 (11)
Estes LTL Freight QuotesBasic $20, Standard $25, Advanced $40 per month; 14-day free trialFlat monthly, unlimited quotes, one carrierRequired, documented by vendorRequired (Estes Express)Liftgate and residential on all tiers; residential auto-detect from $255.0 (2)
XPO LTL Freight QuotesBasic $20, Standard $25, Advanced $40 per month; 14-day free trialFlat monthly, unlimited quotes, one carrierRequired, documented by vendorRequired (XPO Logistics)Liftgate, residential; hold at terminal on Advanced3.6 (4)
R+L LTL Freight QuotesBasic $20, Standard $25, Advanced $40 per month; 14-day free trialFlat monthly, unlimited quotes, one carrierRequired, documented by vendorRequired (R+L Carriers)Liftgate, residential; appointment delivery not supported3.4 (7)
WWE LTL Freight QuotesBasic $20, Standard $25, Advanced $40 per month; 14-day free trialFlat monthly, unlimited quotes, one broker accountRequired, documented by vendorRequired (Worldwide Express, a broker)Liftgate, residential, hold at terminal3.7 (13)

Read the review counts before the ratings. Estes at 5.0 has two reviews, XPO at 3.6 has four — a handful of merchants, not a track record, and ranking by them would be meaningless.

Two apps were considered and left out. ClickShip | Shipping Platform from Freightcom (4.6, 169 reviews; $0 tier with real-time checkout rates) leans Canadian and never mentions liftgate, residential, freight class, or NMFC. Fare Freight: Dimensions +more is an Australian product by developer location, reviews, and vendor description.

The apps in detail

ShipperHQ: Shipping & Checkout

Top of the Shopify App Store listing page for ShipperHQ: Shipping & Checkout

Source: Shopify App Store (ShipperHQ: Shipping & Checkout), retrieved September 3, 2026

A rules engine that replaces Shopify's native rate calculation, launched September 6, 2019. The listing claims rates from 100+ parcel and LTL freight carriers, using your own negotiated carrier credentials.

The detail that changes the price conversation: ShipperHQ's documentation lists LTL Freight as one of its Advanced Features, and Advanced Features count toward your plan's allotment — one on Essentials, 3 on Standard, 4 on Advanced. So $75/month spends the whole allowance on LTL freight, and Dimensional Packing, Address Validation, and Multi-Origin Shipping are Advanced Features too: LTL rating plus dimensional packing means Standard at $350/month.

Also documented: Shopify controls shipping method sort order and ShipperHQ cannot override it, and rates do not apply in Amazon MCF or Buy with Prime checkouts. One review from Green Building Supply (May 1, 2026) is positive on function but critical of the interface, citing "a lot of weirdness in the UI."

Shipduo Freight LTL Shipping

Top of the Shopify App Store listing page for Shipduo Freight LTL Shipping

Source: Shopify App Store (Shipduo Freight LTL Shipping), retrieved September 3, 2026

Launched September 2, 2024, and the app that addresses the dimensions problem most explicitly: on install it creates Shopify metafields, and the merchant fills in dimension and routing values per variant. NMFC and NMFC Sub metafields are created too, and prefill NMFC information on rate requests, shipment details, and BOLs. Liftgate is handled automatically at checkout from the delivery address. The vendor's help center states the plan requirement in current plan names — "This feature is available on Shopify Grow (annual), Advanced, and Shopify Plus plans."

Caveats. The App Store's Free tier description does not match the vendor's own pricing page, which caps Free at 35 orders per month with UPS discounts only; confirm before planning around it. Unlimited LTL Carriers arrives at Pro, $499/month. One review (ODIFORGO, United States, July 3, 2026) reported multi-piece shipments producing a single "1 of 1" label; Shipduo blamed a third-party label provider for UPS Ground Saver and said it discontinued that service.

FreightClub | Ship LTL&Parcel

Top of the Shopify App Store listing page for FreightClub | Ship LTL&Parcel

Source: Shopify App Store (FreightClub | Ship LTL&Parcel), retrieved September 3, 2026

The structural outlier: no subscription tier, revenue from the freight itself, and the one app here that does not require your own carrier contracts. Its FAQ: "Freight Club gives you immediate access to pre-negotiated enterprise rates from 35+ carriers" from day one. Rather than treating a liftgate as a surcharge, it sells service levels — Back of Truck, Curbside, Threshold, Room of Choice, White Glove — which matches how a furniture buyer thinks about delivery.

Two things to verify yourself. The Shopify plan requirement is still not stated in the app's official documentation. And because freight margin is the business model, the markup is not published, so you cannot compare its effective rate to your own contract without running both. A three-year review (Freedom Fitness Equipment, United States, edited August 22, 2024) lists past problems — rates not pulling correctly, dimensions erased repeatedly — while saying most were resolved.

DIY Real Time Shipping Quotes

Top of the Shopify App Store listing page for DIY Real Time Shipping Quotes

Source: Shopify App Store (DIY Real Time Shipping Quotes), retrieved September 3, 2026

Eniture Technology's multi-provider app, priced by provider count. The listing enumerates 37 supported providers across LTL carriers, brokers, and parcel — Estes, ODFL, XPO, R+L Carriers, SAIA, SEFL, ABF, CH Robinson, TForce, Worldwide Express, UPS, and USPS among them. It does not mention liftgate, residential, or freight class handling, and Eniture states that supported origins and destinations depend on the enabled providers — verify the carrier you care about.

Estes, XPO, R+L, and WWE LTL Freight Quotes

Top of the Shopify App Store listing page for Estes LTL Freight Quotes

Source: Shopify App Store (Estes LTL Freight Quotes), retrieved September 3, 2026

Top of the Shopify App Store listing page for XPO LTL Freight Quotes

Source: Shopify App Store (XPO LTL Freight Quotes), retrieved September 3, 2026

Top of the Shopify App Store listing page for R+L LTL Freight Quotes

Source: Shopify App Store (R+L LTL Freight Quotes), retrieved September 3, 2026

Top of the Shopify App Store listing page for WWE LTL Freight Quotes

Source: Shopify App Store (WWE LTL Freight Quotes), retrieved September 3, 2026

Eniture builds on a one-carrier-one-app design; its own site lists dozens of Shopify products, most of them carrier-specific LTL freight quote editions. All four share the same tier ladder, with unlimited LTL freight quotes at every tier. Basic includes multiple stocking locations, residential delivery, liftgate delivery, and a handling fee; Standard adds residential address auto-detection, more residential and liftgate options, and hazardous material support; Advanced adds proximity-based in-store pickup and local delivery, plus hold at terminal on the XPO version.

Differences worth noting. The XPO app documents origins as USA, destinations as Canada and USA. The R+L app's missing appointment delivery drew a February 11, 2026 review request (NYTOP, United States), and Eniture replied that a support ticket would be opened. The WWE app connects to the broker Worldwide Express, so one account reaches multiple LTL carriers — over 60 per Eniture's site, though the Shopify listing does not say. And the arithmetic against the multi-carrier app: one carrier is $20/month, two apps $40, three $60 — more than DIY Real Time Shipping Quotes charges for three providers ($55).

Expect setup work. The NYTOP review describes importing a CSV and learning the Quote Settings page, then finding that creating "pallets" for each SKU solved multi-box shipments "even though we were shipping out in boxes." The plan gate is a real cost too: another merchant (Dolphin Tanker, United States, September 18, 2025) wrote, "I upgraded my Shopify plan just to use the LTL freight option for customers placing an order for things that can't ship ground." That is the WWE app's only 1-star; the merchant says the app never worked and was uninstalled, and Eniture's reply disputes the account and points at the Worldwide Express API.

Choosing

  1. Everything ships under 150 lb and 165 in of length plus girth. No freight app; built-in carrier-calculated rates work on every plan.
  2. Basic or Starter plan. Plan first, app second.
  3. No LTL contracts, or not enough volume for good ones. FreightClub, whose service levels you can sell as an upgrade, or Shipduo if you want to start at $0.
  4. Strong negotiated rates, one or two carriers. Eniture's carrier-specific apps, unlimited quotes; budget setup time for the CSV.
  5. Strong rates, three or more carriers to rate-shop. DIY Real Time Shipping Quotes.
  6. Multiple origins and product-group rules alongside freight. ShipperHQ — but assume Standard at $350/month, since Essentials' single Advanced Feature slot goes to LTL Freight.

Three tasks are unavoidable on any route. Get per-SKU dimensions and freight class or NMFC into metafields or a CSV, because Shopify will not send them for you. Remove any cheap flat rate still sitting in the zones where freight rates appear. And configure a backup rate deliberately, because a carrier API timing out inside a three-second window needs an answer.

Sources

App pricing, ratings, and review counts were read from the ten Shopify App Store listings linked above, in the en locale, on September 3, 2026. Carrier tariff figures are published schedules, not quotes.

RelatedAuto-tagging Shopify products: where Shopify Flow structurally stops, and which apps fill the gap

Shopify Flow adds and removes product tags for free on every paid plan, but its Get product data action returns at most 100 products per run, so backfilling an existing catalog becomes a scheduled loop. Flow also has no generic Product updated trigger, which means it structurally cannot re-tag a product after you edit its type, vendor, or price. Shopify Magic suggests a product category and fills category metafields, but product tag generation is not on its published feature list. The six apps compared here meter completely different units: Leap Auto Tags counts every tag added and every tag removed as one credit against 2,000 per month at $8, FilterTag meters 500 to 50,000 generated tags per month at $9 to $59, TAGit AI works out to 3 to 9 cents per generated tag, and Helium charges $9.99 one-time per 100 products. Mechanic and Matrixify charge flat fees of $16 to $199 and $20 to $200 with no per-tag metering at all. Check the denominator before you check the price. Researched September 3, 2026.