# Architecture

Cette page explique l'architecture technique de WCPOS pour les développeurs et les utilisateurs avancés.

## Système en Deux Parties[​](#two-part-system "Lien direct vers Système en Deux Parties")

WCPOS est conçu comme un système en deux parties :

1. **Plugin PHP :** Hébergé sur votre serveur, c'est un plugin relativement petit qui étend l'[API REST de WooCommerce](/fr/reference/wc-rest-api.md).

2. **Client JavaScript :** Celui-ci fonctionne localement dans votre navigateur ou l'app de bureau, et plus tard sur les apps iOS et Android.

Vous pouvez le considérer comme deux mondes séparés :

* Le *monde PHP* est celui où la gestion des données se fait à l'aide de WordPress et WooCommerce.
* Le *monde JavaScript* réplique votre boutique WooCommerce localement, optimisé pour une recherche rapide et une utilisation hors ligne.

![pos-client-woo-server](data:image/svg+xml;base64,PHN2ZyBhcmlhLXJvbGVkZXNjcmlwdGlvbj0ic2VxdWVuY2UiIHJvbGU9ImdyYXBoaWNzLWRvY3VtZW50IGRvY3VtZW50IiB2aWV3Qm94PSItNTAgLTEwIDY3OC41IDQ5MCIgc3R5bGU9Im1heC13aWR0aDogMTAwJTtmb250LWZhbWlseTogc2Fucy1zZXJpZiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTAwJSIgaWQ9ImdyYXBoLWRpdiIgaGVpZ2h0PSIxMDAlIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8bWFya2VyIG9yaWVudD0iYXV0byIgbWFya2VySGVpZ2h0PSIxMiIgbWFya2VyV2lkdGg9IjEyIiBtYXJrZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIHJlZlk9IjUiIHJlZlg9IjcuOSIgaWQ9ImFycm93aGVhZCI+CiAgICAgIDxwYXRoIGQ9Ik0gMCAwIEwgMTAgNSBMIDAgMTAgeiI+PC9wYXRoPgogICAgPC9tYXJrZXI+CiAgICA8c3ltYm9sIGlkPSJ3b29jb21tZXJjZS1sb2dvIiB2aWV3Qm94PSIwIDAgMjU2IDE1MyIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPgogICAgICA8cGF0aCBkPSJtMjMuNzU5IDBoMjA4LjM4YzEzLjE4NyAwIDIzLjg2MyAxMC42NzUgMjMuODYzIDIzLjg2M3Y3OS41NDJjMCAxMy4xODctMTAuNjc1IDIzLjg2My0yMy44NjMgMjMuODYzaC03NC43MjdsMTAuMjU3IDI1LjExOC00NS4xMDktMjUuMTE4aC05OC42OTVjLTEzLjE4NyAwLTIzLjg2My0xMC42NzUtMjMuODYzLTIzLjg2M3YtNzkuNTQyYy0wLjEwNDY2LTEzLjA4MyAxMC41NzEtMjMuODYzIDIzLjc1OC0yMy44NjN6IiBmaWxsPSIjN2Y1NGIzIi8+CiAgICAgIDxwYXRoIGQ9Im0xNC41NzggMjEuNzVjMS40NTY5LTEuOTc3MiAzLjY0MjMtMy4wMTc5IDYuNTU2MS0zLjIyNiA1LjMwNzMtMC40MTYyNiA4LjMyNTIgMi4wODEzIDkuMDUzNyA3LjQ5MjcgMy4yMjYgMjEuNzUgNi43NjQyIDQwLjE2OSAxMC41MTEgNTUuMjU5bDIyLjc5LTQzLjM5NWMyLjA4MTMtMy45NTQ1IDQuNjgyOS02LjAzNTggNy44MDQ5LTYuMjQzOSA0LjU3ODktMC4zMTIyIDcuMzg4NiAyLjYwMTYgOC41MzMzIDguNzQxNSAyLjYwMTYgMTMuODQxIDUuOTMxNyAyNS42IDkuODg2MiAzNS41OSAyLjcwNTctMjYuNDMzIDcuMjg0Ni00NS40NzYgMTMuNzM3LTU3LjIzNiAxLjU2MS0yLjkxMzggMy44NTA0LTQuMzcwNyA2Ljg2ODMtNC41Nzg5IDIuMzkzNS0wLjIwODEzIDQuNTc4OSAwLjUyMDMzIDYuNTU2MSAyLjA4MTMgMS45NzcyIDEuNTYxIDMuMDE3OSAzLjUzODIgMy4yMjYgNS45MzE3IDAuMTA0MDYgMS44NzMyLTAuMjA4MTMgMy40MzQxLTEuMDQwNyA0Ljk5NTEtNC4wNTg1IDcuNDkyNy03LjM4ODYgMjAuMDg1LTEwLjA5NCAzNy41NjctMi42MDE2IDE2Ljk2My0zLjUzODIgMzAuMTc5LTIuOTEzOCAzOS42NDkgMC4yMDgxMyAyLjYwMTYtMC4yMDgxMyA0Ljg5MTEtMS4yNDg4IDYuODY4My0xLjI0ODggMi4yODk0LTMuMTIyIDMuNTM4Mi01LjUxNTQgMy43NDYzLTIuNzA1NyAwLjIwODEzLTUuNTE1NC0xLjA0MDYtOC4yMjExLTMuODUwNC05LjY3OC05Ljg4NjItMTcuMzc5LTI0LjY2My0yMi45OTgtNDQuMzMyLTYuNzY0MiAxMy4zMi0xMS43NTkgMjMuMzExLTE0Ljk4NSAyOS45NzEtNi4xMzk4IDExLjc1OS0xMS4zNDMgMTcuNzk1LTE1LjcxNCAxOC4xMDctMi44MDk4IDAuMjA4MTMtNS4yMDMzLTIuMTg1NC03LjI4NDYtNy4xODA1LTUuMzA3My0xMy42MzMtMTEuMDMxLTM5Ljk2MS0xNy4xNzEtNzguOTg1LTAuNDE2MjYtMi43MDU3IDAuMjA4MTMtNS4wOTkyIDEuNjY1LTYuOTcyNHptMjIzLjY0IDE2LjMzOGMtMy43NDYzLTYuNTU2MS05LjI2MTgtMTAuNTExLTE2LjY1LTEyLjA3Mi0xLjk3NzItMC40MTYyNi0zLjg1MDQtMC42MjQzOS01LjYxOTUtMC42MjQzOS05Ljk5MDIgMC0xOC4xMDcgNS4yMDMzLTI0LjQ1NSAxNS42MS01LjQxMTQgOC44NDU1LTguMTE3MSAxOC42MjgtOC4xMTcxIDI5LjM0NiAwIDguMDEzIDEuNjY1IDE0Ljg4MSA0Ljk5NTEgMjAuNjA1IDMuNzQ2MyA2LjU1NjEgOS4yNjE4IDEwLjUxMSAxNi42NSAxMi4wNzIgMS45NzcyIDAuNDE2MjYgMy44NTA0IDAuNjI0MzkgNS42MTk1IDAuNjI0MzkgMTAuMDk0IDAgMTguMjExLTUuMjAzMyAyNC40NTUtMTUuNjEgNS40MTE0LTguOTQ5NiA4LjExNzEtMTguNzMyIDguMTE3MS0yOS40NSAwLjEwNDA2LTguMTE3MS0xLjY2NS0xNC44ODEtNC45OTUxLTIwLjUwMXptLTEzLjExMiAyOC44MjZjLTEuNDU2OSA2Ljg2ODMtNC4wNTg1IDExLjk2Ny03LjkwODkgMTUuNDAyLTMuMDE3OSAyLjcwNTctNS44Mjc2IDMuODUwNC04LjQyOTMgMy4zMzAxLTIuNDk3Ni0wLjUyMDMzLTQuNTc4OS0yLjcwNTctNi4xMzk4LTYuNzY0Mi0xLjI0ODgtMy4yMjYtMS44NzMyLTYuNDUyLTEuODczMi05LjQ2OTkgMC0yLjYwMTYgMC4yMDgxMy01LjIwMzMgMC43Mjg0Ni03LjU5NjcgMC45MzY1OS00LjI2NjcgMi43MDU3LTguNDI5MyA1LjUxNTQtMTIuMzg0IDMuNDM0MS01LjA5OTIgNy4wNzY0LTcuMTgwNSAxMC44MjMtNi40NTIgMi40OTc2IDAuNTIwMzMgNC41Nzg5IDIuNzA1NyA2LjEzOTggNi43NjQyIDEuMjQ4OCAzLjIyNiAxLjg3MzIgNi40NTIgMS44NzMyIDkuNDY5OSAwIDIuNzA1Ny0wLjIwODEzIDUuMzA3My0wLjcyODQ2IDcuNzAwOHptLTUyLjAzMy0yOC44MjZjLTMuNzQ2My02LjU1NjEtOS4zNjU5LTEwLjUxMS0xNi42NS0xMi4wNzItMS45NzcyLTAuNDE2MjYtMy44NTA0LTAuNjI0MzktNS42MTk1LTAuNjI0MzktOS45OTAyIDAtMTguMTA3IDUuMjAzMy0yNC40NTUgMTUuNjEtNS40MTE0IDguODQ1NS04LjExNzEgMTguNjI4LTguMTE3MSAyOS4zNDYgMCA4LjAxMyAxLjY2NSAxNC44ODEgNC45OTUxIDIwLjYwNSAzLjc0NjMgNi41NTYxIDkuMjYxOCAxMC41MTEgMTYuNjUgMTIuMDcyIDEuOTc3MiAwLjQxNjI2IDMuODUwNCAwLjYyNDM5IDUuNjE5NSAwLjYyNDM5IDEwLjA5NCAwIDE4LjIxMS01LjIwMzMgMjQuNDU1LTE1LjYxIDUuNDExNC04Ljk0OTYgOC4xMTcxLTE4LjczMiA4LjExNzEtMjkuNDUgMC04LjExNzEtMS42NjUtMTQuODgxLTQuOTk1MS0yMC41MDF6bS0xMy4yMTYgMjguODI2Yy0xLjQ1NjkgNi44NjgzLTQuMDU4NSAxMS45NjctNy45MDg5IDE1LjQwMi0zLjAxNzkgMi43MDU3LTUuODI3NiAzLjg1MDQtOC40MjkzIDMuMzMwMS0yLjQ5NzYtMC41MjAzMy00LjU3ODktMi43MDU3LTYuMTM5OC02Ljc2NDItMS4yNDg4LTMuMjI2LTEuODczMi02LjQ1Mi0xLjg3MzItOS40Njk5IDAtMi42MDE2IDAuMjA4MTMtNS4yMDMzIDAuNzI4NDYtNy41OTY3IDAuOTM2NTgtNC4yNjY3IDIuNzA1Ny04LjQyOTMgNS41MTU0LTEyLjM4NCAzLjQzNDEtNS4wOTkyIDcuMDc2NC03LjE4MDUgMTAuODIzLTYuNDUyIDIuNDk3NiAwLjUyMDMzIDQuNTc4OSAyLjcwNTcgNi4xMzk4IDYuNzY0MiAxLjI0ODggMy4yMjYgMS44NzMyIDYuNDUyIDEuODczMiA5LjQ2OTkgMC4xMDQwNiAyLjcwNTctMC4yMDgxMyA1LjMwNzMtMC43Mjg0NiA3LjcwMDh6IiBmaWxsPSIjZmZmIi8+CiAgICA8L3N5bWJvbD4KICAgIDxzeW1ib2wgaWQ9IndjcG9zLWxvZ28iIHZpZXdCb3g9IjAgMCAxMjYwIDEyNjAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KICAgICAgPGc+CiAgICAgICAgPHBhdGggZmlsbD0iI0NEMkMyNCIgZD0iTTAsOTBDMCwzMCwzMCwwLDkwLDBoOTB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwUzAsMzE5LjcsMCwyNzBWOTB6IE0zNjAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwCiAgICAgICAgICBzLTkwLTQwLjMtOTAtOTBWMHogTTcyMCwwaDE4MHYyNzBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBWMHogTTEwODAsMGg5MGM2MCwwLDkwLDMwLDkwLDkwdjE4MGMwLDQ5LjctNDAuMyw5MC05MCw5MAogICAgICAgICAgcy05MC00MC4zLTkwLTkwVjB6Ii8+CiAgICAgIDwvZz4KICAgIDxnPgoJICAgIDxwYXRoIGZpbGw9IiNGNUU1QzAiIGQ9Ik0xODAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwcy05MC00MC4zLTkwLTkwVjB6IE01NDAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwcy05MC00MC4zLTkwLTkwVjAKCQl6IE05MDAsMGgxODB2MjcwYzAsNDkuNy00MC4zLDkwLTkwLDkwYy00OS43LDAtOTAtNDAuMy05MC05MFYweiIvPgogICAgPC9nPgogICAgICA8cGF0aCBmaWxsPSIjMzIzQTQ2IiBkPSJNMTE3MCwzNjAuNWMtNDkuNywwLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBjLTQ5LjcsMC05MC00MC4zLTkwLTkwYzAsNDkuNy00MC4zLDkwLTkwLDkwCiAgICBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTBjMCw0OS43LTQwLjMsOTAtOTAsOTBzLTkwLTQwLjMtOTAtOTAKICAgIGMwLDQ5LjctNDAuMyw5MC05MCw5MHMtOTAtNDAuMy05MC05MHY5OTBsMzYwLTI3MGg4MTBjNjAsMCw5MC0zMCw5MC05MHYtNjMwQzEyNjAsMzIwLjIsMTIxOS43LDM2MC41LDExNzAsMzYwLjV6IE0yNjAuNSw4MjEKICAgIGMtMzkuMywwLTc1LjMtMTQuNC0xMDMtMzguM1Y5MjRjMCwxNS4yLTEyLjMsMjcuNS0yNy41LDI3LjVzLTI3LjUtMTIuMy0yNy41LTI3LjVWNTMyLjVjMC0xNS4yLDEyLjMtMjcuNSwyNy41LTI3LjUKICAgIHMyNy41LDEyLjMsMjcuNSwyNy41djEwLjhjMjcuNy0yMy44LDYzLjctMzguMywxMDMtMzguM2M4Ny4xLDAsMTU4LDcwLjksMTU4LDE1OEM0MTguNSw3NTAuMSwzNDcuNiw4MjEsMjYwLjUsODIxeiBNNjMwLDgyMQogICAgYy04Ny40LDAtMTU4LjUtNzEuMS0xNTguNS0xNTguNWMwLTg3LjQsNzEuMS0xNTguNSwxNTguNS0xNTguNWM4Ny40LDAsMTU4LjUsNzEuMSwxNTguNSwxNTguNUM3ODguNSw3NDkuOSw3MTcuNCw4MjEsNjMwLDgyMXoKICAgIE05MTQuOSw2MjEuMWMyMi4yLDExLjEsNTguOCwxMy40LDg1LjYsMTMuNGM0OC4zLDAsODQuMyw2LjMsMTEwLjIsMTkuMmMzMC44LDE1LjQsNDcuOCw0MS41LDQ3LjgsNzMuNXMtMTcsNTguMS00Ny44LDczLjUKICAgIGMtMjUuOSwxMi45LTYxLjksMTkuMi0xMTAuMiwxOS4yYy01My4yLDAtMTAxLjgtMTMtMTQ0LjYtMzguN2MtMTMtNy44LTE3LjItMjQuNy05LjQtMzcuN2M3LjgtMTMsMjQuNy0xNy4yLDM3LjctOS40CiAgICBjMzQuMiwyMC41LDczLjMsMzAuOSwxMTYuNCwzMC45YzI2LjgsMCw2My40LTIuMyw4NS42LTEzLjRjMTUuMy03LjcsMTcuNC0xNi4yLDE3LjQtMjQuM3MtMi4xLTE2LjctMTcuNC0yNC4zCiAgICBjLTIyLjItMTEuMS01OC44LTEzLjQtODUuNi0xMy40Yy00OC4zLDAtODQuMy02LjMtMTEwLjItMTkuMmMtMzAuOC0xNS40LTQ3LjgtNDEuNS00Ny44LTczLjVzMTctNTguMSw0Ny44LTczLjUKICAgIGMyNS45LTEyLjksNjEuOS0xOS4yLDExMC4yLTE5LjJjNTMuMiwwLDEwMS44LDEzLDE0NC42LDM4LjdjMTMsNy44LDE3LjIsMjQuNyw5LjQsMzcuN3MtMjQuNywxNy4yLTM3LjcsOS40CiAgICBjLTM0LjItMjAuNS03My4zLTMwLjktMTE2LjQtMzAuOWMtMjYuOCwwLTYzLjQsMi4zLTg1LjYsMTMuNGMtMTUuMyw3LjctMTcuNCwxNi4yLTE3LjQsMjQuM1M4OTkuNiw2MTMuNCw5MTQuOSw2MjEuMXoiLz4KICAgICAgPGNpcmNsZSBmaWxsPSIjMzIzQTQ2IiBjeD0iMjYwLjUiIGN5PSI2NjIuNSIgcj0iMTAzIi8+CiAgICAgIDxjaXJjbGUgZmlsbD0iIzMyM0E0NiIgY3g9IjYzMCIgY3k9IjY2MiIgcj0iMTAzLjUiLz4KICAgIDwvc3ltYm9sPgogIDwvZGVmcz4KICA8Zz4KICAgIDxyZWN0IHJ5PSIzIiByeD0iMyIgaGVpZ2h0PSI2NSIgd2lkdGg9IjE4MyIgc3Ryb2tlPSIjNjY2IiBmaWxsPSIjZWFlYWVhIiB5PSI0MDQiIHg9IjM5NS41Ij48L3JlY3Q+CiAgICA8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGFsaWdubWVudC1iYXNlbGluZT0iY2VudHJhbCIgZG9taW5hbnQtYmFzZWxpbmU9ImhhbmdpbmciIHk9IjQ0MCIgeD0iNDg3IiBmaWxsPSIjMzMzIiBzdHlsZT0iZm9udDogdmFyKC0taWZtLWZvbnQtZmFtaWx5LWJhc2UpIj4KICAgICAgPHRzcGFuIGR5PSIwIiB4PSI0ODciPlNlcnZldXIgV29vQ29tbWVyY2U8L3RzcGFuPgogICAgPC90ZXh0PgogICAgPHVzZSB4bGluazpocmVmPSIjd29vY29tbWVyY2UtbG9nbyIgeD0iNDcwIiB5PSI0MTUiIHdpZHRoPSIzMCIgaGVpZ2h0PSIxOCI+PC91c2U+CiAgPC9nPgogIDxnPgogICAgPHJlY3Qgcnk9IjMiIHJ4PSIzIiBoZWlnaHQ9IjY1IiB3aWR0aD0iMTUwIiBzdHJva2U9IiM2NjYiIGZpbGw9IiNlYWVhZWEiIHk9IjQwNCIgeD0iMCI+PC9yZWN0PgogICAgPHRleHQgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxNnB4IiBmb250LXdlaWdodD0iNDAwIiBhbGlnbm1lbnQtYmFzZWxpbmU9ImNlbnRyYWwiIGRvbWluYW50LWJhc2VsaW5lPSJoYW5naW5nIiB5PSI0NDAiIHg9Ijc1IiBmaWxsPSIjMzMzIj4KICAgICAgPHRzcGFuIGR5PSIwIiB4PSI3NSI+Q2xpZW50IEphdmFTY3JpcHQ8L3RzcGFuPgogICAgPC90ZXh0PgogICAgPHVzZSB4bGluazpocmVmPSIjd2Nwb3MtbG9nbyIgeD0iNjUiIHk9IjQxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48L3VzZT4KICA8L2c+CiAgPGc+CiAgICA8bGluZSBzdHJva2U9IiM5OTkiIHN0cm9rZS13aWR0aD0iMC41cHgiIHkyPSI0MDQiIHgyPSI0ODciIHkxPSI1IiB4MT0iNDg3Ij48L2xpbmU+CiAgICA8Zz4KICAgICAgPHJlY3Qgcnk9IjMiIHJ4PSIzIiBoZWlnaHQ9IjY1IiB3aWR0aD0iMTgzIiBzdHJva2U9IiM2NjYiIGZpbGw9IiNlYWVhZWEiIHk9IjAiIHg9IjM5NS41Ij48L3JlY3Q+CiAgICAgIDx0ZXh0IHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgYWxpZ25tZW50LWJhc2VsaW5lPSJjZW50cmFsIiBkb21pbmFudC1iYXNlbGluZT0iaGFuZ2luZyIgeT0iMzciIHg9IjQ4NyIgZmlsbD0iIzMzMyI+CiAgICAgICAgPHRzcGFuIGR5PSIwIiB4PSI0ODciPlNlcnZldXIgV29vQ29tbWVyY2U8L3RzcGFuPgogICAgICA8L3RleHQ+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3dvb2NvbW1lcmNlLWxvZ28iIHg9IjQ3MCIgeT0iMTIiIHdpZHRoPSIzMCIgaGVpZ2h0PSIxOCI+PC91c2U+CiAgICA8L2c+CiAgPC9nPgogIDxnPgogICAgPGxpbmUgc3Ryb2tlPSIjOTk5IiBzdHJva2Utd2lkdGg9IjAuNXB4IiB5Mj0iNDA0IiB4Mj0iNzUiIHkxPSI1IiB4MT0iNzUiPjwvbGluZT4KICAgIDxnPgogICAgICA8cmVjdCByeT0iMyIgcng9IjMiIGhlaWdodD0iNjUiIHdpZHRoPSIxNTAiIHN0cm9rZT0iIzY2NiIgZmlsbD0iI2VhZWFlYSIgeT0iMCIgeD0iMCI+PC9yZWN0PgogICAgICA8dGV4dCB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGFsaWdubWVudC1iYXNlbGluZT0iY2VudHJhbCIgZG9taW5hbnQtYmFzZWxpbmU9ImhhbmdpbmciIHk9IjM3IiB4PSI3NSIgZmlsbD0iIzMzMyI+CiAgICAgICAgPHRzcGFuIGR5PSIwIiB4PSI3NSI+Q2xpZW50IEphdmFTY3JpcHQ8L3RzcGFuPgogICAgICA8L3RleHQ+CiAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3djcG9zLWxvZ28iIHg9IjY1IiB5PSIxMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIj48L3VzZT4KICAgIDwvZz4KICA8L2c+CiAgPGc+CiAgICA8cmVjdCByeT0iMCIgcng9IjAiIGhlaWdodD0iMzkiIHdpZHRoPSIzNjIiIHN0cm9rZT0iI0U2QTcwMCIgZmlsbD0iI0ZGRjhFNiIgeT0iMjQ5IiB4PSIxMDAiPjwvcmVjdD4KICAgIDx0ZXh0IGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgZHk9IjFlbSIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHk9IjI1NCIgeD0iMjgxIiBmaWxsPSIjMzMzIj4KICAgICAgPHRzcGFuIHg9IjI4MSI+RG9ubsOpZXMgZGlzcG9uaWJsZXMgcG91ciByZWNoZXJjaGUgcmFwaWRlIGV0IHV0aWxpc2F0aW9uIGhvcnMgbGlnbmU8L3RzcGFuPgogICAgPC90ZXh0PgogIDwvZz4KICA8dGV4dCBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGR5PSIxZW0iIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSI4MCIgeD0iMjgwIiBmaWxsPSIjMzMzIj5EZW1hbmRlciBkZXMgZG9ubsOpZXMgZGUgbWFnYXNpbiAocHJvZHVpdHMsIGNsaWVudHMsIGV0Yy4pPC90ZXh0PgogIDxsaW5lIHN0eWxlPSJmaWxsOiBub25lOyIgbWFya2VyLWVuZD0idXJsKCNhcnJvd2hlYWQpIiBzdHJva2U9IiMzMzMiIHN0cm9rZS13aWR0aD0iMiIgeTI9IjExMyIgeDI9IjQ4MyIgeTE9IjExMyIgeDE9Ijc2Ij48L2xpbmU+CiAgPHRleHQgZm9udC1zaXplPSIxNnB4IiBmb250LXdlaWdodD0iNDAwIiBkeT0iMWVtIiBhbGlnbm1lbnQtYmFzZWxpbmU9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgeT0iMTI4IiB4PSIyODMiIGZpbGw9IiMzMzMiPlLDqXBvbnNlIGRlcyBEb25uw6llczwvdGV4dD4KICA8bGluZSBzdHlsZT0ic3Ryb2tlLWRhc2hhcnJheTogMywgMzsgZmlsbDogbm9uZTsiIG1hcmtlci1lbmQ9InVybCgjYXJyb3doZWFkKSIgc3Ryb2tlPSIjMzMzIiBzdHJva2Utd2lkdGg9IjIiIHkyPSIxNjEiIHgyPSI3OSIgeTE9IjE2MSIgeDE9IjQ4NiI+PC9saW5lPgogIDx0ZXh0IGZvbnQtc2l6ZT0iMTZweCIgZm9udC13ZWlnaHQ9IjQwMCIgZHk9IjFlbSIgYWxpZ25tZW50LWJhc2VsaW5lPSJtaWRkbGUiIGRvbWluYW50LWJhc2VsaW5lPSJtaWRkbGUiIHRleHQtYW5jaG9yPSJtaWRkbGUiIHk9IjE3NiIgeD0iNzYiIGZpbGw9IiMzMzMiPlN0b2NrZXIgbGVzIGRvbm7DqWVzIGxvY2FsZW1lbnQ8L3RleHQ+CiAgPHBhdGggc3R5bGU9ImZpbGw6IG5vbmU7IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiIHN0cm9rZT0iIzMzMyIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNIDc2LDIwOSBDIDEzNiwxOTkgMTM2LDIzOSA3NiwyMjkiPjwvcGF0aD4KICA8dGV4dCBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGR5PSIxZW0iIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSIzMDMiIHg9IjI4MCIgZmlsbD0iIzMzMyI+RW52b3llciBkZXMgbWlzZXMgw6Agam91ciBvdSBkZSBub3V2ZWxsZXMgZG9ubsOpZXM8L3RleHQ+CiAgPGxpbmUgc3R5bGU9ImZpbGw6IG5vbmU7IiBtYXJrZXItZW5kPSJ1cmwoI2Fycm93aGVhZCkiIHN0cm9rZT0iIzMzMyIgc3Ryb2tlLXdpZHRoPSIyIiB5Mj0iMzM2IiB4Mj0iNDgzIiB5MT0iMzM2IiB4MT0iNzYiPjwvbGluZT4KICA8dGV4dCBmb250LXNpemU9IjE2cHgiIGZvbnQtd2VpZ2h0PSI0MDAiIGR5PSIxZW0iIGFsaWdubWVudC1iYXNlbGluZT0ibWlkZGxlIiBkb21pbmFudC1iYXNlbGluZT0ibWlkZGxlIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiB5PSIzNTEiIHg9IjI4MyIgZmlsbD0iIzMzMyI+UsOpcG9uc2UgZGUgQ29uZmlybWF0aW9uPC90ZXh0PgogIDxsaW5lIHN0eWxlPSJzdHJva2UtZGFzaGFycmF5OiAzLCAzOyBmaWxsOiBub25lOyIgbWFya2VyLWVuZD0idXJsKCNhcnJvd2hlYWQpIiBzdHJva2U9IiMzMzMiIHN0cm9rZS13aWR0aD0iMiIgeTI9IjM4NCIgeDI9Ijc5IiB5MT0iMzg0IiB4MT0iNDg2Ij48L2xpbmU+Cjwvc3ZnPgo=)

