PROJETSSUSHI HOUSE

Commander ses sushis sans décrocher le téléphone.

Un restaurant japonais à emporter, son WordPress remplacé par une application de commande sur mesure — sans paiement en ligne et sans une seule photographie de produit.

CLIENT
Sushi House
TYPE
Application de commande
ANNÉE
2026
RÔLE
Conception et développement
ÉTAT
En ligne
La carte : sommaire des familles à gauche, filtres et grille des 138 produits à droite
La carte complète : 16 catégories, un sommaire qui suit la lecture, et cinq filtres pour retrouver un produit.
138
produits illustrés sans photographie
12
modèles d'illustration en CSS pur
16
catégories pour parcourir toute la carte
206
tests automatisés

Le point de départ.

Une petite équipe, pas de service informatique, et un site qui ne servait qu'à être là.

  • Les commandes arrivent au téléphone et sur Messenger, notées à la main
  • Un WordPress à maintenir, sans personne pour s'en occuper
  • 138 produits à la carte, et pas une photographie pour les montrer
  • La composition d'un roll n'existe que sur la carte papier

Trois partis pris qui commandent le reste.

Ce qui a été décidé avant d'écrire une ligne de code.

PARTI PRIS 01

Aucun paiement en ligne

Une commande est une demande, pas une vente. Elle n'est ferme qu'après confirmation du restaurant.

  • Pas de compte client
  • Pas de remboursement à traiter
  • Règlement au retrait
  • Charge réglementaire réduite d'autant
PARTI PRIS 02

La conversation reste sur Messenger

Les clients y écrivaient déjà. Le site prépare la commande, Messenger la porte.

  • Rien de nouveau à installer
  • Le fil de discussion existe déjà
  • Le restaurant répond où il a l'habitude
  • Confirmation dans la conversation
PARTI PRIS 03

Rien n'est inventé sur les produits

Toute la composition affichée est dérivée de la carte papier du restaurant.

  • Le bandeau de famille donne la base
  • Le nom du produit donne la garniture
  • Un ingrédient non imprimé n'apparaît pas
  • Une seule source de vérité

138 produits, aucune photographie.

Le morceau le plus intéressant du projet.

Le restaurant n'a pas de photographie pour ses produits, et n'en aura jamais. La première version affichait donc une même coupe ronde générique, teintée selon les ingrédients — ce qui donnait une brochette de poulet dessinée comme une tranche de maki.

La solution : douze modèles d'illustration en CSS pur, choisis d'après la famille du produit, et huit formes d'ingrédients composées automatiquement au centre depuis la recette réelle.

  • Coupe transversale seulement pour ce qui est réellement roulé — California, maki, snow, egg roll — chacun avec sa construction : riz et sésame dehors et nori dedans pour le California, nori dehors pour le maki, riz nu pour le snow, omelette pour l'egg roll
  • Forme réelle pour tout le reste : nigiri, tranches sur assiette, cône, triangle, bol, silhouettes de friture, brochettes, plateau vu de dessus
  • La garniture suit la personnalisation : retirer le concombre retire sa forme de la coupe, en direct
  • Résultat : aucun visuel à produire par produit. Un plat ajouté à la carte est illustré le jour même, sans photographe et sans travail graphique
Fiche produit d'un California saumon avocat : l'illustration composée à gauche, les cinq couches retirables à droite
La coupe est composée, pas dessinée.Riz, nori, sésame, saumon, avocat : chaque couche de la recette a sa forme, et chacune peut être retirée.
La même fiche produit sur téléphone, ouverte en feuille par le bas
La même fiche, en feuille.Sur téléphone elle monte par le bas, l'illustration passe au-dessus des couches.

Ce qui a été livré.

Quatre modules, plus le passage à Messenger.

MODULE 01

La carte

138 produits en 16 catégories, regroupés en univers navigables.

  • Recherche par code ou par nom
  • Filtres veggie, saumon, thon, crevette, cuit
  • Sommaire toujours visible
  • Prix et disponibilité tenus à jour
MODULE 02

La fiche produit

Ce qu'il y a dans le roll, couche par couche, et de quoi en retirer ce qu'on ne veut pas.

  • Composition détaillée par ingrédient
  • Retrait à l'unité
  • Retrait transmis au restaurant
  • Revérifié côté serveur
MODULE 03

Les créneaux de retrait

Calculés depuis les horaires d'ouverture réels et le délai de préparation.

  • Aucun champ d'heure libre
  • Impossible de choisir une heure fermée
  • Créneaux trop proches affichés barrés
  • Un trou inexpliqué inquiète plus qu'une explication
MODULE 04

Le back-office

L'écran de service du restaurant, en temps réel.

  • Commandes acceptées ou refusées
  • Gestion des disponibilités
  • Édition de la carte
  • Rattachement de la conversation Messenger

Le parcours, du panier au comptoir.

Le client compose, choisit son créneau, puis termine sur Messenger. Le restaurant confirme, le client règle au retrait.

Dernière étape : prénom, créneau de retrait, remarque, et le récapitulatif de commande à droite
La dernière étape.Trois champs numérotés et un récapitulatif. Les créneaux viennent des horaires réels : il n'y a pas de champ d'heure libre à remplir.
La même étape sur téléphone : le récapitulatif replié en barre collante avec le total
Sur téléphone, le total suit.Le récapitulatif se replie en barre collante : le total et le bouton restent sous le pouce.
Page d'accueil de Sushi House : « Des sushis frais, préparés minute » et quatre tuiles d'accès
La porte d'entrée.Quatre tuiles mènent directement aux plateaux, aux rolls, aux sushis et aux options veggie.
Les plateaux : six compositions maison, de 44 à 70 pièces, avec les codes de la carte
Les plateaux.Six compositions de la maison, filtrables par nombre de convives, chacune détaillée avec les codes de la carte.

Ce qu'il y a dessous.

Environ 8 100 lignes de PHP réparties en 68 classes, 56 templates, 23 modules JavaScript et 18 classes de tests. Hébergement mutualisé, déploiement par SSH.

LE PASSAGE À MESSENGER

  • L'URL m.me ne porte qu'un jeton aléatoire
  • Meta le renvoie sur un webhook signé
  • La conversation est rattachée à la commande côté serveur

LA MISE EN PRODUCTION

  • Le WordPress de 731 Mo a été déplacé, pas supprimé : retour arrière possible en une commande
  • Le code vit hors de la racine web, seul le dossier public y est exposé
  • Même une configuration serveur cassée ne peut pas divulguer le code ou les identifiants
  • Les URL indexées du WordPress ont été conservées à l'identique
LANGAGEPHP 8.4
FRAMEWORKSymfony 8.1
BASEMariaDB 11.8 via Doctrine ORM
VUESTwig
STYLESTailwind CSS 4
INTERACTIONSStimulus, JavaScript natif
ASSETSAssetMapper, aucune chaîne Node
INTÉGRATIONAPI Meta Messenger
HÉBERGEMENTMutualisé IONOS, SSH/rsync
QUALITÉ206 tests automatisés

Un projet du même genre ?

Un message suffit : ce que vous voulez obtenir, et pour quand. Réponse en 48 h ouvrées avec un premier ordre de prix.

Écrire sur WhatsApp