---
title: "POS — Bring Your Own Device | Commerce Engine"
description: "Bring your desktop, Android or iOS device to CE POS. Scanners connect over USB or Bluetooth; printers over USB, Bluetooth, Wi-Fi or Ethernet, with the drawer."
canonical_url: "https://www.commercengine.io/features/pos"
---

> Commerce Engine site index: https://www.commercengine.io/llms.txt

# POS & Omnichannel

Commerce Engine POS turns your desktop, tablet or phone into a connected point of sale. Keep the hardware you know, and run the counter on the same catalogue, customers, offers and orders as your online store.

## Devices and platforms

CE POS works across desktop, Android and iOS, with no proprietary hardware to buy. Sign in on a device and it becomes the till.

- **Desktop**: Runs in the desktop browser, with a full-size view of products and the current sale. Bluetooth scanners and receipt printers connect from the browser.
- **Android**: A native app for tablets and phones. Connect a scanner over USB or Bluetooth, and a receipt printer over USB, Bluetooth, Wi-Fi or Ethernet.
- **iOS**: A native app for iPad and iPhone. Connect a scanner over Bluetooth, and a receipt printer over Bluetooth, Wi-Fi or Ethernet.

Device and accessory compatibility depends on your setup. Talk to us about the devices you plan to use.

