Ordres de réparation et planning atelier : industrialiser la maintenance vélo

Dans un magasin de vélos, l’atelier ne représente pas une activité annexe : c’est souvent 30 à 50 % du chiffre d’affaires et la principale source de récurrence client. Et pourtant, c’est le module que les ERP grand public traitent le plus mal : pas de notion de vélo client, pas de planning par technicien, pas de checklist Vérifier/Remplacer, et une facturation déconnectée des heures réellement passées. CRM Cycles aborde l’atelier comme un module first-class, avec ordres de réparation (OR), calendrier drag-and-drop, planning global de charge et parc vélos client lié.

L’ordre de réparation : du diagnostic à la facture en un seul dossier

Un OR (Ordre de Réparation) regroupe tout ce qui touche à une intervention : le client, son vélo (issu de son parc), la demande, le diagnostic, la checklist V/R, les pièces, la main-d’œuvre, et la facture finale. Trois onglets : Réception, Travaux, Facturation — qui correspondent aux trois moments de la vie d’un OR.

Côté workflow, dix statuts couvrent tous les cas réels rencontrés dans un atelier vélo :

  • Non affecté (gris) → OR créé, technicien à choisir
  • Planifié (bleu) → technicien assigné, créneau fixé. Bascule automatique dès qu’un technicien est sélectionné.
  • Vélo réceptionné (cyan) → le vélo est physiquement dans l’atelier
  • Attente pièces (orange) → en pause, à reprendre quand le fournisseur livre
  • Travaux en cours (vert clair) / Travaux terminés (vert)
  • Client prévenu (teal) → SMS ou appel envoyé, prêt à retirer
  • Facturé / clos (gris foncé) → OR fermé, irrévocable
  • Rdv client sur place (rose) → intervention chez le client
  • Intervention sans OR (marron) → créneau planifié hors dossier (formation, maintenance, démo)

Détail qui change tout côté usage : la date de livraison prévue s’affiche en rouge si dépassée et l’OR n’est pas facturée. Plus besoin de chercher pourquoi le client râle au téléphone — la liste d’OR montre tout de suite les retards.

Calcul de main-d’œuvre : durée × taux, sans calculatrice

Sur les lignes de M.O., on saisit la durée (en minutes) et le taux horaire applicable au technicien. Le total HT se calcule automatiquement : durée × taux / 60. Le taux peut être différentié par profil de technicien (chef d’atelier, mécano apprenti, électronicien VAE) — utile quand l’atelier facture le diagnostic VAE plus cher que l’entretien standard.

Quand la M.O. + les pièces totalisent un montant HT > 0, le bouton « Générer une facture » devient actif. La facture est créée en brouillon avec toutes les lignes prêtes — il ne reste qu’à valider pour signer NF525 (voir l’article précédent sur le pipeline de vente).

Checklist Vérifier/Remplacer : standardiser les révisions

Sur les interventions courantes (révision annuelle, mise au point, transmission), la checklist V/R évite que le technicien oublie un point : la liste des éléments à vérifier (cadre, roues, frein avant, frein arrière, dérailleur, câbles, chaîne, pneus, éclairage, fixations, transmission) est pré-définie dans les paramètres atelier. À chaque ligne, deux cases interactives : V (pièce inspectée, bon état) ou R (pièce à remplacer pendant la réparation). Le client repart avec un compte-rendu clair, le technicien a une trace de ce qui a été contrôlé.

Calendrier atelier : drag-and-drop par technicien

Le calendrier propose une vue semaine ou jour, organisée en colonnes par technicien. Chaque OR s’affiche comme un événement coloré (selon le statut + la couleur attribuée au technicien). Les actions courantes se font à la souris :

  • Drag-and-drop sur un autre créneau ou colonne : change le jour, l’heure, ou le technicien affecté à l’OR.
  • Redimensionner un événement : modifie la durée estimée de l’OR.
  • Clic sur un créneau vide : ouvre le formulaire « Nouvelle OR » avec jour/heure/technicien pré-remplis.
  • Filtrage croisé : par technicien (cocher/décocher une colonne) et par statut (cliquer sur un badge couleur en pied).

Les plages bloquées (pauses, congés, formations) s’affichent en fond grisé non-interactif — impossible d’y déposer une OR par erreur.

Planning global : éviter la surcharge atelier

À côté du calendrier (vue tactique, à la journée), le planning global donne la vue stratégique de la semaine : un tableau jour × technicien avec un indicateur de charge en couleur.

  • 🟢 Vert — charge ≤ 75 % des heures disponibles (créneaux libres pour insérer une nouvelle OR)
  • 🟡 Orange — 75-99 % (chargé, à surveiller)
  • 🔴 Rouge — ≥ 100 % (surcharge, déplacement nécessaire vers un autre technicien ou la semaine suivante)

