# Arquitectura

Esta página explica la arquitectura técnica de WCPOS para desarrolladores y usuarios avanzados.

## Sistema de Dos Partes[​](#two-part-system "Enlace directo a Sistema de Dos Partes")

WCPOS está diseñado como un sistema de dos partes:

1. **Plugin PHP:** Alojado en tu servidor, este es un plugin relativamente pequeño que extiende la [API REST de WooCommerce](/es/reference/wc-rest-api.md).

2. **Cliente JavaScript:** Este se ejecuta localmente en tu navegador o en la aplicación de escritorio, y más adelante en las aplicaciones de iOS y Android.

Puedes pensar en ello como dos mundos separados:

* El *mundo PHP* es donde ocurre la gestión de datos usando WordPress y WooCommerce.
* El *mundo JavaScript* replica tu tienda WooCommerce localmente, optimizada para búsquedas rápidas y uso sin conexión.

![pos-client-woo-server](data:image/svg+xml;base64,PHN2ZyBhcmlhLXJvbGVkZXNjcmlwdGlvbj0ic2VxdWVuY2UiIHJvbGU9ImdyYXBoaWNzLWRvY3VtZW50IGRvY3VtZW50IiB2aWV3Qm94PSItNTAgLTEwIDY3OC41IDQ5MCIgc3R5bGU9Im1heC13aWR0aDogMTAwJTtmb250LWZhbWlseTogc2Fucy1zZXJpZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaWQ9ImdyYXBoLWRpdiIgaGVpZ2h0PSIxMDAlIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bWFya2VyIG9yaWVudD0iYXV0byIgbWFya2VySGVpZ2h0PSIxMiIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHJlZlk9IjUiIHJlZlg9IjcuOSIgaWQ9ImFycm93aGVhZCI+CiAgICAgIDxwYXRoIGQ9Ik0gMCAwIEwgMTAgNSBMIDAgMTAgeiI+PC9wYXRoPgogICAgPC9tYXJrZXI+CiAgICA8c3ltYm9sIGlkPSJ3b29jb21tZXJjZS1sb2dvIiB2aWV3Qm94PSIwIDAgMjU2IDE1MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgICA8cGF0aCBkPSJtMjMuNzU5IDBoMjA4LjM4YzEzLjE4NyAwIDIzLjg2MyAxMC42NzUgMjMuODYzIDIzLjg2M3Y3OS41NDJjMCAxMy4xODctMTAuNjc1IDIzLjg2My0yMy44NjMgMjMuODYzaC03NC43MjdsMTAuMjU3IDI1LjExOC00NS4xMDktMjUuMTE4aC05OC42OTVjLTEzLjE4NyAwLTIzLjg2My0xMC42NzUtMjMuODYzLTIzLjg2M3YtNzkuNTQyYy0wLjEwNDY2LTEzLjA4MyAxMC41NzEtMjMuODYzIDIzLjc1OC0yMy44NjN6IiBmaWxsPSIjN2Y1NGIzIi8+CiAgICAgIDxwYXRoIGQ9Im0xNC41NzggMjEuNzVjMS40NTY5LTEuOTc3MiAzLjY0MjMtMy4wMTc5IDYuNTU2MS0zLjIyNiA1LjMwNzMtMC40MTYyNiA4LjMyNTIgMi4wODEzIDkuMDUzNyA3LjQ5MjcgMy4yMjYgMjEuNzUgNi43NjQyIDQwLjE2OSAxMC41MTEgNTUuMjU5bDIyLjc5LTQzLjM5NWMyLjA4MTMtMy45NTQ1IDQuNjgyOS02LjAzNTggNy44MDQ5LTYuMjQzOSA0LjU3ODktMC4zMTIyIDcuMzg4NiAyLjYwMTYgOC41MzMzIDguNzQxNSAyLjYwMTYgMTMuODQxIDUuOTMxNyAyNS42IDkuODg2MiAzNS41OSAyLjcwNTctMjYuNDMzIDcuMjg0Ni00NS40NzYgMTMuNzM3LTU3LjIzNiAxLjU2MS0yLjkxMzggMy44NTA0LTQuMzcwNyA2Ljg2ODMtNC41Nzg5IDIuMzkzNS0wLjIwODEzIDQuNTc4OSAwLjUyMDMzIDYuNTU2MSAyLjA4MTMgMS45NzcyIDEuNTYxIDMuMDE3OSAzLjUzODIgMy4yMjYgNS45MzE3IDAuMTA0MDYgMS44NzMyLTAuMjA4MTMgMy40MzQxLTEuMDQwNyA0Ljk5NTEtNC4wNTg1IDcuNDkyNy03LjM4ODYgMjAuMDg1LTEwLjA5NCAzNy41NjctMi42MDE2IDE2Ljk2My0zLjUzODIgMzAuMTc5LTIuOTEzOCAzOS42NDkgMC4yMDgxMyAyLjYwMTYtMC4yMDgxMyA0Ljg5MTEtMS4yNDg4IDYuODY4My0xLjI0ODggMi4yODk0LTMuMTIyIDMuNTM4Mi01LjUxNTQgMy43NDYzLTIuNzA1NyAwLjIwODEzLTUuNTE1NC0xLjA0MDYtOC4yMjExLTMuODUwNC05LjY3OC05Ljg4NjItMTcuMzc5LTI0LjY2My0yMi45OTgtNDQuMzMyLTYuNzY0MiAxMy4zMi0xMS43NTkgMjMuMzExLTE0Ljk4NSAyOS45NzEtNi4xMzk4IDExLjc1OS0xMS4zNDMgMTcuNzk1LTE1LjcxNCAxOC4xMDctMi44MDk4IDAuMjA4MTMtNS4yMDMzLTIuMTg1NC03LjI4NDYtNy4xODA1LTUuMzA3My0xMy42MzMtMTEuMDMxLTM5Ljk2MS0xNy4xNzEtNzguOTg1LTAuNDE2MjYtMi43MDU3IDAuMjA4MTMtNS4wOTkyIDEuNjY1LTYuOTcyNHptMjIzLjY0IDE2LjMzOGMtMy43NDYzLTYuNTU2MS05LjI2MTgtMTAuNTExLTE2LjY1LTEyLjA3Mi0xLjk3NzItMC40MTYyNi0zLjg1MDQtMC42MjQzOS01LjYxOTUtMC42MjQzOS05Ljk5MDIgMC0xOC4xMDcgNS4yMDMzLTI0LjQ1NSAxNS42MS01LjQxMTQgOC44NDU1LTguMTE3MSAxOC42MjgtOC4xMTcxIDI5LjM0NiAwIDguMDEzIDEuNjY1IDE0Ljg4MSA0Ljk5NTEgMjAuNjA1IDMuNzQ2MyA2LjU1NjEgOS4yNjE4IDEwLjUxMSAxNi42NSAxMi4wNzIgMS45NzcyIDAuNDE2MjYgMy44NTA0IDAuNjI0MzkgNS42MTk1IDAuNjI0MzkgMTAuMDk0IDAgMTguMjExLTUuMjAzMyAyNC40NTUtMTUuNjEgNS40MTE0LTguOTQ5NiA4LjExNzEtMTguNzMyIDguMTE3MS0yOS40NSAwLjEwNDA2LTguMTE3MS0xLjY2NS0xNC44ODEtNC45OTUxLTIwLjUwMXptLTEzLjExMiAyOC44MjZjLTEuNDU2OSA2Ljg2ODMtNC4wNTg1IDExLjk2Ny03LjkwODkgMTUuNDAyLTMuMDE3OSAyLjcwNTctNS44Mjc2IDMuODUwNC04LjQyOTMgMy4zMzAxLTIuNDk3Ni0wLjUyMDMzLTQuNTc4OS0yLjcwNTctNi4xMzk4LTYuNzY0Mi0xLjI0ODgtMy4yMjYtMS44NzMyLTYuNDUyLTEuODczMi05LjQ2OTkgMC0yLjYwMTYgMC4yMDgxMy01LjIwMzMgMC43Mjg0Ni03LjU5NjcgMC45MzY1OS00LjI2NjcgMi43MDU3LTguNDI5MyA1LjUxNTQtMTIuMzg0IDMuNDM0MS01LjA5OTIgNy4wNzY0LTcuMTgwNSAxMC44MjMtNi40NTIgMi40OTc2IDAuNTIwMzMgNC41Nzg5IDIuNzA1NyA2LjEzOTggNi43NjQyIDEuMjQ4OCAzLjIyNiAxLjg3MzIgNi40NTIgMS44NzMyIDkuNDY5OSAwIDIuNzA1Ny0wLjIwODEzIDUuMzA3My0wLjcyODQ2IDcuNzAwOHptLTUyLjAzMy0yOC44MjZjLTMuNzQ2My02LjU1NjEtOS4zNjU5LTEwLjUxMS0xNi42NS0xMi4wNzItMS45NzcyLTAuNDE2MjYtMy44NTA0LTAuNjI0MzktNS42MTk1LTAuNjI0MzktOS45OTAyIDAtMTguMTA3IDUuMjAzMy0yNC40NTUgMTUuNjEtNS40MTE0IDguODQ1NS04LjExNzEgMTguNjI4LTguMTE3MSAyOS4zNDYgMCA4LjAxMyAxLjY2NSAxNC44ODEgNC45OTUxIDIwLjYwNSAzLjc0NjMgNi41NTYxIDkuMjYxOCAxMC41MTEgMTYuNjUgMTIuMDcyIDEuOTc3MiAwLjQxNjI2IDMuODUwNCAwLjYyNDM5IDUuNjE5NSAwLjYyNDM5IDEwLjA5NCAwIDE4LjIxMS01LjIwMzMgMjQuNDU1LTE1LjYxIDUuNDExNC04Ljk0OTYgOC4xMTcxLTE4LjczMiA4LjExNzEtMjkuNDUgMC04LjExNzEtMS42NjUtMTQuODgxLTQuOTk1MS0yMC41MDF6bS0xMy4yMTYgMjguODI2Yy0xLjQ1NjkgNi44NjgzLTQuMDU4NSAxMS45NjctNy45MDg5IDE1LjQwMi0zLjAxNzkgMi43MDU3LTUuODI3NiAzLjg1MDQtOC40MjkzIDMuMzMwMS0yLjQ5NzYtMC41MjAzMy00LjU3ODktMi43MDU3LTYuMTM5OC02Ljc2NDItMS4yNDg4LTMuMjI2LTEuODczMi02LjQ1Mi0xLjg3MzItOS40Njk5IDAtMi42MDE2IDAuMjA4MTMtNS4yMDMzIDAuNzI4NDYtNy41OTY3IDAuOTM2NTgtNC4yNjY3IDIuNzA1Ny04LjQyOTMgNS41MTU0LTEyLjM4NCAzLjQzNDEtNS4wOTkyIDcuMDc2NC03LjE4MDUgMTAuODIzLTYuNDUyIDIuNDk3NiAwLjUyMDMzIDQuNTc4OSAyLjcwNTcgNi4xMzk4IDYuNzY0MiAxLjI0ODggMy4yMjYgMS44NzMyIDYuNDUyIDEuODczMiA5LjQ2OTkgMC4xMDQwNiAyLjcwNTctMC4yMDgxMyA1LjMwNzMtMC43Mjg0NiA3LjcwMDh6IiBmaWxsPSIjZmZmIi8+CiAgICA8L3N5bWJvbD4KICAgIDxzeW1ib2wgaWQ9IndjcG9zLWxvZ28iIHZpZXdCb3g9IjAgMCAxMjYwIDEyNjAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0iI0NEMkMyNCIgZD0iTTAsOTBDMCwzMCwzMCwwLDkwLDBoOTB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwUzAsMzE5LjcsMCwyNzBWOTB6IE0zNjAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwCiAgICAgICAgICBzLTkwLTQwLjMtOTAtOTBWMHogTTcyMCwwaDE4MHYyNzBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBWMHogTTEwODAsMGg5MGM2MCwwLDkwLDMwLDkwLDkwdjE4MGMwLDQ5LjctNDAuMyw5MC05MCw5MAogICAgICAgICAgcy05MC00MC4zLTkwLTkwVjB6Ii8+CiAgICAgIDwvZz4KICAgIDxnPgoJICAgIDxwYXRoIGZpbGw9IiNGNUU1QzAiIGQ9Ik0xODAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwcy05MC00MC4zLTkwLTkwVjB6IE01NDAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwcy05MC00MC4zLTkwLTkwVjAKCQl6IE05MDAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwYy00OS43LDAtOTAtNDAuMy05MC05MFYweiIvPgogICAgPC9nPgogICAgICA8cGF0aCBmaWxsPSIjMzIzQTQ2IiBkPSJNMTE3MCwzNjAuNWMtNDkuNywwLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBjLTQ5LjcsMC05MC00MC4zLTkwLTkwYzAsNDkuNy00MC4zLDkwLTkwLDkwCiAgICBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTAKICAgIGMwLDQ5LjctNDAuMyw5MC05MCw5MHMtOTAtNDAuMy05MC05MHY5OTBsMzYwLTI3MGg4MTBjNjAsMCw5MC0zMCw5MC05MHYtNjMwQzEyNjAsMzIwLjIsMTIxOS43LDM2MC41LDExNzAsMzYwLjV6IE0yNjAuNSw4MjEKICAgIGMtMzkuMywwLTc1LjMtMTQuNC0xMDMtMzguM1Y5MjRjMCwxNS4yLTEyLjMsMjcuNS0yNy41LDI3LjVzLTI3LjUtMTIuMy0yNy41LTI3LjVWNTMyLjVjMC0xNS4yLDEyLjMtMjcuNSwyNy41LTI3LjUKICAgIHMyNy41LDEyLjMsMjcuNSwyNy41djEwLjhjMjcuNy0yMy44LDYzLjctMzguMywxMDMtMzguM2M4Ny4xLDAsMTU4LDcwLjksMTU4LDE1OEM0MTguNSw3NTAuMSwzNDcuNiw4MjEsMjYwLjUsODIxeiBNNjMwLDgyMQogICAgYy04Ny40LDAtMTU4LjUtNzEuMS0xNTguNS0xNTguNWMwLTg3LjQsNzEuMS0xNTguNSwxNTguNS0xNTguNWM4Ny40LDAsMTU4LjUsNzEuMSwxNTguNSwxNTguNUM3ODguNSw3NDkuOSw3MTcuNCw4MjEsNjMwLDgyMXoKICAgIE05MTQuOSw2MjEuMWMyMi4yLDExLjEsNTguOCwxMy40LDg1LjYsMTMuNGM0OC4zLDAsODQuMyw2LjMsMTEwLjIsMTkuMmMzMC44LDE1LjQsNDcuOCw0MS41LDQ3LjgsNzMuNXMtMTcsNTguMS00Ny44LDczLjUKICAgIGMtMjUuOSwxMi45LTYxLjksMTkuMi0xMTAuMiwxOS4yYy01My4yLDAtMTAxLjgtMTMtMTQ0LjYtMzguN2MtMTMtNy44LTE3LjItMjQuNy05LjQtMzcuN2M3LjgtMTMsMjQuNy0xNy4yLDM3LjctOS40CiAgICBjMzQuMiwyMC41LDczLjMsMzAuOSwxMTYuNCwzMC45YzI2LjgsMCw2My40LTIuMyw4NS42LTEzLjRjMTUuMy03LjcsMTcuNC0xNi4yLDE3LjQtMjQuM3MtMi4xLTE2LjctMTcuNC0yNC4zCiAgICBjLTIyLjItMTEuMS01OC44LTEzLjQtODUuNi0xMy40Yy00OC4zLDAtODQuMy02LjMtMTEwLjItMTkuMmMtMzAuOC0xNS40LTQ3LjgtNDEuNS00Ny44LTczLjVzMTctNTguMSw0Ny44LTczLjUKICAgIGMyNS45LTEyLjksNjEuOS0xOS4yLDExMC4yLTE5LjJjNTMuMiwwLDEwMS44LDEzLDE0NC42LDM4LjdjMTMsNy44LDE3LjIsMjQuNyw5LjQsMzcuN3MtMjQuNywxNy4yLTM3LjcsOS40CiAgICBjLTM0LjItMjAuNS03My4zLTMwLjktMTE2LjQtMzAuOWMtMjYuOCwwLTYzLjQsMi4zLTg1LjYsMTMuNGMtMTUuMyw3LjctMTcuNCwxNi4yLTE3LjQsMjQuM1M4OTkuNiw2MTMuNCw5MTQuOSw2MjEuMXoiLz4KICAgICAgPGNpcmNsZSBmaWxsPSIjMzIzQTQ2IiBjeD0iMjYwLjUiIGN5PSI2NjIuNSIgcj0iMTAzIi8+CiAgICAgIDxjaXJjbGUgZmlsbD0iIzMyM0E0NiIgY3g9IjYzMCIgY3k9IjY2MiIgcj0iMTAzLjUiLz4KICAgIDwvc3ltYm9sPgogIDwvZGVmcz4KICA8Zz4KICAgIDxyZWN0IHJ5PSIzIiByeD0iMyIgaGVpZ2h0PSI2NSIgd2lkdGg9IjE4MyIgc3Ryb2tlPSIjNjY2IiBmaWxsPSIjZWFlYWVhIiB5PSI0MDQiIHg9IjM5NS41Ij48L3JlY3Q+CiAgICA8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGFsaWdubWVudC1iYXNlbGluZT0iY2VudHJhbCIgZG9taW5hbnQtYmFzZWxpbmU9ImhhbmdpbmciIHk9IjQ0MCIgeD0iNDg3IiBmaWxsPSIjMzMzIiBzdHlsZT0iZm9udDogdmFyKC0taWZtLWZvbnQtZmFtaWx5LWJhc2UpIj4KICAgICAgPHRzcGFuIGR5PSIwIiB4PSI0ODciPlNlcnZpZG9yIFdvb0NvbW1lcmNlPC90c3Bhbj4KICAgIDwvdGV4dD4KICAgIDx1c2UgeGxpbms6aHJlZj0iI3dvb2NvbW1lcmNlLWxvZ28iIHg9IjQ3MCIgeT0iNDE1IiB3aWR0aD0iMzAiIGhlaWdodD0iMTgiPjwvdXNlPgogIDwvZz4KICA8Zz4KICAgIDxyZWN0IHJ5PSIzIiByeD0iMyIgaGVpZ2h0PSI2NSIgd2lkdGg9IjE1MCIgc3Ryb2tlPSIjNjY2IiBmaWxsPSIjZWFlYWVhIiB5PSI0MDQiIHg9IjAiPjwvcmVjdD4KICAgIDx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgYWxpZ25tZW50LWJhc2VsaW5lPSJjZW50cmFsIiBkb21pbmFudC1iYXNlbGluZT0iaGFuZ2luZyIgeT0iNDQwIiB4PSI3NSIgZmlsbD0iIzMzMyI+CiAgICAgIDx0c3BhbiBkeT0iMCIgeD0iNzUiPkNsaWVudGUgSmF2YVNjcmlwdDwvdHNwYW4+CiAgICA8L3RleHQ+CiAgICA8dXNlIHhsaW5rOmhyZWY9IiN3Y3Bvcy1sb2dvIiB4PSI2NSIgeT0iNDEzIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiPjwvdXNlPgogIDwvZz4KICA8Zz4KICAgIDxsaW5lIHN0cm9rZT0iIzk5OSIgc3Ryb2tlLXdpZHRoPSIwLjVweCIgeTI9IjQwNCIgeDI9IjQ4NyIgeTE9IjUiIHgxPSI0ODciPjwvbGluZT4KICAgIDxnPgogICAgICA8cmVjdCByeT0iMyIgcng9IjMiIGhlaWdodD0iNjUiIHdpZHRoPSIxODMiIHN0cm9rZT0iIzY2NiIgZmlsbD0iI2VhZWFlYSIgeT0iMCIgeD0iMzk1LjUiPjwvcmVjdD4KICAgICAgPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNnB4IiBmb250LXdlaWdodD0iNDAwIiBhbGlnbm1lbnQtYmFzZWxpbmU9ImNlbnRyYWwiIGRvbWluYW50LWJhc2VsaW5lPSJoYW5naW5nIiB5PSIzNyIgeD0iNDg3IiBmaWxsPSIjMzMzIj4KICAgICAgICA8dHNwYW4gZHk9IjAiIHg9IjQ4NyI+U2Vydmlkb3IgV29vQ29tbWVyY2U8L3RzcGFuPgogICAgICA8L3RleHQ+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3dvb2NvbW1lcmNlLWxvZ28iIHg9IjQ3MCIgeT0iMTIiIHdpZHRoPSIzMCIgaGVpZ2h0PSIxOCI+PC91c2U+CiAgICA8L2c+CiAgPC9nPgogIDxnPgogICAgPGxpbmUgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjAuNXB4IiB5Mj0iNDA0IiB4Mj0iNzUiIHkxPSI1IiB4MT0iNzUiPjwvbGluZT4KICAgIDxnPgogICAgICA8cmVjdCByeT0iMyIgcng9IjMiIGhlaWdodD0iNjUiIHdpZHRoPSIxNTAiIHN0cm9rZT0iIzY2NiIgZmlsbD0iI2VhZWFlYSIgeT0iMCIgeD0iMCI+PC9yZWN0PgogICAgICA8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGFsaWdubWVudC1iYXNlbGluZT0iY2VudHJhbCIgZG9taW5hbnQtYmFzZWxpbmU9ImhhbmdpbmciIHk9IjM3IiB4PSI3NSIgZmlsbD0iIzMzMyI+CiAgICAgICAgPHRzcGFuIGR5PSIwIiB4PSI3NSI+Q2xpZW50ZSBKYXZhU2NyaXB0PC90c3Bhbj4KICAgICAgPC90ZXh0PgogICAgICA8dXNlIHhsaW5rOmhyZWY9IiN3Y3Bvcy1sb2dvIiB4PSI2NSIgeT0iMTAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+PC91c2U+CiAgICA8L2c+CiAgPC9nPgogIDxnPgogICAgPHJlY3Qgcnk9IjAiIHJ4PSIwIiBoZWlnaHQ9IjM5IiB3aWR0aD0iMzYyIiBzdHJva2U9IiNFNkE3MDAiIGZpbGw9IiNGRkY4RTYiIHk9IjI0OSIgeD0iMTAwIj48L3JlY3Q+CiAgICA8dGV4dCBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGR5PSIxZW0iIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSIyNTQiIHg9IjI4MSIgZmlsbD0iIzMzMyI+CiAgICAgIDx0c3BhbiB4PSIyODEiPkRhdG9zIGRpc3BvbmlibGVzIHBhcmEgYsO6c3F1ZWRhIHLDoXBpZGEgeSB1c28gc2luIGNvbmV4acOzbjwvdHNwYW4+CiAgICA8L3RleHQ+CiAgPC9nPgogIDx0ZXh0IGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgZHk9IjFlbSIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHk9IjgwIiB4PSIyODAiIGZpbGw9IiMzMzMiPlNvbGljaXRhciBkYXRvcyBkZSBsYSB0aWVuZGEgKHByb2R1Y3RvcywgY2xpZW50ZXMsIGV0Yy4pPC90ZXh0PgogIDxsaW5lIHN0eWxlPSJmaWxsOiBub25lOyIgbWFya2VyLWVuZD0idXJsKCNhcnJvd2hlYWQpIiBzdHJva2U9IiMzMzMiIHN0cm9rZS13aWR0aD0iMiIgeTI9IjExMyIgeDI9IjQ4MyIgeTE9IjExMyIgeDE9Ijc2Ij48L2xpbmU+CiAgPHRleHQgZm9udC1zaXplPSIxNnB4IiBmb250LXdlaWdodD0iNDAwIiBkeT0iMWVtIiBhbGlnbm1lbnQtYmFzZWxpbmU9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeT0iMTI4IiB4PSIyODMiIGZpbGw9IiMzMzMiPlJlc3B1ZXN0YSBkZSBEYXRvczwvdGV4dD4KICA8bGluZSBzdHlsZT0ic3Ryb2tlLWRhc2hhcnJheTogMywgMzsgZmlsbDogbm9uZTsiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkKSIgc3Ryb2tlPSIjMzMzIiBzdHJva2Utd2lkdGg9IjIiIHkyPSIxNjEiIHgyPSI3OSIgeTE9IjE2MSIgeDE9IjQ4NiI+PC9saW5lPgogIDx0ZXh0IGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgZHk9IjFlbSIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHk9IjE3NiIgeD0iNzYiIGZpbGw9IiMzMzMiPkFsbWFjZW5hciBkYXRvcyBsb2NhbG1lbnRlPC90ZXh0PgogIDxwYXRoIHN0eWxlPSJmaWxsOiBub25lOyIgbWFya2VyLWVuZD0idXJsKCNhcnJvd2hlYWQpIiBzdHJva2U9IiMzMzMiIHN0cm9rZS13aWR0aD0iMiIgZD0iTSA3NiwyMDkgQyAxMzYsMTk5IDEzNiwyMzkgNzYsMjI5Ij48L3BhdGg+CiAgPHRleHQgZm9udC1zaXplPSIxNnB4IiBmb250LXdlaWdodD0iNDAwIiBkeT0iMWVtIiBhbGlnbm1lbnQtYmFzZWxpbmU9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeT0iMzAzIiB4PSIyODAiIGZpbGw9IiMzMzMiPkVudmlhciBhY3R1YWxpemFjaW9uZXMgbyBkYXRvcyBudWV2b3M8L3RleHQ+CiAgPGxpbmUgc3R5bGU9ImZpbGw6IG5vbmU7IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiIHN0cm9rZT0iIzMzMyIgc3Ryb2tlLXdpZHRoPSIyIiB5Mj0iMzM2IiB4Mj0iNDgzIiB5MT0iMzM2IiB4MT0iNzYiPjwvbGluZT4KICA8dGV4dCBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGR5PSIxZW0iIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSIzNTEiIHg9IjI4MyIgZmlsbD0iIzMzMyI+UmVzcHVlc3RhIGRlIENvbmZpcm1hY2nDs248L3RleHQ+CiAgPGxpbmUgc3R5bGU9InN0cm9rZS1kYXNoYXJyYXk6IDMsIDM7IGZpbGw6IG5vbmU7IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiIHN0cm9rZT0iIzMzMyIgc3Ryb2tlLXdpZHRoPSIyIiB5Mj0iMzg0IiB4Mj0iNzkiIHkxPSIzODQiIHgxPSI0ODYiPjwvbGluZT4KPC9zdmc+Cg==)

