← Retour aux projets
01 E-commerce

Perline Cookies

Une boutique de cookies artisanaux, du choix du produit jusqu'au paiement Stripe. Côté gérant, un dashboard pour suivre les commandes et ne jamais tomber en rupture de stock.

Voir le code
Rôle
Développeur full-stack, seul sur le projet : conception, back-end Symfony, paiement Stripe et mise en production
Durée
6 semaines
Stack
Symfony 7 · MySQL · Stripe · Docker Compose

Contexte

Le point de départ

Une artisane pâtissière vendait ses cookies en direct et voulait passer à la vente en ligne. Le besoin : que les clients composent leur box et paient depuis leur téléphone en quelques minutes, et qu'elle puisse suivre ses commandes et ses stocks d'un coup d'œil. Le tout sans perdre l'univers chaleureux de sa marque.

Objectifs

  • Donner envie dès la première image : de grandes photos, une palette crème et rose fidèle à la marque
  • Commander vite : choix d'une box de 6, 12 ou 24 cookies, puis paiement en trois étapes
  • Penser mobile d'abord, puisque la majorité des clients commandent depuis leur téléphone
  • Ne valider une commande qu'une fois le paiement confirmé par Stripe
  • Donner à la gérante une vue claire de ce qu'il reste à préparer

Démarche

Du cadrage à la mise en ligne

01

Direction artistique

J'ai démarré avec Tailwind, puis je suis passé à du CSS écrit à la main en BEM pour garder la main sur chaque détail de la palette crème et rose.

02

Modélisation des données

Produits, box, commandes, adresses et utilisateurs avec Doctrine. Les box de 6, 12 ou 24 cookies ont chacune leur prix, ce qui a demandé de bien penser les relations entre entités.

03

Parcours d'achat

Panier en session, connexion obligatoire avant le paiement, choix de l'adresse. J'ai corrigé plusieurs bugs de panier (quantités, suppression) pour que le parcours ne casse jamais.

04

Paiement Stripe

Une commande n'est validée qu'une fois le paiement confirmé par un webhook signé. Un contrôle bloque les doublons si Stripe envoie deux fois la même notification.

05

Sécurité et emails

Connexion limitée à 5 tentatives par quart d'heure. Emails de confirmation via Symfony Mailer, après avoir réglé un conflit avec la file d'attente Messenger.

06

Mise en production

Quatre conteneurs Docker sur un VPS Hetzner, certificat SSL renouvelé automatiquement. Je gère le serveur de bout en bout.