> ## 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.

# TISSL

> Connect TISSL POS to storekit for order injection and pay-at-table using manual product linking. Send online orders directly to your existing TISSL tills.

TISSL integration enables automatic order injection to your TISSL POS and full pay-at-table functionality. Unlike menu sync integrations, TISSL uses manual product linking via Product IDs (PLUs) - you build your menu in storekit and link products to their TISSL counterparts.

## Prerequisites

Before setting up TISSL:

* Active TISSL POS system
* TISSL API Key
* TISSL Organisation ID
* List of Product IDs for your menu items
* Admin access to your storekit dashboard

<Note>
  Contact TISSL support to obtain your API Key and Organisation ID. These are required for the integration.
</Note>

## Setting Up the Connection

### Step 1: Connect TISSL

1. Go to **Store Settings > Integrations** in your storekit dashboard
2. Find **TISSL** and click **Connect**
3. Enter your TISSL credentials:
   * **API Key** - Your TISSL API authentication key
   * **Organisation ID** - Your TISSL organisation identifier
4. Click **Connect**

storekit verifies the credentials by checking your TISSL live status before saving.

### Step 2: Select Your Site

After authentication:

1. storekit can fetch available sites from your TISSL organisation
2. Select the site that matches this storekit venue
3. The Site ID is saved for order routing

### Step 3: Configure Integration Settings

Configure the required TISSL settings:

| Setting                  | Description                             |
| ------------------------ | --------------------------------------- |
| **Order Type**           | TISSL order type for online orders      |
| **Payment Type**         | Payment type for paid orders            |
| **Course**               | Default course for all items            |
| **Delivery Fee Product** | Product ID for delivery charges         |
| **Discount Product**     | Product ID/name for discount line items |
| **Service Charge**       | Service charge amount or percentage     |

<Warning>
  The Order Type, Payment Type, Course, and product IDs must exist in your TISSL system. Verify these settings before going live.
</Warning>

### Step 4: Link Products

For each product in your storekit menu:

1. Go to **Menu** and select a product
2. Find the **POS ID** field
3. Enter the exact Product ID from TISSL
4. Save the product

Repeat for all products and modifiers.

## How Product Linking Works

TISSL uses **manual linking** - products aren't synced automatically:

1. You create your menu in storekit
2. You enter the TISSL Product ID for each item
3. When orders are placed, storekit sends the Product IDs
4. TISSL matches IDs to products and processes the order

This gives you complete control over online menu presentation while maintaining POS compatibility.

### Linking Modifiers

Modifiers require both Product ID and Group ID:

1. Go to your modifier groups in storekit
2. For each modifier group, enter the TISSL **Group Name/ID**
3. For each modifier option, enter the TISSL **Product ID**
4. Save changes

storekit sends modifiers in the format TISSL expects:

* `modifierGroups`: Array of group names
* `modifiers`: Array with group name and modifier name pairs

## Order Injection

When a customer places an order, storekit sends it to TISSL's `/order` endpoint.

### Order Channels

| Fulfillment | TISSL Channel   |
| ----------- | --------------- |
| Dine-in     | Pay At Table    |
| Pickup      | Click & Collect |
| Delivery    | Delivery        |

### What TISSL Receives

Each order includes:

* Organisation ID and Site ID
* External order ID (storekit order ID)
* Order description (order code or table number)
* Customer count
* Order type
* Service charge settings
* All items with:
  * Product ID
  * Quantity
  * Gross and net prices
  * Course assignment
  * Item notes
  * Modifier groups and modifiers
* Payment items (for non-cash orders)
* Customer details with address
* Order notes

### Pre-Order Buffering

For scheduled orders, you can enable buffering:

* **Buffer Orders** - Enable to delay order injection
* Orders are held until closer to the fulfillment time
* Jitter is added to prevent simultaneous orders failing

<Info>
  TISSL can drop simultaneous orders for the same amount. The jitter (randomised delay based on order ID) helps prevent this.
</Info>

### Delivery Fee & Discounts

When applicable, storekit adds line items for:

* **Delivery fee**: Uses the configured Delivery Fee Product ID
* **Discounts**: Uses the configured Discount Product ID with negative price

### Add to Existing Bill

For dine-in orders, storekit checks for an existing bill on the table:

* If found, the order is added to the existing bill
* If not, a new bill is created

Configure **All Orders Add To Bill** to control this behaviour.

## Pay at Table

TISSL supports full pay-at-table integration:

### How It Works

1. Customer scans QR code at table
2. storekit fetches the open bill from TISSL via `/order/table/{tableId}/{orgId}/{siteId}`
3. Customer views items and selects what to pay
4. Payment is processed and sent to TISSL via `/order/payment`
5. Bill status syncs in real-time

### Bill Synchronisation

storekit keeps bills in sync with TISSL:

* Items added/removed in TISSL update automatically
* Payments made at the POS are tracked
* Bills moved between tables are followed
* Service charges and discounts sync correctly
* Tax lines are synchronised per item

### Configuration

