Amazon FBA, MCF, and externally fulfilled orders
Most sales orders ship from a warehouse you run: you approve, pick, and ship, and SKU.io deducts stock and records the cost as it goes. Some orders never touch your shelves — Amazon fulfills them from its own warehouses, and SKU.io only mirrors what Amazon did. This page explains what makes an order externally fulfilled, why those orders behave so differently from an in-house shipment, and how their quantities and status are tracked.
Words like AFN / FBA, MCF, AWD, COGS, allocation, and sales order fulfillment are defined the first time they appear below.
In-house versus external fulfillment
Amazon splits fulfillment into two channels, and the label an order carries decides who ships it:
- MFN (Merchant Fulfillment Network) — you ship. This is a normal in-house order: it allocates stock, produces a fulfillment order and a shipment, moves inventory, and realizes COGS. Everything in the rest of the sales-order guides describes an MFN order.
- AFN (Amazon Fulfillment Network) — Amazon ships, using FBA (Fulfillment by Amazon). The units leave from Amazon's fulfillment centers, not yours, so SKU.io has no shipment to record and no stock of its own to deduct.
An order's channel is set when it imports from Amazon, and it drives the entire fulfillment path. This page is about the AFN side — plus two adjacent ways stock ships from Amazon's warehouses rather than your own: Multi-Channel Fulfillment and Amazon Warehousing and Distribution.
Three ways an order ships outside SKU.io
Externally fulfilled orders come from three seams into Amazon's logistics. They differ in who created the order and how the shipment gets back into SKU.io, but they share one defining trait: the goods leave from Amazon's warehouse, so SKU.io moves no local inventory for them.
| Path | Where the order originates | How SKU.io learns the units shipped |
|---|---|---|
| AFN / FBA marketplace order | A shopper buys on Amazon; the order imports into SKU.io already flagged AFN. | Amazon ships it and reports back through the daily FBA Shipments report. |
| Multi-Channel Fulfillment (MCF) | An order from another channel (or built by hand in SKU.io) is handed to Amazon to fulfill. | SKU.io either creates the Amazon fulfillment for you or links one you already created on Amazon. |
| Amazon Warehousing & Distribution (AWD) | Units held in Amazon's upstream AWD storage cover the line. | AWD ledger entries (Amazon's running receipt/departure record) are linked to the order line. |
AFN / FBA marketplace orders
When a shopper orders one of your listings on Amazon and you have Amazon fulfill it, the order imports into SKU.io already marked AFN. Amazon has the inventory, picks it, and ships it — all before SKU.io ever sees a shipment. There is no allocation, no fulfillment order, and no sales order fulfillment record to create, because none of that work happened in a warehouse you control.
Instead, SKU.io tracks the outcome two ways: it stamps each line's externally fulfilled quantity with the units Amazon shipped, and it keeps a mirror of Amazon's FBA shipment report rows against the order (matched on the Amazon order ID). Those mirrored rows are the audit trail of what Amazon actually sent.
Multi-Channel Fulfillment (MCF)
Multi-Channel Fulfillment is Amazon fulfilling an order that didn't come from the Amazon marketplace — a Shopify sale, a manual order, or any other channel — out of your FBA inventory. SKU.io supports MCF two ways, both covered step by step in Fulfill via Amazon FBA or MCF:
- Create the fulfillment from SKU.io. You pick a shipping speed and lines, and SKU.io records an Amazon FBA sales order fulfillment and asks Amazon to ship it.
- Link an existing MCF fulfillment. If you already created the fulfillment on Amazon, the Link Amazon MCF Fulfillment dialog attaches it to the SKU.io order so the two stay in sync.
Either way, the resulting shipment record starts in Awaiting Tracking (the underlying status fulfilled_awaiting_info) — shipped by Amazon, with tracking still to follow — and, like every FBA unit, carries no local inventory movement.
Amazon Warehousing & Distribution (AWD)
AWD (Amazon Warehousing and Distribution) is Amazon's bulk upstream storage that feeds FBA. When AWD stock covers a line, SKU.io links the relevant AWD ledger entries to that order line and counts them as an AWD fulfilled quantity. The upstream AWD inventory and its costing are managed on the purchase side — see the purchase-order concept How dropship and Amazon POs differ from a standard PO — but on a sales order, AWD-linked units count toward the line being satisfied, exactly like externally fulfilled and in-house units.
What "externally fulfilled" changes
Once an order (or a line) is fulfilled from Amazon's warehouse, three things work differently from an in-house shipment. Understanding these three is understanding the whole page.
1. No local inventory movement and no COGS
An in-house shipment consumes your on-hand stock: it writes negative inventory movements, draws down FIFO cost layers, and books COGS — see How fulfilling moves inventory and realizes COGS. An externally fulfilled unit does none of that in your warehouses, because the unit was never on your shelves to deduct. The stock lived in Amazon's fulfillment network, and Amazon shipped it. SKU.io records that the units shipped without moving any of your local inventory.
2. Amazon-reported quantities, not your shipments
Because there is no SKU.io shipment to count, a line's fulfilled total is measured differently. SKU.io treats a line as fully satisfied when the sum of three quantities meets what the line needs to ship:
| Quantity | Where it comes from |
|---|---|
| Fulfilled quantity | Units shipped by an in-house or carrier shipment recorded in SKU.io. |
| Externally fulfilled quantity | Units Amazon reported shipping on an AFN order (from the FBA Shipments report). |
| AWD fulfilled quantity | Units covered by linked Amazon AWD ledger entries. |
For a pure AFN order the first bucket is zero and the externally fulfilled bucket carries the whole quantity — the line still reads as fully shipped even though your warehouse never touched it. These quantities are also excluded from the stock that's available to sell or allocate elsewhere, so Amazon-shipped units don't get double-committed.
3. Status is pinned to Fulfilled and Closed
SKU.io normally derives an order's fulfillment status by counting its shipment records against its lines. An AFN order has no shipment records, so that count would wrongly read it as Unfulfilled and reopen it every time an unrelated recalculation ran. To prevent that, SKU.io pins a non-cancelled AFN order to Fulfilled and Closed, bypassing the record-count logic entirely. Amazon owns the order's lifecycle; SKU.io reflects the finished state.
Blue Bottle Retail buys 4 × Reusable Straw 4-Pack on Amazon (AFN)
→ order imports flagged AFN, no allocation, no shipment record
→ Amazon ships; FBA report posts externally_fulfilled_quantity = 4
→ SKU.io pins the order: Fulfillment = Fulfilled, Order = Closed
The pin only applies while the order is live. If an AFN order is cancelled, it falls through to the normal path so its cancellation closes it the ordinary way — with the cancellation side effects, not a phantom "fulfilled" flag. See Close, cancel, archive, and delete orders.
In-house versus externally fulfilled at a glance
| In-house (MFN) shipment | Amazon FBA / MCF (external) | |
|---|---|---|
| Who ships | You, from a warehouse you run | Amazon, from its fulfillment centers |
| Allocation & fulfillment order | Yes — stock is committed, a fulfillment order is planned | None — nothing is routed through your warehouses |
| Shipment record | A sales order fulfillment per shipment | AFN: none; MCF: one Amazon FBA fulfillment, starting Awaiting Tracking |
| Inventory movement / COGS | Yes — FIFO layers consumed, COGS booked | No local movement or COGS |
| What counts the units | Fulfilled quantity from your shipments | Externally fulfilled / AWD fulfilled quantity from Amazon |
| Fulfillment status | Derived from lines and shipments | AFN pinned Fulfilled + Closed; MCF driven by the Amazon fulfillment |
Edge cases and guards
A few behaviors are worth knowing before they surprise you.
The action that asks Amazon to ship an order (choosing a shipping speed of Standard, Expedited, or Priority, adding required comments, and shipping the selected lines) is available only in the production environment. In a demo, staging, or local environment the action is refused with an "Only available on production" message, because it would place a real request against Amazon. Linking an existing MCF fulfillment is how you associate one without placing a new request. Full steps are in Fulfill via Amazon FBA or MCF.
A line imported before your inventory start date can be stamped with an externally fulfilled quantity as a bare marker. If that same line later gains a proper FBA fulfillment record for the same units, both would count the same shipment twice. SKU.io detects the overlap and trims the bare external marker down so a line's fulfilled + externally fulfilled total never exceeds what it ordered — the authoritative Amazon fulfillment wins, and genuinely distinct external units are left untouched.
Multi-Channel Fulfillment isn't unique to Amazon. A Walmart order fulfilled through WFS (Walmart Fulfillment Services) follows the same externally fulfilled pattern — the goods ship from the partner's warehouse, and SKU.io records the outcome without moving your local stock.
Next steps
- Fulfill via Amazon FBA or MCF — the step-by-step guide to creating and linking Amazon fulfillments.
- How sales order status works — where the pinned Fulfilled + Closed state fits among the three status axes.
- Two-tier fulfillment: intent vs execution — the fulfillment order and shipment records an in-house order uses, and the Awaiting Tracking state FBA/MCF shipments start in.
- How fulfilling moves inventory and realizes COGS — the FIFO deduction that external fulfillment skips.
- How channel orders sync — how Amazon and other marketplace orders import and write back.
- Sales order status reference — every status value across all axes.
- Sales orders overview