# Multi-channel fulfillment (https://sellersheetai.com/docs/mcp-api/workflows/mcf)

> Ship orders from any sales channel — Shopify, TikTok Shop, your own site — out of your FBA inventory, with the fee shown before anything ships.



<Callout title="In short">
  Preview the fee and delivery speed for an order, create it once you agree, and track the package — Amazon picks, packs and ships from your FBA stock.
</Callout>

## Step by step [#step-by-step]

<Steps>
  <Step>
    ### Preview before committing [#preview-before-committing]

    `fbaOutbound_getFulfillmentPreview` returns the delivery-speed options and fulfillment fees for an order you describe — SKU, quantity and address — without creating anything. `fbaOutbound_deliveryOffers` answers "how fast can this arrive?" for one product.
  </Step>

  <Step>
    ### Create the fulfillment order [#create-the-fulfillment-order]

    On your go-ahead, `fbaOutbound_createFulfillmentOrder` hands the order to Amazon, which picks, packs and ships it from your FBA stock.
  </Step>

  <Step>
    ### Track every package [#track-every-package]

    `fbaOutbound_getFulfillmentOrder` shows the order's status and shipments; `fbaOutbound_getPackageTrackingDetails` gives the carrier, tracking number and delivery estimate.
  </Step>

  <Step>
    ### Handle changes [#handle-changes]

    `fbaOutbound_updateFulfillmentOrder` changes an order that has not shipped, `fbaOutbound_cancelFulfillmentOrder` cancels it, and `fbaOutbound_createFulfillmentReturn` creates a return — `fbaOutbound_listReturnReasonCodes` lists the reasons Amazon accepts.
  </Step>
</Steps>

## Try asking [#try-asking]

> "A customer on my Shopify store ordered 2 units of SKU-A. Ship it from FBA to their address at standard speed — show me the fee first."

## The preview, both ways [#the-preview-both-ways]

The same tool and the same arguments — through your AI client, or from your own code.

**MCP** — you paste the address and the SKU. Your agent calls `fbaOutbound_getFulfillmentPreview`, shows you the fee and delivery window for each speed, and creates the order only when you confirm.

<ToolCall tool="fbaOutbound_getFulfillmentPreview" args="{ address: { name: &#x22;Jane Doe&#x22;, addressLine1: &#x22;123 Main St&#x22;, city: &#x22;Seattle&#x22;, stateOrRegion: &#x22;WA&#x22;, postalCode: &#x22;98101&#x22;, countryCode: &#x22;US&#x22; }, items: [{ sellerSku: &#x22;SKU-A&#x22;, sellerFulfillmentOrderItemId: &#x22;1&#x22;, quantity: 2 }], shipping_speed_categories: [&#x22;Standard&#x22;] }" />

<Callout type="warn" title="Write access required">
  Creating, updating, cancelling or returning a fulfillment order changes your seller account, so the store needs write access (see [Stay in control](/docs/mcp-api/control)). Previews, offers and tracking work with read access.
</Callout>

## Tools on this page [#tools-on-this-page]

Pulled from the catalog at build time, each with its own access label.

<ToolList domains="[&#x22;mcf&#x22;]" />

## FAQ [#faq]

### Is my stock enough? [#is-my-stock-enough]

Check first with [FBA inventory](/docs/mcp-api/workflows/fba-inventory).

### Does a preview reserve stock or cost anything? [#does-a-preview-reserve-stock-or-cost-anything]

No — a preview creates nothing. Only `fbaOutbound_createFulfillmentOrder` places an order.
