Fonctionnalités
Tout ce dont votre café et restaurant a besoin
De la génération de QR codes au suivi des commandes en temps réel, du contenu généré par IA aux menus multilingues – Thmenu est la solution digitale complète pour votre activité en croissance.
- 01
Un menu QR pour chaque table
Chaque table a son propre QR code, qui ouvre votre menu dans le navigateur — les clients n’ont besoin ni d’application ni de compte.
- 02
31 langues
Le menu s’ouvre dans la langue du téléphone du client lorsqu’elle fait partie des 31 langues prises en charge. Les noms et les descriptions des plats sont traduits automatiquement en arrière-plan, et vous pouvez corriger n’importe quelle traduction.
- 03
Commande à table
Les clients commandent depuis leur table et la commande apparaît en direct dans votre tableau de bord, avec une alerte sonore et une notification push pour votre personnel.
- 04
Analyses du menu
Voyez combien de fois chaque plat a été ouvert, ajouté au panier et commandé, vos commandes et votre chiffre d’affaires jour par jour, ainsi qu’une carte de chaleur de vos heures d’affluence.
- 05
Détails des plats avec l’IA
Saisissez le nom d’un plat et l’IA propose une description, des ingrédients et des allergènes, à vérifier avant d’enregistrer. Tout le menu peut ensuite être traduit dans chacune des langues que vous proposez.
- 06
Vos couleurs et votre mise en page
Choisissez vos propres couleurs ou une palette prédéfinie, et affichez le menu en grille, en liste ou en liste compacte, avec le style de cartes de votre choix.
- 07
Sécurité intégrée
Les commandes sont contrôlées pour détecter l’usage de Tor ou d’un VPN, des signes de localisation falsifiée et des pics soudains, et celles qui présentent un risque sont signalées à votre personnel. La prise de commande est soumise à une limite de fréquence, et un envoi répété ne crée pas de seconde commande.
- 08
Campagnes et codes promo
Affichez des bannières promotionnelles sur votre menu pendant une période donnée ou sur un créneau hebdomadaire de type happy hour, et proposez des codes de réduction avec une date de début et de fin.
- 09
Sur l’écran d’accueil
Les clients peuvent ajouter votre menu à leur écran d’accueil sur iOS et Android. Un menu ouvert sur le téléphone au cours de la dernière journée reste lisible sans connexion, et les commandes passées hors ligne sont envoyées dès que la connexion revient.
- 10
Vitesse mondiale – Cloudflare CDN
Servi depuis le réseau mondial de Cloudflare, donc depuis un nœud proche de votre client. La vitesse réelle dépend de sa connexion.
- 11
Évaluations des clients
Lorsque l’addition d’une table est clôturée, les clients peuvent noter leur visite, et chaque note apparaît dans votre tableau de bord.
- 12
Appel serveur & demande d'addition
Les clients peuvent appeler un serveur ou demander l’addition depuis leur table, et votre personnel voit et clôture chaque appel dans le panneau d’administration.
- 13
Rôles du personnel
Des rôles prédéfinis pour les serveurs, les caissiers, le personnel de cuisine et les managers, chacun avec ses propres autorisations. Le personnel se connecte avec un code PIN sur l’écran cuisine et sur l’application du personnel pour montre connectée, et les modifications importantes sont consignées.
- 14
Saisie manuelle des commandes
Saisissez les commandes à table, à emporter et par téléphone depuis votre tableau de bord ; un reçu imprimable s’ouvre après chacune d’elles.
- 15
Accessibilité
Contrôles de taille de police et mode contraste élevé intégrés sur chaque menu. Les clients malvoyants peuvent ajuster l'affichage selon leurs besoins — aucune configuration supplémentaire requise.
- 16
Sans papier
Modifiez un prix ou un plat quand vous voulez et le menu se met à jour ; les QR codes imprimés restent les mêmes, il n’y a donc rien à réimprimer.
- 17
Paiements, à votre façon
Les clients paient par carte depuis leur propre téléphone via Stripe, avec Apple Pay et Google Pay sur les appareils compatibles, dans les pays où Stripe est disponible.
- 18
Borne en libre-service
Transformez une tablette en menu libre-service plein écran sur votre comptoir : les clients parcourent le menu et passent des commandes à emporter, et l’écran se réinitialise après chaque client.
- 19
Points de fidélité
Les membres gagnent des points à chaque commande et passent à des niveaux où ils en gagnent plus vite, et vous pouvez consulter et ajuster le solde de chaque membre depuis votre tableau de bord.
- 20
Réservations & Liste d'attente
Prenez des réservations — les clients qui laissent une adresse e-mail reçoivent une confirmation et des mises à jour par e-mail — et tenez dans votre tableau de bord une liste d’attente pour les clients sans réservation.
Liste complète
Toutes les fonctionnalités225
Les capacités complètes de bout en bout de Thmenu — chaque catégorie, rien de caché.
Application installable (PWA)4
- Installation sur l'écran d'accueil (iOS et Android) — Le tableau de bord d'administration et le menu client s'installent comme une application depuis le navigateur — sans boutique d'applications, sans téléchargement.
- Fonctionne hors ligne — Un menu déjà ouvert continue de fonctionner sans connexion.
- Notifications push — Les nouvelles commandes, les appels serveur et les demandes d'addition arrivent sous forme de notifications push dans l'application installée.
- Mode autonome plein écran — Une fois installée, elle s'exécute sans l'interface du navigateur, comme une application native.
Notifications et push10
- Web Push (VAPID, RFC 8291) — Web Push signé VAPID ES256 vers les navigateurs admin et les clients (commande prête) ; urgency:high, TTL ~10 min
- Commande reçue → propriétaire — Se déclenche au POST réussi d'une commande client (« nouvelle commande de la table N, total X $ ») sur le natif + le web
- Commande prête → propriétaire — Se déclenche lorsqu'une commande passe à « prête » ; regroupe automatiquement les mises à jour d'une même commande
- Commande prête → client (Web Push) — Push VAPID côté client lorsque sa commande est prête ; activation sur la page de détails de la commande
- Commande annulée → propriétaire — Se déclenche lorsqu'un client annule dans la fenêtre de 90 secondes
- Appel serveur → propriétaire/personnel — Le bouton « Appeler le serveur » déclenche un push par table vers la montre + le téléphone du personnel + le web admin, avec vocabulaire haptique
- Demande d'addition → propriétaire/personnel — Le bouton « Obtenir l'addition » du client déclenche un push par table vers la montre, le téléphone et le web
- Prévision de rupture de stock → propriétaire — Alerte de rupture de stock prévue par AI à 3 jours, une fois/jour/restaurant lorsque la confiance ≥ 50 %
- Réservation créée → propriétaire — Push par restaurant vers la montre/le téléphone/le web du propriétaire lors d'une nouvelle réservation
- Notifications SSE en temps réel → web admin — Un polling D1 toutes les 5 secondes envoie au web admin le nombre de commandes en attente, les appels serveur, les demandes d'addition et les commandes prêtes
Commande, KDS et cuisine23
- Menu QR (menu client principal) — Menu numérique destiné au public via QR ou URL directe avec catégories, produits et images
- Panier et paiement — Panier pour sélectionner les produits avec modificateurs et quantités avant le paiement
- Commande client (cycle de vie en 5 étapes) — Passée → en attente → confirmée → en préparation → prête → servie avec mises à jour de statut en temps réel ; canonique côté serveur
- Modificateurs et personnalisation des commandes — Groupes de modificateurs par produit (taille, garnitures, suppléments) avec écarts de prix par option, stockés en instantané JSON
- Notes produit (instructions spéciales) — Notes libres par article (« sans oignons ») affichées sur le ticket KDS
- ETA / compte à rebours de la commande — Minuteur de préparation de 25 min visible par le client, de « en préparation » à « prête » (target_ready_at), polling 30 s, pulsation verte au
- Ajustement du pourboire (après paiement) — Le client ajoute/modifie le pourboire après la commande, plafonné côté serveur par tip_max_percent (50 % par défaut)
- Annulation de commande (fenêtre de 90 s) — Le client annule les commandes en attente sous 90 s avec contrôle de course atomique, annulation des points de fidélité gagnés et shadowban
- Remboursements de commandes (suivi cumulatif) — Remboursements partiels/intégraux par l'admin, suivis de façon cumulative dans refunded_amount_cents avec garde anti-course OCC (409)
- Multidevise et ventilation des taxes — Total de commande avec ventilation des taxes par taux en JSON, taxe incluse vs exclue, instantané de devise
- Partage de commande (Web Share API) — Le client partage le statut de commande en direct vers d'autres téléphones via la feuille de partage native de l'OS ou le presse-papiers
- KDS (système d'affichage cuisine) — File de commandes SSE/poll en temps réel avec transitions de statut (en attente → confirmée → en préparation → prête → servie)
- Stations KDS et connexion par code PIN — Plusieurs stations KDS par restaurant, chacune avec un code PIN de 4 à 6 chiffres et un filtrage par catégorie par station
- Flux de statut de commande KDS (OCC) — Transitions de cuisine atomiques avec contrôle de course `AND status=<prev>` et libellés de boutons par statut en option
- Liste et détail des commandes — Toutes les commandes regroupées par statut ; accès aux articles/totaux/client ; remboursements partiels manuels, ajusteur de pourboire
- Saisie de commande (POS manuel) — Le personnel crée des commandes table → catégorie → produit → qté → confirmer ; POST idempotent ; gère téléphone/espèces
- Ardoises de bar (suivi par session) — Ardoise persistante par client sur plusieurs commandes avec solde courant et suivi par article
- Prise en charge des imprimantes thermiques ESC/POS — Constructeur d'octets ESC/POS brut (largeurs de 32/42/48/56 caractères) avec encodage turc CP857 pour les reçus
- Pont imprimante thermique (Web Serial/USB/Bluetooth) — Couche de transport navigateur pour la communication ESC/POS via Web Serial, USB et Bluetooth
- Interface de configuration et d'appairage d'imprimante — Découvrez, appairez et testez les imprimantes avec sélection du modèle/de la largeur/de l'encodage
- Ticket de cuisine — Impression cuisine ESC/POS spécialisée : restaurant, table, articles, qté, notes, modificateurs, temps écoulé
- Reçu client / ticket d'addition — Reçu thermique destiné au client : restaurant, table, articles, prix unitaire, total, moyen de paiement, horodatage
- Auto-86 en cas de rupture de stock — Le décrément atomique des stocks à la commande dépublie les produits à stock ≤ 0 et envoie une alerte au propriétaire
Kiosque2
- Mode kiosque (libre-service) — Kiosque plein écran sur n’importe quelle tablette : écran « Touchez pour commencer », menu en direct et panier, réinitialisation après 60 secondes d’inactivité ; les commandes sont passées comme commandes à emporter
- Enregistrement d'appareil kiosque — Enregistrez et gérez les appareils kiosque depuis la surface développeur/intégrations
Paiements2
- Stripe Checkout & Payment Intents — Sessions de paiement client + payment intents pour les commandes d'agents ; SCA/3D-Secure, attribution par métadonnées, remboursement
- Stripe Connect — Versements aux restaurants & partages de commission (le restaurant conserve sa part du sous-total, commission de plateforme) ; piloté par webhook
Suite AI29
- Générateur de descriptions produit AI — LLaMA 3.1 8B génère une description de menu de 2 phrases à partir du nom/de la catégorie/du prix avec entrée assainie
- Remplissage automatique des détails produit AI — Renseigne la nutrition (kcal/lipides/glucides/protéines/sel), les ingrédients et la liste blanche des 14 allergènes UE avec un KV de 7 jours
- Générateur de menu AI (en masse) — Structure complète de menu en une seule invite (catégories, produits, descriptions, prix suggérés, allergènes, portions)
- Nettoyage de menu AI — Détecte les produits en double/inactifs, les noms incohérents, les fautes de frappe et les contre-performances comme candidats à l'élagage
- Suggestions de tarification AI — Analyse les ventes/recettes unitaires sur 30 jours par rapport aux médianes anonymisées par catégorie inter-restaurants ; renvoie des prix suggérés
- Suggestions de recettes AI — Suggère des recettes saisonnières/thématiques à partir des ingrédients disponibles, de la cuisine et des tendances alimentaires, avec étiquettes d'allergènes
- Générateur de plats du jour AI — Génère des spéciaux quotidiens/hebdomadaires + textes marketing à partir des ingrédients, de la saisonnalité et des tendances, avec suggestions
- Optimiseur de planning de service AI — Suggère des schémas de service du personnel à partir du volume historique, des heures de pointe, des réservations, des disponibilités et du coût de main-d'œuvre
- Traduction de menu AI — Traduction contextuelle des noms + descriptions de plats/boissons vers 31 langues, en préservant le balisage HTML
- Générateur de réponses aux avis AI — Rédige des brouillons de réponses du propriétaire aux avis des clients, avec un ton au choix, dont un ton d’excuse ; le propriétaire les modifie et les envoie
- Générateur de bio AI — Génère une bio de restaurant de 200 mots optimisée SEO à partir de la cuisine, du lieu, des spécialités et de l'histoire fondatrice
- Insights AI (quotidiens/hebdomadaires/mensuels) — Rapports narratifs générés par cron (3 à 5 paragraphes) comparant recettes/AOV/top produits/funnels en glissement annuel/hebdomadaire, avec 3 à 5
- Chat de menu AI (côté client) — Recherche de menu en langage naturelle (« pâtes végétariennes ? », « qu'est-ce qui est sans gluten ? ») renvoyant 3 à 5 produits correspondants avec
- Recommandations de produits AI — Suggestions de 3 à 5 produits tenant compte du panier, à partir du contexte du menu + du contenu du panier + d'une liste d'exclusion, ancrées au produit principal
- Ventes incitatives intelligentes AI — 2 à 4 articles complémentaires (accords, suppléments, desserts, boissons, entrées) classés par upsell_type à partir du
- Commande vocale AI (voix vers panier) — Web Speech API → LLaMA analyse l'intention → fait correspondre les produits → renvoie les articles du panier avec drapeaux d'ambiguïté ; localisé
- Accord vin/boisson AI — Suggestions d'accords pour les plats commandés selon le profil de saveurs, la cuisine et la carte des vins, avec niveau de prix et
- Suggestions de plats AI (formulaire client) — Les clients soumettent des idées de plats (nom, description, indice de cuisine) ; l'admin trie par statut
- Nettoyage de contenu AI (modération en masse) — Revue par lots des retours clients pour grossièreté/spam avec suppression et signalement en masse
- Analyse de sentiment (retours/avis) — Un cron classe les retours des clients en positif/neutre/négatif/critique avec thématiques
- MCP : start_order_session — Émet agent_session_id + customer_confirm_url (TTL 30 min) ; vérifie le drapeau agent_enabled du restaurant
- MCP : place_order — Insère atomiquement commande + articles, valide les produits, fige la devise, décrémente le stock, applique l'auto-86 à zéro ;
- MCP : cancel_order — Annule atomiquement avec contrôles de propriété + TTL de session, garde anti-course OCC et annulation des points de fidélité gagnés
- MCP : get_order_status — Interroge le statut + l'ETA + les articles ; cache 30 s ; scope orders:read
- MCP : request_bill — Insère un bill_request, déclenche un push admin, peut pré-remplir le total pour l'interface de partage d'addition
- MCP : waiter_call — Insère un waiter_call, déclenche un push admin + montre avec vocabulaire de vibration ; note en option
- MCP : get_restaurant_menu — Schéma de menu public (sans scope) renvoyant catégories + produits + prix + allergènes
- MCP : check_loyalty — Renvoie le solde de fidélité + le niveau + le seuil du niveau suivant ; scope loyalty:read
- MCP : apply_promo — Réserve/réclame atomiquement une remise promo, vérifie le nombre max d'utilisations + la limite par client ; scope orders:write
Marketing et fidélité22
- Campagnes e-mail — Envois d'e-mails HTML aux listes d'abonnés avec suivi du statut (brouillon/en file/en envoi/envoyé/échoué) et livraison
- Modèles d'e-mail — Modèles HTML de marque réutilisables avec nom d'expéditeur et adresse de réponse personnalisés
- Abonnés e-mail — Liste d'abonnés avec statut (abonné/désabonné/rejeté/plainte), suivi de la source et par abonné
- Séquences e-mail goutte-à-goutte — E-mails de cycle de vie multi-étapes déclenchés par événement (inscription/première commande/anniversaire/réservation terminée, J+1/7/30
- Inscription + désabonnement newsletter e-mail — Capture d'e-mail au paiement avec liste configurée par l'admin et désabonnement en un clic
- Campagnes de bannières promotionnelles — Bannières de menu en vedette avec couleurs personnalisées, texte de badge, images, fenêtres de dates et ordre de tri
- Annonces (bannières dans le menu) — Bannières fixes dans le menu (« Happy Hour 17 h-19 h ») avec couleur/icône/texte personnalisés et plages de dates planifiées /
- Codes promo — Codes créés par l'admin avec remises en pourcentage/fixes, montants minimaux de commande, plafonds d'utilisation, utilisation par client
- Application du code promo par le client — Application au paiement avec validation côté serveur, application du plafond d'utilisation, contrôle du montant plancher et par IP
- Programme de fidélité (gain + utilisation) — Points par commande utilisables pour des remises/récompenses ; gardes atomiques de contrôle du solde, gestion du stock de récompenses
- Inscription à la fidélité — Création de compte client par e-mail/téléphone avec taux de gain par niveau et historique des visites
- Niveaux de fidélité — Classification Bronze/Argent/Or/Platine selon des seuils de dépense/visite avec taux de gain et d'utilisation propres à chaque niveau
- Automatisation des niveaux de fidélité — Un cron quotidien promeut automatiquement les niveaux selon la dépense cumulée sur 90 jours ; applique des bonus et des remises de fidélité
- Expiration des points de fidélité — Expiration à 12 mois avec une purge quotidienne à 11:00 UTC qui écrit des contre-écritures, décrémente le solde et notifie
- Ajustement admin de la fidélité — Delta de points manuel (positif/négatif) avec notes admin en option pour la piste d'audit
- Liste des membres fidélité — Vue admin de tous les membres : e-mail/téléphone/nom, solde de points, points/dépense à vie, nombre de visites, dernière visite
- Statistiques du portefeuille fidélité — Portefeuille client affichant les points à vie, le solde, le niveau, les gains de la période et l'inventaire des récompenses échangeables
- Marketing AI (contenu + segmentation) — Génération AI de posts sociaux, de modèles d'e-mail et de textes promo, plus segmentation des clients/campagne
- Mise en avant automatique — Un cron du lundi promeut automatiquement les articles à stock bas au statut « en vedette » pour réduire le gaspillage et écouler les stocks
- Plats du jour — Spéciaux à durée limitée suggérés par AI ou manuels, avec un badge « Plat du jour » et rotation automatique
- Drapeau « produit en vedette » — Drapeau manuel pour mettre en avant/promouvoir des articles du menu, visuellement accentués sur le menu client
- « J'aime » / liste de souhaits produit — Le client met en favori ses plats préférés via localStorage avec résolution inter-restaurants par un profil e-mail ;
Réservations / Liste d'attente10
- Réservations + calendrier de réservation — Réservation de date/créneau par le client avec taille du groupe, nom/e-mail/téléphone du client et notes ; calendrier jour côté admin
- File de réservations admin — Transitions de statut (en attente → confirmée → installée/no-show/terminée) avec vues à venir/historique triables
- Annulation de réservation (client) — Annulation via lien à code de confirmation avec contrôle de course atomique (status='pending')
- Code de confirmation de réservation — Code unique par réservation pour la référence, la vérification du statut et l'annulation
- Export iCalendar de réservation — Export client .ics avec les détails de la réservation pour l'import dans un calendrier
- Suivi des no-shows de réservation — L'admin marque les no-shows pour l'application de la politique
- Plafond de taille de groupe de réservation — Taille de groupe maximale par restaurant appliquée à la réservation (50 par défaut)
- Index de déduplication des créneaux actifs — Index UNIQUE partiel imposant une seule réservation en attente/confirmée par (restaurant, table, fenêtre temporelle)
- Sessions de table (jonction par QR, TTL 1 h) — Plusieurs clients scannent le même QR de table pour former une session (session_token, join_code, host_device_id) ; l'hôte
- Gestion de la liste d'attente — Rejoindre la file en libre-service (taille du groupe, téléphone, notes) avec transitions de statut admin (en attente → notifié →
Analytique et BI11
- Tableau de bord analytique — Cartes KPI en temps réel (recettes 24 h, nombre de commandes, AOV, taux de complétion), tendance des recettes sur 30 jours, carte thermique horaire
- Analytique des commandes — Volume de commandes, recettes, AOV, ventilation par moyen de paiement, suivi des remboursements, grand livre cumulé des remboursements, annulation
- Analyse ABC du menu (Pareto) — Classe les produits A (top ~80 % des recettes) / B / C à partir de l'historique de 30 jours, avec part de recettes cumulée, rang
- Score de santé du menu — Validateur de configuration : présence d'image, complétude des descriptions, couverture des allergènes, cohérence des prix, vedette
- Carte thermique des commandes — Visualisation du volume de commandes par heure de la journée × jour de la semaine pour repérer les pics et les périodes creuses
- Insights clients AI — Narratif quotidien (métriques jour/jour et semaine/semaine, clients à risque, meilleur membre fidélité, 3 CTA d'action) + analyse approfondie hebdomadaire
- Objectifs de recettes / cibles KPI — Objectifs de recettes/commandes/clients quotidiens/hebdomadaires/mensuels définis par l'admin, avec visualisation de la progression et analyse des écarts
- Carte thermique des heures populaires (API publique) — Endpoint public exposant la popularité du restaurant par heure pour aider le client à décider
- Z-report (réconciliation de fin de journée) — Totaux espèces & carte de fin de service avec détection des écarts, récapitulatif des remboursements, articles en attente, colonne pourboires, et
- Export de rapport de taxes — Compte de résultat mensuel/trimestriel : recettes, taxe collectée, remboursements, revenu net imposable ; CSV téléchargeable pour les comptables
- Suivi du coût des marchandises (COGS) — Coût des marchandises au niveau produit avec calcul automatisé de la marge et reporting P&L mensuel ; lien recettes
Personnel et opérations14
- Gestion du personnel (rôles + permissions) — Rôles propriétaire/admin/manager/cuisine/serveur/caissier/KDS avec barrières de permission granulaires (view_orders
- Authentification du personnel par code PIN — Connexion par code PIN de 4 à 6 chiffres pour le personnel KDS/de salle avec hachage PBKDF2 200k itérations, sel de 16 octets par identifiant, D1 atomique
- Pointeuse (arrivée/départ) — Pointage entrée/sortie par code PIN avec durée de service, pauses, calcul du coût de main-d'œuvre, signalement automatique des heures sup et jeton KDS
- Planification des services — Calendrier de services récurrents/ponctuels avec affectation du personnel, planification par plage de dates, fuseau horaire par restaurant
- Transmissions de service — Notes structurées d'un service à l'autre (commandes ouvertes, problèmes, incidents, notes de stock) avec confirmation et
- Pools de pourboires / frais de service — Agrégation quotidienne des pourboires avec règles de répartition par employé, parts par rôle/service, surcharge manuelle
- Journaux d'audit du personnel — Rétention glissante de 24 mois des actions du personnel (connexions, changements de PIN/mot de passe, changements de permissions, remboursements
- Boîte de réception (flux d'alertes unifié) — Polling de 5 secondes des appels serveur, demandes d'addition, stock bas, avis, réservations, incidents d'allergènes et service
- Appel serveur (système de sonnette) — Le bouton « Appeler le serveur » crée un enregistrement waiter_calls et pousse vers les montres du personnel + le web admin ;
- Acquittement de l'appel serveur — Le personnel consulte/priorise/acquitte les appels depuis le tableau de bord ou la montre avec suivi du temps de réponse
- Demande d'addition (adisyon) — Le bouton « Obtenir l'addition » crée un enregistrement bill_requests avec une machine à états de clôture ; le gel de l'addition bloque toute nouvelle
- Acquittement de la demande d'addition — Le personnel confirme la réception et la finalisation depuis le tableau de bord ou la montre
- Flux d'activité — Flux en temps réel de toutes les actions (commande créée, remboursement, connexion du personnel, modification du menu), cherchable et filtrable
- Horaires d'ouverture + mode vacances — Horaires d'ouverture par jour de la semaine (avec pauses) qui désactivent la commande en dehors des horaires, plus une bascule mode vacances
Menu, stocks et tarification15
- Éditeur de menu (produits/catégories/modificateurs) — CRUD complet du menu : créer/éditer/supprimer des articles, réassort CSV en masse, étiquetage des allergènes, surcharge du taux de taxe, nutrition AI
- Catégories de menu (hiérarchiques) — Regroupements de produits (entrées/plats/desserts/boissons) avec réorganisation par glisser-déposer et imbrication parent en option
- Gestion des produits (CRUD) — Cycle de vie complet du produit : nom, description, prix, image, disponibilité, temps de préparation, allergènes, ingrédients
- Éditeur de recette produit + COGS — Liste d'ingrédients de la recette avec COGS unitaire et calcul du % de marge
- Import/export en masse des produits
- Mise à jour de prix en masse des produits — Appliquez une majoration/minoration en pourcentage à plusieurs produits avec aperçu avant validation
- Suivi du réassort produit — Consignez les réassorts manuels avec quantité et horodatage pour la réconciliation des stocks
- Galerie produit (multi-images) — Téléversez plusieurs photos de produit (angles, ingrédients, prises de préparation) avec une visionneuse de galerie ; sur l'appareil
- Infos nutritionnelles (AI + manuel) — Calories, macros, allergènes renseignés par AI ou manuellement, avec taux de taxe par article
- Suivi des allergènes + avertissements clients — Liste des 14 allergènes UE sur les produits ; la saisie des allergies du client affiche des avertissements dans le panier ; journal des incidents
- Gestion des stocks — Suivi du stock par produit avec auto-86 à ≤ 0, notifications au propriétaire et statut de disponibilité
- Grand livre des mouvements de stock — Journal détaillé de tous les ajustements de stock (réconciliation, exécution, gaspillage, avarie, transferts) avec codes motifs
- Analytique prédictive des stocks & réassort — Prévision AI de rupture sur 14 jours (taux d'épuisement + confiance) alertant lorsque les jours-avant-rupture < 3 avec
- Rafraîchissement nocturne des COGS — Recalcul à 02:30 UTC des COGS produit à partir des recettes, détectant les baisses de marge > 10 % et affichant des alertes admin
- Paramètres et taux de taxe — Config de taxes multi-taux avec surcharges par produit et défaut du restaurant, bascule taxe incluse vs ajoutée
Expérience client / PWA / i18n14
- PWA (installable, offline-first) — Menu client + tableau de bord admin installables avec prise en charge hors ligne par Service Worker, mutations network-first
- Synchronisation en arrière-plan (file hors ligne) — Commandes/retours mis en file hors ligne et rejoués par le Service Worker à la reconnexion, avec un indicateur hors ligne et
- Localisation (31 langues + RTL) — TR/EN/DE/FR/ES/IT/PT/RU/AR/HE/FA/ZH/JA/KO/NL/PL/RO/EL et plus, avec mise en miroir RTL arabe/hébreu
- Conversion de devises en direct — Sélecteur de devises en direct (EUR/USD/GBP/SAR/AED) — les touristes voient les prix dans leur monnaie
- Mode sombre — Détection du thème système + bascule manuelle persistée dans localStorage
- Accessibilité (WCAG 2.1 AA) — Étiquettes ARIA, HTML sémantique, navigation au clavier, focus-visible et cibles tactiles de 44×44
- Éditeur de thème de menu — Sélecteur de couleurs, choix de police, logo/couverture et bascule de mise en page (grille vs liste) appliqués au menu et au web
- Galerie / images du restaurant — Téléversez des photos de galerie intérieur/plats avec légendes pour l'en-tête du menu et la page de destination
- Gestion des liens sociaux — Liens Instagram/TikTok/Facebook/LinkedIn configurables dans le pied de page du menu avec validation safeHref
- Affichage des infos Wi-Fi — SSID + mot de passe du Wi-Fi invité affichés dans le pied de page du menu
- Retour / NPS (après commande) — 5★ + catégorie + message de 280 caractères après le service, avec déduplication une fois par commande, encodage d'entités et par IP
- Tableau de bord admin des retours — Tous les retours avec puces de sentiment, filtrage par plage de dates et source, et push d'alerte critique
- Tri des suggestions de plats — Idées de plats soumises par les clients en file pour le tri admin avec statut et notes admin
- Abonnements Web Push clients — Notifications commande prête/annulée avec deep-link vers le détail de la commande ; persistance de l'abonnement avec
CRM client4
- Liste clients / CRM — Tableau de bord agrégeant membres fidélité + réservations + retours en une liste de contacts cherchable avec détail
- Infos de contact CRM (déduplication) — Stockage de contact e-mail/téléphone unifié, dédupliqué entre commandes, réservations, fidélité et retours
- Candidats à la reconquête CRM — Signale les clients sans visite depuis 60+ jours comme risque de churn pour le réengagement
- Étiquetage CRM — Étiquettes libres (VIP/régulier/ponctuel) pour la segmentation
Automatisation5
- E-mail de digest quotidien des opérations — E-mail quotidien opt-in par fuseau horaire de restaurant : recettes, commandes, pourboires, top produits, récap des retours, nouveaux
- E-mail de digest quotidien des stocks bas — E-mail HTML Resend listant les produits à stock_qty ≤ seuil ; 09:00 UTC, protégé par idempotence
- Alertes de réassort des ingrédients — E-mail quotidien des produits à réapprovisionner avec quantités basées sur la vélocité d'usage et liens fournisseurs ; 09:30 UTC
- Sauvegarde (hebdomadaire) + vérification (quotidienne) — Instantané AES-256-GCM le dimanche 02:00 UTC de toutes les bases D1 vers R2 (tables PII ignorées), avec un quotidien 05:00 UTC
- Traitement des suppressions GDPR/KVKK — Suppression définitive quotidienne à 14:00 UTC des comptes au-delà de la période de grâce de 30 jours via une liste blanche de tables à effacer avec
Programme d'affiliation30
- Programme d'affiliation (phases 1 à 3) — Système de parrainage : inscription, suivi des commissions, versements, 1099, détection d'anomalies sur web-affiliate +
- Inscription affilié (OTP + Turnstile) — Inscription e-mail/mot de passe avec Turnstile anti-bot, limite de débit par IP sur 24 h (3/jour) via hachage salé quotidiennement, et
- Authentification OTP — OTP éphémère géré par worker (TTL 5 min, lié à un scope : payout_request/balance_check/kyc_approve) via cookie ou
- Tableau de bord affilié (cartes KPI) — Soldes total gagné / en attente / disponible / payé, taux de commission, niveau + code de parrainage (copier), actif
- Historique et ventilation des gains — Graphique en barres des gains mensuels, liste anonymisée des restaurants parrainés et gains filtrés par statut/plage de dates
- Flux de demande de versement — Demande sécurisée par OTP (min 50 $) validant atomiquement le délai de 15 jours ET le plafond mensuel (2/mois par défaut), capturant un
- Règlement de versement Wise — L'approbation par le super-admin crée un devis/bénéficiaire/transfert Wise ; les webhooks suivent en attente →
- Journal des mouvements d'argent (grand livre d'audit) — Grand livre immuable de chaque mutation de solde (commission_released, payout_requested/settled, dormancy_forfeit
- KYC des infos de versement (chiffré) — Pays, drapeau US-person, formulaire fiscal, e-mail du bénéficiaire Wise, adresse légale, nom du bénéficiaire chiffrés au repos
- Dépôt de document KYC — Dépôt W-9/W-8BEN/certificat fiscal/pièce d'identité/justificatif IBAN (5 Mo, JPEG/PNG/HEIC/PDF), base64 + chiffré pgcrypto ; iOS/Android
- Rails de versement (Wise/SEPA/ACH/SWIFT) — Quatre rails de versement avec saisie IBAN + SWIFT/BIC + routage ACH + identifiant fiscal
- Alerte de seuil 1099-NEC (IRS 600 $) — Analyse quotidienne à 13:00 UTC signalant les affiliés US ≥ 600 $ cumulés sur l'année pour l'émission du 1099-NEC, idempotente par (affilié
- Machine à états de dépôt 1099 — Suit le cycle de vie du 1099 (issued/filed/sent_to_irs) avec finalisation par le super-admin et copie e-mail d'audit
- Détection d'anomalies (scoring heuristique) — Analyse 6 types de signaux (coupon-sans-clic, inscription IP en double, remboursement rapide, achat par soi-même, grappe de pairs même-IP
- Auto-suspension sur anomalie (critique) — Auto-suspension quotidienne opt-in des affiliés avec anomalies critiques non résolues (gravité ≥ 80)
- Recours pour dormance — L'affilié suspendu dépose un recours ; le super-admin examine ; un RPC remet à zéro le compteur de 12 mois en cas d'approbation ; 60 jours
- Webhook postback S2S (HMAC) — POST signé vers l'URL de l'affilié lors de commission créée/remboursée/libérée avec X-thMenu-Signature, 5 s
- Rotation du secret postback (double-signature) — Signature à chevauchement de 7 jours avec le secret actuel + le précédent (X-thMenu-Signature + -Previous), puis un cron met à NULL
- Réessai postback + file de lettres mortes — Réessai horaire (5× backoff exp) avec les endpoints injoignables signalés dead_letter pour inspection ops
- Décompte quotidien des coupons (barrière anti-spam) — Plafond quotidien de réclamations de coupons par affilié (100/jour par défaut) via un UPSERT atomique…WHERE used<cap pour éviter la survente ;
- Suivi des clics de coupon — Enregistre les partages dans affiliate_clicks (affiliate_id, coupon_code, timestamp, ip_hash) alimentant la conversion
- Statistiques / analytique des coupons — Clics vs conversions par coupon (clients actifs sur 90 jours), taux clic-conversion, recettes attribuées, et
- Chronologie du journal (natif + web) — Lignes de mouvements d'argent paginées du plus récent au plus ancien, avec ton adapté à l'opération et textes localisés
- Reprise pour remboursement (au prorata) — Au remboursement de la facture, reprend (remboursement/original × commission), annulant d'abord les futures tranches du goutte-à-goutte ; solde
- Reprise sur rétrofacturation (litige perdu) — Reprise intégrale sur charge.dispute.closed outcome=lost (litiges clos uniquement), journalisée séparément des remboursements
- Extourne de versement/reprise (remboursement Wise) — Sur remboursement/rétrofacturation/annulation d'un transfert Wise, le RPC reverse_affiliate_payout re-crédite le grand livre
- Supports marketing affilié (proxy R2) — Bannières de marque, modèles d'e-mail, QR codes et un guide de vente + guide de gestion des objections stockés dans R2
- Guide marketing (guide d'onboarding) — Les faits sur le programme, la règle obligatoire de divulgation de la commission et une section du tableau de bord pour les supports prêts à l'emploi, au fur et à mesure de leur publication
- Calendrier de versement affilié (projection) — Prévoit les gains anticipés par mois à partir du calendrier du goutte-à-goutte + des retenues en attente (projection statique)
- Authentification affilié (mobile) — Connexion par OTP en lien magique + mot de passe avec saisie automatique, réinitialisation du mot de passe oublié et inscription Turnstile
Intégrations / API9
- Clés API publiques & API REST — Clés API générées par l'opérateur pour les intégrations tierces, à débit limité (60 req/min), avec scopes lecture/écriture
- Abonnements webhook & répartiteur — Webhooks définis par l'opérateur pour les événements clients (commandes, retours, avis) avec signature HMAC-SHA256
- Authentification client OAuth (RFC 7009/6749) — Les applications OAuth révoquent leurs propres jetons ; validation client-credentials (auth basic + corps) ; rotation des refresh-token
- Domaine personnalisé + vérification CNAME (diffusion pas encore disponible) — Ajoutez un domaine personnalisé (menu.monrestaurant.com) et vérifiez son enregistrement CNAME ; servir le menu depuis celui-ci n’est pas encore disponible
- Génération de QR codes + export PDF — Générez des QR codes menu/table/chambre imprimables en PDF individuels ou par lots avec superposition de marque et SRI
- Service e-mail (Resend) — E-mails transactionnels opérateur & client (digests, alertes, statut de versement, réinitialisation de mot de passe, facturation, OTP
- Lien d'avis Google et import Maps — Le lien d'avis Google du restaurant pour rediriger les avis, et l'import d'un lien Google Maps qui renseigne le nom de l'établissement et ses coordonnées
- Spécification OpenAPI — Schéma d'API REST auto-généré et découvrable à /openapi.json
- llms.txt (fichier d'instructions AI) — Aperçu de la plateforme lisible par machine (produit, fonctionnalités, tarifs, auth) pour les moteurs de recherche LLM/AI
Sécurité et conformité19
- Auth e-mail/mot de passe + lien magique — Connexion du propriétaire par e-mail/mot de passe ou lien magique sans mot de passe
- Supabase Auth — Auth basée sur JWT pour les opérateurs, affiliés et super-admins avec récupération par lien magique, réinitialisation de mot de passe et RLS
- Authentification par jeton bearer JWT — JWT signés HMAC-SHA256 pour l'accès à l'API et le middleware worker Cloudflare
- Supabase RLS (sécurité au niveau ligne) — Les opérateurs ne voient que leurs restaurants, les affiliés que leurs commissions/versements, les clients que les leurs
- TOTP 2FA (super-admin) — 2FA par application d'authentification RFC 6238 requise pour la connexion super-admin
- Protection CSRF par cookie double-submit — Les endpoints à changement d'état exigent un en-tête X-CSRF-Token vérifié par rapport à un cookie sécurisé
- Content Security Policy (nonce + strict-dynamic) — script-src 'self' 'nonce-…' 'strict-dynamic' pour empêcher l'injection de scripts inline
- Limitation de débit (route handler Next.js) — Fenêtres glissantes par hachage d'IP SHA-256 salé quotidiennement par isolate sur 14 endpoints de menu
- Détection de shadowban — Détecte les annulations répétées et les schémas d'IP suspects, bloquant silencieusement les commandes sans erreur
- Détection de faux GPS — Signale les changements de localisation impossibles entre les horodatages de commande
- Validateur de schéma d'URL (safeHref) — Met en liste blanche http(s)/mailto/tel pour empêcher le XSS stocké via social_links, logo_url, cover_url et les liens d'avis
- Durcissement du hachage PIN/mot de passe — PBKDF2 200k itérations, sel de 16 octets par identifiant, re-hachage transparent du legacy à la prochaine connexion
- Compteur de verrouillage PIN (adossé à D1) — UPSERT atomique dans pin_failures avec une fenêtre tournante de 30 min
- Droits des personnes concernées GDPR (DSR) — Fenêtre de suppression de 30 jours à compter de la demande, export des données en JSON et grâce d'anonymisation des commandes de 90 jours ; données personnelles
- Conformité KVKK (Türkiye) — Suppression équivalente GDPR à 30 jours, DSR et journaux de consentement avec logique de cron multi-juridictionnelle
- Flux de suppression de compte — Suppression demandée par le propriétaire avec période de grâce de 30 jours et effacement en cascade des PII via une liste blanche
- Journal de consentement (bandeau cookies) — Suit l'opt-in/opt-out pour analytique/e-mail persisté par session
- Suivi des incidents allergènes & de sécurité — Le personnel consigne les rapports de contact croisé/blessure/violation d'allergènes avec photos/horodatage/localisation ; PII NULL à 12 mois /
- Politiques (confidentialité/CGU/règlement intérieur) — Politique de confidentialité, CGU et règlement intérieur personnalisables affichés dans le pied de page du menu
Admin2
- Paramètres / configuration du restaurant — Métadonnées, devise, fuseau horaire, paramètres de pourboire et drapeaux opérationnels
- Boîte de réception des notifications admin — Boîte de réception centralisée pour les commandes, remboursements, alertes du personnel et messages admin avec état lu/non lu
LE PARCOURS CLIENT
Du scan au paiement — tout depuis le téléphone du client
Aucune application à installer, aucun matériel à acheter. Le client scanne le code et ces six étapes fonctionnent d’elles-mêmes.
La langue du client, automatiquement
La carte s’ouvre dans la langue du téléphone du client — 31 langues, sans rien avoir à choisir.
La devise du pays du client
Les prix s’affichent dans la devise du client à côté de la locale — sans calculatrice.
Commande à table
Le client ajoute au panier et envoie la commande — elle arrive directement sur l’écran cuisine.
Appeler le serveur
Un bouton à table alerte l’équipe avec le numéro de table — sans lever la main ni attendre un regard.
Demander l’addition
Le client demande l’addition depuis son téléphone et la demande arrive à l’équipe avec la table et le total en cours.
Payer à table
Le client paie par carte depuis son téléphone dans le formulaire sécurisé du prestataire. Le paiement d’abord est la valeur par défaut : la commande n’arrive pas en cuisine avant d’être payée.
FAQ
Questions fréquemment posées
Vous n'avez pas trouvé ce que vous cherchiez ? Notre équipe est là pour vous aider.
Nous contacterMes clients doivent-ils télécharger une application ?
Non. Les clients scannent simplement le QR code avec l'appareil photo de leur téléphone. Le menu s'ouvre instantanément dans le navigateur – sans téléchargement d'app, sans compte, sans inscription requise.
Combien de langues Thmenu prend-il en charge ?
Thmenu prend en charge 31 langues dont l'arabe (RTL), le japonais, le chinois, le coréen et toutes les principales langues européennes. La langue de l'appareil du visiteur est automatiquement détectée.
Thmenu est-il vraiment gratuit ?
Oui. Pas de formules, pas d’abonnement et aucune fonctionnalité bloquée derrière une mise à niveau. Les seuls revenus de Thmenu sont des frais de plateforme de 1 % sur les paiements que les clients vous versent en ligne via Thmenu ; les espèces et votre propre terminal de paiement ne coûtent rien.
Puis-je utiliser mon propre domaine ?
Pas encore. Dans le panneau d’administration, vous pouvez ajouter votre domaine et vérifier son DNS, mais le menu ne peut pas encore être servi depuis votre propre domaine. Votre menu a son propre lien sur menu.thmenu.com, et c’est ce lien qu’ouvrent vos QR codes.
Comment fonctionne la commande en temps réel ?
Les clients ajoutent des articles à leur panier et passent commande depuis la table. La commande apparaît instantanément dans votre tableau de bord d’administration, où vous mettez à jour les étapes de statut.
Mes données sont-elles sécurisées ?
Thmenu repose sur l’infrastructure de sécurité mondiale de Cloudflare et chiffre les données en transit (TLS) et au repos. Notre plateforme est conçue pour répondre aux exigences du GDPR, de la KVKK et du CCPA/CPRA — consultez nos pages conformité, confidentialité et conditions pour l’information complète.
Puis-je importer mon menu existant ?
Oui. L’import IA accepte votre carte de trois façons : coller le texte, photographier la carte imprimée ou téléverser un tableur. Il propose catégories, produits et prix ; rien n’est appliqué avant que vous ayez relu et validé la proposition.
Le menu fonctionne-t-il sans internet ?
Oui. Thmenu utilise la technologie Progressive Web App (PWA). Le menu mis en cache sur l'appareil du client peut être consulté sans connexion internet. La commande nécessite une connexion.
Ai-je besoin d’un compte Stripe ?
Seulement si vous voulez que les clients vous paient en ligne via Thmenu. Vous connectez un compte Stripe depuis le panneau d’administration et les virements arrivent sur votre compte bancaire via Stripe. Le menu, la commande et les réservations fonctionnent sans.
Thmenu est-il disponible en dehors de la Turquie ?
Oui. Thmenu fonctionne sur le réseau mondial de Cloudflare : votre carte est servie depuis un nœud proche de chaque client. Nous prenons en charge 31 langues, dont l’arabe, le japonais, le coréen, le chinois et toutes les grandes langues européennes.
Que faire si mon restaurant utilise déjà Menulux ou Adisyo ?
Thmenu peut fonctionner en parallèle avec votre POS existant : le POS gère les paiements, Thmenu le menu QR et l'expérience de commande du client. Thmenu ne se connecte pas au POS — les deux systèmes fonctionnent côte à côte.
Ai-je besoin de matériel spécial ?
Non. Thmenu fonctionne dans n’importe quel navigateur — téléphones, tablettes ou ordinateurs portables. Pour l’écran cuisine, n’importe quelle tablette que vous possédez déjà convient ; nous ne vendons, ne recommandons ni n’exigeons aucun matériel spécifique. L’impression est facultative et fonctionne avec les imprimantes de tickets ESC/POS connectées en USB, en série ou en Bluetooth depuis Chrome ou Edge.
Prêt à commencer ?
Digitalisez votre menu aujourd'hui.
Configuration en 2 minutes, aucune carte de crédit requise.