| Setting                    | Description                                |
| -------------------------- | ------------------------------------------ |
| **Payment Type**           | Payment type for storekit payments         |
| **Ignore Free Items**      | Don't show zero-price items on the bill    |
| **Auto-close Bills Delay** | Time before checking if bill is fully paid |

## Table Sync

Fetch your table layout from TISSL:

1. Go to **Store Settings > Tables**
2. Click **Sync from TISSL**
3. Trading zones and places are imported as areas and tables

Tables include:

* Zone/area name and ID
* Table name and ID
* Capacity
* Active status

## Integration Settings Reference

| Setting                    | Description                         | Default                |
| -------------------------- | ----------------------------------- | ---------------------- |
| **Order Type**             | TISSL order type object             | Required               |
| **Payment Type**           | Payment type for online orders      | Required               |
| **Course**                 | Default course for items            | No Course              |
| **Delivery Fee**           | Product for delivery charges        | Required for delivery  |
| **Discount**               | Product/name for discounts          | Required for discounts |
| **Service Charge**         | Amount or percentage                | 0                      |
| **Buffer Orders**          | Delay pre-order injection           | false                  |
| **Remove Email**           | Don't send customer email           | false                  |
| **All Orders Add To Bill** | Add dine-in orders to existing bill | false                  |
| **Ignore Free Items**      | Hide free items in bill view        | false                  |
| **Order Note Template**    | Custom template for order notes     | None                   |

## Testing Your Integration

### Pre-Launch Checklist

1. **Connection**
   * [ ] API Key and Organisation ID verified
   * [ ] Site selected correctly

2. **Configuration**
   * [ ] Order Type exists in TISSL
   * [ ] Payment Type configured
   * [ ] Course assigned
   * [ ] Delivery Fee product created (if using delivery)
   * [ ] Discount product created (if using discounts)

3. **Product linking**
   * [ ] All products have TISSL Product IDs
   * [ ] All modifiers have Product IDs
   * [ ] Modifier groups have Group Names

4. **Order flow**
   * [ ] Place test order
   * [ ] Verify items appear correctly in TISSL
   * [ ] Check modifiers display properly
   * [ ] Confirm prices match

5. **Pay at table** (if using)
   * [ ] Tables synced
   * [ ] Open bill in TISSL
   * [ ] View bill via storekit
   * [ ] Complete test payment

## Troubleshooting

### Connection Failed

* Verify API Key is correct and active
* Check Organisation ID matches your account
* Confirm TISSL system is online (live status check)

### Orders Not Appearing

* Verify integration is enabled
* Check Site ID is correct
* Review order in dashboard for error messages
* Confirm Order Type and Payment Type exist in TISSL

### Missing Items

* Check Product IDs are entered correctly
* Verify products exist in TISSL
* Items without Product IDs are skipped with a warning

### Modifier Issues

* Ensure modifier groups have Group Names/IDs
* Verify modifier Product IDs exist in TISSL
* Check modifier group association

### Wrong Prices

* Prices are calculated including modifiers
* Verify tax settings match (storekit sends gross and net)
* Check service charge configuration

### Pay at Table Errors

* **"no\_open\_bills"**: No active bill on that table in TISSL
* **"already\_exists"**: Bill already processed/closed
* Check table POS ID matches TISSL table ID

## Limitations

With TISSL integration:

* **No automatic menu sync**: Build menu in storekit, link to TISSL IDs
* **No real-time stock sync**: Availability managed in storekit
* **Manual product mapping**: Maintain ID mappings for all items

For further assistance, [contact support](/getting-started/contact-support).

## Supported Features

<AccordionGroup>
  <Accordion title="Menu Sync">
    | Feature                | Supported |
    | ---------------------- | :-------: |
    | Automatic menu sync    |     ✗     |
    | Manual product linking |     ✓     |

    TISSL uses manual product linking. Create your menu in storekit and enter the TISSL Product ID for each item.
  </Accordion>

  <Accordion title="Orders">
    | Feature                    | Supported |
    | -------------------------- | :-------: |
    | Order injection            |     ✓     |
    | Pre-orders                 |     ✓     |
    | Order buffering            |     ✓     |
    | Basket validation          |     ✗     |
    | Auto-snooze sold out items |     ✗     |
    | Discounts                  |     ✗     |
    | Tips                       |     ✗     |
    | Service charge             |     ✗     |
    | Custom order notes         |     ✗     |
    | Delivery details           |     ✓     |
  </Accordion>

  <Accordion title="Pay at Table">
    | Feature                     | Supported |
    | --------------------------- | :-------: |
    | Live bill sync              |     ✓     |
    | Apply payments to bill      |     ✓     |
    | Split payments              |     ✓     |
    | Track POS terminal payments |     ✓     |
    | Add to existing bill        |     ✓     |
  </Accordion>

  <Accordion title="Venue Setup">
    | Feature                 | Supported |
    | ----------------------- | :-------: |
    | Floor plan sync         |     ✓     |
    | Real-time stock updates |     ✗     |
    | Multi-site support      |     ✓     |
  </Accordion>
</AccordionGroup>
