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

# Stream

> Connect Stream to storekit to receive your published menus, inject online orders, mirror item availability and stock counts, and pause the store from Stream.

Stream is a middleware platform that sits between storekit and your POS. Once a location is connected, Stream publishes its menu into storekit, storekit sends online orders to Stream, and Stream reports back when the order is accepted, updated, cancelled or fails. Stream also tells storekit when items go on or off sale and when a location is paused.

Unlike storekit's direct POS integrations, the connection is set up from the Stream side — storekit is registered with Stream as a delivery service provider (DSP). Your storekit store keeps behaving like any other POS-connected store: the menu is managed in Stream, and orders are queued to Stream as soon as they are placed.

This section is split into focused guides. Start with **Connecting Stream**, then read the areas you need.

<CardGroup cols={2}>
  <Card title="Connecting Stream" icon="plug" href="/docs/guides/integrations/pos/stream/connect">
    Authorise Stream against your storekit account and link a location to a store
  </Card>

  <Card title="Menu Sync" icon="utensils" href="/docs/guides/integrations/pos/stream/menu-sync">
    How Stream publishes menus into storekit and what gets imported
  </Card>

  <Card title="Orders" icon="receipt" href="/docs/guides/integrations/pos/stream/orders">
    How orders reach Stream, buffering, order notes, cancellations and failures
  </Card>

  <Card title="Stock & Availability" icon="boxes-stacked" href="/docs/guides/integrations/pos/stream/stock-and-availability">
    Item availability, stock counts, and pausing the store from Stream
  </Card>

  <Card title="Dine-in" icon="chair" href="/docs/guides/integrations/pos/stream/dine-in">
    How table orders are sent to Stream
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/docs/guides/integrations/pos/stream/troubleshooting">
    Fix connection, menu, order and availability problems
  </Card>
</CardGroup>

## How the Connection Works

Stream connects to storekit over OAuth. From Stream you choose storekit as a channel and are sent to storekit to sign in. On the consent screen — **Stream wants access to your storekit account.** — you either grant **Access all available venues** or pick the stores Stream may see, then click **Allow**. Back in Stream, storekit's stores appear as locations you can connect; connecting one sets that store's POS provider to Stream.

A store can only have one POS provider, so a store connected to Stream cannot also be connected to another POS integration.

<Note>
  Stream's settings page in the storekit dashboard (**Stream Integration**) is only visible to storekit staff. Merchants manage the menu and location state in Stream, and ask [storekit support](/docs/getting-started/contact-support) to change the storekit-side settings described in these guides.
</Note>

## How Orders Flow to Stream

```
Customer places order on storekit
        ↓
storekit queues the order for dispatch (immediately, or buffered for a pre-order)
        ↓
storekit builds the Stream order (items, variations, modifiers, fulfilment type, note)
        ↓
Stream reports location.order.accept → order marked Accepted
  (or location.order.fail → order marked Failed, store emailed with the reason)
        ↓
Stream reports status changes (ready for pickup, out for delivery, completed) and cancellations
```

Orders are queued as soon as they're placed — you don't accept them first. Pre-orders can be held back until closer to the fulfilment time with **Buffer Orders**.

## Supported Features

<AccordionGroup>
  <Accordion title="Menu Sync">
    | Feature                         |               Supported              |
    | ------------------------------- | :----------------------------------: |
    | Menu published from Stream      |                   ✓                  |
    | Manual sync button in storekit  | ✗ (support can request a re-publish) |
    | Scheduled menu sync             |     ✗ (Stream pushes on publish)     |
    | Product images                  |                   ✓                  |
    | Allergens                       |                   ✓                  |
    | Alcohol tagging                 |                   ✓                  |
    | Item variations (item families) |                   ✓                  |
    | Nested modifiers                |                   ✓                  |
    | Multi-language content          |                   ✓                  |
    | Menu-specific prices            |                   ✓                  |
    | Menu availability hours         |                   ✓                  |
    | Category availability hours     |                   ✓                  |
    | Tax rates                       |                   ✓                  |
    | Prep time                       |                   ✓                  |
    | Subcategories                   |                   ✗                  |
  </Accordion>

  <Accordion title="Orders">
    | Feature                                 | Supported |
    | --------------------------------------- | :-------: |
    | Order injection                         |     ✓     |
    | Pre-orders                              |     ✓     |
    | Order buffering                         |     ✓     |
    | Automatic retries on a rejected request |     ✓     |
    | Order accepted / failed by webhook      |     ✓     |
    | Order status updates from Stream        |     ✓     |
    | Cancellations in both directions        |     ✓     |
    | Discounts                               |     ✓     |
    | Tips and service charge                 |     ✓     |
    | Delivery details                        |     ✓     |
    | Custom order notes template             |     ✓     |
    | Table number on dine-in orders          |     ✓     |
    | Cutlery request                         |     ✓     |
    | Basket validation                       |     ✗     |
    | Add to existing bill / pay at table     |     ✗     |
  </Accordion>

  <Accordion title="Store Setup">
    | Feature                                |        Supported       |
    | -------------------------------------- | :--------------------: |
    | Real-time availability updates         |            ✓           |
    | Stock counts                           | ✓ (**Sync Inventory**) |
    | Pause and resume the store from Stream |            ✓           |
    | Floor plan sync                        |            ✗           |
    | Multi-site support                     |            ✓           |
  </Accordion>
</AccordionGroup>

## Related Guides

<CardGroup cols={2}>
  <Card title="POS Integrations Overview" icon="cash-register" href="/docs/guides/integrations/pos/overview">
    Compare Stream with storekit's other POS integrations
  </Card>

  <Card title="Order Injection" icon="arrow-right-to-bracket" href="/docs/guides/integrations/pos/order-injection">
    How order injection works across POS providers
  </Card>

  <Card title="POS Menu Sync" icon="rotate" href="/docs/guides/menu/pos-menu-sync">
    General menu-sync behaviour and limits
  </Card>

  <Card title="Availability & Snoozing" icon="moon" href="/docs/guides/menu/availability-snoozing">
    How POS-managed availability shows in storekit
  </Card>
</CardGroup>


## Related topics

- [Connecting Stream](/docs/guides/integrations/pos/stream/connect.md)
- [Stream Orders](/docs/guides/integrations/pos/stream/orders.md)
- [Stream Troubleshooting](/docs/guides/integrations/pos/stream/troubleshooting.md)
- [Stream Menu Sync](/docs/guides/integrations/pos/stream/menu-sync.md)
- [Stream Stock & Availability](/docs/guides/integrations/pos/stream/stock-and-availability.md)
