Système de caisse Android pour commerces
Un système de point de vente pour terminaux Android avec catalogue, opérateurs, clôture de caisse, impression et tableau de bord de gestion à distance.

Le projet
Nous avons développé un système de caisse Android et un tableau de bord mobile pour gérer produits, opérateurs, terminaux, ventes et recettes à partir d’un même backend.
Sur le terminal, l’opérateur se connecte avec un code PIN validé par le serveur, enregistre la vente, imprime le reçu et peut continuer à travailler avec un cache local quand la connexion est instable. Le tableau de bord permet de suivre les ventes, les produits et les terminaux sans interrompre le travail au comptoir.
L’intégration matérielle couvre l’impression et la lecture sans contact via le SDK de l’appareil. Le flux EMV a été préparé et testé sur du matériel de développement ; l’autorisation bancaire réelle nécessite encore un acquéreur, des clés de production et une certification spécifique.
Stack : Kotlin · Jetpack Compose · Hilt · Room · Retrofit · WorkManager · Supabase · PostgreSQL.
Besoin de quelque chose de similaire ?
Présentez-nous votre cas : nous partons de ce que nous avons déjà construit pour aller plus vite et dépenser moins.
Service associé : Applications mobilesDétails techniques
Défis
- →Garder le processus de vente disponible quand la connexion est intermittente
- →Éviter que deux comptoirs réclament le même terminal ou dupliquent une vente si la connexion se coupe en pleine opération
- →Une clôture de caisse toujours juste, même si l’appareil perd le réseau au moment de fermer la journée
- →Une deuxième application de gestion qui reflète l’activité en temps réel sans ralentir le terminal de paiement au comptoir
Comment nous les avons résolus
- Intégration avec le SDK du terminal pour l’impression et la lecture sans contact, avec un retour clair en cas d’erreur ou de délai dépassé
- Une file d’attente locale avec WorkManager qui se synchronise en arrière-plan, l’attribution des terminaux étant résolue de façon atomique côté backend
- Une clôture de caisse validée par le serveur — l’état distant fait toujours foi, l’appareil ne « suppose » jamais qu’une clôture a été appliquée
- Un tableau de bord sur le même backend avec son propre cycle de synchronisation — le gérant voit l’activité en temps réel sans toucher au travail du comptoir