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

# Lightspeed K-Series

> Connect Lightspeed K-Series (formerly iKentoo) to storekit for full menu sync, order injection, real-time stock updates, floor plan sync, and pay at table.

Lightspeed K-Series (formerly iKentoo) is a full-featured POS integration offering bi-directional menu sync, automatic order injection, real-time stock updates, floor plan sync, and pay-at-table support.

## Prerequisites

Before connecting Lightspeed K-Series, ensure you have:

* Active Lightspeed K-Series subscription with API access
* Admin access to your storekit dashboard
* Your Lightspeed back office credentials

## Setting Up the Connection

### Step 1: Authorise storekit

The connection uses OAuth, so you'll authorise storekit to access your Lightspeed account:

1. Go to **Store Settings > Integrations** in your storekit dashboard
2. Find **Lightspeed K-Series** and click **Connect**
3. You'll be redirected to Lightspeed to log in and authorise access
4. After authorising, you'll return to storekit

### Step 2: Select Your Business Location

After authorisation, select which Lightspeed business location to connect:

1. storekit will display your available Lightspeed businesses
2. Select the business location that matches this venue
3. Click **Connect** to link the location

<Info>
  Each storekit venue connects to one Lightspeed business location. For multi-location setups, connect each venue separately.
</Info>

### Step 3: Sync Your Menu

Once connected, import your menu from Lightspeed:

1. Go to **Menu** in your dashboard
2. Click **Sync Menu**
3. Select which Lightspeed menu to import
4. Wait for the sync to complete

The sync imports:

* Categories (including subscreens optionally)
* Products with names, descriptions, and prices
* Menu deals and combo items
* Modifier groups and production instructions
* Allergen information
* Product images (from Lightspeed rich content)

### Step 4: Configure Integration Settings

Fine-tune how the integration behaves:

| Setting                | Description                                                      |
| ---------------------- | ---------------------------------------------------------------- |
| **Delivery Fee SKU**   | SKU for delivery charges (default: `STOREKIT_DELIVERY`)          |
| **Discount SKU**       | SKU for discounts (default: `STOREKIT_DISCOUNT`)                 |
| **Service Charge SKU** | SKU for service charges (default: `STOREKIT_SERVICE_CHARGE`)     |
| **Payment Method**     | Payment method code for online orders (default: `STOREKIT`)      |
| **Buffer Orders**      | Delay pre-order injection until closer to fulfillment time       |
| **Buffer Time**        | Minutes before pre-order time to inject the order                |
| **Native Discounts**   | Use Lightspeed discount codes instead of discount SKU line items |

<Warning>
  The SKUs must exist in your Lightspeed menu. Create items with these SKUs in Lightspeed before enabling the integration.
</Warning>

### Native Discount Codes

When **Native Discounts** is enabled, storekit sends discount codes directly to Lightspeed instead of adding a discount SKU line item. This requires:

1. Discount codes in storekit must have a **POS ID** field populated with the matching Lightspeed discount code ID
2. The Lightspeed discount code must be configured and active
3. The discount will be applied to all items in the order at the POS level

If a discount code doesn't have a POS ID or the Lightspeed discount code isn't found, storekit falls back to using the discount SKU line item.

<Tip>
  Native discounts provide better reporting in Lightspeed and ensure discounts are applied consistently with your POS discount rules.
</Tip>

## Menu Sync

### What Gets Synced

| Data                    | Synced                   |
| ----------------------- | ------------------------ |
| Categories              | Yes                      |
| Products                | Yes                      |
| Prices                  | Yes                      |
| Descriptions            | Yes (can be disabled)    |
| Images                  | Yes (can be disabled)    |
| Modifiers               | Yes                      |
| Production Instructions | Yes (as modifier groups) |
| Menu Deals              | Yes                      |
| Allergens               | Yes                      |
| Multi-language content  | Yes                      |

### Sync Options

**Preserve existing content:**

* **Don't update images** - Keep manually added images during sync
* **Don't update descriptions** - Keep manually edited descriptions

**Subscreens as categories:**
Enable this to treat Lightspeed subscreens as separate categories in storekit.

**Menu load account profile:**
Specify an account profile to load menu prices specific to online ordering.

**Preferred language:**
Select which language to use for product names when multiple translations exist.

### Manual vs Scheduled Sync

**Manual sync:** Trigger anytime from the Menu page after making changes in Lightspeed.

**Scheduled sync:** Set up automatic sync at specific times:

1. Go to **Store Settings > Integrations > Lightspeed K-Series**
2. Configure your sync schedule
3. Recommended: Schedule during quiet hours (e.g., 5am)

## Order Injection

When a customer places an order, it's automatically sent to Lightspeed.

### Order Types

| Order Type | Lightspeed Endpoint | Account Profile                    |
| ---------- | ------------------- | ---------------------------------- |
| Pickup     | To-Go Order         | Configurable (default: `storekit`) |
| Delivery   | To-Go Order         | Configurable (default: `storekit`) |
| Dine-in    | Local Order         | Configurable (default: `storekit`) |

### What Lightspeed Receives

Each order includes:

* All items with SKUs and prices
* Modifiers (as sub-items or modifier IDs)
* Customer name, email, phone
* Collection code (8 characters)
* Fulfillment time in order notes
* Delivery address (for delivery orders)
* Table number (for dine-in orders)
* Tips and service charges

