| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucune borne ajoutée. Cliquez sur une borne dans le catalogue ci-dessous. | |||||
| Sous-total Bornes | 0,00 € | ||||
| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucun élément d'installation ajouté. | |||||
| Sous-total Installation | 0,00 € | ||||
| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucune option ajoutée. | |||||
| Sous-total Options | 0,00 € | ||||
Devis triés par numéro.
| Client | Nb devis | CA HT total | Marge moy. | Signés |
|---|
| N° Devis | Ver. | Date | Client | Deviseur | CA HT | Marge € | Marge % | Remise | Statut |
|---|
Génère une offre commerciale structurée pour les flottes : matériel + ZMS + bonus selon cadence d'installation.
Pricer IRVE Belgique — étude rentabilité projet d'infrastructure de recharge.
Gérez les produits, clients, équipe et prix.
| Image | Marque / Modèle | Catégorie | Prix achat HT | Prix vente HT | Marge | Actions |
|---|
| Description | Catégorie | Prix HT | Unité | Contenu inclus | Actions |
|---|
| Logo | Nom / Structure | TVA défaut | Pays | Facturation | Packages | Actions |
|---|
Les délégués commerciaux se connectent avec leur email et leur mot de passe et rédigent des devis à leur propre nom. Chaque membre peut se voir attribuer des droits d'accès à certaines sections admin.
| Initiales | Nom | Téléphone | Pipedrive | Dernière connexion | Droits admin | Actions |
|---|
zeborne_devis.html dès que le dossier est connecté. Vos collègues verront les changements après rechargement de la page.Scan le catalogue (bornes, articles, packs, abonnements) et remplit automatiquement les libellés NL et EN manquants via l'API Claude Haiku. Sûr — n'écrase aucune traduction existante. Coût ~0,01 € pour 200 libellés.
Limite : 200 traductions par appel (~30s). Relancez si davantage de libellés à traiter.
Les CGV sont incluses automatiquement dans le devis PDF selon la langue sélectionnée. Collez le texte ou importez un fichier .txt pour chaque langue.
Ces notes apparaissent sur tous les devis PDF, en bas, dans la section Remarques & Conditions. Renseignez les 3 langues pour les devis multilingues.
💡 Pour les notes spécifiques à un partenaire : ouvrez la fiche partenaire (Admin → Partenaires → modifier) → onglet Notes.
Le déviseur guide la création d'un devis via un assistant en 8 étapes successives. Cliquez sur « + Nouveau devis » pour démarrer.
Sélectionnez le commercial en charge du devis, la date, la durée de validité et la langue du devis (FR, NL ou EN). Le choix de la langue impacte tous les libellés du PDF final.
Renseignez la raison sociale, le numéro de TVA, l'adresse de facturation et l'adresse d'installation (si différente). Vous pouvez sélectionner un partenaire existant ou créer un nouveau client.
Parcourez le catalogue par marque (Alfen, EVBox, Easee…) et ajoutez les bornes souhaitées. Vous pouvez aussi utiliser un Package full qui préconfigure borne + installation en un clic. Ajustez les quantités si nécessaire.
Choisissez un pack d'installation ou ajoutez des éléments individuellement via le champ « Ajouter un élément (prestation, article, accessoire, câble…) » — une seule barre de recherche unifiée donne accès à tout le catalogue : 🔧 Prestations & main-d'œuvre, 📦 Articles, 🧩 Accessoires et 🔌 Câbles de charge. Les câbles avec longueur fixe (ex. 5 m) sont ajoutés en lot avec le bon prix automatiquement, ceux au mètre laissent saisir la quantité de mètres. Les cartes en dessous (Accessoires & Câbles) restent disponibles pour parcourir visuellement le catalogue.
Ajoutez des accessoires, abonnements (monitoring, maintenance…) ou des lignes personnalisées. Chaque ligne peut être taggée « INCLUS » si offerte dans un package.
Ajoutez des notes visibles sur le devis (conditions particulières, délais…). Les mentions légales sont automatiquement générées selon les paramètres configurés dans l'onglet « Notes légales ».
Le régime de TVA est calculé automatiquement. Vérifiez le taux appliqué (21 %, 6 % rénovation, autoliquidation…) et ajustez si nécessaire selon le profil du client.
Vérifiez l'ensemble du devis : lignes, prix, remises, TVA. Vous pouvez sauvegarder, générer le PDF, l'envoyer par email ou lancer la signature DocuSign. Le récapitulatif affiche aussi la marge globale (visible uniquement en interne).
Onglet 🗂️ Catalogue → 🔌 Bornes ou 🧩 Accessoires. Chaque produit doit être correctement renseigné pour garantir des devis fiables.
Le champ « Prix d'achat HT (€) » est obligatoire pour chaque produit. Sans prix d'achat, le calcul de marge est impossible et l'onglet « Coût packs » affichera des valeurs incorrectes. Indiquez toujours le prix fournisseur réel.
| Champ | Description | Obligatoire |
|---|---|---|
| Marque | Nom du fabricant (Alfen, EVBox, Easee…) | ✅ |
| Catégorie | Type de produit (borne, accessoire, câble…) | ✅ |
| Nom / Modèle (FR) | Nom français affiché sur le devis | ✅ |
| Naam (NL) / Name (EN) | Traductions pour devis en néerlandais ou anglais | Recommandé |
| Prix d'achat HT | Coût fournisseur — base du calcul de marge | ✅ |
| Taux de marge (%) | Marge souhaitée (défaut : 35 %) | ✅ |
| Prix de vente HT | Auto-calculé = achat ÷ (1 − marge/100) | Auto |
| Réf. fabricant / ERP | Références pour traçabilité interne | Optionnel |
| ⭐ Favori | Apparaît en premier dans le catalogue lors de la création de devis | Optionnel |
Modifiez le prix d'achat ou le taux de marge : le prix de vente se recalcule automatiquement. Vous pouvez aussi modifier directement le prix de vente, la marge se recalculera.
Onglet 🗂️ Catalogue → 🔧 Main d'œuvre. Ces articles représentent les actions individuelles d'installation (tirage câble, mise en service, etc.).
Lorsque vous créez un article de main-d'œuvre (catégorie « labor »), renseignez impérativement le champ « ⏱ Heures MO (technicien) ». Ce temps est multiplié par le tarif horaire configuré dans les paramètres pour calculer le coût réel. Sans cette valeur, le coût de revient du pack sera sous-estimé.
Comme pour les produits, le prix d'achat doit être renseigné pour chaque article d'installation matériel. Pour les articles de MO, c'est le nombre d'heures qui détermine le coût.
| Catégorie | Unité | Exemple |
|---|---|---|
| pack | forfait | Pack installation standard — contient plusieurs composants |
| labor | h (heure) | Mise en service, tirage câble, paramétrage |
| additional | forfait / m / unité | Câble supplémentaire, percement béton |
| subscription | mois / an | Contrat de maintenance, monitoring |
Cochez « 👷 Disponible en tarif senior » sur un article horaire pour proposer deux tarifs (standard et senior) lors de la composition d'un pack. Les taux sont configurés dans Paramètres.
Cochez « Réservé aux packages full » si un article ne doit jamais apparaître directement dans la liste d'installation lors de la création d'un devis, mais uniquement être utilisé dans la composition d'un package full.
Onglet 🗂️ Catalogue → ⚡ Packages install. Un pack d'installation regroupe plusieurs articles pour proposer un forfait clé en main.
Pour que l'onglet 📊 Coût packs calcule correctement la marge, vous devez ajouter tous les composants du pack via la section « 🔧 Composants du pack ». Sans composants listés, le coût de revient sera 0 € et la marge affichée sera fausse (100 %).
Nom (FR/NL/EN), prix de vente HT, prix d'achat HT, heures de MO.
Ajoutez chaque article matériel ou de prestation avec sa quantité. Cliquez « + Ajouter un composant installation ».
Ajoutez les produits accessoires inclus (Power Meter, câbles…). Utilisez « 🔌 Associer borne » si l'accessoire doit être compté dans le prix de la borne plutôt que dans l'installation.
Ajoutez les heures de travail : « 👷 Ajouter » (tarif standard) ou « 👷 Senior » (tarif senior). Chaque article de MO ajouté ici contribue au coût de revient via le tarif horaire.
Le texte dans « Contenu inclus » apparaît sur le devis sous le nom du pack. Cliquez « ↺ Générer depuis composants » pour remplir automatiquement à partir des composants listés.
Utilisez le bouton « 📋 Dupliquer » pour créer une copie d'un pack existant. La copie inclut tous les composants et peut être modifiée indépendamment de l'original.
Onglet 🗂️ Catalogue → 📦 Packages full. Un package full combine une borne + un pack d'installation en une offre préconfigurée avec des prix éventuellement négociés.
Choisissez un produit de type « borne » dans le catalogue. Son prix de vente sera utilisé par défaut.
Associez un pack d'installation existant. Son prix de vente et son contenu inclus seront repris.
Les champs « Override prix borne » et « Override prix installation » permettent de fixer un prix différent du prix catalogue. Utile pour les offres partenaires négociées. Si laissé vide, le prix catalogue s'applique.
Vous pouvez remplacer la description d'installation standard par un texte personnalisé via « Override contenu inclus ». Utile si le package full inclut des prestations supplémentaires.
Cochez les partenaires qui ont accès à ce package. Lors de la création d'un devis pour un partenaire donné, seuls les packages associés à ce partenaire seront proposés.
Configurez un pourcentage de remise et un libellé de remise qui s'appliqueront automatiquement quand ce package est sélectionné dans un devis.
Prix total = (Override borne OU prix catalogue borne) + (Override install OU prix catalogue install) + accessoires non-borne
Onglet 🌐 Traductions. Gérez les traductions néerlandaises et anglaises de tous vos articles.
Si un devis est généré en NL ou EN et qu'un article n'a pas de traduction, le nom français sera utilisé par défaut. Pour des devis professionnels, renseignez systématiquement les traductions NL et EN.
name_nl, name_en
label_nl, label_en
label_nl, label_en
label_nl, label_en
L'onglet Traductions propose des boutons pour appliquer les traductions prédéfinies (dictionnaire intégré) et remplir automatiquement les termes techniques. Ces fonctions ne modifient que les champs vides — vos traductions manuelles sont préservées.
Vous pouvez saisir les traductions soit directement dans la fiche produit/article (champs NL et EN), soit via l'onglet 🌐 Traductions qui offre une vue consolidée de tous les éléments.
Dans Admin → Données → carte « 🌍 Auto-traduction NL / EN », vous pouvez (1) scanner le catalogue (dry-run) pour lister les libellés sans traduction, ou (2) lancer l'auto-traduction qui passe par Claude Haiku pour remplir tous les name_nl / name_en / label_nl / label_en / includes_nl / includes_en manquants. Sûr — n'écrase aucune traduction existante. Coût ≈ 0,01 € pour 200 libellés. Limite 200 par appel — relancez si nécessaire. Une variable d'environnement ANTHROPIC_API_KEY doit être configurée côté serveur.
Onglet 📊 Coût packs. Visualisez le coût de revient et la marge de chaque pack et package full.
| Colonne | Signification |
|---|---|
| Coût matériel | Somme des prix d'achat des composants matériels |
| Coût MO | Heures × tarif coût horaire (standard ou senior) |
| Coût total (achat) | Matériel + MO = coût de revient |
| Prix vente | Prix affiché au client sur le devis |
| Marge (%) | = (vente − achat) ÷ vente × 100 |
Si la marge affiche 0,00 € ou 100 %, cela signifie généralement que les composants du pack ne sont pas renseignés ou que les prix d'achat des articles sont à zéro. Vérifiez la fiche du pack et ses composants.
La marge affichée dans la sidebar du devis inclut toutes les lignes (borne + install + options). L'onglet Coût packs analyse chaque pack individuellement avec le détail de ses composants. Les deux calculs sont cohérents mais leur périmètre diffère.
Onglets 🏢 Partenaires et 👥 Équipe & Accès.
Créez et gérez les profils partenaires (installateurs, revendeurs). Les partenaires sont associés aux packages full pour personnaliser les offres. Le profil partenaire sélectionné lors de la création d'un devis détermine les packages disponibles et peut pré-remplir les informations client.
💼 Facturation employé (B2B/B2C) — Cochez l'option dans la fiche partenaire/groupe pour permettre les devis à charge de l'employé. Sous-option « Masquer les prix des éléments couverts » : par défaut, les éléments du package sont affichés avec leur prix barré et la mention « ✓ Pris en charge par {entité} ». Cochez cette sous-option pour masquer entièrement quantités/prix sur le PDF — seule la mention « pris en charge » subsiste. Si l'option est cochée sur le groupe parent, toutes les filiales en héritent automatiquement.
💰 Prix dédiés (override par article) — Cochez l'option dans la fiche partenaire/groupe pour activer la grille de prix dédiés. Le partenaire apparaît alors dans chaque fiche article (Catalogue → modifier un produit) sous la section « Prix dédiés par partenaire » : vous pouvez y saisir un prix de vente spécifique qui remplacera le prix catalogue lorsqu'un devis est créé pour ce partenaire. Laissez vide pour utiliser le prix catalogue. Héritage : si vous définissez un prix sur un groupe, toutes ses filiales l'utilisent (sauf si elles ont leur propre prix dédié).
Gérez les membres de l'équipe, attribuez des codes PIN d'accès et configurez les permissions par onglet (catalogue, partenaires, paramètres, zone danger…). L'accès admin est protégé par un PIN à 4 chiffres.
🔒 Suppression sûre (soft-delete) — Lorsqu'un membre est supprimé via 🗑, il est marqué comme supprimé (champ _deleted_at) au lieu d'être effacé physiquement. Conséquences : (1) il disparaît immédiatement de la liste admin, du sélecteur de commercial et ne peut plus se connecter avec son PIN ; (2) la suppression se propage proprement aux autres PCs lors de la sync — un PC stale ne peut plus « ressusciter » un membre supprimé volontairement ; (3) les anciens devis qui référencent ce membre continuent d'afficher correctement son nom.
Onglet 🛠️ Paramètres. Configurez les valeurs globales utilisées dans tous les calculs.
| Paramètre | Utilisation | Défaut |
|---|---|---|
| Tarif horaire MO (vente) | Prix facturé au client par heure de travail | 75 €/h |
| Tarif horaire MO senior (vente) | Prix facturé pour un technicien senior | 95 €/h |
| Coût horaire MO (achat) | Coût interne réel par heure — utilisé pour le calcul de marge | 35 €/h |
| Coût horaire MO senior (achat) | Coût interne technicien senior | 45 €/h |
Le tarif vente détermine le prix affiché sur le devis pour les articles horaires. Le coût achat est utilisé dans l'onglet « Coût packs » pour calculer la marge réelle. Veillez à maintenir ces deux valeurs à jour.
Le deviseur travaille en temps réel sur un fichier partagé. Voici comment la synchronisation fonctionne et comment résoudre les conflits éventuels.
modified_by / modified_at), permettant de tracer qui a modifié quoi.
modified_at est cochée automatiquement (badge 🕐). Vous pouvez toujours basculer manuellement vers l'autre version si nécessaire. Si l'une des deux versions n'a pas d'horodatage (ancien enregistrement), la version serveur est utilisée par défaut (badge ⚠ « Pas d'horodatage »).
Si vous travaillez à plusieurs sur le catalogue, communiquez avec vos collègues pour éviter de modifier les mêmes articles simultanément. En cas de conflit, prenez le temps de lire les détails avant de choisir — le système vous montre précisément ce qui diffère.
Un devis fiable repose sur un catalogue complet et à jour. Prenez le temps de vérifier les prix d'achat, les composants et les traductions avant de créer vos devis. L'onglet 📊 Coût packs est votre meilleur allié pour contrôler la rentabilité.
Par défaut, le deviseur limite les pays client à Belgique, Luxembourg, Pays-Bas et France. Pour vendre à un client dans un autre pays (Italie, Espagne, Allemagne, etc.), activez l'option internationale sur sa fiche partenaire.
Dans Admin → Partenaires, ouvrez la fiche du client. Cochez 🌍 Autoriser les pays hors Benelux/France dans la section Général. Enregistrez la fiche.
Dès que ce client est sélectionné dans le deviseur, les sélecteurs Pays client, Pays d'installation et Pays TVA proposent une liste étendue de 26 pays (UE + Suisse, Royaume-Uni, Norvège) avec drapeaux. La TVA est calculée automatiquement selon les règles intracommunautaires.
Pays UE — B2B : Livraison intracommunautaire 0%, le preneur comptabilise la TVA dans son pays. Pays UE — Particulier : TVA du pays de destination (régime OSS). Hors UE : Exonération export 0% (art. 39 CTVA).
Depuis la v1.7.8, le module 📈 Reporting ne stocke plus rien en local. Toutes les saisies (clôture comptable, téléphonie, provisions, reporting hebdo), toutes les coches et tous les imports (Pipedrive, facturation, finance, recouvrement, tickets D4) sont automatiquement sauvegardés sur le serveur — partagés entre tous les utilisateurs et persistants au reload.
En haut à droite du dashboard, un petit badge ☁️ Synchronisé indique en permanence l'état de la sauvegarde. Il passe en bleu « Sauvegarde… » pendant un push (debounce ~1.5 s après la dernière modification) et en rouge « Erreur sync » en cas de problème réseau (réessai automatique toutes les 5 s).
L'ancien bouton (qui demandait un dossier data/ via un picker Chrome) a été supprimé. Vous n'avez plus rien à cliquer pour sauver — la moindre modification est captée et poussée vers le serveur. Les boutons 📄 Export Reporting (HTML lecture seule) et 📊 Export XLS restent disponibles si vous voulez exporter manuellement.
À chaque ouverture du module Reporting, le dashboard charge l'état serveur et le ré-affiche. Si quelqu'un d'autre a modifié des données depuis votre dernière session, vous verrez la version la plus récente. Pour rafraîchir manuellement (par exemple si un collègue vient de sauvegarder), rechargez l'onglet du navigateur.
Stockage : table Setting avec un blob JSON par catégorie (préfixe dashboard_state_*). Routes API : GET, PUT et DELETE sur /api/admin/reporting/state. Permission requise : module_reporting. Les imports binaires (xlsx/csv/zip/xml) sont stockés sur disque sous uploads/reporting/ via les routes /api/admin/reporting/files (déjà en place depuis la v1.7.5).
Quand vous entrez dans le module Reporting, la topbar zebdev passe en mode dark et fusionne avec le header sombre du dashboard. Plus de double bandeau : une seule barre continue, plus reposante visuellement pour des sessions d'analyse longues. Quand vous sortez du module, la topbar revient au thème clair habituel.
v1.7.11 — Activable sur d'autres modules : ouvrez le menu utilisateur (clic sur votre badge en haut à droite) et cochez les modules sur lesquels vous voulez la topbar en dark. La pref est mémorisée par poste/navigateur (localStorage). Reporting reste toujours en dark.
Les backups préservent vos produits, partenaires, équipe et paramètres.
Les devis ne sont jamais inclus — ils peuvent être purgés séparément.
Un backup automatique est créé chaque jour à la première connexion du dossier.
Les 15 backups les plus récents sont conservés dans data/backups/.
DEVISEURS ZEborne / data / backups /
Convertit les images stockées en base64 dans la base de données (articles, logos partenaires, logo ZEborne)
en vrais fichiers .jpg / .png dans data - pas toucher / Images /.
Les nouvelles images uploadées sont déjà sauvegardées directement en fichier.
OneDrive crée parfois des copies de conflit quand plusieurs machines écrivent simultanément
dans data - pas toucher : admin_log-NOM-PC.json, db-NOM-PC.json…
Cette action fusionne les entrées de journal manquantes dans admin_log.json
et supprime les doublons (admin_log-*.json + db-*.json).
db.json reste la source de vérité et n'est pas modifié.
| Date / Heure | Utilisateur | Catégorie | Action | Détail |
|---|---|---|---|---|
| Aucune entrée pour l'instant. | ||||
| Devis N° | Client | Destinataire | Envoyé le | Statut DocuSign | Signé le | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
| Heure | Opération | Via | Méthode | HTTP | Réponse (champs clés) |
|---|---|---|---|---|---|
| Aucun appel API enregistré dans cette session. | |||||
Persistant — survit au rechargement de la page. Max 200 entrées par service. Tokens masqués.
| Date / Heure | Type | Méthode | Opération / URL | HTTP | Durée | Détail / Erreur |
|---|---|---|---|---|---|---|
| Aucun appel API enregistré. | ||||||
| Type | ID | 🇫🇷 Français | 🇳🇱 Nederlands | 🇬🇧 English | Statut | Actions |
|---|
| Type | Libellé | Unité | Prix achat (€) | Prix vente (€) | Marge | Actions |
|---|