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

# Order Injection

> Learn how storekit injects online orders into your POS terminal automatically within seconds of checkout, eliminating double entry and re-keying for staff.

Order injection is the process of automatically sending online orders to your POS system. When a customer completes checkout, the order is transmitted to your POS within seconds, appearing on terminals and kitchen printers just like any other order.

## How Order Injection Works

```
Customer completes checkout
           ↓
    Payment processed
           ↓
  Order saved to storekit
           ↓
   Order sent to POS API
           ↓
  POS acknowledges receipt
           ↓
 Order appears on terminal
           ↓
  Kitchen ticket prints
```

The entire process typically completes in 2-5 seconds.

## Order Timing

When orders are injected depends on the fulfillment type and your configuration.

### ASAP Orders

Orders for immediate fulfillment are injected as soon as payment completes. The order appears in your POS right away.

### Pre-Orders / Scheduled Orders

For orders scheduled for a future time, injection timing depends on your settings:

| Setting                 | Behaviour                                      |
| ----------------------- | ---------------------------------------------- |
| **Immediate injection** | Order sent to POS right after payment          |
| **Delayed injection**   | Order sent X minutes before the requested time |

Delayed injection is useful if you don't want pre-orders cluttering your kitchen queue hours in advance.

<Tip>
  For busy kitchens, consider injecting pre-orders 15-30 minutes before the requested time. This gives enough prep time without overwhelming the queue.
</Tip>

## What's Included in Orders

Each order sent to your POS contains:

### Order Details

* Unique order ID
* Order timestamp
* Requested fulfillment time

### Items

* Product names and quantities
* Modifiers and customisations
* Item-level notes
* PLU/product codes (for linked integrations)

### Customer Information

* Name
* Phone number
* Email address

### Fulfillment Details

* Method (delivery, pickup, dine-in)
* Delivery address (if applicable)
* Table number (for dine-in)
* Special instructions

### Payment

* Payment status (paid/pending)
* Payment method
* Tip amount (if applicable)

## Error Handling

storekit is designed to handle POS communication failures gracefully.

### Automatic Retry

If the POS is temporarily unreachable:

1. storekit queues the order
2. Retries automatically with exponential backoff
3. Continues retrying until successful
4. Order eventually appears in POS

<Warning>
  If an order fails to sync after all retry attempts, you'll receive an email notification with the specific error reason, order details, and a direct link to view the order in your dashboard.
</Warning>

### Customer Experience

Orders always complete successfully for the customer, even if POS injection is delayed:

* Payment is processed
* Customer receives confirmation
* Order appears in storekit dashboard
* You can manually enter the order if needed

<Info>
  Customers are never affected by temporary POS issues. Their order is confirmed and you'll always have it in your storekit dashboard.
</Info>

### POS Connection Errors

If there's a persistent connection issue, customers may see a message asking them to contact staff. This only happens in specific scenarios like pay-at-table where POS connectivity is critical.

## Order Modifications

### Before POS Injection

If you need to modify an order before it's sent to the POS:

1. Find the order in your storekit dashboard
2. Make necessary changes
3. The modified order is sent to the POS

### After POS Injection

Once an order has been injected:

* Changes in storekit don't automatically update the POS
* Modify the order directly in your POS
* Process refunds through storekit if needed

## Integration-Specific Behaviour

Different POS integrations handle orders slightly differently.

### Zonal

* Orders appear as online orders in Aztec
* Full modifier support
* Discounts from Zonal loyalty are recorded
* Order notes appear on tickets

### Lightspeed K-Series

* Orders appear on your configured terminal
* Kitchen routing follows your Lightspeed setup
* Course assignments respected (if configured)

### TISSL (PLU-based)

* Products matched by PLU codes
* Ensure all products have valid PLUs
* Unmatched items may cause order failures

## Troubleshooting Order Injection

### Orders Not Appearing in POS

1. **Check integration status**: Verify the POS connection is active in Store Settings
2. **Check POS status**: Ensure your POS terminal is online
3. **Review order in dashboard**: Look for error messages on the order
4. **Check PLU codes**: For manual linking integrations, verify PLUs are correct
5. **Check email notifications**: If the order failed to sync, you'll receive an email with error details

### Delayed Orders

* Check your network connectivity
* Verify the POS API is responding
* Review any error messages in the dashboard

### Missing Items or Modifiers

* Ensure all products are mapped correctly
* Check modifier PLU codes (for TISSL/manual linking)
* Verify products exist in the POS

### Wrong Prices

* Check tax-inclusive vs tax-exclusive settings
* Verify prices match between systems
* Re-sync menu if using automatic sync

## Best Practices

### Test Before Going Live

Always test order injection thoroughly:

1. Place a test order with various items
2. Include modifiers and special requests
3. Verify everything appears correctly in the POS
4. Test different fulfillment methods

### Monitor Order Flow

* Regularly check that orders are flowing to POS
* Set up alerts for injection failures (if available)
* Review any failed orders promptly

### Keep Systems in Sync

* Sync menus regularly if using pull integrations
* Update PLU codes when adding new items
* Test after making menu changes

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