## Sincronización de Datos[​](#data-synchronization "Enlace directo a Sincronización de Datos")

Los datos se obtienen de WooCommerce utilizando la [API REST de WooCommerce](https://woocommerce.github.io/woocommerce-rest-api-docs/). Esto significa que el POS tiene que descargar cada producto, variación, categoría de producto, cliente, tasa de impuesto, y más para almacenarlos localmente.

Aunque esto puede llevar tiempo inicialmente, una vez descargados, están disponibles instantáneamente sin la necesidad de obtenerlos continuamente del servidor.

### ¿Qué Se Sincroniza?[​](#what-gets-synced "Enlace directo a ¿Qué Se Sincroniza?")

* Productos y variaciones
* Categorías y etiquetas de productos
* Clientes
* Tasas de impuestos y clases de impuestos
* Pasarelas de pago (para el proceso de pago)
* Pedidos (para el historial de pedidos en Pro)

### Estrategia de Sincronización[​](#sync-strategy "Enlace directo a Estrategia de Sincronización")

WCPOS utiliza una estrategia de sincronización incremental:

1. **Sincronización inicial:** Descarga todos los datos en la primera carga
2. **Actualizaciones incrementales:** Solo obtiene los cambios desde la última sincronización
3. **Sincronización en segundo plano:** Verifica periódicamente si hay actualizaciones
4. **Sincronización manual:** El usuario puede activar una sincronización en cualquier momento

## Pros y Contras de la Arquitectura[​](#architecture-pros-and-cons "Enlace directo a Pros y Contras de la Arquitectura")

| Bueno 😊                                                                         | Malo 😟                                                                     |
| -------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Buscar datos locales es instantáneo                                              | Mantener los datos sincronizados es un desafío                              |
| Datos en caché disponibles sin conexión                                          | Limitado por la API REST de WooCommerce                                     |
| Posibilidad de crear mejores aplicaciones nativas para escritorio, iOS y Android | Los temas de WordPress y los hooks no pueden personalizar la aplicación POS |

## Base de Datos Local[​](#local-database "Enlace directo a Base de Datos Local")

El cliente JavaScript almacena datos en IndexedDB, una base de datos basada en el navegador. Esto proporciona:

* **Persistencia:** Los datos sobreviven a los reinicios del navegador
* **Rendimiento:** Consultas rápidas sin latencia de red
* **Navegación sin conexión:** Los datos en caché permanecen accesibles sin internet

## Arquitectura de Checkout[​](#checkout-architecture "Enlace directo a Arquitectura de Checkout")

El proceso de pago utiliza un iframe/webview que carga la página de Order Pay de WooCommerce. Este enfoque:

* **Aprovecha las pasarelas de pago existentes:** Cualquier pasarela de pago de WooCommerce puede funcionar en el POS
* **Mantiene la seguridad:** El procesamiento de pagos ocurre a través de la infraestructura segura de WooCommerce
* **Reduce la complejidad:** No es necesario reimplementar integraciones de pasarelas de pago

## Extensiones de API[​](#api-extensions "Enlace directo a Extensiones de API")

El plugin PHP extiende la API REST de WooCommerce con puntos de acceso adicionales para funcionalidad específica de POS. Consulta la [API REST de WooCommerce](/es/reference/wc-rest-api.md) para más detalles.

***
