# Scan Barcodes

Scan a barcode and the product goes straight into the cart. Almost every scanner works out of the box, because it types the code like a very fast keyboard and WCPOS tells a scan from typing by that speed. No scanner? Use the [camera](#camera-scanning).

## Scan a product[​](#scan "Scan a product으로 직접 링크")

Using the camera? Open the register if your store uses one, then follow [Scan with the camera](#camera-scanning). With a scanner:

1. Pair or plug in your scanner ([Connect a scanner](#connection-modes)).

2. If your store uses registers, [open the register](/ko/sell/open-register.md#open) first: while it's closed, nothing goes in a cart.

3. Put the cursor where your device needs it:

   <!-- -->

   * **Web browser or desktop app:** click or tap outside any text field.
   * **WCPOS app on iPad, iPhone or Android:** tap **Search products**.

4. Scan.

Why the cursor matters

A scanner in keyboard mode types the code like a keyboard would.

In a web browser or the desktop app, a blank part of the screen works, on any device. While a text field has the cursor, the search box included, WCPOS leaves the keys there as typing.

In the WCPOS app, **Search products** is where the scanner's keys arrive. A scanner you've [registered on Android](#android) works wherever the cursor is.

[Nothing happens, or the code appears as typing?](#goes-wrong)

![A scan has added a jacket to the cart: the Added to cart message, an empty search field and the new line in the cart](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-1-scan-added.png)123

1. **Added to cart** — shows for a moment with the name of what went in, so you don't need to look at the cart. For a variation, the name is its options, here **XS, Gray**.
2. **Search** — empty again after the scan, on every device, ready for the next one.
3. **The new line** — the size and colour scanned. Scan the same code again to add another.

In a browser or the desktop app, you can scan anywhere in the POS, the cart and checkout included.

A code shorter than **Barcode Minimum Length** (8 to start with) can't be added; see [Detection settings](#configuring-barcode-scanning).

참고

While you're [counting the drawer](/ko/sell/open-register.md#close), scans are refused until the count is done.

On the **Products** and **Orders** screens, a scan goes into that screen's search box instead, so you can scan a product to find it or its orders.

### What WCPOS looks for[​](#what-matches "What WCPOS looks for으로 직접 링크")

WCPOS first looks on this device for a product or variation whose barcode matches. If nothing does, it asks your store (**Searching store…**). When your store finds the product, WCPOS adds it to the cart. Which field counts as the barcode is set in [Barcode Field](/ko/settings/general.md#barcode-field).

SKU, GTIN, UPC, EAN and ISBN codes

Besides the [Barcode Field](/ko/settings/general.md#barcode-field), a product's SKU and its GTIN, UPC, EAN or ISBN field always work too, on this device and at your store.

12-digit and 13-digit barcodes

A 12-digit UPC-A code matches its 13-digit EAN form and back, so a package printed with 12 digits still finds a product saved with the leading zero.

A product found in your store

A product found in your store is downloaded to this device before it's added, so the next scan doesn't need the store. A new device fills in the rest of your catalogue on its own; see [Product Synchronisation](/ko/manage-store/products/product-sync.md).

## What the screen says[​](#messages "What the screen says으로 직접 링크")

A scan that can't add exactly one product tells you why, in a message at the top that stays for six seconds.

![A scan of an unknown code: the Barcode not found message, the code left in the search field and an empty product list](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-2-not-found.png)12

1. **Barcode not found** — with the code that was read: not in this store, locally or online.
2. **The code** — left in the search field, so you can check what the scanner read. The list shows nothing until you clear it with the cross at the end of the field.

If the code stays in **Search products**, clear it with the cross at the end of the field to see your products again. To see what to do, open the heading below that matches the message on your screen:

Barcode not found

Nothing on this device or in your store has this code. Check the code in the search field against the product. If it's right, add the barcode to the product in WooCommerce.

Several matches

More than one product has this code, and the code is left in the search field. Pick the right one from the results, then give each product its own barcode.

Choose a variation

The code belongs to a variable product, not one of its options, and it's left in the search field. Pick the option from the results. Give each variation its own barcode to scan it straight in.

… out of stock

The product matched but has no stock. It's refused while **Show out-of-stock products** is off; see [Display Settings](/ko/sell/find-products/product-display.md#show-out-of-stock-products).

Scanning unavailable

*Not on this device, and the store can't be searched while offline*: the store can't be reached, and the code is left in the search field. Press **View status** to see [Store health](/ko/troubleshooting/store-health.md#database), and scan again when you're back online.

*Local database unavailable*: the POS can't read its own database. Reload the app before taking more sales.

Lookup failed

Your store didn't answer within ten seconds, or answered with an error. The code is left in the search field. Check your connection and scan again.

Couldn't add to cart

The product matched but adding it failed. Scan again, or tap the product.

## Scan with the camera[​](#camera-scanning "Scan with the camera으로 직접 링크")

If your device has a camera, you can scan with it, without a separate scanner. Press the scan button beside the search field. The camera opens as a panel below the filters, so the product list stays in view.

![The camera panel below the filter bar, asking for camera access with an Allow camera button](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-3-allow-camera.png)12

1. **Scan** — opens the camera panel. Press it again to close it.
2. **Allow camera** — the first time, WCPOS asks for the camera. Press it, then allow the camera in the prompt that follows.

Hold a barcode in front of the camera. When it's read, the panel's border flashes green and the scan goes through exactly like one from a scanner, with the same [messages](#messages). It's added once, however long you hold it there. To add another, take it out of view for a moment, then show it again.

If the camera can't start, the panel says why in its status line. Here it found no camera it could use:

![The camera panel close up, with the message Camera unavailable — check that no other app is using it](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-4-camera-unavailable.png)123

1. **Status** — what the camera is doing, along the bottom of the camera view. Once the camera starts, the black area above it shows the camera's picture.
2. **Resize** — drag to make the camera view taller or shorter. WCPOS remembers the height on this device.
3. **Close** — closes the panel.

To see what to do, open the heading below that matches the status in the panel:

Starting camera…

Wait a moment.

WCPOS needs camera access to scan barcodes.

Press **Allow camera**. If you refused before, the prompt may not come back: allow the camera for WCPOS in your browser's site settings or your device's settings, then open the panel again.

Camera unavailable — check that no other app is using it.

Close the other app or tab using the camera, or check that a camera is connected.

Barcode decoding is failing — close the scanner and try again.

Close the panel with **Close** and open it again with the scan button.

A note under the status warns you when a scan may not find everything:

* **Offline — only products already on this device will scan.** Other products scan once you're back online.
* **Sync is still starting — some products may not be found yet.** Wait a moment and scan again. If the note stays, check [Store health](/ko/troubleshooting/store-health.md#database).
* **Local database unavailable — reload the app to restore scanning.** Reload the app, then scan again.

## Scan sounds[​](#sounds "Scan sounds으로 직접 링크")

A sound on every scan lets you keep your eyes on the customer. Turn on **Play a sound on scan** in **Settings** → **Barcode Scanning**, under **Sound**. It's off to start with, and it's saved on this device only, so each till can have its own.

Choose and test scan sounds

![The Sound section of Barcode Scanning settings with Play a sound on scan turned on: three sound themes with preview buttons, Volume, Success sound and Failure sound](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-6-sound-options.png)123

1. **▶** — plays a theme's success sound.
2. **▶✕** — plays its failure sound.
3. **Volume ▶** — plays the success sound at the volume you've set.

* **Play a sound on scan** — the switch at the top. It turns sounds on and opens the options below it.
* **Sound theme** — **Classic** (bright rising blip / low buzz), **Checkout** (supermarket-style flat beep / double low tone) or **Soft** (gentle chime / muted knock, for quiet shops).
* **Volume** — drag the slider.
* **Success sound** — plays when a product goes into the cart.
* **Failure sound** — plays for every other message in [What the screen says](#messages). **Searching store…** is silent.
* **Failure vibration** — on iPhone, iPad and Android only. The device vibrates on a failure, with the failure sound or on its own if **Failure sound** is off. It needs **Play a sound on scan** on.

## Detection settings[​](#configuring-barcode-scanning "Detection settings으로 직접 링크")

The **Scanning** section of the same screen decides what counts as a scan. Most stores never change it. If scans land as typing or short codes are refused, run **Barcode Scanning Test** there: it times your scanner and suggests values. See [Barcode settings](/ko/hardware/barcode-scanners/scanner-settings.md).

![Settings, Barcode Scanning: the Scanning section with the threshold at 24, minimum length at 8 and empty prefix and suffix, above the Sound, Scanner and Barcode Scanning Test sections](/img/2.x/pos/product-panel/barcode-scanning/en/tablet-light-regular--bs-5-detection-settings.png)1234

1. **Barcode Average Time Input Threshold (ms)** — how fast the keys must come to count as a scan.
2. **Barcode Minimum Length** — shorter codes are never added.
3. **Barcode Scanner Prefix** — a single character your scanner adds before the code, removed before the lookup. Leave it empty unless your scanner is set to add one.
4. **Barcode Scanner Suffix** — the same for a single character added after the code.

What each detection setting does

| Setting                                       | What it does                                                                                       | To start with |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------- | ------------- |
| **Barcode Average Time Input Threshold (ms)** | When the average gap between keys is under this, the keys count as a scan. Slower keys are typing. | 24            |
| **Barcode Minimum Length**                    | Shorter codes are never added. Set it to your shortest barcode.                                    | 8             |
| **Barcode Scanner Prefix**                    | One character your scanner adds before the code, removed before the lookup.                        | Empty         |
| **Barcode Scanner Suffix**                    | One character your scanner adds after the code, removed before the lookup.                         | Empty         |

**A code shorter than Barcode Minimum Length:** if it looks like a scan, all digits or ending with Enter, WCPOS shows **Barcode scanned** with **Barcode must be at least 8 characters long**, at most once every 30 seconds. A short burst of letters is taken for fast typing and left alone.

## Connect a scanner[​](#connection-modes "Connect a scanner으로 직접 링크")

Almost every scanner arrives in keyboard mode, and in keyboard mode it needs no setup: pair or plug it in and scan. That is right for most stores. For a guided path through setup or troubleshooting, use the [Scanner Setup Wizard](/ko/hardware/barcode-scanners/scanner-setup-wizard.md).

A direct connection can help if scans contain the wrong characters, such as capitals and symbols mixed up by a keyboard layout, or if you need to scan while the cursor is in a text field.

Connect a scanner directly (advanced)

A directly connected scanner is recognised by the device itself, not by typing speed, keyboard layout or focus. Every barcode scanner ships in one of a few modes, and the mode decides how WCPOS receives its scans:

| Mode                                                            | How it arrives                                                       | Setup                                                                                                                                                                                                                   |
| --------------------------------------------------------------- | -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Keyboard (HID)**, the factory default on almost every scanner | The scanner types the code; WCPOS recognises the fast keys           | None: pair or plug it in and scan                                                                                                                                                                                       |
| **HID-POS**                                                     | A direct USB connection                                              | Switch the scanner's mode, then **Connect over USB**                                                                                                                                                                    |
| **Serial (SPP / USB-COM)**                                      | A direct serial connection over Bluetooth or USB                     | Switch the scanner's mode, then **Connect over Bluetooth serial**. A Bluetooth scanner that isn't listed may use its own service UUID: add it under **My scanner isn't in the list**.                                   |
| **Bluetooth LE**                                                | A direct Bluetooth Low Energy connection, in the iPhone and iPad app | Remove the scanner from your device's Bluetooth settings and don't pair it again, then press **Connect Bluetooth scanner**. It connects to the first Bluetooth LE scanner it finds, so keep any other one switched off. |

The connect buttons are in **Settings** → **Barcode Scanning** → **Scanner** → **Connect a scanner directly (advanced)**.

A scanner in keyboard mode can't be connected directly

Your device treats a keyboard-mode scanner exactly like a keyboard, and no app is allowed to take over a keyboard. If your scanner doesn't appear in the list after you press a connect button, it is almost certainly still in keyboard mode.

**To switch modes**, find the setup barcode in your scanner's manual (look for *"SPP mode"*, *"serial mode"* or *"HID-POS mode"*) and scan it. The scanner reconfigures itself. For a Bluetooth scanner, forget the old pairing in your device's Bluetooth settings and pair again after switching. Scanning the manual's *"HID"* or *"keyboard"* barcode switches it back at any time.

USB and Bluetooth serial connections work in the desktop app and Chrome-based browsers. The desktop app shows a device chooser inside the app; Chrome shows its own. The iPhone and iPad app connects to a Bluetooth LE scanner directly. Safari and Firefox have no direct connection: use keyboard mode or the camera.

### Register a scanner on Android[​](#android "Register a scanner on Android으로 직접 링크")

On Android, register a keyboard-mode scanner so you can scan wherever the cursor is, a text field included. **Barcode Minimum Length** still applies.

1. Pair or plug in the scanner.
2. In **Settings** → **Barcode Scanning**, in the **Scanner** section, tap **Register a scanner**, then **Register scanner**.
3. Scan any barcode with that scanner. WCPOS shows **Detected "…" — name it and save**.
4. Name it and tap **Save scanner**.

The scanner gets its own row marked **Registered**. Other keyboard-mode scanners still work without being registered. See [Register your scanner on Android](/ko/hardware/barcode-scanners/scanner-setup-wizard.md).

How Android scanner registration works

Android can't connect to a scanner directly, but it recognises a registered one by the device it comes from. Its scans are caught before they reach any text field, with no typing-speed guesswork.

## If something goes wrong[​](#goes-wrong "If something goes wrong으로 직접 링크")

* **Nothing happens when you scan** — in a web browser or the desktop app, click a blank part of the screen and scan again. In the WCPOS app for iPad, iPhone or Android, tap into the search box first. Then check the scanner in **Barcode Scanning Test**; see [Barcode settings](/ko/hardware/barcode-scanners/scanner-settings.md).
* **The code lands in the search box as typing** — in a web browser or the desktop app, the cursor was in the field: click a blank part of the screen and scan again. In the WCPOS app for iPad, iPhone or Android, keep the cursor in the search box. Either way, the scanner may be slower than **Barcode Average Time Input Threshold (ms)**: run the test and press **Apply** on its suggestion.
* **Barcode not found for a product you know** — check the [Barcode Field](/ko/settings/general.md#barcode-field) setting and the product's barcode in WooCommerce. A product marked online only never appears in the POS. On a new device, wait for the first sync to finish: **Store health → Database** shows its progress.
* **Scanning unavailable** — you're offline and the product isn't on this device yet. Check [Store health](/ko/troubleshooting/store-health.md#database).
* **The camera won't start** — see [the camera messages](#camera-scanning).

## F.A.Q.[​](#faq "F.A.Q.으로 직접 링크")

A product I just added to my store won't scan. Why?

WCPOS asks your store for any code it doesn't have on this device, so a new product scans as long as you're online. If you get **Barcode not found**, the store doesn't have that code either: check the product's barcode field in WooCommerce. If you get **Scanning unavailable**, you're offline; scan it again once you're back online.

Does the POS generate and print barcodes?

No, not at this time. WCPOS scans and reads existing barcodes, but it doesn't create or print them. To generate barcodes for your products, use a WooCommerce plugin that specialises in barcode creation and printing, for example:

* [EAN for WooCommerce](https://wordpress.org/plugins/ean-for-woocommerce/)
* [A4 Barcode Generator](https://wordpress.org/plugins/a4-barcode-generator/)

Then add each code to the product's barcode field, and it scans at the till.

## Related Documentation[​](#related-documentation "Related Documentation으로 직접 링크")

[ScannersChoose, pair and test a scanner](/ko/hardware/barcode-scanners.md)

[Barcode SettingsDetection settings and the scanner test](/ko/hardware/barcode-scanners/scanner-settings.md)

[Product PanelSearch, filters and adding products](/ko/sell/find-products.md)
