Checkout Settings
The Checkout Settings page (WP Admin > POS > Settings > Checkout) controls which payment gateways appear in the POS, how orders are processed, and which notification emails fire for POS sales.
Email Notifications
At the top of the page are three groups of email toggles — Admin emails, Customer emails, and Cashier emails — that control which WooCommerce notification emails are sent for POS orders, independently of your site-wide WooCommerce email settings.
See Email Notifications for the full reference, including per-email toggle defaults, the cashier-recipient model, common scenarios, and developer hooks.
Payment Gateways
This section lists all WooCommerce payment gateways installed on your site. Each gateway can be independently enabled or disabled for the POS.
| Column | Description |
|---|---|
| Default | Choose which gateway is pre-selected when a cashier opens the checkout |
| Gateway | The payment gateway name |
| Gateway ID | The WooCommerce gateway identifier (useful for developers) |
| Enabled | Toggle the gateway on or off for POS checkout |
| Order Status | The status a POS order is set to when it's paid with this gateway (see Order Status below) |
Each row also has a menu (⋮) with POS settings — change the gateway's POS-only Title and Description — and WooCommerce settings, which deep-links to the gateway's full settings in WooCommerce.
Enabling a Gateway
- Find the gateway in the list
- Toggle the Enabled switch on
- The gateway will appear at POS checkout on the next page load
In the free version only the built-in Cash and Card gateways are editable. Enabling other installed WooCommerce gateways for the POS requires WCPOS Pro.
Reordering Gateways
Drag gateways to change their display order in the POS checkout. Use the Default column to pick which gateway is pre-selected when a cashier opens the checkout modal.
POS vs Online Store
Gateway settings here are independent of your WooCommerce payment settings. A gateway can be:
- Enabled for POS, disabled online — useful for cash payments which don't apply to web orders
- Enabled online, disabled for POS — useful for gateways like PayPal that aren't practical for in-person sales
- Enabled for both — the gateway works everywhere
A gateway must first be installed and active in WP Admin > WooCommerce > Settings > Payments before it appears in the POS checkout settings list. If a gateway is missing, check that the plugin is installed and the gateway is enabled in WooCommerce.
Order Status
Order status is set per gateway, from the Order Status column in the gateways table — so a sale can resolve differently depending on how it was paid:
- Cash and Card default to Completed, since payment is collected at the point of sale.
- Gateways where the money arrives later — such as BACS (direct bank transfer) or Cheque — default to On hold.
Pick any WooCommerce order status for each gateway. (Older versions used a single global default; that value was migrated onto each gateway when you upgraded.)
Prevent Overselling
The Prevent overselling toggle stops POS sales of items that don't have enough stock. It is off by default — until you enable it, checkout behaves exactly as before.
WooCommerce's REST API doesn't validate stock when orders are created, so a busy till (or a stale product list) could sell more units than you have. With the toggle on, WCPOS checks stock in two places:
- At the till — the cashier can't add an item to the cart (or raise its quantity) beyond the available stock. The POS shows the quantity that is available, e.g. "Only 3 available for Hoodie – Blue, M".
- At checkout, on your server — the order itself is validated before payment completes. Even if the till's local data was out of date, an order that would oversell is rejected and the cashier is shown exactly which items are short and how many are available. The POS then refreshes stock for those items so the cart can be corrected with accurate numbers.
Open carts are never blocked from syncing — validation only runs at the moment of checkout.
How stock is decided
| Product setup | Behavior when the toggle is on |
|---|---|
| Manages stock (a quantity is tracked) | Sales are limited to the stock quantity. Multiple cart lines of the same product count toward the same limit. |
| Variation tracks its own stock | The limit applies per variation. |
| Variation uses the parent's stock | All of that product's variations share the parent's quantity. |
| Doesn't manage stock | The product's stock status decides: Out of stock can't be sold; In stock and On backorder can. |
Backorders still win
Per-product backorder settings take priority — this is how you allow overselling for specific products while the toggle is on:
- Do not allow — sales stop when stock runs out (this is what the toggle enforces).
- Allow — the product can always be sold, even below zero stock.
- Allow, but notify customer — the product can always be sold; the cashier sees a "will be backordered" note when a sale dips below available stock.
Prevent Overselling vs. "Show out of stock"
These two settings are independent:
- Prevent overselling (this page) controls whether out-of-stock items can be sold.
- Show out of stock products (a display setting in the POS product panel) controls whether out-of-stock products and variations are visible. When hidden, out-of-stock variations disappear from product lists and their options grey out in the variations popup.
You can show out-of-stock items for visibility while Prevent overselling blocks their sale — the cashier sees the item with an Out of Stock badge and a disabled add-to-cart.
Changing the toggle reaches open POS sessions the next time a cashier logs in or the app revalidates — the server-side check applies immediately.
Related Documentation
- Email Notifications — per-email toggles for admin, customer, and cashier notifications
- Payment Methods — overview of available gateways
- Checkout — the POS checkout experience
- Variations — how variation stock appears in the product panel
- Custom Gateways — building custom payment integrations