NitroMule

Live checkout rates for Shopify

Updated 2026-10-22

On this page

Send live NitroMule carrier rates to Shopify checkout. Shopify calls this a CarrierService (app-calculated rates). It only works when Shopify has third-party carrier-calculated shipping (CCS) enabled for the store.

Important

You must fill the NitroMule variant metafields yourself. Turning on checkout rates does not invent box sizes. For each shippable variant, open Variant metafields and enter Package length / width / height (NitroMule) (or assign a NitroMule Package), and set product weight. Do not use Shopify’s standard length/width/height or Packaging fields — those are not readable via the Admin API. Without the variant metafields (or a Package) plus weight, checkout shows No other shipping rates under the NitroMule Rates method (your other Shopify rates still appear above).

Requirements

  • Connected Shopify store in NitroMule
  • Default ship-from address in NitroMule
  • Product weights set in Shopify
  • Package length / width / height (NitroMule) variant metafields filled on each shippable variant (or a NitroMule Package assigned) — see below
  • Shopify plan that allows CCS:
    • Advanced or Plus — included
    • Grow — yearly billing includes CCS, or ask Shopify Support to add CCS for a monthly fee
    • Basic / Starter — not available

NitroMule cannot turn CCS on for you. That switch lives only on Shopify’s side.

Enable CCS in Shopify (if Save fails)

If NitroMule shows an error like “Carrier Calculated Shipping must be enabled for your store before enabling: NitroMule Rates”:

  1. Confirm your plan qualifies (see above).
  2. Contact Shopify Support and ask them to enable third-party carrier-calculated shipping for your store.
  3. Return to NitroMule → Stores → Shopify → turn on Send NitroMule rates to Shopify Checkout → Save.

Variant metafields (required for rates)

Shopify’s standard product length/width/height and Packaging dropdown (“Store default · Sample box…”) are not readable via the Admin API, so NitroMule cannot use those. Per-variant L/W/H of 0 also means “unset.”

On connect, NitroMule creates (and pins) empty Package length / width / height (NitroMule) variant metafield definitions (custom.length, custom.width, custom.height). You still have to enter values in the Variant metafields section — not the standard product dimensions:

  1. In Shopify Admin, open a product.
  2. Open the variant.
  3. Under Variant metafields, fill Package length (NitroMule), Package width (NitroMule), and Package height (NitroMule) with the outer box size.
  4. Confirm the product weight is set in Shopify.

Do this for every shippable SKU you want live rates on. Values stay empty until you fill them — we don’t invent sizes or copy Shopify’s standard L/W/H or Packaging fields.

Also accepted if you already use them: shipping.* or nitromule.* with the same keys on the variant. Or assign a Package on the NitroMule product instead of metafields.

Weight comes from the Shopify product weight on the cart / order line.

Existing installs: reconnect Shopify once (new write_products scope) so the variant metafield definitions appear, then fill them.

Turn on rates in NitroMule

  1. Fill the NitroMule variant metafields (or assign Packages) and product weights as above.
  2. Open Stores → Shopify (connected store).
  3. Enable Send NitroMule rates to Shopify Checkout → Save.
  4. NitroMule registers the NitroMule Rates carrier service with Shopify.

Add NitroMule Rates to shipping zones

After Save succeeds:

  1. In Shopify Admin, go to Settings → Shipping and delivery.
  2. Open the shipping profile / zone that covers the countries you sell to.
  3. Add a rate that uses carrier or app rates and select NitroMule Rates (wording varies slightly by Shopify admin version).
  4. Save.

Until the method is on a zone, shoppers will not see NitroMule rates at checkout even if the NitroMule toggle is on.

Test at checkout

  1. Add a physical product to the cart on your storefront.
  2. Enter a shipping address in a covered zone.
  3. Confirm NitroMule carrier services appear with prices.
  4. Place a test order, then Sync in NitroMule and confirm the requested service imported.

Checklist

  • Default ship-from set in NitroMule
  • Shopify store connected
  • CCS available on the Shopify plan (or enabled by Shopify Support)
  • Package length / width / height (NitroMule) variant metafields filled on shippable variants (or NitroMule Package assigned) — not Shopify’s standard L/W/H
  • Product weights set in Shopify
  • Send NitroMule rates saved successfully in NitroMule
  • NitroMule Rates added under Shipping and delivery
  • Test checkout shows live services

Troubleshooting

Symptom What to do
“Carrier Calculated Shipping must be enabled…” Ask Shopify Support to enable third-party CCS; upgrade plan if on Basic/Starter
Save works but no rates at checkout Add NitroMule Rates under Settings → Shipping and delivery; confirm the zone covers the shopper’s country
Checkout shows No other shipping rates Fill the Package length / width / height (NitroMule) variant metafields (and product weight), or assign a NitroMule Package. Shopify’s standard L/W/H / Packaging fields don’t count
Toggle won’t stay on Save failed — read the error text in NitroMule; CCS is still off on Shopify

Shopify’s own overview: Setting up shipping zones and rates.