All segments

ShipBob 3PL: A Step-by-Step Setup for Shopify Teams

Set up ShipBob 3PL for a Shopify store: the quote to request, the fulfilment centres to pick and the fee math ShipBob's pricing page won't give you.

  • Published
  • Reading time 13 min read
  • Author Nafiul Hasan
ShipBob 3PL: A Step-by-Step Setup for Shopify Teams. Diagram: where the reporting stops. RUN ShipBob 3PL: A Step-by-Step Setupfor Shopify Teams REPORTEDNOT REPORTED pointerflow.com

Short answer

Setting up ShipBob 3PL for a Shopify store means requesting a quote built from a specimen order profile rather than a generic estimate, choosing which ShipBob fulfilment centres hold inventory based on actual customer ZIP codes, migrating a complete SKU master, connecting the Shopify order feed, and running a parallel period against the existing fulfilment method before cutting over.

ShipBob 3PL setup starts before the app is ever installed, at the quote — because ShipBob doesn’t publish a rate card, and a quote built from generic assumptions costs more per order than one built from a brand’s own numbers. For a Shopify team doing $3M–$30M, the sequence is: get a quote from a specimen order profile, pick the fulfilment centres, migrate the SKU master, connect the order feed, send the first inbound shipment, map shipping rates to ShipBob’s service levels, and run a parallel period before switching off the old method. Two of those steps are where a page selling or comparing ShipBob stops short: what it actually costs per order, and whether ShipBob’s stated two-day coverage claim holds for a brand’s own customers.

What Do You Need in Place Before You Request a ShipBob 3PL Quote?

A ShipBob 3PL quote needs four things ready before it is requested: a specimen order profile, a complete SKU list with real dimensions and weights, a stated monthly order-volume figure with a growth range, and a decision on which service levels — standard ground, 2-Day Express — the catalogue actually needs. ShipBob’s own pricing page confirms why the specimen order matters: “each ShipBob quote is customised to give you the most accurate rates possible, and also takes batchable orders, volume, and other factors into account.” A quote requested with round numbers gets priced against round numbers.

The specimen order profile is the actual order mix from a recent month — the real distribution of single-item orders against multi-item and kitted ones, the real average package weight, and the real split between standard and expedited requests — not an estimate written from memory. Pulling those numbers from a store’s own order-export report, rather than writing them from memory, is what a specimen order profile means in practice.

Step 1: How Much Does ShipBob 3PL Actually Cost at a Stated Monthly Order Volume?

ShipBob 3PL has no published per-order cost, because ShipBob’s own pricing page states plainly that “all quotes are customised for each customer” and names six fee categories — implementation, receiving, warehousing, picking, packing and shipping — with no dollar figure attached to any of them. Two of those six don’t belong in a recurring per-order model: implementation is a one-time onboarding charge rather than a monthly line, and shipping is a carrier-billed pass-through that varies by weight and zone rather than a flat ShipBob rate — it gets checked separately, by running a brand’s own customer ZIP codes through a carrier’s zone lookup, not by adding a line to this table.

The method that produces a comparable number is to build an invoice from the four categories that actually recur per order — receiving, warehousing, picking and packing — at a stated monthly order volume, and divide by order count. In the worked table, warehousing appears as storage, and picking and packing split into the lines ShipBob itemises on a real invoice: a base pick-and-pack fee, an additional-item pick fee for units beyond the first on a multi-item order, and a separate per-unit kitting fee for bundled SKUs assembled at pick time. The figures in that table are invented for illustration only — no vendor confirms them — and stand in for the specimen quote a brand would actually request:

Billed line (itemised from ShipBob’s fee categories)Illustrative monthly amountWhat drives it
Pick-and-pack (first item)$2.75 × 3,000 orders = $8,250Per-order fee for a single-item pick
Additional-item pick$0.35 × 1,200 extra items = $420Units beyond the first, on multi-item orders
Storage$5 × 40 bins = $200Monthly bin rate, billed whether or not the stock moved
Receiving$40/hr × 6 hrs = $240Hourly rate once the free receiving allowance is used
Kitting$0.60 × 300 kitted units = $180Per-unit assembly fee for bundled SKUs built at pick time
Total$9,290
Cost per order$9,290 ÷ 3,000 = $3.10

At an illustrative 3,000 orders a month, that five-line invoice totals $9,290, which comes to $3.10 per order — a number nobody should treat as ShipBob’s actual rate, only as the shape of the calculation. Storage and receiving are largely insensitive to order volume, so the per-order figure falls as volume climbs past whatever monthly minimum is in the contract, and rises sharply below it.

The real per-order figure for a specific SKU mix and volume is — metric to confirm — until a brand runs its own specimen order profile through ShipBob’s quote process. No content-round-up page’s number substitutes for a quote built from a brand’s actual top SKUs, weight distribution and monthly volume.

