Home›
E-commerce

Ecommerce fulfillment: in-house, 3PL, and the gap nobody prices in

3 September 2026
VerifiedVerified & Reviewed
Ecommerce fulfillment is everything between the paid order and the delivered parcel: receiving inventory, storing it, picking, packing, and handing to a carrier. A 3PL quote prices five buckets: receiving, storage, pick and pack, packaging, and shipping. None of them price the visibility you give up.

In ecommerce, fulfillment is everything between the paid order and the delivered parcel: receiving inventory, storing it, picking, packing, and handing to a carrier. Here's my take after running it at SurfStitch at $80 million a year and at P.E. Nation: fulfillment is not a cost center you outsource and forget. The brands that pull ahead treat post-purchase as an operational moat, because a late delivery or a broken promise erodes trust fast, and fulfillment is where your checkout promise is either kept or quietly broken. I learned which one the hard way. At the start of COVID we ran an online warehouse sale at P.E. Nation, the revenue skyrocketed, and our Shopify store stopped syncing with the warehouse. We sold a thousand orders of stock that did not exist, and we only found out when customers started calling. My co-founder Tracy put it best afterwards: if she could have seen that happening in real time, she could have prevented all of it.

A warehouse pick, pack and ship line with a silent break glowing coral and caught by a detection layer

In-house vs 3PL: the real decision

The decision is usually framed as cost per order. In my experience it's really a decision about how far away you're willing to move the thing that breaks, because distance costs you detection time.

When in-house still wins

Keep fulfillment in-house while your volume is low enough that packing is not yet eating your growth time, when your product needs special handling (fragile, perishable, personalized), or when unit economics can't absorb 3PL fees yet. You keep full control and full visibility. You pay for it in hours and headcount.

When to move to a 3PL

The usual triggers: you're spending founder or team hours packing instead of growing, storage has outgrown the garage or back room, shipping rates at your volume are worse than a 3PL's negotiated rates, or you need multi-warehouse coverage to hit delivery promises in new regions. A good 3PL brings warehousing, inventory management, kitting, returns processing, and carrier relationships in one contract.

What a 3PL actually costs

Expect fees across five buckets: receiving (per pallet or per item), storage (per bin/pallet per month), pick and pack (per order plus per additional item), packaging materials, and shipping at their negotiated rates. The quote that matters is your fully loaded cost per order at YOUR order profile, because single-item orders price very differently from four-item kits. Model a normal month and a peak month before comparing providers.

What to ask before you sign

  • Cutoff times and SLAs: what time must an order land to ship same day, and what happens when they miss it, credits or apologies?
  • Integrations: native connections to your storefront and returns stack, not "we have an API".
  • Exception reporting: how do you find out an order is stuck, a daily report, a dashboard, or your customer emailing you?
  • Peak handling: Black Friday capacity, and the surcharges that come with it.
  • Returns processing: time from return receipt to restock, because that inventory is capital.

Peak is where fulfillment plans go to die

Peak trade is the stress test: the same operation that runs clean at 500 orders a day starts dropping promises at 3,000. My honest read on why it keeps happening: retailers overinvest in customer acquisition and underprepare their 3PL for the volume they just bought. The marketing spend is committed months out, the warehouse staffing is decided weeks out, and the gap between them is where the SLA breaks. At both P.E. Nation and SurfStitch I made sure the warehouse had enough people to process orders inside the SLA before we turned the traffic on. It is unglamorous work and it is the difference between a good peak and a banner on your homepage apologizing for delays, which is how big brands end up on the news.

Peak breaks the dispatch window before it breaks anything else. An order that normally leaves inside twenty-four hours can stretch to seven days under Black Friday volume, or the stock turns out not to be where the system thought it was. The fix is to act before the customer even knows a problem exists, which is how I put it on Add To Cart: if a parcel hasn't left the warehouse, we catch it and push it out, and if an item is out of stock, we place it on back order. Your promise on the product page does not move with the warehouse.

The visibility gap nobody prices in

The visibility gap is the time between an order breaking and anyone at your company knowing. It's the number almost nobody measures, and outsourcing widens it. When your 3PL's system says "processing" for three days, your customer's promise is breaking and nobody is telling you: their SLA miss becomes your support ticket, your refund, your churned customer. One in five online orders hits an operational issue every year, and the break is rarely dramatic. It's an order stuck behind a stock sync error, or a batch that missed Friday's cutoff and sat all weekend.