**Docs:** [POS overview](https://www.commercengine.io/docs/pos/overview)

## Scanners, receipt printers and cash drawers

Add the parts that finish the sale: scan an item, print a receipt, open the drawer.

- **Barcode scanner**: Connects over USB or Bluetooth and types like a keyboard: scan an item and it lands in the sale with the right SKU, variant and price.
- **Receipt printer**: ESC/POS printers connect over USB, Bluetooth, Wi-Fi or Ethernet, so every customer leaves with a record of the sale.
- **Cash drawer**: Opens through the receipt printer's drawer port after a cash sale, with no separate connection to set up.
- **Connections by platform**: Desktop browser: Bluetooth. Android app: USB, Bluetooth, Wi-Fi and Ethernet. iOS app: Bluetooth, Wi-Fi and Ethernet.

**Docs:** [POS overview](https://www.commercengine.io/docs/pos/overview)

## Selling at the counter

A sale at the till runs through a connected checkout, from the first scan to the receipt.

- **Find the item**: Scan a barcode or browse your catalogue, and add the exact product and quantity to the sale.
- **Apply offers**: Eligible promotions and coupons work with the POS cart.
- **Choose fulfilment**: Collect in store or arrange delivery, checking the available fulfilment options before the order is created.
- **Take payment**: Cash at the counter, or card and UPI with the customer scanning a QR code, through the payment methods and gateway configured for your store. Confirm the payment status, then hand over the receipt.

**See also:** [Shipping](https://www.commercengine.io/features/shipping.md), for click and collect and delivery from the store

## POS capabilities and API

The counter belongs to the same commerce system as your online store. Everything CE POS does sits on the public POS API.

- **Checkout and payments**: Create and edit POS carts against the store and the signed-in staff member, turn a cart into an order, and check the order's payment status before completing the sale.
- **Customer management**: Attach an existing customer to the sale, redeem their loyalty points or store credit against the cart, and remove them again if the customer changes their mind.
- **Promotions and discounts**: List live coupons and active promotions, evaluate coupons against the cart to see which apply and why others don't, and apply or remove a coupon with totals recalculated.
- **Catalogue and search**: Products, variants, SKUs and categories as the storefront sees them, with the same prices and media. Search matches on words or part of a code.
- **Attach and upsell**: Cross-sell, up-sell and similar-product suggestions, so staff can offer an alternative when an item is out of stock.
- **Staff and devices**: Staff sign in with email, phone or WhatsApp and a one-time code against their store location, and the device is the till until they sign out. POS sessions are separate from storefront customer sessions.
- **Orders and fulfilment**: Get delivery and click-and-collect options together for the cart and pincode, set the cart's fulfilment preference, and create the order with it in place. Locations are flagged for what each can do: collect in store, ship parcels, receive stock.

API endpoints:

- `POST /pos/carts`
- `POST /pos/carts/{id}/items`
- `POST /pos/carts/{id}/update-customer`
- `POST /pos/carts/{id}/loyalty-points`
- `DELETE /pos/carts/{id}/loyalty-points`
- `POST /pos/carts/{id}/credit-balance`
- `GET /pos/carts/available-coupons`
- `GET /pos/carts/available-promotions`
- `GET /pos/carts/{id}/evaluate-coupons`
- `POST /pos/carts/{id}/coupon`
- `POST /pos/carts/fulfillment-options`
- `POST /pos/carts/{id}/fulfillment-preference`
- `POST /pos/orders`
- `GET /pos/orders/{order_number}/payment-status`
- `GET /pos/catalog/products`
- `POST /pos/catalog/products/search`
- `GET /pos/catalog/skus`
- `GET /pos/catalog/products/{product_id}/variants`
- `GET /pos/catalog/categories`
- `GET /pos/catalog/products/cross-sell`
- `GET /pos/catalog/products/up-sell`
- `GET /pos/catalog/products/similar`
- `GET /pos/locations`
- `POST /pos/auth/login/email`
- `POST /pos/auth/login/phone`
- `POST /pos/auth/login/whatsapp`
- `POST /pos/auth/verify-otp`

The POS app, the POS API and the `@commercengine/pos` TypeScript SDK are all available today.

**Docs:** [POS docs](https://www.commercengine.io/docs/pos/overview) · [POS API reference](https://www.commercengine.io/docs/api-reference/pos/overview) · [Create a POS order](https://www.commercengine.io/docs/api-reference/pos/create-pos-order) · [@commercengine/pos on npm](https://www.npmjs.com/package/@commercengine/pos)

**See also:** [Catalog & Inventory](https://www.commercengine.io/features/catalog.md) · [Customers & Loyalty](https://www.commercengine.io/features/customers-and-loyalty.md) · [Coupons & Promotions](https://www.commercengine.io/features/coupons-and-promotions.md)

## FAQ

### What hardware do we need to buy?

None, in most cases. CE POS runs in the browser on a desktop or laptop, and as native apps on Android and iOS — tablets and phones on both. If the shop already has a back-office PC, a tablet on a stand or a phone in a pocket, that is the till. There is no proprietary hardware to buy and nothing to wait on.

**Open the app:** [CE POS](https://pos.commercengine.com/)

### Which accessories can we connect, and how?

Barcode scanners, receipt printers and cash drawers. Receipt printers (ESC/POS) connect over USB, Bluetooth, Wi-Fi or Ethernet. Barcode scanners connect over USB or Bluetooth and type into the sale like a keyboard. The cash drawer needs no connection of its own: it opens through the receipt printer's drawer port. USB is Android only; the desktop browser connects over Bluetooth, and the iOS app over Bluetooth, Wi-Fi or Ethernet.

### How does a device become a till?

Sign in, and it is one. Open CE POS on the device, sign in with your email, phone or WhatsApp and the one-time code, choosing the store location you are working from. That device is the till for that store until you sign out. Sign in on a different device tomorrow and that one is the till instead.

### How does POS authentication differ from the storefront?

POS runs on its own authentication model: staff sessions tied to a store location, not storefront customer sessions. Storefront API keys and customer tokens must not be reused against POS endpoints. Staff sign in with email, phone or WhatsApp and verify an OTP.

### Is it the same catalogue and customer as the storefront?

Yes — one catalogue, one customer record, one promotion engine. Prices, media, categories and variants come from the same source the storefront reads, so there is no export, no nightly sync and no second set of prices to keep honest. Attach a customer to an in-store cart and their details and addresses come with them.

### Can customers collect in store, or have an in-store purchase delivered?

Yes. Any location can be a store, a warehouse or both. At the till, staff check delivery and click-and-collect options for the cart and pincode, take payment, and the order either waits at the counter for collection or ships from the location that has the stock.

### Do loyalty points and store credit work at the till?

Yes. Loyalty points and credit balance can be redeemed against an in-store cart and removed again, using the same balances the storefront reads. Coupons can be listed, evaluated, applied and removed, and automatic promotions are evaluated against the cart.

### Which payment methods can an in-store order take?

Cash at the counter, or card and UPI with the customer scanning a QR code — through the payment methods and gateway configured for your store. The payment status is recorded on the order, so staff can confirm it before handing over the receipt.

### Which plans include POS?

Every paid plan. Startup covers up to two shop locations, and Growth and Enterprise cover as many as you open. The Free plan sells online only. [Compare plans](https://www.commercengine.io/pricing.md)

### Can we build our own counter instead?

Yes. Everything CE POS does sits on the public POS API, available as the @commercengine/pos TypeScript SDK — generated from the dedicated POS OpenAPI spec with the same tooling as the storefront SDK. Teams with an existing in-store application can build against it directly rather than adopting the app.

## Related

- [Catalog & Inventory](https://www.commercengine.io/features/catalog.md): One catalogue and one stock count, online and in store.
- [Customers & Loyalty](https://www.commercengine.io/features/customers-and-loyalty.md): Points and customer records shared with the storefront.
- [Coupons & Promotions](https://www.commercengine.io/features/coupons-and-promotions.md): The same offers at the till.
- [Shipping](https://www.commercengine.io/features/shipping.md): Click and collect, and delivery from any location.
- [Payments](https://www.commercengine.io/features/payments.md): Split payments in cash and UPI on one order.

## Get started

Bring the devices you already know. Connect your counter to Commerce Engine and find the right POS setup for your store.

- [Talk to us about POS](mailto:support@commercengine.io)
- [Explore the POS docs](https://www.commercengine.io/docs/pos/overview)
- [Open CE POS](https://pos.commercengine.com/)
