Produit · Vente directe
Ma Commande : la vente directe, sans plateforme entre le producteur et ses clients.
Un service en ligne de prise de commande pour les producteurs qui vendent en direct : éleveurs, maraîchers, fromagers, collectifs. Leurs clients commandent sur le catalogue sans créer de compte et choisissent un créneau de retrait ; le règlement se fait sur place, sans commission. Conçu, développé et exploité de bout en bout, de l'idée à la production.
Le point de départ
Beaucoup de producteurs prennent leurs commandes par téléphone, par e-mail ou par un formulaire en ligne qui ne suffit plus dès que le catalogue grandit. De l'autre côté, les plateformes de e-commerce sont lourdes à tenir et prélèvent une commission sur chaque vente. Ma Commande se place entre les deux, et dit aussi clairement ce qu'elle n'est pas : ni une place de marché, ni une caisse, ni un ERP, ni un créateur de site.
Les choix d'architecture
Ce qui ne se voit pas sur le site du produit, et qui fait qu'il tient.
- Deux applications qui ne s'appellent jamais
- Le portail public gère le site, l'abonnement et la création des espaces ; l'application sert les boutiques et leur back-office. Leur seul contrat est la base PostgreSQL : le portail crée un espace en une transaction, l'application le sert dans la foulée. Aucune API interne à maintenir, aucune panne en cascade entre les deux.
- Une seule instance pour tous les producteurs
- Chaque boutique est une ligne en base, servie à sa propre adresse par la même application. Un Worker Cloudflare relaie chaque sous-domaine avec un secret d'origine, vérifié en temps constant, et chaque requête en base est filtrée par boutique. Ouvrir un nouvel espace ne demande plus ni conteneur, ni enregistrement DNS, ni déploiement.
- Pas de compte client, pas de faille pour autant
- Le client suit sa commande avec un code à six chiffres reçu par e-mail. Ce code est stocké sous forme d'empreinte HMAC, à usage unique, limité à cinq essais comptés en base. Côté producteur : verrouillage après cinq échecs, plafond par adresse IP, protection anti-robot Turnstile.
- Ce qui fait foi est écrit en base
- L'abonnement n'est activé que par le webhook signé de Stripe, jamais par le retour du navigateur. Chaque commande garde un instantané de ses prix et des coordonnées du client. La preuve d'acceptation des conditions générales est immuable : un déclencheur PostgreSQL refuse toute modification.
- Une exploitation sobre
- Conteneurs serverless, PostgreSQL managé, stockage objet et coffre à secrets chez Scaleway, à Paris. Les images ne contiennent aucune configuration : tout vient du coffre de chaque environnement. Les migrations s'appliquent au démarrage sous un verrou PostgreSQL, pour que plusieurs instances ne se marchent pas dessus.
- Testé contre une vraie base
- Environ 350 tests automatisés, exécutés contre un vrai PostgreSQL lancé à la volée dans un conteneur, et non contre une base simulée. Trois environnements, développement, préproduction et production, sans aucune intégration simulée.
Pile technique .NET 10 · Blazor Server · EF Core 10 · PostgreSQL · Stripe · Cloudflare Workers · Scaleway
Ce que ça change pour votre projet
Ce sont les questions d'un système d'entreprise, à plus petite échelle : séparer ce qui vend de ce qui sert, accueillir de nouveaux clients sur une infrastructure partagée plutôt que de multiplier les déploiements, décider de ce qui fait foi et l'écrire en base. Si votre système doit grandir sans une nouvelle infrastructure à chaque client, c'est exactement ce type de système qui est en jeu ici.
Les autres produits
- Onagre La supervision applicative, sans pile à maintenir.
- Ma Réservation La prise de rendez-vous pour les petits établissements.