Step 2: How Do You Connect ShipBob to Your Shopify Store?

ShipBob connects to Shopify through its own native app in the Shopify App Store, authorised against the order and fulfilment data it needs to read and write — not through a generic order-import tool built for a different 3PL. Once authorised, a paid order in Shopify becomes the trigger that creates a pick ticket in ShipBob’s warehouse management system, and a shipped order writes a tracking number and an inventory decrement back into Shopify, the same two-way pattern any Shopify-to-3PL integration runs on.

The setting worth checking on day one, in our own ShipBob integrations, is the order-status filter that decides which Shopify orders actually forward to ShipBob. A default “all new orders” rule sends an order to ShipBob the moment it is created, which is fine for a standard prepaid checkout and wrong for a delayed-capture or partially-paid order — the fix is a filter that forwards only orders Shopify has marked paid in full, checked explicitly rather than assumed to be the default.

Step 3: How Do You Build Your SKU Master Inside ShipBob’s Warehouse Management System?

Building the SKU master means entering every SKU’s length, width and height in inches, its weight in pounds, its barcode or UPC, and — for any bundle — its full kit bill of materials, before the first inbound shipment ships. A SKU received against an incomplete record sits in ShipBob’s system as unsellable stock until someone catches the gap by hand, which is the single most common cause of a slow first week after go-live.

Kitted SKUs need the most attention, because a kit is not one line item in ShipBob’s system — it is a parent SKU built from named component SKUs at pick time, and each component still needs its own dimensions, weight and barcode entered separately even though a customer never orders the component directly. A brand with gift sets, multi-packs or subscription bundles should expect this step to take longer than the single-SKU catalogue it looks like on the surface.

Step 4: Which ShipBob Fulfilment Centres Should Hold Your Inventory?

ShipBob’s US network groups into five regional hubs — Midwest, receiving through Aurora, Illinois; Northeast, through Bethlehem, Pennsylvania; Southeast, through Conyers, Georgia; Southwest, through Fort Worth, Texas; and West Coast, through Moreno Valley, California — plus standalone locations in Phoenix, Arizona and Las Vegas, Nevada, and a brand’s fastest, cheapest routing depends on how its customer base actually maps onto that footprint.

ShipBob’s own 2-Day Express page states “2-day shipping coverage across 100% of the contiguous US,” achieved “even from just one fulfilment center” through what it describes as a proprietary algorithm that blends “ground, air, and regional carriers” per order. Read precisely, that claim is about the 2-Day Express product specifically — it is not a promise that every order, on every service level, from every one of ShipBob’s fulfilment centres, lands in two days on standard ground.

No page — ShipBob’s own or a competitor’s comparison of it — cross-references that fulfilment-centre list against actual delivery-speed coverage by carrier zone for a specific customer base, so a brand cannot verify the two-day claim against its own geography from the location list alone. The check is mechanical rather than something a vendor page can do generically: pull the ZIP codes a brand’s orders actually ship to most, from Shopify’s own order-export report, and run each against the nearest ShipBob hub’s ZIP code through the carrier’s own zone lookup tool — UPS and FedEx both assign a shipping zone per origin-and-destination ZIP pair, and standard ground transit time is a function of that zone, not a flat national figure. A ZIP pair that resolves to a distant zone is exactly where 2-Day Express earns its markup over ground, and exactly where it is worth asking ShipBob directly which carrier and service level a two-day order in that zone actually ships on — an algorithm choosing between ground, air and a regional carrier per order means the answer is not uniform across every ZIP code the coverage claim technically includes.

Step 5: How Do You Send Your First Inbound Shipment to ShipBob?

Sending the first inbound shipment means submitting an advance shipping notice through ShipBob’s system before the stock leaves the origin, and booking a receiving appointment inside ShipBob’s published receiving hours for the destination fulfilment centre, so the shipment isn’t turned away or left sitting on a dock waiting for an open slot.

The advance shipping notice has to match the SKU master exactly — every SKU, every carton count, every unit count per carton — because a mismatch between what the notice states and what physically arrives is what triggers a manual receiving exception, and an exception queue is where a brand’s first shipment can sit for days rather than hours. Sending a smaller buffer shipment ahead of the full inventory transfer, timed to cover the trial period’s expected volume rather than the whole catalogue at once, means a receiving delay on this first shipment doesn’t itself cause a stockout later.

Step 6: How Do You Map Shopify Shipping Rates to ShipBob’s Service Levels?

Mapping shipping rates means tying each named rate a customer sees at Shopify checkout to the specific ShipBob service level meant to fulfil it — standard ground for a rate labelled “Standard,” 2-Day Express for one labelled “2-Day” or “Express” — rather than assuming Shopify’s rate name and ShipBob’s fulfilment instruction stay in sync on their own.