Count the orders that had a problem and only surfaced because someone complained. That number is your baseline for the visibility gap. Most brands have never measured it.

The gap gets wider the more places your inventory lives, and modern brands are far more fragmented than their software assumes. We're working with a very large retailer that does about 1.2 million orders through 22 carriers, and their starting position was that this can't be done. We have now gone through it with them in great detail. Some 3PLs hold the carrier relationship themselves, so we pull the carrier data and the 3PL data into one platform, where you can go through every carrier in one place.

Even the data quality varies wildly. One of our customers uses a 3PL in Sydney that reports exactly two events for a parcel: shipped, and delivered. Everything in between is a black box, which is precisely where a lost parcel hides. We tap into carrier connections like OPOST and StarTrack to get ten different signals on that same delivery, because you cannot detect a break inside a gap you have no data for.

This is why we built Keeyu to sit above the fulfillment stack, wherever it lives: we watch every order against the promise made at checkout, detect stuck and delayed orders before the customer notices, and visualize fulfillment, returns, and deliveries at every stage. Here is where that comes from. Some years back I was running ops for a brand going into peak trade, and I thought the answer was speed: hire more people, reply faster, clear tickets quicker. Then one night a warehouse glitch hit and we got hundreds of "where is my order" tickets in an hour. We worked until 2am to clear them, and when we finally shut our laptops it hit me that ops is not about how fast you react. It is about prevention: the best service is the one the customer never sees, a quiet inbox and orders that arrive when they are supposed to. That is the operational core of post-purchase operations, the category we call proactive e-commerce operations, and it holds whoever ships the box. Every order is a promise. Keeyu keeps it.

Every action in that loop, emailing customers or stakeholders, issuing refunds, cancellations, can be automated, and if you prefer, we fully automate on the date range you set. The benefits are four-fold: 90% fewer WISMO tickets, 50% lower support costs, 70% faster resolution, and 60% of your currently manual, repetitive workflows automated.

The gap widens with every party you add. One of our customers runs a hundred drop shippers and had no visibility into whether any of them were delivering to service level until we connected them, which I described on The Ecommerce Edge. Outsourcing fulfillment moves the work. It does not move the promise, and the promise is still yours to keep.

Fulfillment metrics that matter

  • Promise-kept rate: orders shipped and delivered as promised at checkout. The only metric a customer feels, and the one to hold a 3PL to.
  • Order cycle time: paid to shipped. Watch the outliers, not the average. The outliers are tomorrow's WISMO tickets.
  • Time-to-detection: how long an order can be stuck before anyone knows. For most brands the honest answer is "until the customer emails", and hundreds of tickets in an hour after one warehouse glitch is what that looks like in practice.
  • Mis-pick and short-ship rate: each one is a return, a reship, and often a lost customer.

Add the checkpoint count to your metric set. We track roughly thirty to thirty-five checkpoints between order placed and delivered, which I described on The Ecommerce Edge. On-time dispatch and cost per order tell you how the operation performed on average. Checkpoint timing tells you which specific orders are about to fail while there is still time to act.

References

Frequently Asked Questions

What is the difference between fulfillment and shipping?

Shipping is the last leg: the carrier. Fulfillment covers everything from inventory receipt to handover. Most "shipping problems" customers report actually happened inside fulfillment, before the carrier ever saw the parcel.

Does a 3PL fix fulfillment problems?

It fixes capacity and cost problems. It usually worsens visibility, because the work now happens in someone else's building on someone else's system, sometimes reporting as little as two tracking events. Whoever runs the warehouse, someone still has to watch every order against the promise, and that's the layer a Keeyu demo shows you on your own order book.

Can you prevent fulfillment issues instead of reacting to them?

Yes: detect the stuck order today, fix it today, and the ticket never exists. Brands running this proactively see up to 90% fewer WISMO tickets . The approach is proactive customer service , and the results are in customer stories .

How many fulfillment locations is too many to manage manually?

There isn't a clean number, but the tell is portals. The moment answering "where is this order" means logging into more than two systems, your team is doing detection work by hand and losing. We've onboarded brands running a hundred fulfillment locations. The locations aren't the problem, the lack of one place to see them is.

Keep the promise.

See how Keeyu catches and fixes post-purchase issues before customers notice.

In one call, we’ll map your operations and show how Keeyu detects issues, decides what needs to happen, and takes action across your existing systems.

We’ll confirm your integration requirements and rollout plan during the demo.