Descargas
Una caja, todos los dispositivos.
Versión 1.10.25 · Apple Silicon · .dmg
Descargar para macOS¿Usas un Mac Intel? Descarga la versión para Intel
Cada aplicación se conecta al plugin gratuito de WordPress — instálalo primero.
Cómo encaja todo
Una tienda en el centro. Cada caja sincronizada.
- Un plugin es toda la configuraciónEl plugin gratuito añade una API REST segura a tu tienda WooCommerce. Esa es toda la instalación: nada que alojar ni configurar por dispositivo.
- Cada aplicación lee y escribe en la misma tiendaCobra una venta en el escritorio, reembólsala en tu teléfono: un único conjunto de productos, pedidos y clientes, actualizado en tiempo real.
- Primero sin conexión, para que la caja nunca se detengaCada dispositivo sigue funcionando sin conexión y se vuelve a sincronizar en cuanto vuelve a estar online.
Qué se mantiene sincronizado
- Productos y precios
- Niveles de stock
- Pedidos
- Clientes
- Impuestos y recibos
Primeros pasos
Tres pasos para tu primera venta
Tarda unos dos minutos, de principio a fin.
- 1
Instala el plugin gratuito
La base a la que se conecta todo. En tu escritorio: Plugins → Añadir nuevo, luego busca “WCPOS”.
WCPOSGratis · GPL
Última 1.10.18 · WordPress 5.6+ · WooCommerce 5.3+ · PHP 7.4+
- 2
Elige tu dispositivo
Todo gratis, todo sincronizado. Descarga el que detectamos arriba o cualquiera de estos.
Aplicación de escritorio
iOS & iPadBeta
AndroidBeta
- 3
¿Quieres más? Pásate a Pro
Un plugin con licencia que añade pagos con terminal, reembolsos y control de stock sobre la misma base.
Desbloquea la caja completa
Pagos, reembolsos, stock y precios, gestión de pedidos, informes de cierre, multitienda y soporte prioritario en Discord.
Historial de versiones
Novedades
Cambios recientes — cada aplicación comparte una misma línea de versión.
Las notas de la versión provienen de GitHub y pueden mostrarse en inglés.
1.10.18Última versión18 sept 2026
- A web till with the POS open in more than one tab repairs its local database again. Since the 1.10 storage repairs shipped, every repair on web was refused whenever another tab of the same store could be open, so a damaged record stayed damaged and the same storage errors repeated on every sync. The tab that leads the store now owns the repair and the other tabs follow it. Web merchants receive this through WooCommerce POS plugin 1.10.18, which serves the storage worker; desktop and phone apps carry it in this release.
- Voiding an order the server had refused no longer fails silently. When an order could not be created on the server (for example while the till was signed out) and the cashier then voided it, the void raised an error nothing caught and the order stayed in the cart. The till now removes the order and its failed request locally and confirms the removal; any other failure to void shows an error instead of nothing.
- A till opened from WordPress admin no longer sends an invalid sign-in token on its first requests. A request made before a token was stored carried the word "undefined" as its credential, which the server rejected as an invalid token instead of falling back to the WordPress login session. Such requests now carry no token, and a retry after a token refresh no longer keeps the old token in the request address.
- A plugin update no longer restores cashier permissions the merchant had removed. Every update re-granted every default capability, so a store that had turned off product or coupon editing for cashiers saw it come back after each release. Updates now grant only capabilities that are new since the last update; a deleted cashier role is still recreated whole.
- Product search on the older
wcpos/v1routes splits the typed text the same way as the rest of the POS. Punctuation stays literal and single letters and common words count, so "IT 5012" no longer searches as "5012" and "0,4" is one term. - An order digest write no longer fails on a busy MariaDB. The checkout-lane digest write now retries once on lock contention, as the product and customer digests already did.
- The older order-update route checks order ownership the same way as the current one under HPOS. A role that can edit its own orders but not other people's is treated the same on both routes. Cashiers are unaffected.
1.10.1716 sept 2026
- A till no longer gets stuck at login on "Something went wrong: useStoreSession must be called within an active store session". A damaged range in the till's local database made the login write fail and left the cashier on a red banner. The write is now repaired and retried, and if the saved session still cannot be honoured the till returns to the store list with a message instead of the banner. If the site has to be added again, it opens a fresh local database and does not pick up sales still waiting to sync in the old one. Web merchants receive the storage repair through WooCommerce POS plugin 1.10.17, which serves the storage worker; desktop and phone apps carry it in this release.
- A newly connected till no longer misses a stock change made in its first minute. A product set out of stock on the server shortly after a new device, login or reset stayed "in stock" on the till indefinitely. The till now records the server's position before the first browse, so the change arrives with the next sync.
- A variation whose stock is managed at product level shows the right stock in the variation picker. When the parent product sold out, the picker's badge and Add to Cart button kept saying "in stock" for up to five minutes. They now read the parent's stock, the same way the cart does.
- Switching stores no longer carries the previous store into the first requests of the new one. Requests made while a switch was still completing used the outgoing store, so the first products or barcodes could belong to it until the next sync. Pro multi-store only.
- Health > Logs records a screen error the app catches as "Part of the screen failed to load", and reports it when you have allowed error reporting.
1.10.1616 sept 2026
- Cashiers can sell an out-of-stock variation again when "Avoid overselling" is off. The variation picker's Add to Cart button disabled on stock alone and ignored the store setting, so an out-of-stock simple product could be sold but an out-of-stock variation could not. The button now follows the same rule as the cart: it disables only while the setting is on and the variation is unsellable.
- An idle web POS no longer sits at 30% CPU after the cashier stops. Local database cleanup compacted storage fifty records at a time and rewrote every index between batches, so a till with a large backlog of deleted records churned for minutes. Cleanup now compacts in one batch and rewrites the indexes once. The web app loads its storage worker from this plugin, so web merchants receive this fix through this update.
- Health > Database no longer shows "checking…" forever on a server that reports high load. A host that stamps every response as under high load while answering in a tenth of a second kept the till backed off, and the backed-off checks always started with the same three record types, so the other six never got a turn. Checks now rotate fairly, all record types are probed on each backed-off tick, and a "high load" header on a fast reply no longer counts against the server.
- Health > Performance says what pace the till is keeping with the server, and why. One line at the top of "Your server, over time" reads Normal pace, Easing off (with the factor and the reason), or Paused until a given time.
- Tills stop showing products the store has hidden from the POS. Between 1.10.1 and 1.10.14 the POS product search could return a hidden product (fixed in 1.10.15), and a till that searched during that window kept a copy. Upgrading now writes a fresh removal notice for every hidden product and variation, and every till drops its stale copies on its next ordinary sync, with no reset or manual sync needed.
- The POS Only and Online Only counts above the WooCommerce products list are accurate. They counted trashed and auto-draft products that the view never lists; they now count the same statuses as WordPress's own "All" view.
- The server no longer reports high load from a guessed CPU count. On hosts that hide
/proc/cpuinfo, the load average was divided by one CPU, so any load above 1.8 read as "high" forever and every till slowed its sync. When the CPU count is unknown, no load is reported. - The connection check can no longer be served from a page cache. The public ping was answered before the cache-control headers were set, so a cached "ok" could mask an outage for the cache's lifetime. It now sends the same no-store headers as every other POS response.
1.10.1515 sept 2026
- Tills no longer grow to gigabytes of memory over a long shift. The product search index was keeping up to a hundred complete copies of itself in memory as it updated. Measured on a test store, memory after cleanup grew from 46 MB to 404 MB in an hour before the fix and from 47 MB to 160 MB after it; this is what took one merchant's till to 3.2 GB over an eleven-hour shift.
- The Logs screen no longer freezes the app.
- Product search finds a product however you order the words. Searching "blue shirt" and "shirt blue" now return the same results.
- Start-up repair of a damaged local database is safer. Oversized internal change logs are now bounded and recovered without unbounded reads, and the app no longer rewrites bookkeeping records that have not changed. The web app loads its storage worker from this plugin, so web merchants receive this fix through this update rather than through the app bundle.
- A sync refresh that returns the same record twice is rejected instead of being applied against an incomplete snapshot, which could previously prune records that were still present on the server.
- Product search shows every match again. When a search matched more products than fit on the first page, the Products page stopped at that page and scrolling to the end loaded nothing more.
- The product search index repairs itself again. When the app detected that the index had drifted from the product data, the rebuild silently did nothing, so stale or missing search results stayed that way until the app was reinstalled.
1.10.1414 sept 2026
- Product search matches what you type as one phrase, in the order you typed it. Searching for two words no longer also returns products with those words reversed, separated, or split between the title and the SKU. Partial and exact SKU and barcode matches work as before, and one- and two-character searches now match anywhere in a word.
- The receipt template dropdown now lists templates in the order you set them, for global templates and Pro per-store templates alike.
- Switching the app language repeatedly no longer holds every previous product search index in memory.
- The WCPOS REST API index no longer errors when a client asks it for route help. Only developers and integrations reading the API index were affected.
1.10.1313 sept 2026
- Web: start-up repair of a damaged local database now applies each pending change to the row it belongs to, rather than to that row's position, and refuses a stale change for a row already holding a newer entry. The desktop and mobile apps received this in 1.10.12; the web app loads its storage worker from this plugin, which still carried the previous copy.
Historial completo en GitHub — Gratis · Escritorio