The common failure, seen repeatedly in our own ShipBob setups, is a checkout rate renamed or re-priced in Shopify’s shipping settings without the matching change made on ShipBob’s side, so a customer who pays for 2-Day Express gets an order that ships on standard ground because nothing in the order data told ShipBob which service level to use. The fix is a named tag or shipping-method identifier carried on the order itself, checked against ShipBob’s actual service-level setting for every order during the parallel period, not assumed correct because it worked in a single manual test order.

Step 7: How Do You Run a Parallel Period Before You Cut Over?

Running a parallel period means routing a defined slice of live orders — by region, by SKU, or by a percentage split — to ShipBob while the existing fulfilment method keeps running for the rest, so a routing or mapping error shows up against a fraction of orders instead of every order shipped that week.

Subscription orders deserve a dedicated test inside that parallel period, because a recurring order from Recharge or Stay AI often carries different order tags than a standard storefront checkout, and a ShipBob routing rule built and tested only against storefront orders will silently misroute or backorder every subscription order that hits it. Reconciling on-hand inventory between the old and new systems daily during the trial, not just once at the end, is what turns a parallel period into an actual measurement rather than a delay before the same untested cutover happens anyway.

Which Setup Step Do Most Shopify Teams Get Wrong?

The step most Shopify teams get wrong is accepting ShipBob’s first quote against a generic order profile instead of a specimen one, because a quote priced without a brand’s actual weight distribution and kitting mix systematically undercounts the additional-item and kitting fees that dominate a real invoice once accessories, multi-packs or gift bundling enter the order mix.

The pattern is consistent enough to be predictable: the base pick-and-pack figure on the invoice matches the quote closely, because it is the easiest line for a quote to estimate accurately, while the additional-item and kitting fees — the two lines that scale with catalogue composition, meaning how many orders are multi-item or bundled, rather than with order count alone — come in over the quoted estimate. A brand that requested a quote from its real order data, rather than a rounded estimate, doesn’t eliminate that gap, but it shrinks it to something closer to normal monthly volume variance instead of a standing surprise on every invoice.

How Do You Verify ShipBob Is Actually Working After Go-Live?

Verifying ShipBob after go-live means checking four things on a schedule, not once: reconcile inventory counts between Shopify and ShipBob’s warehouse management system daily during the first month, track the on-time-ship percentage against the figure written into the signed SLA rather than a headline figure quoted during sales, confirm subscription orders are routing to the correct service level rather than falling through a shipping-rate mapping that was only ever tested against standard storefront checkouts, and pull a sample of 2-Day Express orders across different carrier zones to confirm they actually land within two business days rather than trusting ShipBob’s stated 100% contiguous-US coverage claim as settled for a brand’s own customer geography.

None of that is a warehouse problem once ShipBob is live — it is a systems problem, the same one any brand running a 3PL inherits the moment two separate records of the same inventory exist and both need watching. That is the class of work we build reconciliation jobs for as part of ops automation: a scheduled process that reads both ShipBob’s warehouse management system and Shopify and raises the rows where they disagree, instead of waiting for a customer support ticket to raise them first. It is also usually one of the first systems worth building for brands scaling past their first ops hire, the point at which nobody on the team has spare attention left to watch two feeds by hand every day.

Sources

ShipBob’s pricing model, its named fee categories and its custom-quote structure are drawn from ShipBob’s own pricing page, labelled vendor-reported. ShipBob’s fulfilment-centre network and hub structure are drawn from ShipBob’s own locations page, also vendor-reported. The 2-Day Express coverage claim and its stated ground-air-regional carrier blend are drawn from ShipBob’s own 2-Day Express product page, vendor-reported. The worked per-order fee table is invented for illustration and is not sourced to ShipBob or any other provider — it shows the method, not a real rate. The carrier-zone verification method, the integration mechanics, the SKU-master and receiving workflow, and the subscription-routing failure mode are written from first-hand ops-automation builds across Shopify, Recharge, Stay AI and 3PL warehouse management systems; no specific ShipBob per-order cost, accuracy or on-time figure is quoted because ShipBob does not publish one, and each is marked as an item to confirm through a specimen quote rather than a fact already established.

Frequently asked

Does ShipBob publish a minimum order volume needed to sign a contract?

No — ShipBob's own pricing page states every quote is customised to order volume 'and other factors,' but it lists no minimum order count anywhere on that page. The number of orders needed to clear a quoted monthly minimum without paying for unused capacity is — `metric to confirm` — the minimum itself is set per account during the quote, not published as a standard figure.

Does ShipBob charge extra to include branded packaging or a custom insert in an order?