## Synchronisation des Données[​](#data-synchronization "Lien direct vers Synchronisation des Données")

Les données sont récupérées depuis WooCommerce en utilisant l'[API REST de WooCommerce](https://woocommerce.github.io/woocommerce-rest-api-docs/). Cela signifie que le POS doit télécharger chaque produit, variation, catégorie de produit, client, taux de taxe, et plus encore pour les stocker localement.

Bien que cela puisse prendre du temps au départ, une fois téléchargées, elles sont disponibles instantanément sans avoir besoin de se re-brancher continuellement au serveur.

### Qu'est-ce qui est Synchronisé ?[​](#what-gets-synced "Lien direct vers Qu'est-ce qui est Synchronisé ?")

* Produits et variations
* Catégories de produits et balises
* Clients
* Taux de taxe et classes fiscales
* Passerelles de paiement (pour le processus de paiement)
* Commandes (pour l'historique des commandes dans Pro)

### Stratégie de Synchronisation[​](#sync-strategy "Lien direct vers Stratégie de Synchronisation")

WCPOS utilise une stratégie de synchronisation incrémentale :

1. **Synchronisation initiale :** Télécharge toutes les données au premier chargement
2. **Mises à jour incrémentales :** Ne récupère que les changements depuis la dernière synchronisation
3. **Synchronisation en arrière-plan :** Vérifie périodiquement les mises à jour
4. **Synchronisation manuelle :** L'utilisateur peut déclencher une synchronisation à tout moment

## Avantages et Inconvénients de l'Architecture[​](#architecture-pros-and-cons "Lien direct vers Avantages et Inconvénients de l'Architecture")

| Bon 😊                                                                          | Mauvais 😟                                                                   |
| ------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| La recherche de données locales est instantanée                                 | Maintenir les données synchronisées est un défi                              |
| Les données mises en cache sont disponibles hors ligne                          | Limité par l'API REST de WooCommerce                                         |
| Capacité à créer de meilleures applications natives pour bureau, iOS et Android | Les thèmes et hooks WordPress ne peuvent pas personnaliser l'application POS |

## Base de Données Locale[​](#local-database "Lien direct vers Base de Données Locale")

Le client JavaScript stocke les données dans IndexedDB, une base de données basée sur le navigateur. Cela fournit :

* **Persistance :** Les données survivent aux redémarrages du navigateur
* **Performance :** Requêtes rapides sans latence réseau
* **Navigation hors ligne :** Les données mises en cache restent accessibles sans internet

## Architecture de Paiement[​](#checkout-architecture "Lien direct vers Architecture de Paiement")

Le processus de paiement utilise un iframe/webview qui charge la page de paiement de commande WooCommerce. Cette approche :

* **Tire parti des passerelles de paiement existantes :** Toute passerelle de paiement WooCommerce peut fonctionner dans le POS
* **Maintient la sécurité :** Le traitement des paiements se fait via l'infrastructure sécurisée de WooCommerce
* **Réduit la complexité :** Pas besoin de réimplémenter les intégrations des passerelles de paiement

## Extensions API[​](#api-extensions "Lien direct vers Extensions API")

Le plugin PHP étend l'API REST de WooCommerce avec des points de terminaison supplémentaires pour des fonctionnalités spécifiques au POS. Consultez l'[API REST de WooCommerce](/fr/reference/wc-rest-api.md) pour plus de détails.

***
