> ## Documentation Index
> Fetch the complete documentation index at: https://www.adorabl.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Sales channels

> Connect and manage Shopify, Amazon, and other sales channels.

Sales channels tell adorabl where an order originated — Shopify, Amazon, B2B portal, EDI, or direct web. Channel tags flow onto [sales orders](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md), dashboard analytics, fulfillment defaults, and settlement reconciliation. You can also [connect Shopify](https://www.adorabl.info/commerce/shopify.md) to import orders and keep inventory aligned.

## Prerequisites

Before channel data is meaningful in adorabl:

* [Items](https://www.adorabl.info/products/items.md) exist for SKUs you sell on each channel.
* [Warehouses](https://www.adorabl.info/products/warehouses.md) and default shipping warehouse are configured for fulfillment.
* [Finance setup](https://www.adorabl.info/books/setup/finance-setup.md) includes clearing accounts if you reconcile marketplace payouts — see [Settlement reconciliation](https://www.adorabl.info/books/settlement-reconciliation.md).

| Prerequisite | Purpose |
| - | - |
| Item master | Order lines resolve to catalog SKUs |
| Warehouses | Fulfillment pulls inventory from the right location |
| Clearing GL | Marketplace deposits tie to channel revenue |

## Supported channel values today

Orders carry a **Channel** field with these values:

| Channel | Typical source | Default fulfillment |
| - | - | - |
| **Shopify Web** | Shopify storefront sync or manual tag | In-house — pick, pack, and buy a label. Buy online, pick up in store stays on this path until you fulfill it. |
| **Shopify POS** | Shopify point-of-sale orders | Customer pickup from a **Store** warehouse. Imported POS sales are recorded as paid and picked up on arrival, so nothing waits in the fulfillment queue. |
| **Amazon FBA** | Amazon orders fulfilled by Amazon | Marketplace fulfillment from the `AMZ-FBA` **Marketplace** warehouse |
| **B2C Web** | Direct-to-consumer web storefront | In-house |
| **B2B Portal** | Wholesale portal orders | In-house |
| **EDI** | Electronic data interchange (850/855/856) | In-house |
| **— None —** | Manual phone or counter orders | In-house |

The fulfillment method decides whether a label is bought: only **In-house** fulfillments weigh a package and purchase postage. The channel appears on the sales order list, order detail header, and dashboard channel mix widget. Connected channels also fill the order's **Channel order number** field.

## Configure channel defaults

Channel settings control how orders from each source behave in fulfillment and shipping.

**1. Open Commerce setup**

1. In the sidebar, open **Data & Admin** → **Settings**.
2. Click **Commerce**, or open **Settings → Commerce → Sales channels** directly.

**2. Set the fulfillment method**

adorabl lists every supported channel — configured or not — so you can set defaults before the first order arrives.

| Setting | What it controls |
| - | - |
| **Default fulfillment method** | **In-house**, **3PL**, **Customer Pickup**, **Marketplace fulfillment**, or **Supplier drop ship**. In-house is the only method that buys a shipping label. |
| **Default warehouse** | Ship-from warehouse for in-house and purchase-to-order lines. Saving **Amazon FBA** as **Active** with no default warehouse creates a warehouse named **Amazon FBA**. Shopify POS prefers a **Store** warehouse when the field is blank. |
| **Preferred carrier** | Carrier reference shown for the channel |
| **Prepayment expected** | Turn on when the channel collects payment at checkout. Any successful payment already tied to the order is applied to the shipment invoice automatically whether or not this is on; the flag makes sure the invoice still looks for a deposit when the channel is set. |

Hover the info icon beside each field for guidance. Defaults snapshot onto each sales order when you **Save** it and drive fulfillment creation. **Active** means the channel is used for new orders.

**3. Check invoice timing**

The list shows when each channel's orders invoice. Every method that ships, is picked up, or is fulfilled externally reads **After fulfillment is recorded** — including Shopify POS and Amazon FBA. Payment can still be recorded at confirm; the invoice is created automatically when the fulfillment posts. See [Invoicing from fulfillment](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md#invoicing-from-fulfillment).

**4. Configure boxes and scales (optional)**

Under Commerce setup, open **Packaging boxes** and **Packing scales** to define the box catalog and scale integrations used in the [pack workspace](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md).

> [!NOTE]
>
> **Purchase to order** is a supply choice on an individual sales-order line, not a channel default. See [Sales orders & fulfillment](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md#purchase-to-order).

## Connect Shopify

Shopify has a live connection page under **Settings → Commerce → Shopify**. Connect the site, choose customer defaults, map locations and products, and resolve sync exceptions on one page. The Commerce setup hub shows a count of open Shopify exceptions so you can see waiting decisions without opening the page.

See [Connect Shopify](https://www.adorabl.info/commerce/shopify.md).

## Order workflow summary

Use the workflow guide when you need to see how channel defaults connect order → fulfillment → invoice:

1. Open **Commerce → Sales Orders** and click **Workflow summary** in the header, or open **Workflow guide** on an individual order.
2. Review the channel × fulfillment method matrix and the step-by-step path for pick, pack, ship, and invoicing.
3. Return to **Sales channels** setup when you need to change defaults — updates apply to new orders on save.

## View channel performance

**1. Open the dashboard**

Go to **Dashboard** (`/`).

Open the **Overview** or **Commerce** tab and find **Channel mix — all time** for GMV, order count, revenue share, and contribution margin grouped by channel across every confirmed order.

**2. Filter sales orders by channel**

1. Open **Commerce → Sales Orders**.
2. Use the **Channel** column filter to isolate Shopify, Amazon, etc.

Row click-through opens the order detail with channel, external ID, and related fulfillments/invoices.

**3. Reconcile marketplace payouts (optional)**

When Amazon or Shopify settlements deposit to the bank, use [Settlement reconciliation](https://www.adorabl.info/books/settlement-reconciliation.md) to match payout lines to clearing accounts before applying cash to AR.

## Manually tag a channel on an order

Use this path for channels that are not connected:

**1. Create or open a sales order**

Open **Commerce → Sales Orders** and create a new order or open an existing draft.

**2. Set Channel**

In the order header, choose **Channel** from the dropdown (Shopify, Amazon, B2B Portal, etc.).

Optionally enter **External ID** for the marketplace order number.

**3. Submit and fulfill**

Submit the order and proceed through [pick/pack/ship](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md). Channel persists on the order for reporting and defaults.

## Example: Trail Ridge Outfitters

Trail Ridge sells through three active channels:

| Channel | Share of all-time GMV | Clearing account |
| - | - | - |
| **Shopify Web** | 62% | 1250 · Shopify Clearing |
| **Amazon FBA** | 28% | 1251 · Amazon Clearing |
| **B2B Portal** | 10% | Direct AR (no marketplace clearing) |

A Shopify order arrives with channel order number `#10422` and becomes **SO-8841**. Trail Ridge picks from **Denver DC**, ships, and the invoice is created automatically when the fulfillment posts. The dashboard channel mix updates from submitted order totals.

## Related guides

> **[Sales orders & fulfillment](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md)**
>
> Confirm orders and ship inventory by channel.

> **[Settlement reconciliation](https://www.adorabl.info/books/settlement-reconciliation.md)**
>
> Match marketplace payouts to clearing accounts.

> **[Dashboard overview](https://www.adorabl.info/getting-started/dashboard.md)**
>
> Channel mix and ops-health KPIs.

> **[Items](https://www.adorabl.info/products/items.md)**
>
> Maintain SKUs sold across channels.

> **[Connect Shopify](https://www.adorabl.info/commerce/shopify.md)**
>
> Import Shopify records and resolve mapping decisions.

## Troubleshooting

> **Channel mix shows empty on dashboard**
>
> No submitted sales orders exist in the active organization — drafts and cancelled orders are excluded. Submit orders with a channel set, or check that you selected the correct organization.

> **Fulfillment method shows Not recorded on a draft order**
>
> Expected — adorabl snapshots channel defaults onto the order when you **Save**. Expand the workflow summary in the order's **Details** header to see applied values.

> **An FBA order is paid but not invoiced**
>
> Expected. Marketplace orders record payment at confirm but invoice only after the marketplace fulfillment is recorded. Record the fulfillment and adorabl creates the invoice and applies the payment.

> **A Shopify POS order imported with no Fulfill action**
>
> Expected. Storefront pickup sales already left the store, so adorabl records the pickup on import, creates the invoice, and applies the register payment. If an imported POS order shows an exception instead, open [Shopify setup](https://www.adorabl.info/commerce/shopify.md) → **Exceptions** and retry it.

> **A channel order landed on Shopify - Web but was sold at the register**
>
> adorabl reads the point-of-sale markers Shopify sends with the order. If a storefront app writes orders without those markers, correct the **Channel** on the order and record the pickup by hand.

> **Shopify orders are not syncing**
>
> Open [Shopify setup](https://www.adorabl.info/commerce/shopify.md), confirm the connection is active, and click **Sync now** on the **Activity** tab. Then review **Exceptions** for records waiting on a mapping decision.

> **Another channel is not syncing automatically**
>
> If the channel does not have a connection page in Commerce setup, tag the channel manually on the order and keep its external ID for reference.

> **Settlement does not match channel revenue**
>
> Confirm clearing GL accounts in [System accounts](https://www.adorabl.info/books/setup/system-accounts.md) and reconcile in [Settlement reconciliation](https://www.adorabl.info/books/settlement-reconciliation.md). Channel tags alone do not post cash — payouts do.

> **EDI channel on order but no ASN**
>
> EDI 856 advance ship notice workflows tie to [Advance Ship Notification](https://www.adorabl.info/purchasing/purchase-orders-and-receipts.md) on the purchasing side. Outbound EDI for sales shipments is coming soon.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.