Only if the brand supplies the physical stock and the instruction is written into the pick-and-pack profile for that SKU — it is not automatic on a standard order. With ShipBob specifically, this sits inside the SKU master built during setup, and a migration that skips writing the instruction for every relevant SKU loses it on the first order shipped from the new fulfilment centre.

Can a brand negotiate its ShipBob rate after the first year, or is the quoted rate fixed for the contract term?

ShipBob's own pricing page doesn't say. A quoted 3PL rate is typically set for a contract term rather than adjusted automatically, and a review usually has to be requested rather than happening on its own — worth confirming in writing during the quote stage, because a brand that doubles order volume without a renegotiation clause can pay a rate priced for its old volume indefinitely.

What happens to inventory already sitting at a ShipBob fulfilment centre if a brand cancels mid-contract?

Inventory stays the brand's property regardless of the contract's status, and a cancellation clause should state this explicitly. ShipBob's own pricing page doesn't publish a standard offboarding timeline, so a brand should ask directly how many days it has to arrange collection or transfer once notice is given, and get that answer in writing before signing rather than at the point of leaving.

Does ShipBob's on-time-ship percentage in its SLA cover the carrier's delivery time too?

Not published as included. Neither ShipBob's pricing page nor its locations page states what its on-time-ship percentage measures, so the safest working assumption is that it stops at the point ShipBob hands a shipped order to the carrier, with delivery time afterward covered by the carrier's own separate service commitment. The exact scope ShipBob's own SLA language uses is — `metric to confirm` — get it defined in writing in the signed contract rather than assumed from the term alone.

Can a brand split inventory across two ShipBob fulfilment centres in the same hub?

ShipBob's own locations page groups its US facilities into five regional hubs rather than listing every building as an independently selectable option, and inventory placement within a hub is typically assigned by ShipBob's own system based on available capacity rather than chosen building by building. A brand can request a specific facility, but the unit worth planning around is the hub, not the individual address.

Does ShipBob handle returns processing, or is that billed separately from pick-and-pack?

ShipBob's own pricing page lists returns processing as one of its standard fee categories, billed separately from the outbound pick-and-pack fee rather than bundled into the base rate. The exact per-unit inspection-and-restocking figure is unpublished, the same custom-quote pattern as every other line on that page — get it itemised in the quote rather than assumed to be included.

Is ShipBob's 2-Day Express available for international orders, or only within the contiguous US?

ShipBob's own 2-Day Express page states its 100% coverage claim specifically for the contiguous US; it doesn't extend that figure to Canada, the UK, the EU or Australia, where ShipBob also runs fulfilment centres under separate shipping arrangements. An international order ships on whatever standard service that destination country's fulfilment centre supports, not the contiguous-US express product.

Does a lower-volume Shopify brand get ShipBob's standard SLA, or a reduced one below a certain order count?

ShipBob's own pricing page ties every quote to order volume among other factors, which suggests the specific service-level terms are part of what gets negotiated rather than a single published standard applied regardless of size. Confirm the actual on-time-ship and accuracy percentages in writing for a brand's own volume rather than assuming a headline figure quoted elsewhere applies unchanged.

Can a brand fulfil wholesale or retail-compliance orders through the same ShipBob account as its Shopify orders?

Nothing on ShipBob's pricing or locations pages describes case-pack picking, advance shipping notice generation for a retailer, or EDI compliance — the published material describes a parcel-focused, direct-to-consumer fulfilment product. A brand needing wholesale or big-box retail fulfilment alongside Shopify orders should ask specifically about EDI and retail-compliance experience before assuming a DTC quote already covers it.

What's the practical difference between requesting a ShipBob quote through the Shopify App Store listing and contacting sales directly?

The Shopify App Store listing is the connection point once a brand already has a quote and an active account — installing it doesn't itself generate pricing. The quote comes out of ShipBob's sales process, built from a brand's order and SKU data, and the app install is a later step in the sequence, not a shortcut around requesting one.

Does ShipBob's inventory count in Shopify update in real time, or on a delay after a pick?

It runs on ShipBob's own update schedule for stock movements rather than instantly at the moment of a physical pick, and the gap between the pick happening and the count updating in Shopify is the window a SKU can oversell in. The exact lag isn't published on ShipBob's own pages, so it is worth testing directly during the parallel period rather than assumed to be instant.

How does a brand know which ShipBob fulfilment centre an order actually shipped from?

Shopify's own fulfilment record shows the location once ShipBob writes the tracking update back, visible on the order's fulfilment line in Shopify admin. Worth checking during the parallel period especially for a brand splitting inventory across more than one ShipBob hub, since a misrouted order is easiest to catch by fulfilling location, not by tracking number alone.

Next step

Is this your ops automation problem, or a symptom of another one?

Bring your numbers — the churn split, the decline rate, whatever your flows are earning — and we will tell you which of them is the expensive one.

Book a call →