# Barcode Scanners

WCPOS scans barcodes on every platform — with the device **camera**, with an ordinary **keyboard-mode** scanner, or over a **direct connection** to a USB or Bluetooth scanner. Most scanners work the moment you plug them in or pair them; the pages below cover guided setup, how scanning behaves at the till, and how to fine-tune detection.

## Ways to scan[​](#ways-to-scan "رابط مباشر إلى Ways to scan")

* **Camera** — available on web, desktop, iOS, and Android. Open the camera from the scan icon in the search bar; it appears as a resizable panel below the filters so the product list stays in view. No extra hardware required.
* **Keyboard mode (HID)** — the factory default on almost every scanner. The scanner "types" the barcode and WCPOS recognises the fast keystrokes. Nothing to configure — plug in or pair and scan.
* **Direct connection** — for scanners switched into a serial or POS mode: USB serial and HID-POS (via the browser's Web Serial and WebHID support), Bluetooth SPP, and Bluetooth LE over a vendor GATT service. Direct connections deliver every scan straight to WCPOS regardless of typing speed, keyboard layout, or which field is focused. Supported in the Desktop app and Chrome-based browsers; the Desktop app shows a device chooser inside the app.

## Get started[​](#get-started "رابط مباشر إلى Get started")

[Scanner Setup WizardAnswer a few questions and we'll walk you through connecting your scanner — and help you fix it if a scan doesn't come through.](/ar/hardware/scanners/setup-wizard.md)

[How scanning worksWhat happens when a barcode is detected, camera scanning, scan sounds, and the online fallback for unknown barcodes.](/ar/pos/product-panel/barcode-scanning.md)

[Barcode settingsTune detection so fast typing doesn't register, strip a scanner's prefix/suffix, test a scan, and turn on scan sounds.](/ar/settings/store/barcode.md)

[Barcode fieldChoose which product field holds the barcode — the GTIN field by default, or SKU or a custom meta key.](/ar/settings/wp-admin/general.md#barcode-field)

Which field is the barcode?

WCPOS matches scans against a single configured barcode field, which defaults to WooCommerce's GTIN field (`_global_unique_id`). You can point it at `_sku` or any custom meta key in [Settings](/ar/settings/wp-admin/general.md#barcode-field); changing it rebuilds the local barcode index automatically.
