> For the complete documentation index, see [llms.txt](https://docs.shopperos.stackline.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shopperos.stackline.com/fulfillment/amazon-mcf.md).

# Amazon MCF

Amazon Multi-Channel Fulfillment (MCF) ships your orders from the inventory you store in Amazon's fulfillment network. ShopperOS sends each order to Amazon and keeps your stock levels in sync. It also sends tracking back to the shopper and to the sales channel. MCF can ship orders from your own storefront (your Shopify store with Brandclub checkout), Walmart Marketplace, and TikTok Shop.

```mermaid
flowchart LR
    SC["Sales channel: your storefront, Walmart Marketplace or TikTok Shop"] -->|Route| FA["Fulfillment account: your Amazon seller account"]
    L["Product on the sales channel"] -->|Link| SKU["Amazon seller SKU"]
    FA --> Ship["Amazon ships the order"]
    SKU --> Ship
    Ship -->|Tracking| Back["The shopper and the sales channel"]
```

*A sales channel needs a route to your Amazon account. Each product needs a link to its Amazon seller SKU. Nothing ships until both are in place.*

## Four pieces join a channel to Amazon

A fulfillment account, a sales channel, a route and a link must all exist before an order ships.

<table data-view="cards"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Fulfillment account</strong></td><td>Your Amazon seller account, which holds the inventory and ships.</td><td><strong>Fulfillment → Channels → Fulfillment accounts</strong></td></tr><tr><td><strong>Sales channel</strong></td><td>Where orders come from.</td><td><strong>Fulfillment → Channels → Sales channels</strong></td></tr><tr><td><strong>Route</strong></td><td>Joins one sales channel to one fulfillment account, with the default shipping rules.</td><td><strong>Fulfillment → Channels → Routing</strong></td></tr><tr><td><strong>Link</strong></td><td>Matches a product on a sales channel to its Amazon seller SKU.</td><td><strong>Fulfillment → Listings</strong> and <strong>Fulfillment → Inventory</strong></td></tr></tbody></table>

## Before you start

You need three things before you connect anything.

| You need                                               | Notes                                                                           |
| ------------------------------------------------------ | ------------------------------------------------------------------------------- |
| An Amazon Seller Central account in the US marketplace | You sign in to it to approve ShopperOS.                                         |
| Inventory in Amazon's fulfillment network (FBA)        | Each product you sell must have its own Amazon seller SKU.                      |
| A connected sales channel                              | For example your [Shopify store](/selling-and-checkout/shopify-integration.md). |

If the Channels page says **an administrator is finishing the platform setup**, contact your Stackline team. They must finish a one-time setup before you continue.

## Step 1: Connect your Amazon account

Approve ShopperOS in Seller Central once. The account then appears on the **Fulfillment accounts** tab.

Go to **Fulfillment → Channels → Fulfillment accounts**.

{% stepper %}
{% step %}

### Open Connect Amazon Seller Account

Open **Fulfillment → Channels**. The **Fulfillment accounts** tab opens.

* If nothing is connected yet, the page shows **Get started in three steps**. Click **Connect** on **Amazon Multi-Channel Fulfillment**.
* Otherwise, click **+ Connect account**.

The **Connect Amazon Seller Account** dialog opens.
{% endstep %}

{% step %}

### Name the account

Optionally, type a **Display name**, for example *My Brand MCF*. The marketplace is **Amazon Seller Central — US**.
{% endstep %}

{% step %}

### Go to Amazon

Click **Continue to Amazon →**. Seller Central opens.
{% endstep %}

{% step %}

### Approve ShopperOS

Sign in to Seller Central, and approve access for ShopperOS. Amazon returns you to ShopperOS. The banner reads **Amazon MCF connected successfully**.
{% endstep %}
{% endstepper %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-97d7800b6bb96523e9732118fb126ecc0c25e89d%2Fmcf-connect-amazon-dialog.jpg?alt=media" alt="Connect Amazon Seller Account"><figcaption><p>The dialog asks only for an optional display name. Amazon does the rest.</p></figcaption></figure>

Done. Your account now appears in the table with its **Health**.

* To check the account at any time, use the row menu (**…**) → **Test connection**.
* The **Enabled** toggle pauses or resumes fulfillment for this project.
* You connect an Amazon account once for your whole organization. Every project in your organization can then use it. See **Settings → Connected accounts**.

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-bf35f9cd59ac8780f6f9013012a8ff6dca77765c%2Ffulfillment-accounts.jpg?alt=media" alt="Fulfillment accounts"><figcaption><p>Each account shows its Health and an Enabled toggle.</p></figcaption></figure>

Next, [add your sales channels](#step-2-add-your-sales-channels).

## Step 2: Add your sales channels

A sales channel is a place that sends orders to Amazon. Add each one on the **Sales channels** tab.

Go to **Fulfillment → Channels → Sales channels**.

When you turn on in-app checkout, your Shopify storefront channel is usually created for you. Check this tab before you add it again.

{% stepper %}
{% step %}

### Open Add Sales Channel

Click **+ Add channel**. The **Add Sales Channel** dialog opens.
{% endstep %}

{% step %}

### Choose the channel

Choose a **Channel Type**: **Shopify**, **Walmart Marketplace**, or **TikTok Shop**. The fields for that type appear.
{% endstep %}

{% step %}

### Fill in the fields

The fields depend on the channel type. See the tabs below.
{% endstep %}
{% endstepper %}

{% tabs %}
{% tab title="Shopify" %}

1. Optionally, type a **Display Name**.
2. Enter the **Shop Domain** (`your-store.myshopify.com`), the **Client ID**, and the **Client Secret**.
3. Click **Add Channel**.
   {% endtab %}

{% tab title="Walmart Marketplace" %}

1. Choose the **Environment**.
2. Connect in one of two ways:
   * Click **Connect with Walmart**, and approve ShopperOS on Walmart's own page. You do not paste API keys.
   * Or, under **Or add the seller's own API keys**, enter the **Client ID** and **Client Secret**. Then click **Add Channel**.

A seller account uses one way only. For the full steps, see [Connect Walmart Marketplace](/fulfillment/marketplace-channels.md#connect-walmart-marketplace).
{% endtab %}

{% tab title="TikTok Shop" %}

1. Choose the **Environment**.
2. Click **Connect TikTok Shop**, and approve access in TikTok.

For the full steps, see [Connect TikTok Shop](/fulfillment/marketplace-channels.md#connect-tiktok-shop).
{% endtab %}
{% endtabs %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-93a120ef3cef44b1ab33ab4c383b8dd2fd58af5e%2Fadd-sales-channel-shopify.jpg?alt=media" alt="Add Sales Channel for Shopify"><figcaption><p>Add Sales Channel with Shopify chosen.</p></figcaption></figure>

Done. Every channel you add shows on the **Sales channels** tab.

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-72f94e05356bef7a89137321daaac95ece2a1392%2Fsales-channels.jpg?alt=media" alt="Sales channels"><figcaption><p>Every channel you add shows on the Sales channels tab.</p></figcaption></figure>

Next, [route each channel to Amazon](#step-3-route-each-channel-to-amazon).

## Step 3: Route each channel to Amazon

A route joins one sales channel to one fulfillment account and holds its default shipping rules.

Go to **Fulfillment → Channels → Routing**.

{% stepper %}
{% step %}

### Add the route

Click **+ Add route**.
{% endstep %}

{% step %}

### Pick the two sides

Pick the **Fulfillment account** and the **Sales channel**, and click **Connect**. The route shows as a new row.
{% endstep %}

{% step %}

### Open Route Settings

In the new row, click **…** → **Settings**. **Route Settings** opens.
{% endstep %}

{% step %}

### Save the rules

Choose the settings in the table below, and click **Save**.
{% endstep %}
{% endstepper %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-0ba23d2e5332b1de391d679544c29f3341fd2db1%2Frouting.jpg?alt=media" alt="Routing"><figcaption><p>Each row joins one fulfillment account to one sales channel.</p></figcaption></figure>

**Route Settings** applies to all new orders on the channel, unless a product overrides it.

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-dce05db3f9ae95c1748507a6a3bb0a37c2fd3ce9%2Froute-settings.jpg?alt=media" alt="Route Settings"><figcaption><p>Route Settings for one channel.</p></figcaption></figure>

| Setting                                       | Options                                                                                                                                                                                                  |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Order action**                              | **Ship immediately**, or **Hold for manual release** to review each order before it ships.                                                                                                               |
| **Inventory policy**                          | **Cancel if unavailable**, **Ship available, cancel rest**, or **Wait until all in stock**.                                                                                                              |
| **Speeds offered at checkout** (marketplaces) | Which of **Standard**, **Expedited**, and **Priority** are offered.                                                                                                                                      |
| **Fallback shipping speed**                   | The speed used when the shopper's choice cannot be matched.                                                                                                                                              |
| **Feature policies**                          | **Plain packaging**, **Avoid Amazon delivery**, **Ship in product packaging**, **Include packing slip**, and **Signature confirmation**. Each can be **Inherit default**, **Required**, or **Disabled**. |

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-3d40fe57021529d227ce9a9fcef3cf0251d5e01d%2Froute-settings-policies.jpg?alt=media" alt="Feature policies"><figcaption><p>Each feature policy is Inherit default, Required or Disabled.</p></figcaption></figure>

{% hint style="warning" %}
Walmart requires **Avoid Amazon delivery**, so it is locked on for Walmart routes. **Signature confirmation** costs extra and works in the US only.
{% endhint %}

Done. New orders on the channel follow these rules. Next, [link your products to Amazon SKUs](#step-4-link-your-products-to-amazon-skus).

## Step 4: Link your products to Amazon SKUs

Link each product on a sales channel to its Amazon seller SKU. An unlinked product cannot be fulfilled. There are three ways to link.

{% hint style="warning" %}
When you unlink a product, its stock on the sales channel is set to zero. It then shows as out of stock.
{% endhint %}

### Fastest way: Auto-Link

Auto-Link links every listing whose seller SKU matches an Amazon seller SKU exactly.

Go to **Fulfillment → Listings**.

{% stepper %}
{% step %}

### Click Auto-Link

Click **Auto-Link**. ShopperOS lists the listings whose seller SKU matches an Amazon seller SKU exactly.
{% endstep %}

{% step %}

### Confirm the links

Review the list, and click **Link N Listings**. The listings are linked.
{% endstep %}
{% endstepper %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-73897b89ad0231c28d77340cafa9e68ed131c5af%2Flistings.jpg?alt=media" alt="Listings"><figcaption><p>Auto-Link is at the top of the Listings page.</p></figcaption></figure>

### Link one product

Use the row menu on **Fulfillment → Listings**.

1. On the row, click **…** → **Link**.
2. Pick the Amazon item.
3. Click **Save Link**.

To change it later, use **Change link** or **Unlink** in the same menu.

### Link many products with suggestions or a CSV

The **Linking** tab suggests an Amazon item for each channel product, or takes your own CSV file.

Go to **Fulfillment → Inventory → Linking**.

{% stepper %}
{% step %}

### Get suggestions

Click **Run matching**. ShopperOS suggests Amazon items for each channel product.
{% endstep %}

{% step %}

### Review the suggestions

Review rows marked **Needs review**, and pick the right candidate. Or click **Upload CSV** with two columns: `retailer_sku` and `seller_sku`. CSV rows overwrite suggestions.
{% endstep %}

{% step %}

### Link the rows

Select the rows, and click **Link selected**. The rows are linked.
{% endstep %}
{% endstepper %}

Done. Linked products can ship through Amazon. Next, [set shipping rates for your storefront](#step-5-set-shipping-rates-for-your-storefront).

## Step 5: Set shipping rates for your storefront

For orders from your own storefront, you choose which speeds shoppers see and what they pay.

| Speed         | Delivery time |
| ------------- | ------------- |
| **Standard**  | 3–5 days      |
| **Expedited** | 2 days        |
| **Priority**  | 1 day         |

You always pay Amazon's fee. When shipping is free or flat-rate for the shopper, the difference comes out of your margin.

Go to **Settings → Fulfillment**.

{% stepper %}
{% step %}

### Open the rates

Scroll to **Shipping speeds and rates**.
{% endstep %}

{% step %}

### Set each speed

For each speed:

* Tick it to offer it at checkout. At least one speed stays offered.
* Choose **Actual fee** (Amazon's fee), **Flat** (a fixed price), or **Free**.
* Optionally, turn on **Add handling** to add a fixed amount or a percentage to the actual fee.
* Optionally, tick **Free for orders over**, and enter an order minimum. The minimum is measured on the item total after discounts.
  {% endstep %}

{% step %}

### Check what shoppers pay

Read the **Shopper sees** line for each speed. It shows the price at checkout.
{% endstep %}

{% step %}

### Save

Click **Save policies**.
{% endstep %}
{% endstepper %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-6ed06a64408e80e88a256696ee98389ebb9fe0f5%2Fsettings-fulfillment-rates.jpg?alt=media" alt="Shipping speeds and rates"><figcaption><p>The Shopper sees line shows the price at checkout for each speed.</p></figcaption></figure>

Done. Shoppers see these speeds and prices at checkout.

On the same page, **Order policies** sets these rules for storefront orders:

* **Fallback shipping speed**
* What happens **If items are out of stock**
* **Blank box (unbranded)**
* **Signature confirmation**
* **Packing slip text**

Under **Sales channel**, **Create the order in Shopify** copies each order into your Shopify admin. It adds tracking to the order as shipments happen. Turn it off to keep orders only in ShopperOS.

Next, to offer free Prime delivery, see [Amazon Prime shipping](/fulfillment/amazon-prime.md).

## Step 6: Watch orders and inventory

Five pages show your orders and stock after setup.

| Page                            | Use it to                                                                                            |
| ------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Fulfillment → Overview**      | See order totals, pending orders, errors, and delivery rates for a time range.                       |
| **Fulfillment → Inventory**     | See stock per Amazon SKU. Stock syncs automatically. Click **Refresh** to sync now.                  |
| **Fulfillment → Orders**        | Track each order from **Pending** to **Delivered**. Edit, release, retry, cancel, or start a return. |
| **Fulfillment → Cancellations** | Approve or deny cancellation requests from marketplaces.                                             |
| **Fulfillment → Returns**       | Follow returns from request to completion.                                                           |

For each page, see [Fulfillment orders, cancellations and returns](/fulfillment/orders-cancellations-returns.md).

## Use your Shopify store's 3PL instead

If you do not use Amazon MCF, ShopperOS can create each order in your Shopify store. Your own 3PL then fulfills it.

Go to **Settings → Fulfillment**.

{% stepper %}
{% step %}

### Choose Fulfill via Shopify

On **Fulfill via Shopify**, click **Use this**.
{% endstep %}

{% step %}

### Confirm the switch

Confirm **Switch to Shopify**.
{% endstep %}
{% endstepper %}

<figure><img src="https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-2af356b7663ee496ae4e051832d1afcf7cd61213%2Fsettings-fulfillment.jpg?alt=media" alt="Settings → Fulfillment providers"><figcaption><p>Fulfill via Shopify is the other fulfillment provider.</p></figcaption></figure>

Done. Your 3PL fulfills the order in Shopify, and ShopperOS syncs the status back. This disconnects Amazon MCF for in-app orders. You can reconnect Amazon later.

## Troubleshooting

Each answer below starts from what you see on the screen.

<details>

<summary>What if my account shows Health Unhealthy or Error?</summary>

Click **…** → **Test connection**. If it still fails, reconnect the account with **+ Connect account**.

</details>

<details>

<summary>What if an order shows the error Re-authorize your Amazon connection?</summary>

Reconnect your Amazon account.

</details>

<details>

<summary>What if an order shows an error about inventory?</summary>

Check the product's stock in **Fulfillment → Inventory**, and check that it is linked.

</details>

<details>

<summary>What if a product shows Not linked?</summary>

Link it in **Listings** or **Inventory → Linking**.

</details>

<details>

<summary>What if Add route is greyed out?</summary>

Connect a fulfillment account and add a sales channel first.

</details>

## Next step

Link and watch your products on the channel side and the Amazon side.

{% content-ref url="/pages/GBZtFG4D0qc0KLnZHPSA" %}
[Listings and inventory](/fulfillment/listings-and-inventory.md)
{% endcontent-ref %}
