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

# Connect and sync a sales channel

> Connect a storefront or marketplace to OTO, choose what syncs and to which hubs, set stock per hub, and find out why an order did not arrive.

> [!NOTE]
>
> **Where to find it:** Main → Integrations → Sales Channels — [Open in OTO ↗](https://app.tryoto.com/sales-channels)

Connecting a channel takes minutes. Deciding what flows across the connection, and to which of your hubs, is the part worth thinking about.

## Connecting a channel

Open **Integrations → Sales Channels**, search the **All Channels** catalog, and press **Explore Channel**. From there, connection takes one of two shapes depending on the platform.

| Pattern | How it works | Typical of |
| - | - | - |
| **App-store install** | You install OTO’s app from the platform’s own marketplace, approve the permissions it asks for, and are returned to OTO with the channel already connected. No keys are copied by hand. | Shopify, Salla |
| **Credentials** | You enter the store URL and an API key or access token from the platform’s admin, then confirm the link. **Edit Credentials** on the connected channel is where these are changed later. | Most other platforms |

> [!WARNING]
>
> **Remove the old connection before making a new one**
>
> Where a platform has offered more than one way to connect over the years — Salla’s desktop app and its app-store app, for instance — connecting the second without removing the first gives you two live connections to one store.
>
> The symptom is duplicated orders, and it is easier to prevent than to unpick. Remove the previous connection from **Connected Channels** first.

## The connected channels list

The **Connected Channels** tab lists what you have. Each entry carries the channel, the **store name** it is connected to, an **Active / Inactive** badge, a switch to enable or disable it, and a settings menu. A **Show active only** filter hides the rest.

Disabling a channel rather than removing it stops the traffic while keeping the credentials and the mapping — the right move for a store you are pausing rather than leaving.

![The Connected Channels tab listing three connected stores, each with an Active or Inactive badge, an enable toggle and a settings menu](https://mintcdn.com/oto/YkJay8Y-1RDv8ciw/images/sc-2-connected.png?fit=max\&auto=format\&n=YkJay8Y-1RDv8ciw\&q=85\&s=0e2cdb7d6c23adab56a2e22d72788d0f)

Fig. 1 — Each row is one store. The badge reports the connection; the switch controls it.

## The per-channel settings menu

Everything that governs one connection sits behind the **…** menu on its card.

| Item | What it does |
| - | - |
| **Edit Credentials** | Change the store URL, keys or tokens. Also where a connection is re-verified after a platform rotates a key. |
| **Match Pickup Locations** | Map the channel’s locations onto your [hubs](https://docs.tryoto.com/modules/hubs-management/overview.md). |
| **Inventory Sync Settings** | How stock is calculated and pushed to this channel. Covered in [Inventory sync](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md). |
| **Sync Orders** | Pull orders from the channel on demand. |
| **Synchronize Products** | Pull the catalog on demand. |
| **Status Mapping** | What this channel is told when an order moves. See [Status and tracking updates](https://docs.tryoto.com/modules/sales-channels/updates.md). |
| **Remove** | Disconnect the channel entirely. |

![The per-channel settings menu open, listing Edit Credentials, Match Pickup Locations, Inventory Sync Settings, Sync Orders, Synchronize Products, Status Mapping and Remove](https://mintcdn.com/oto/ft-bRlLvOnJkbVoC/images/sc-3-menu.png?fit=max\&auto=format\&n=ft-bRlLvOnJkbVoC\&q=85\&s=446de7b227f765a9599744207cb07795)

Fig. 2 — Seven items, and everything that governs one connection is among them.

## Stock per hub, not per account

A single stock number for the whole business is fine until you have two places to ship from. After that it is actively misleading: it tells the storefront you have twelve of something without saying that eleven are in the wrong city.

Each channel’s **Inventory Sync Settings** carries a **Multi-Location** switch. With it on, a **Pickup Locations** table maps each of your warehouses and branches to the corresponding location on the channel by its **Sales Channel Location ID**, with a **Location Active** switch per row.

> [!TIP]
>
> **This mapping is what makes a location-aware storefront possible**
>
> Without it, a channel that offers store pickup or per-branch availability has no way to know which of your buildings a stock figure refers to — so it either shows one pooled number, or nothing.
>
> With it, the storefront can tell a customer that the item is in the shop two streets away. That is a conversion feature that happens to live in an integration settings screen.

The mechanics of calculation methods, update methods and sync logs are covered in [Inventory sync](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md).

## When something does not arrive

Sync is continuous; the manual controls exist for when it has missed something.

| Control | Where | Scope |
| - | - | - |
| **Sync Orders** | Channel **…** menu | Pulls orders for that channel. |
| **Synchronize Products** | Channel **…** menu | Pulls the catalog for that channel. |
| **Synchronize Order** | **Shipments → Pending Orders → Orders** | **One order at a time**, and only from the Pending Orders tab. You supply the order ID and pick the channel. |

Single-order sync refreshes status only. It does not overwrite existing order data and it sends no customer notification.

> [!NOTE]
>
> **Treat a manual sync as a symptom**
>
> These controls are repair tools. Reaching for them once is routine; reaching for them daily means something upstream is failing — expired credentials, a changed API key, a product that does not exist on one side.
>
> **Settings → System Logs** carries **Inventory Sync Logs** and **Product Sync Logs**, both with an error column. That is where the cause is, rather than in the sync button.

## Related

* [Order sync](https://docs.tryoto.com/modules/omnichannel-oms/order-sync.md) — what an arriving order goes through.
* [Inventory sync](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md) — calculation methods and sync logs.
* [Product configuration](https://docs.tryoto.com/modules/inventory-management/product-configuration.md) — per-product, per-channel overrides.


## Related topics

- [Sync inventory to your sales channels](https://docs.tryoto.com/modules/inventory-management/inventory-sync.md)
- [Order sync: how orders get into OTO](https://docs.tryoto.com/modules/omnichannel-oms/order-sync.md)
- [Sales Channels](https://docs.tryoto.com/modules/sales-channels/overview.md)


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