

Recording a sale: search on the left, the order on the right, with the channel it came in through, the customer and how they pay.
Dox POS adds a /pos page (/caja on a Spanish site) with its own sign-in screen. From there you search products with their photo and stock, record the sales that come in through WhatsApp or Instagram (each one is a WooCommerce order, so stock goes down on its own), put products on layaway while the customer pays, record the stock that arrives and keep the list of what has to be shipped.
It was born for the shop that sells through chat and ships by courier, where a phone is enough. If you also have a physical store, turn on the Counter: a till screen for a computer or a tablet with a barcode scanner, cash with the change worked out, receipts on any printer and opening and closing the till.
It follows the country of the store (WooCommerce > Settings > General): the payment methods it offers, the carriers it suggests and the default sales channels are the ones of that country, and where WhatsApp is not the norm (the United States, for instance) the messages to the customer open as text messages in the phone’s Messages app instead. Everything can be renamed, turned off or added to in WooCommerce > Dox POS > Sales.
The business assistant (today’s pending work, a store review, a chat, a forecast and a daily summary by email), the extras for a busy store (cashiers with a PIN, several tills, a Stripe card reader, a customer screen, direct printing to Star and Epson receipt printers with the cash drawer, and a fuller receipt editor) and the tools for international stores (writing each language’s text and creating products in every language from the register with Polylang, and selling in the currency and with the prices of a Price Based on Country zone) live in a separate add-on, Dox POS Pro. The register works fully without it.
The Counter’s camera scanner uses ZXing (zxing-js/library 0.21.3, Apache License 2.0) on browsers that cannot read barcodes on their own, such as Safari on the iPhone. It is bundled in assets/vendor/zxing with its license, loaded only when someone taps Camera, and never loaded from outside the site. Source code: https://github.com/zxing-js/library
The register can load its two fonts from Google Fonts (fonts.googleapis.com and fonts.gstatic.com). This is off by default: a fresh install uses the fonts of the phone or the computer and the plugin does not connect to any outside service.
If you turn on the “Load the fonts from Google Fonts” switch in WooCommerce > Dox POS > Brand, the browser of whoever opens the register requests those fonts from Google, which receives their IP address and the usual data of a web request. With the switch on, the settings page loads the fonts the same way while you pick one, and when you type a font name the plugin asks Google whether a font by that name exists. No store, order or customer data is ever sent, and turning the switch off stops every request.
Google terms: https://policies.google.com/terms
Google privacy: https://policies.google.com/privacy