Les heures disponibles viennent de l’emploi du temps de chaque technicien (cf module RH). Concrètement, ça permet au chef d’atelier de répondre instantanément à « On peut prendre ce vélo cette semaine ? » sans avoir à compter les créneaux à la main.

Parc vélos clients : l’historique qui change tout en SAV

Quand une facture est validée et contient un vélo sérialisé, ce vélo est automatiquement ajouté au parc du client. Avec son numéro de série, sa date d’acquisition, son type (vente / échange / don) et le lien vers le produit sérialisé d’origine. Trois ans plus tard, quand le client revient pour une crevaison ou un problème de moteur, le technicien tape ses 2 premières lettres : l’autocomplete affiche le client, et la liste de ses vélos s’affiche directement. Plus besoin de demander « vous l’avez acheté chez nous ? » puis de fouiller des bons d’achat papier.

Garde-fou côté concurrence : si deux utilisateurs ouvrent la même fiche vélo en édition, un verrouillage concurrent bloque la seconde édition (icône 🔒 visible, double-clic pour forcer la prise en main). Standard CRM Cycles, utilisé aussi sur les devis, OR, etc.

Vélos à la carte : l’assemblage custom devient une vraie ligne produit

Beaucoup de magasins assemblent des vélos sur mesure (un cadre custom, des composants pickés un par un, finition VTT-randonnée pour un client précis). CRM Cycles le gère via le module Vélos à la Carte, qui transforme cet assemblage en un produit sérialisé vendable comme n’importe quel vélo de stock.

Workflow :

  1. Créer un dossier (nom du projet, marque, prix estimé)
  2. Ajouter les composants : produits stock (cadre, fourche, roues, transmission), produits sérialisés si certains composants ont un n° de série, lignes M.O. pour le montage, texte libre pour les notes
  3. Suivre le calcul de marge en temps réel (vert si ≥ 20 %, orange 10-19 %, rouge en dessous)
  4. Saisir le prix de vente TTC final
  5. Valider → le système crée la fiche produit générale, génère un produit sérialisé avec son n° de cadre, et décrémente le stock des composants utilisés

Une fois validé, le vélo apparaît comme n’importe quelle référence en stock — prêt à être ajouté à un devis, vendu, ou facturé. Le lien avec la nomenclature reste tracé pour le SAV (quel cadre, quels composants, quels lots).

Campagnes atelier : relancer sans y penser

Deux types de relances automatiques côté atelier :

  • Vélo prêt non retiré : dès qu’un OR passe en « Client prévenu » depuis plus de X jours sans retrait, il remonte dans une campagne dédiée. Le commerçant déclenche un SMS ou un email type, l’historique est tracé sur la fiche client.
  • Révision annuelle approche : les vélos du parc client dont la dernière intervention date de plus de N mois remontent dans une campagne. Idéal pour relancer les clients VAE qui doivent passer chaque année pour la mise à jour firmware Bosch ou Shimano.

Sous le capot

  • Modèles Yii2 : WorkOrder, WorkOrderLine (M.O. + pièces), WorkOrderChecklist (V/R), CustomerBike (parc vélos). Tous liés au modèle Customer et au ProductSerial.
  • Calendrier : implémenté avec FullCalendar.js côté front, qui appelle des endpoints Yii2 (/workshop/calendar/events, /workshop/calendar/move) en AJAX. Le drag-and-drop déclenche une action moveOR qui met à jour scheduled_at + technician_id en transaction.
  • Charge atelier : calculée à la volée en SQL via une vue agrégée — somme des durées estimées (en minutes) divisée par les heures disponibles du technicien sur la semaine, avec un cap à 999 % pour éviter les artefacts d’affichage.
  • Verrouillage concurrent : implémenté sur WorkOrder via un champ locked_by + locked_at. Un middleware Yii2 (LockAccessControl) vérifie le lock à chaque ouverture en édition. Forcer = écrire dans le lock avec son propre user_id.
  • Permissions : granulaires (workshop.view, workshop.create, workshop.update, workshop.close) gérées par les modèles applicatifs ROLE + PERMISSION (RBAC custom, plus souple que le RBAC natif Yii sur ce projet).

Ce qu’on gagne au quotidien

  • Plus d’historique perdu : le parc vélo client capitalise les ventes et les interventions. Le SAV de l’année N+3 ouvre sa fiche en deux clics.
  • Surcharge atelier visible avant d’arriver : le planning global colore les semaines critiques, ce qui force la conversation « on déplace ou on prend quand même ? » en amont, pas la veille.
  • Facturation OR sans ressaisie : la facture est générée depuis l’OR avec toutes les lignes M.O. + pièces déjà saisies. Tout va en NF525 + parc client si vélo sérialisé.
  • Standardisation des révisions : la checklist V/R évite les oublis et donne un rendu pro au client (compte-rendu PDF clair).

Le prochain article couvrira les fiches clients : groupes tarifaires, parc vélos, correspondance, crédits clients et historique commercial complet.

Retour en haut