### Pre-Order Buffering

For scheduled orders, you can control when they're injected:

* **Immediate injection**: Order sent to POS right after payment
* **Buffered injection**: Order sent X minutes before the requested time

This prevents pre-orders from cluttering your kitchen queue hours in advance.

<Tip>
  For busy venues, buffer pre-orders to inject 15-30 minutes before the requested time.
</Tip>

### Retry Logic

If Lightspeed is temporarily unreachable:

* storekit retries with exponential backoff (up to 6 retries)
* Retry timing adapts based on how far away the order is scheduled
* Failed orders trigger email notifications to your venue email address

<Info>
  Email notifications include the specific error reason, order details, and a direct link to view the order in your dashboard. This ensures you never miss an order that needs manual attention.
</Info>

## Real-Time Stock Updates

Lightspeed K-Series supports real-time inventory updates via webhooks:

1. When you mark an item as restricted or update stock in Lightspeed
2. Lightspeed sends a webhook to storekit
3. storekit updates availability immediately
4. Menu cache is cleared so customers see current availability

### Auto-Snooze on Order Failure

If an order fails due to a sales restriction (item unavailable), storekit automatically:

1. Snoozes the affected items until 8am the next day
2. Logs the snooze event with source `lightspeed`
3. Clears the menu cache
4. Prevents further orders for unavailable items

All auto-snooze events are tracked in the snooze report for visibility into stock issues.

## Floor Plan Sync

Sync your table layout from Lightspeed for dine-in and pay-at-table:

1. Go to **Store Settings > Tables**
2. Click **Sync from Lightspeed**
3. Areas and tables are imported with their Lightspeed IDs

Changes sync automatically:

* New areas and tables are created
* Renamed tables are updated
* Removed tables are archived

## Pay at Table

Lightspeed K-Series supports full pay-at-table integration:

### How It Works

1. Customer scans QR code at table
2. storekit fetches the open bill from Lightspeed
3. Customer views items and selects what to pay
4. Payment is processed and applied to the Lightspeed bill
5. Bill status updates sync in real-time

### Configuration

| Setting                      | Description                                             |
| ---------------------------- | ------------------------------------------------------- |
| **PAT Payment Method**       | Payment method code for table payments (default: `APM`) |
| **Gift Card Payment Method** | Separate payment method for gift card/loyalty payments  |
| **Ignore Free Items**        | Don't show zero-price items on the bill                 |
| **Auto-close Bills Delay**   | Time to wait before checking if bill is fully paid      |

### Bill Synchronisation

storekit keeps bills in sync with Lightspeed:

* Items added/removed in Lightspeed update automatically
* Payments made at the POS are reflected
* Bills moved between tables are tracked
* Service charges and discounts sync correctly

## Testing Your Integration

### Pre-Launch Checklist

1. **Menu sync**
   * [ ] All categories imported correctly
   * [ ] Products have correct names and prices
   * [ ] Modifiers appear on the right products
   * [ ] Images display (if using Lightspeed images)

2. **Order flow**
   * [ ] Place a test pickup order
   * [ ] Verify order appears in Lightspeed
   * [ ] Check items, modifiers, and notes are correct
   * [ ] Confirm collection code appears

3. **Stock updates**
   * [ ] Mark an item restricted in Lightspeed
   * [ ] Verify it hides from storekit menu within minutes

4. **Pay at table** (if using)
   * [ ] Open a bill in Lightspeed
   * [ ] Scan QR code to view bill
   * [ ] Complete a test payment
   * [ ] Verify payment appears in Lightspeed

## Troubleshooting

### Connection Expired

If you see authorisation errors:

* The refresh token may have expired
* Go to Store Settings > Integrations and re-authorise

### Menu Not Syncing

* Ensure the menu is published in Lightspeed
* Check products are active and assigned to categories
* Verify the correct menu is selected in storekit
* Check for sync errors in the dashboard

### Orders Not Appearing

* Verify integration is enabled (not just connected)
* Check the account profiles exist in Lightspeed
* Ensure required SKUs exist (`STOREKIT_DELIVERY`, `STOREKIT_DISCOUNT`, etc.)
* Review order in storekit dashboard for error messages

### Wrong Items on Orders

* Check SKUs match between systems
* Verify modifier groups are synced correctly
* For menu deals, ensure deal structure matches

### Stock Not Updating

* Verify webhooks are configured correctly
* Check the business location is added to the webhook
* Confirm item SKUs match between systems

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

## Supported Features

<AccordionGroup>
  <Accordion title="Menu Sync">
    | Feature                        | Supported |
    | ------------------------------ | :-------: |
    | Automatic menu sync            |     ✓     |
    | Lightweight sync (prices only) |     ✗     |
    | Product images                 |     ✓     |
    | Allergens                      |     ✓     |
    | Calories                       |     ✓     |
    | Nested modifiers               |     ✓     |
    | Subcategories                  |     ✓     |
    | Category availability hours    |     ✗     |
    | Portions / sizes               |     ✗     |
    | Courses                        |     ✗     |
    | Production instructions        |     ✓     |
    | Menu deals                     |     ✓     |
    | Multi-language content         |     ✓     |
    | Stock status                   |     ✓     |
  </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        |     ✗     |
    | Gift card payments          |     ✓     |
  </Accordion>

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