<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abahfir</id>
	<title>Dolibarr ERP CRM Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dolibarr.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Abahfir"/>
	<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php/Special:Contributions/Abahfir"/>
	<updated>2026-10-23T06:01:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer_FR&amp;diff=67553</id>
		<title>Label Designer FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer_FR&amp;diff=67553"/>
		<updated>2026-09-30T12:20:00Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module :&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée :&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire :&amp;lt;/strong&amp;gt; 2026-09-30&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration :&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration :&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site officiel de l’éditeur :&amp;lt;/strong&amp;gt; [https://01consulting.eu 01consulting.eu]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement : il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires :&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné : produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche :&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code, de 32 à 2048 pixels ; valeur par défaut : 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités :&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt; : active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt; : remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde :&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;17. Assistance&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour obtenir de l’aide, transmettre la version du module et de Dolibarr, les étapes pour reproduire le problème et le message d’erreur après avoir retiré toute donnée sensible. Contacter le support à [mailto:contact@01consulting.eu contact@01consulting.eu]. Site de l’éditeur : [https://01consulting.eu 01consulting.eu].&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[en:Label_Designer]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67552</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67552"/>
		<updated>2026-09-30T12:19:29Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Label Designer User Guide&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-30&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Publisher website:&amp;lt;/strong&amp;gt; [https://01consulting.eu 01consulting.eu]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;This guide describes, step by step, how to install, configure, and use Label Designer 1.0.0 for Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Module overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer lets you visually create label templates and generate PDF files using data stored in Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The module supports four object types:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;products and services;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product batches;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouses;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third parties (customers and suppliers).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;One template is created for each object type and reused automatically. You do not need a separate label for every product, batch, warehouse, or third party. When a PDF is generated, template variables are replaced with the current object&#039;s data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Requirements&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Before installation, check that:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 or later is installed;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 or later is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr&#039;s &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the web server can write to the Dolibarr documents directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation and activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copy the &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sign in to Dolibarr with an administrator account.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Find &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enable the module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is also enabled.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;When activated, Label Designer prepares its storage directory in Dolibarr documents and enables barcode use for products and third parties.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configure user permissions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the relevant user or group record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Grant the required Label Designer permissions:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;read labels;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;create and modify templates and PDFs.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the user can also view the relevant object: product, batch, warehouse, or third party.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Without permission to view the object, some data or variables may not be available.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;After an update that adds or changes module permissions, disable and re-enable Label Designer so Dolibarr registers the new permissions. You can then grant &amp;lt;strong&amp;gt;Read labels&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Create labels&amp;lt;/strong&amp;gt; separately to users and groups.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Open a label&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open a product, batch, warehouse, or third-party record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab provided by Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The page displays:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label settings;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the generated PDF files area;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt; button.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If another module also adds a tab named &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt;, identify the Label Designer tab by its URL or content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Set label parameters&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Settings are stored separately for each object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label width, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label height, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Bar width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Visual bar thickness, from 0.2 to 1.0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pixel size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code image resolution, from 32 to 2048 pixels; default: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Show barcode value&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Shows or hides the text below the barcode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels horizontally&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed horizontally in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels vertically&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed vertically in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To change a value:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the pencil icon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enter the new value.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the change.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Barcode and QR code dimensions are synchronized with the Card Designer template. Changing them in the settings updates the template; changing their size in Card Designer also updates the related settings.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button restores the defaults for the displayed object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Create a template in Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The supplied templates are empty so that users can create their own labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;On the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab, set the document width and height first.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use the toolbar to add the elements you need:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Shapes&amp;lt;/strong&amp;gt; to add graphical shapes;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Text&amp;lt;/strong&amp;gt; to add free text;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; to add dynamic Dolibarr data;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; to use an uploaded image;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Stickers&amp;lt;/strong&amp;gt; to add a decorative element;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Color&amp;lt;/strong&amp;gt; to change an element&#039;s color;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Align&amp;lt;/strong&amp;gt; to position elements;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Delete&amp;lt;/strong&amp;gt; to remove the selected element.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize each element directly on the canvas.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the save.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Saving creates only the JSON template; it does not generate a PDF. After confirmation, Card Designer returns to the object record.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Add dynamic variables&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Product variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Batch variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Warehouse variables&amp;lt;/strong&amp;gt;, or &amp;lt;strong&amp;gt;Third-party variables&amp;lt;/strong&amp;gt;, depending on the open object. Then click a variable to add it to the template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Product variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price excluding tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price including tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;VAT rate;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;category;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Prices and the VAT rate are formatted with two decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Batch variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked product reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;use-by date (DLC);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;best-before date (DMD/DLUO);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Warehouse variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;location and address;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;postal code and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked project, project reference and title;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;categories or tags;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouse extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Third-party variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party name;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;customer code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;supplier code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;address, postal code, and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;email address and phone number;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Extra fields&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Extra fields configured in Dolibarr are automatically added to the variables for that object. Their technical names are associated with readable labels in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If an extra field is empty for the current object, its placeholder may still appear in Card Designer, but no value is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Use barcodes and QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Products and third parties&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code are available only when:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Barcodes module is enabled;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode use is enabled for the relevant object type in Dolibarr setup;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the object has a barcode value.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If a product or third party has no barcode, Card Designer may show the variable name as a placeholder, but no fictitious code is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Batches and warehouses&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code use the batch or warehouse reference. If the reference is empty, the corresponding area in the PDF is blank.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;QR code pixel size&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pixel size controls the resolution of the generated QR code image. A higher value improves sharpness when enlarged but increases the data size. The default value of 250 is suitable for most labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Upload and use photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;An upload QR code appears.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scan it with a phone or open the upload page directly.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Select PNG, JPG, or JPEG images to upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Return to Card Designer and reopen the &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; library if needed.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the photo to insert it into the label.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize the image, then save the template.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The upload page only sends files. Photo layout is done afterward in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Generate the PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the record to print.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Check the settings and object data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The module loads the template for that object type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Variables are replaced with the current object&#039;s data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The PDF is generated with Fabric.js and jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The file appears in the &amp;lt;strong&amp;gt;Attached files&amp;lt;/strong&amp;gt; area.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the PDF name or preview icon to view it.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The same template can generate labels for multiple objects in succession. The horizontal and vertical label counts apply only to the final PDF, repeating the label without changing the Card Designer template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modify an existing template&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open any object of the relevant type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Edit the template.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; and confirm.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Generate the PDF again.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The change applies to future labels of the same type. Previously generated PDFs are not updated automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configure Bluetooth printing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; page has two options:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner on Bluetooth printer&amp;lt;/strong&amp;gt;: enables the features intended for Bluetooth printing;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Replace accented characters on Bluetooth printers&amp;lt;/strong&amp;gt;: replaces characters that some printers cannot print correctly.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Bluetooth printing is disabled by default. The second option is useful only when the first is enabled and the printer has trouble with accented characters.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Design tips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Set the document dimensions before starting the layout.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave a margin around the label to avoid print cutoffs.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Do not stretch a barcode or QR code excessively.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Print a test and check that scanners can read the codes.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use clear images without unnecessarily high resolution.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave enough room for variables whose length changes between objects.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Save the template before leaving Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The Save button returns an HTTP 500 error&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the web server can write to the Dolibarr documents directory, especially the folder reserved for Label Designer templates. Disabling and re-enabling the module may recreate the required folder. Also check the PHP or web server log for the exact message.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The PDF is blank&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that a template containing elements has been saved for this object type. Templates installed by default are intentionally empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A variable appears in Card Designer but is missing from the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the field is populated on the object used to generate the PDF. An empty variable is not replaced with a fictitious value.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Extra fields are not visible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that extra fields are enabled for the correct object type and that the user has the required permissions. Reload Card Designer after adding a new field.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The barcode or QR code is unavailable&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;For a product or third party, check that the Barcodes module is enabled, barcode use is enabled for that object type, and the record has a value. For a batch or warehouse, check that its reference is not empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A size change does not seem to apply&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Save the value, reload Card Designer if it was already open, then generate a new PDF. Make sure you are viewing the latest file.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The page shows an old version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Hard-refresh the browser page. If needed, clear the Dolibarr and browser caches.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Storage and backups&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Card Designer templates are stored as JSON files in the module&#039;s directory under Dolibarr documents. Generated PDFs are stored with the documents associated with each object.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To back up the module configuration, include the following in your backup plan:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr database;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr documents directory;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Label Designer module directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Do not manually edit JSON files while a user is working in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;17. Support&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When requesting help, provide the module and Dolibarr versions, the steps to reproduce the issue, and the error message with sensitive data removed. Contact support at [mailto:contact@01consulting.eu contact@01consulting.eu]. Publisher website: [https://01consulting.eu 01consulting.eu].&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Label_Designer_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Odoo_Payroll_FR&amp;diff=67486</id>
		<title>Odoo Payroll FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Odoo_Payroll_FR&amp;diff=67486"/>
		<updated>2026-09-29T16:26:08Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: module odoo payroll fr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Odoo Payroll — Paie pour Dolibarr&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Résumé :&amp;lt;/strong&amp;gt; gestion des règles et structures salariales, contrats de paie et bulletins pour les utilisateurs internes de Dolibarr.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version du module :&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version minimale de Dolibarr déclarée :&amp;lt;/strong&amp;gt; 18.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version minimale de PHP déclarée :&amp;lt;/strong&amp;gt; 7.4&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Versions effectivement vérifiées :&amp;lt;/strong&amp;gt; aucune version de Dolibarr ou PHP n’a été testée pendant cette vérification documentaire.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification :&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site officiel de l’éditeur :&amp;lt;/strong&amp;gt; [https://01consulting.eu 01 Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration :&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;aeqG94iA8yQ&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Présentation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Odoo Payroll est un module de paie natif pour Dolibarr, développé par 01 Consulting. Malgré son nom, il s’installe dans Dolibarr et ne nécessite pas d’instance Odoo. Il permet de configurer les catégories et règles de salaire, de les réunir dans des structures, de rattacher ces structures à des contrats d’employés et de calculer des bulletins de paie.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le moteur fournit un cadre de calcul configurable ; il ne fournit pas une garantie de conformité à une législation, à une convention collective ou à un barème fiscal ou social. Les règles CNAS, IRG et autres obligations applicables doivent être conçues et approuvées par un spécialiste de la paie avant utilisation en production.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Fonctionnalités&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Catégories de règles salariales, éventuellement hiérarchisées.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Structures salariales composées de règles et pouvant hériter d’une structure parente.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Règles conditionnelles à montant fixe, en pourcentage ou exprimées par une formule arithmétique contrôlée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrats associés aux utilisateurs Dolibarr, avec salaire, heures hebdomadaires, période, type et département.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Calcul des lignes de bulletin, du brut et du net, avec validation et états de suivi.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Création individuelle de bulletins et génération en série à partir d’un lot.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Retour d’un bulletin validé au brouillon, annulation des bulletins validés et actions de masse, selon les permissions et réglages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Génération d’un PDF de bulletin et association avec le paiement de salaire natif de Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Onglet Paie dans la fiche utilisateur, profils d’import et filtrage des données par entité active.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Prérequis et compatibilité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr :&amp;lt;/strong&amp;gt; le descripteur déclare Dolibarr 18.0 comme version minimale. La version réellement vérifiée dans le cadre de ce wiki est « aucune ».&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP :&amp;lt;/strong&amp;gt; le descripteur déclare PHP 7.4 comme version minimale ; aucune exécution n’a été testée pendant la rédaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Modules Dolibarr requis :&amp;lt;/strong&amp;gt; Utilisateurs (&amp;lt;code&amp;gt;modUser&amp;lt;/code&amp;gt;) et Salaires (&amp;lt;code&amp;gt;modSalaries&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Base de données :&amp;lt;/strong&amp;gt; l’initialisation crée des triggers avec une syntaxe MySQL/MariaDB. La compatibilité des triggers avec d’autres moteurs SQL n’est pas établie. Le compte de base de données doit pouvoir créer et supprimer des triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents :&amp;lt;/strong&amp;gt; le processus de génération doit pouvoir créer des fichiers dans le répertoire de sortie du module sous les documents Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, mise à jour et désactivation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Installation et activation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Vérifier que les modules Dolibarr &amp;lt;strong&amp;gt;Utilisateurs&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Salaires&amp;lt;/strong&amp;gt; sont disponibles.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installer le dossier du module dans &amp;lt;code&amp;gt;htdocs/custom/payroll&amp;lt;/code&amp;gt; ou dans le répertoire personnalisé configuré pour les modules externes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans Dolibarr, ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;, rechercher &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Paie&amp;lt;/strong&amp;gt;, puis activer le module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;À l’activation, le module charge ses tables SQL, complète certaines colonnes de contrat manquantes, ajoute le champ supplémentaire de liaison bulletin-salaire et tente de créer trois triggers sur les tables de salaires.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Vérifier que le menu &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie&amp;lt;/strong&amp;gt; apparaît et que la page de configuration s’ouvre. Avant un traitement réel, réaliser un calcul complet avec des données de test et vérifier les PDF ainsi que les triggers de paiement.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’activation met également en place les menus, les droits et les profils d’import. Si la création des triggers échoue, les changements d’état automatiques liés au paiement ne fonctionneront pas correctement ; consulter l’erreur de base de données et les journaux Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Mise à jour&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sauvegarder la base Dolibarr et les documents avant de remplacer les fichiers du module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Installer les fichiers de la nouvelle version. Réactiver le module si l’initialisation des tables, des colonnes supplémentaires ou des triggers doit être rejouée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrôler les catégories, règles, contrats et bulletins existants ainsi que les triggers sur les tables de salaires.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Générer un bulletin de test, ouvrir son PDF et vérifier le chemin d’enregistrement et les permissions utilisateur.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le script d’activation vérifie et ajoute certaines colonnes de contrat et rend obligatoire la catégorie des règles après avoir essayé d’affecter une catégorie aux règles orphelines. Les migrations détaillées dépendent de la version précédente et du schéma déjà installé ; une sauvegarde est nécessaire avant l’opération.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Désactivation et suppression&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La désactivation masque le champ supplémentaire de liaison sur les salaires et supprime les trois triggers créés par le module. Le traitement de désactivation ne supprime pas les tables de paie. Le comportement d’une suppression manuelle des tables ou du dossier du module n’est pas établi ; ne pas supprimer ces données sans sauvegarde et procédure de migration définie.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ouvrir la page &amp;lt;strong&amp;gt;Configuration&amp;lt;/strong&amp;gt; du module depuis Dolibarr. L’accès est réservé aux administrateurs ou aux utilisateurs disposant du droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;. Les valeurs indiquées ci-dessous sont les valeurs initiales déclarées par le module ou les replis utilisés par l’écran ; une valeur déjà enregistrée dans une entité peut être différente.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Réglage&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initialisation ou repli&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effet&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Numérotation des bulletins&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Modèle standard ; masque déclaré &amp;lt;code&amp;gt;PSL{00000}&amp;lt;/code&amp;gt;. L’écran utilise &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt; comme valeur de repli si aucun masque n’est enregistré.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Définit la référence générée pour les bulletins. Contrôler la valeur dans l’écran après installation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Numérotation des contrats&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Modèle standard, masque &amp;lt;code&amp;gt;CTR{00000}&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Définit la référence des contrats.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Désactivé (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Autorise le retour au brouillon et l’annulation d’un bulletin validé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_CONFIRM_PAYSLIPS_WITHOUT_RECOMPUTING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Activé (&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empêche le recalcul automatique lors de la validation. Quand l’option est désactivée, la validation recalcule le bulletin.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Désactivé (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Autorise, si activé, la modification manuelle de certains champs des lignes d’un brouillon.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Compte bancaire par défaut&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Aucun.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur proposée dans le parcours de paiement ; le réglage est affiché si le module Banque est activé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Mode de paiement par défaut&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Aucun.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Mode proposé dans le parcours de paiement des salaires.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Types de contrat et départements&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dictionnaires gérés dans la configuration.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Ajoutez des codes et libellés actifs ; une entrée utilisée par un contrat ne peut pas être supprimée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les masques de référence doivent contenir au moins quatre zéros entre accolades, par exemple &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt;. Les modèles de numérotation disponibles peuvent être sélectionnés dans l’écran. Les constantes de configuration sont enregistrées pour l’entité Dolibarr courante.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. Préparer la configuration de paie&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;6.1. Catégories&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Catégories de règles salariales&amp;lt;/strong&amp;gt;, créer une catégorie avec un code et un libellé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisir éventuellement une catégorie parente pour organiser la hiérarchie.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Activer ou désactiver la catégorie selon son usage.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les codes sont utilisés dans les formules comme des variables de total préfixées par &amp;lt;code&amp;gt;CAT_&amp;lt;/code&amp;gt;, par exemple &amp;lt;code&amp;gt;CAT_BASIC&amp;lt;/code&amp;gt;. Un code utilisable dans une formule doit suivre les caractères acceptés par l’écran et les profils d’import.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.2. Structures salariales&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;Structures&amp;lt;/strong&amp;gt;, créer une structure avec une référence et un libellé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Associer les règles à la structure et définir leur ordre de séquence.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Si nécessaire, choisir une structure parente. Le moteur récupère les règles liées à la structure et à sa chaîne de structures parentes.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer la structure, puis l’affecter à un contrat.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une structure référencée par un contrat ou par une structure enfant est protégée contre la suppression par les contrôles du module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.3. Règles de salaire et calcul&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une règle possède un code, un libellé, une catégorie, un numéro de séquence, une condition et un type de calcul. Seules les règles actives liées à la structure sont chargées. Le calcul s’effectue par séquence croissante ; les règles déjà calculées sont accessibles sous leur code dans les règles suivantes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Condition toujours vraie :&amp;lt;/strong&amp;gt; applique la règle sans condition supplémentaire.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Plage :&amp;lt;/strong&amp;gt; compare le salaire aux bornes minimale et maximale configurées ; les bornes sont inclusives.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Expression :&amp;lt;/strong&amp;gt; évalue une condition comme &amp;lt;code&amp;gt;WAGE &amp;amp;gt;= 90000&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Montant fixe :&amp;lt;/strong&amp;gt; montant configuré multiplié par l’expression de quantité ; la quantité par défaut dans les données du modèle est &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Pourcentage :&amp;lt;/strong&amp;gt; applique un taux à une expression de base ; un pourcentage négatif peut représenter une retenue.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Formule :&amp;lt;/strong&amp;gt; évalue une expression arithmétique configurée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Afficher sur le bulletin :&amp;lt;/strong&amp;gt; détermine si la ligne correspondante apparaît sur le PDF.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le moteur accepte les nombres, variables, parenthèses et opérateurs &amp;lt;code&amp;gt;+ - * /&amp;lt;/code&amp;gt;. Les opérateurs de comparaison &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; sont acceptés dans une condition. Il n’exécute ni PHP ni Python ni des fonctions arbitraires. Une variable inconnue, un opérateur invalide ou une division par zéro interrompt le calcul avec une erreur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Variable&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur utilisée&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Exemple&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Salaire du contrat associé au bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Heures hebdomadaires du contrat.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE / WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de jours travaillés indiqué sur le bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE * WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de jours du lundi au vendredi dans la période du bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Codes de règles antérieures&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Montant calculé par une règle précédente dans l’ordre de séquence.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BASIC + PRIME&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_CODE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Total calculé pour une catégorie ; un total vide commence à zéro.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_BASIC + CAT_ALW + CAT_DED&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; ne retire pas les jours fériés : seuls les samedis et dimanches sont exclus. Les exemples de formules sont des exemples de syntaxe et ne constituent pas des recommandations de barème.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le brut et le net sont alimentés à partir des règles portant les codes &amp;lt;code&amp;gt;GROSS&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;NET&amp;lt;/code&amp;gt;. Si ces règles ne fournissent pas les totaux, le moteur utilise les catégories portant ces codes comme solution de repli.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.4. Contrats&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Dans &amp;lt;strong&amp;gt;Contrats&amp;lt;/strong&amp;gt;, créer un contrat pour un utilisateur interne Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Renseigner la structure, le salaire, le nombre d’heures hebdomadaires, la date de début et, si applicable, la date de fin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choisir éventuellement un type de contrat et un département dans les dictionnaires configurés.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer et activer le contrat lorsqu’il doit être proposé pour la génération d’un lot.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un contrat doit avoir un employé et une date de début. Les formulaires et classes du module empêchent de supprimer certains objets encore référencés, notamment un contrat associé à des bulletins.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Gérer les bulletins de paie&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;7.1. Créer et calculer un bulletin individuel&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Bulletins salariés&amp;lt;/strong&amp;gt;, puis créer un bulletin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sélectionner l’employé, son contrat, la période et le nombre de jours travaillés. La création d’un bulletin nécessite le droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enregistrer le bulletin ; il commence au statut &amp;lt;strong&amp;gt;Brouillon&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Calculer&amp;lt;/strong&amp;gt;. Le calcul exige un contrat et une structure salariale disponible. Si la structure n’est pas encore enregistrée sur le bulletin, celle du contrat lui est affectée.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contrôler les lignes, le brut et le net. Tant que le bulletin est brouillon, corriger la configuration ou les données, puis recalculer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Valider avec un utilisateur disposant du droit &amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;. Vérifier le résultat avant validation, car le réglage initial empêche le recalcul pendant cette étape.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;En cas de période inversée, de contrat ou structure manquant, de variable inconnue ou d’expression invalide, le calcul affiche une erreur et ne doit pas être considéré comme terminé.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.2. Générer des bulletins par lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie &amp;amp;gt; Lots de bulletins&amp;lt;/strong&amp;gt; et créer un lot avec un libellé et une période valide.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Sur la fiche du lot, lancer &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;. Le module sélectionne les contrats actifs ayant une structure, dont les dates couvrent tout ou partie de la période du lot, et pour lesquels le lot ne contient pas encore de bulletin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le module crée un brouillon par contrat éligible avec &amp;lt;strong&amp;gt;22 jours travaillés&amp;lt;/strong&amp;gt;, puis tente de calculer les bulletins brouillons du lot. Vérifier et corriger les jours travaillés lorsque la situation réelle diffère.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Examiner les erreurs de calcul et corriger les contrats, structures ou règles concernés avant de valider.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Valider les bulletins du lot. L’action est refusée si aucun brouillon n’est présent ou si un brouillon n’a aucune ligne calculée. Lorsque la validation réussit, le lot passe à l’état fermé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une génération répétée dans le même lot n’ajoute pas un second bulletin pour un contrat déjà présent dans ce lot. Cette vérification porte sur le contrat et le lot ; elle ne constitue pas une protection générale contre deux lots couvrant la même période.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.3. États, retour au brouillon et annulation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Brouillon (0) :&amp;lt;/strong&amp;gt; calculable et supprimable individuellement ; les lignes peuvent être modifiées si &amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt; est activé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Validé (1) :&amp;lt;/strong&amp;gt; état obtenu après validation. L’action de validation peut recalculer ou non selon le réglage mentionné ci-dessus.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Payé (2) :&amp;lt;/strong&amp;gt; état associé au paiement Dolibarr lorsque le bulletin est relié au salaire correspondant.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Annulé (9) :&amp;lt;/strong&amp;gt; état de bulletin annulé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Avec &amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt; activé, un utilisateur ayant le droit de validation peut ramener un bulletin validé au brouillon, l’annuler, et utiliser l’action de masse &amp;lt;strong&amp;gt;Retourner au brouillon&amp;lt;/strong&amp;gt; dans la liste des bulletins. L’action de masse ne traite que les bulletins validés sélectionnés. Le code de l’action individuelle ne vérifie que le droit et le réglage avant de changer l’état ; contrôler le bulletin et son éventuel salaire lié avant de l’utiliser.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un bulletin payé ne doit pas être traité comme un bulletin validé ordinaire : la synchronisation du salaire peut modifier son état et le lot ne peut pas être rouvert ou supprimé s’il contient des bulletins payés. La suppression individuelle d’un bulletin est réservée aux brouillons et supprime aussi ses lignes de calcul.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.4. Rouvrir ou supprimer un lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un lot fermé peut être rouvert par un utilisateur ayant le droit de validation si aucun de ses bulletins n’est payé. La réouverture remet les bulletins validés du lot au brouillon. La suppression d’un lot par un utilisateur ayant le droit de suppression supprime le lot, ses bulletins et leurs lignes ; elle est refusée en présence d’un bulletin payé. Cette suppression est définitive : vérifier la liste affichée dans la confirmation avant de poursuivre.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Fiche employé, paiement et PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Onglet Paie de l’employé&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module ajoute un onglet &amp;lt;strong&amp;gt;Paie&amp;lt;/strong&amp;gt; à la fiche utilisateur. Un utilisateur ayant le droit de lecture Paie peut consulter l’onglet ; l’employé peut également ouvrir sa propre fiche. L’onglet liste ses contrats et bulletins. Les boutons de création sont conditionnés par le droit d’écriture &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;. La page applique le filtrage de l’entité Dolibarr courante.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. Lier un bulletin au paiement natif Dolibarr&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Lors de l’activation, le module ajoute un champ supplémentaire au salaire Dolibarr pour sélectionner un bulletin payé du même employé. Une contrainte empêche de rattacher le même bulletin à plusieurs salaires. Le trigger SQL synchronise l’état du bulletin lié lorsque la valeur « payé » du salaire change : il passe le bulletin validé à payé lorsque le salaire est marqué payé, et le remet à validé lorsque le salaire est marqué non payé.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le trigger Dolibarr associé à la création d’un paiement de salaire met également le bulletin lié au statut payé. Ces automatismes dépendent de la présence du champ supplémentaire, du lien sélectionné et des triggers installés avec succès.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.3. Générer et consulter le PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ouvrir la fiche du bulletin et lancer la génération du document.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le module produit un PDF A4 qui présente la société, l’employé, le statut, le contrat, la structure, la période, les jours travaillés, les lignes visibles et les totaux brut/net.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Les règles marquées « afficher sur le bulletin » sont incluses ; les autres règles sont omises du tableau détaillé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le PDF est enregistré sous le répertoire de sortie du module pour l’entité courante, ou, à défaut, dans &amp;lt;code&amp;gt;DOL_DATA_ROOT/payroll&amp;lt;/code&amp;gt;, dans un dossier portant la référence du bulletin. La fiche permet ensuite de l’afficher ou de le télécharger.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une nouvelle génération écrit le PDF à la même référence de bulletin. Les documents existants ne sont pas automatiquement supprimés lors des changements d’état.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Menus, permissions et visibilité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Droit Dolibarr&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Usage&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;read&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Consulter le tableau de bord, les bulletins, lots et documents, accéder à l’aide ; permet l’accès en lecture à plusieurs listes.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configurer les catégories, règles, structures, contrats et paramètres. Les administrateurs ont également accès à la configuration.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Créer et modifier les bulletins, contrats et lots selon les contrôles de chaque écran ; lancer des calculs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valider les bulletins ; selon le réglage, remettre en brouillon ou annuler les bulletins validés ; valider/réouvrir les lots.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;delete&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Supprimer les enregistrements autorisés par leur état et leurs dépendances.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les menus de catégories, règles, structures et contrats sont rattachés au menu &amp;lt;strong&amp;gt;RH &amp;amp;gt; Paie&amp;lt;/strong&amp;gt; et conditionnés au droit de configuration. Les accès aux bulletins et lots requièrent la lecture ; la création est réservée aux droits correspondants. Les droits natifs Dolibarr sur les utilisateurs et salaires restent également pertinents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Données, imports, triggers et journaux&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Données stockées :&amp;lt;/strong&amp;gt; catégories, règles, structures, associations entre structures et règles, contrats, bulletins, lignes de calcul et lots dans des tables propres au module ; liaison du bulletin sur l’extrafield de l’objet Salaire.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Imports :&amp;lt;/strong&amp;gt; des profils d’import sont déclarés pour les catégories, règles, structures et associations structure-règle. Les contrats et bulletins ne figurent pas parmi les profils déclarés dans le descripteur.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Triggers SQL :&amp;lt;/strong&amp;gt; un trigger synchronise certains changements de statut entre le salaire payé et le bulletin lié. Deux autres triggers empêchent l’affectation d’un même bulletin à des salaires différents.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Trigger Dolibarr :&amp;lt;/strong&amp;gt; à la création du paiement d’un salaire, le module met le bulletin relié au statut payé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Journal technique observé :&amp;lt;/strong&amp;gt; le trigger de paiement écrit dans &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt; des horodatages, identifiants de salaires, résultats SQL et messages d’erreur. La rotation, la durée de conservation et les permissions de ce fichier ne sont pas gérées par le module ; l’administrateur du serveur doit les contrôler.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Fichiers :&amp;lt;/strong&amp;gt; les PDF générés sont écrits sous le répertoire de documents de sortie du module décrit dans la section PDF. Aucune tâche planifiée ou règle de purge des PDF et données de paie n’est déclarée par le module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Multi-entité :&amp;lt;/strong&amp;gt; les opérations et listes sont filtrées sur l’entité Dolibarr active ; les constantes de configuration sont enregistrées avec cette entité.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Symptôme&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifications&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le menu ou une page Paie n’est pas accessible.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier que le module est activé, que le rôle possède le droit Paie requis et que les modules Dolibarr Utilisateurs et Salaires sont activés.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le calcul ne démarre pas ou retourne une erreur.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier l’employé, le contrat, la structure, les dates, les règles actives, les séquences et la syntaxe des expressions. Une variable inconnue ou une division par zéro interrompt le calcul.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La validation ne met pas à jour les montants.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le réglage initial désactive le recalcul lors de la validation. Recalculer le brouillon avant validation ou modifier cette option selon la procédure de paie.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le lot ne génère aucun bulletin.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier la période du lot et l’existence de contrats actifs, associés à une structure et chevauchant la période. Vérifier aussi si un bulletin du contrat existe déjà dans ce lot.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La validation du lot est refusée.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Chaque brouillon doit avoir au moins une ligne de calcul. Recalculer ou corriger les bulletins signalés avant de relancer la validation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le champ de sélection du bulletin est absent du salaire.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier l’activation du module et l’existence/activation de l’extrafield ajouté à l’objet Salaire. Réactiver le module si nécessaire, avec les droits SQL adéquats.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le statut payé ne suit pas le paiement Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérifier que le bulletin est lié au bon salaire, que les triggers sont installés et consulter les journaux Dolibarr ainsi que &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le PDF est absent ou ne peut pas être ouvert.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contrôler les droits d’écriture du serveur sur le répertoire de sortie et l’existence du document. Examiner le message d’erreur et les journaux Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Limites et précautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Faire valider toutes les formules de paie par un spécialiste connaissant la législation applicable avant de traiter des salaires réels.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le calcul de &amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; exclut les samedis et dimanches mais conserve les jours fériés ; il ne lit pas un calendrier de congés.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La validation d’un bulletin ne recalcule pas les montants avec la configuration initiale. Vérifier les lignes et recalculer explicitement avant confirmation si les données ont changé.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La génération par lot utilise initialement 22 jours travaillés pour chaque bulletin créé. Adapter cette valeur à la situation réelle avant validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Le retour au brouillon et l’annulation dépendent d’un réglage désactivé par défaut. Une modification d’état d’un bulletin relié à un salaire doit être coordonnée avec le suivi comptable et le paiement Dolibarr.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La suppression d’un lot supprime les bulletins et calculs qu’il contient, sauf si la présence d’un bulletin payé bloque la suppression. Cette opération doit être vérifiée avant confirmation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;La synchronisation automatique des statuts dépend de triggers MySQL/MariaDB et des permissions de création de triggers ; la compatibilité avec les autres moteurs de base de données reste à confirmer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Assistance&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour signaler un problème, fournir la version du module, les versions de Dolibarr et PHP, l’entité concernée, les étapes de reproduction et le message d’erreur expurgé des noms, salaires et autres données personnelles. Le module est édité par [https://01consulting.eu 01 Consulting]. Aucun courriel de support n’est indiqué dans les fichiers du module consultés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[en:Odoo_Payroll]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Odoo_Payroll&amp;diff=67485</id>
		<title>Odoo Payroll</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Odoo_Payroll&amp;diff=67485"/>
		<updated>2026-09-29T16:25:07Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Odoo Payroll — Payroll for Dolibarr&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Summary:&amp;lt;/strong&amp;gt; management of payroll rules and structures, payroll contracts, and payslips for Dolibarr internal users.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared minimum Dolibarr version:&amp;lt;/strong&amp;gt; 18.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared minimum PHP version:&amp;lt;/strong&amp;gt; 7.4&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Versions actually verified:&amp;lt;/strong&amp;gt; no Dolibarr or PHP version was tested during this documentation review.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last reviewed:&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Publisher’s official website:&amp;lt;/strong&amp;gt; [https://01consulting.eu 01 Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demonstration video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;aeqG94iA8yQ&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Odoo Payroll is a native payroll module for Dolibarr, developed by 01 Consulting. Despite its name, it is installed in Dolibarr and does not require an Odoo instance. It lets administrators configure salary categories and rules, group them into structures, assign these structures to employee contracts, and calculate payslips.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The engine provides a configurable calculation framework; it does not guarantee compliance with any legislation, collective agreement, tax scale, or social contribution schedule. CNAS, IRG, and other applicable statutory rules must be designed and approved by a payroll specialist before production use.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Features&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Salary rule categories, which can be organized hierarchically.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Salary structures containing rules and optionally inheriting from a parent structure.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Conditional rules with fixed amounts, percentages, or controlled arithmetic formulas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contracts linked to Dolibarr users, with salary, weekly hours, dates, contract type, and department.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Payslip line calculation, gross and net totals, validation, and status tracking.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Individual payslip creation and batch generation for multiple employees.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Moving a validated payslip back to draft, canceling validated payslips, and mass actions, subject to permissions and settings.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PDF payslip generation and integration with Dolibarr’s native salary payment workflow.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A Payroll tab on user cards, Dolibarr import profiles, and filtering by the active entity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Requirements and compatibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr:&amp;lt;/strong&amp;gt; the module descriptor declares Dolibarr 18.0 as the minimum version. The version actually verified for this wiki is “none”.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP:&amp;lt;/strong&amp;gt; the descriptor declares PHP 7.4 as the minimum; no runtime testing was performed during this review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Required Dolibarr modules:&amp;lt;/strong&amp;gt; Users (&amp;lt;code&amp;gt;modUser&amp;lt;/code&amp;gt;) and Salaries (&amp;lt;code&amp;gt;modSalaries&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Database:&amp;lt;/strong&amp;gt; initialization creates triggers using MySQL/MariaDB syntax. Compatibility with other SQL database engines has not been established. The database account must be able to create and drop triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents:&amp;lt;/strong&amp;gt; the generation process must be able to create files in the module’s output directory under Dolibarr documents.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, update, and deactivation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Installation and activation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that Dolibarr’s &amp;lt;strong&amp;gt;Users&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Salaries&amp;lt;/strong&amp;gt; modules are available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the module directory in &amp;lt;code&amp;gt;htdocs/custom/payroll&amp;lt;/code&amp;gt;, or in the custom directory configured for external modules.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Dolibarr, open &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;, find &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt;, and enable the module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On activation, the module loads its SQL tables, adds certain missing contract columns, adds a salary extra field for linking a payslip, and attempts to create three triggers on salary tables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll&amp;lt;/strong&amp;gt; appears and the setup page opens. Before processing real payroll, run a complete calculation with test data and verify the PDFs and payment triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Activation also installs menus, permissions, and import profiles. If trigger creation fails, automatic status changes associated with payments will not work correctly; review the database error and Dolibarr logs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Updating&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Back up the Dolibarr database and documents before replacing module files.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the updated files. Deactivate and reactivate the module if initialization of new tables, columns, or triggers needs to run again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review existing categories, rules, contracts, and payslips, and check the triggers on salary tables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate a test payslip, open its PDF, and verify the output path and user permissions.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The activation script checks for and adds certain missing contract columns, then makes the rule category mandatory after attempting to assign a category to orphaned rules. Migration details depend on the previous version and existing schema; back up the database before proceeding.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Deactivation and removal&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Deactivation hides the salary-to-payslip linking extra field and removes the three triggers created by the module. The deactivation process does not delete the payroll tables. The effects of manually removing the tables or module directory have not been established; do not delete this data without a backup and a defined migration procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open the module’s &amp;lt;strong&amp;gt;Setup&amp;lt;/strong&amp;gt; page in Dolibarr. Access is limited to administrators and users with the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt; permission. The values below are the module’s declared initial values or the fallbacks used by the page; a value already saved for an entity may differ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initial value or fallback&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effect&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Payslip numbering&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Standard model; declared mask &amp;lt;code&amp;gt;PSL{00000}&amp;lt;/code&amp;gt;. The page falls back to &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt; if no mask is saved.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sets generated payslip references. Check the value shown in Setup after installation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract numbering&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Standard model, mask &amp;lt;code&amp;gt;CTR{00000}&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sets contract references.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allows a validated payslip to be returned to draft or canceled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_CONFIRM_PAYSLIPS_WITHOUT_RECOMPUTING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Enabled (&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Prevents automatic recalculation during validation. When disabled, validation recalculates the payslip.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;When enabled, allows selected fields on draft payslip lines to be edited manually.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default bank account&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;None.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Value proposed in the payment workflow; this setting is shown when the Bank module is enabled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default payment method&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;None.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Payment method proposed in the salary payment workflow.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract types and departments&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dictionaries managed in Setup.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Add active codes and labels; an entry used by a contract cannot be deleted.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Numbering masks must contain at least four zeroes inside braces, for example &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt;. Available numbering models can be selected on the Setup page. Configuration constants are saved for the current Dolibarr entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. Preparing payroll configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;6.1. Categories&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Salary Rule Categories&amp;lt;/strong&amp;gt;, create a category with a code and label.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally choose a parent category to organize the hierarchy.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enable or disable the category according to its use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Codes are used in formulas as category totals prefixed with &amp;lt;code&amp;gt;CAT_&amp;lt;/code&amp;gt;, for example &amp;lt;code&amp;gt;CAT_BASIC&amp;lt;/code&amp;gt;. A code used in a formula must follow the characters accepted by the page and import profiles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.2. Salary structures&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;Structures&amp;lt;/strong&amp;gt;, create a structure with a reference and label.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Link rules to the structure and set their sequence order.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally select a parent structure. The engine loads rules linked to the structure and its chain of parent structures.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the structure and assign it to a contract.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A structure referenced by a contract or child structure is protected from deletion by the module’s dependency checks.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.3. Salary rules and calculations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A rule has a code, label, category, sequence number, condition, and computation type. Only active rules linked to the structure are loaded. Rules are calculated in ascending sequence order; rules already calculated are available by their code to later rules.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Always true:&amp;lt;/strong&amp;gt; applies the rule without an additional condition.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Range:&amp;lt;/strong&amp;gt; compares the salary with configured minimum and maximum values; both endpoints are inclusive.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Expression:&amp;lt;/strong&amp;gt; evaluates a condition such as &amp;lt;code&amp;gt;WAGE &amp;amp;gt;= 90000&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Fixed amount:&amp;lt;/strong&amp;gt; configured amount multiplied by the quantity expression; the model’s default quantity is &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Percentage:&amp;lt;/strong&amp;gt; applies a rate to a base expression; a negative percentage can represent a deduction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Formula:&amp;lt;/strong&amp;gt; evaluates a configured arithmetic expression.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Show on payslip:&amp;lt;/strong&amp;gt; controls whether the corresponding line appears in the PDF.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The engine accepts numbers, variables, parentheses, and the &amp;lt;code&amp;gt;+ - * /&amp;lt;/code&amp;gt; operators. Comparison operators &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; are accepted in a condition. It does not execute PHP, Python, or arbitrary functions. An unknown variable, invalid operator, or division by zero stops the calculation with an error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Variable&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Value used&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Example&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Salary from the contract linked to the payslip.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract’s weekly hours.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE / WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Worked days entered on the payslip.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE * WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Weekdays, Monday through Friday, in the payslip period.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Earlier rule codes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Amount calculated by an earlier rule in sequence order.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BASIC + PRIME&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_CODE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Calculated total for a category; an empty total starts at zero.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_BASIC + CAT_ALW + CAT_DED&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; does not exclude public holidays: only Saturdays and Sundays are excluded. Formula examples illustrate syntax and are not recommended payroll scales.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Gross and net totals are taken from rules with the codes &amp;lt;code&amp;gt;GROSS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NET&amp;lt;/code&amp;gt;. If these rules do not provide the totals, the engine falls back to categories with those codes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.4. Contracts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;Contracts&amp;lt;/strong&amp;gt;, create a contract for an internal Dolibarr user.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the structure, salary, weekly hours, start date, and, if applicable, end date.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally select a contract type and department from the configured dictionaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save and activate the contract if it should be offered for batch generation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A contract must have an employee and a start date. The module’s forms and classes prevent deleting certain referenced records, including a contract linked to payslips.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Managing payslips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;7.1. Create and calculate an individual payslip&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Employee Payslips&amp;lt;/strong&amp;gt;, then create a payslip.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select the employee and contract, set the period, and enter the number of worked days. Creating a payslip requires &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the payslip; it starts in &amp;lt;strong&amp;gt;Draft&amp;lt;/strong&amp;gt; status.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click &amp;lt;strong&amp;gt;Compute&amp;lt;/strong&amp;gt;. Calculation requires a contract and an available salary structure. If no structure is saved on the payslip yet, the contract’s structure is assigned to it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review the lines, gross, and net amounts. While the payslip is a draft, correct the configuration or data and compute it again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Validate it with a user who has the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt; permission. Review the result before validation because the initial setting prevents recalculation at this step.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the period is reversed, a contract or structure is missing, a variable is unknown, or an expression is invalid, calculation displays an error and must not be treated as complete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.2. Generate payslips in a batch&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Payslip Batches&amp;lt;/strong&amp;gt; and create a batch with a label and valid period.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the batch card, run &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;. The module selects active contracts with a structure whose dates overlap all or part of the batch period, and for which the batch does not already contain a payslip.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module creates one draft per eligible contract with &amp;lt;strong&amp;gt;22 worked days&amp;lt;/strong&amp;gt;, then attempts to compute the batch’s draft payslips. Review and correct worked days if the actual situation differs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review calculation errors and correct the affected contracts, structures, or rules before validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Validate the batch payslips. The action is refused if there are no drafts or if a draft has no calculated lines. When validation succeeds, the batch is closed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Running generation again in the same batch does not add a second payslip for a contract already included in that batch. This check is by contract and batch; it does not generally prevent two separate batches from covering the same period.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.3. Statuses, returning to draft, and cancellation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Draft (0):&amp;lt;/strong&amp;gt; can be computed and deleted individually; lines can be edited if &amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt; is enabled.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Validated (1):&amp;lt;/strong&amp;gt; status reached after validation. Whether validation recalculates the payslip depends on the setting described above.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Paid (2):&amp;lt;/strong&amp;gt; status associated with the Dolibarr salary payment when the payslip is linked to the corresponding salary.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Canceled (9):&amp;lt;/strong&amp;gt; canceled payslip status.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When &amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt; is enabled, a user with validation permission can return a validated payslip to draft, cancel it, and use the &amp;lt;strong&amp;gt;Set to draft&amp;lt;/strong&amp;gt; mass action from the payslip list. The mass action only processes selected validated payslips. The individual action checks the permission and setting before changing the status; review the payslip and any linked salary before using it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A paid payslip must not be treated like an ordinary validated payslip: salary synchronization may change its status, and a batch cannot be reopened or deleted if it contains paid payslips. Individual payslip deletion is limited to drafts and also deletes their calculation lines.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.4. Reopen or delete a batch&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A closed batch can be reopened by a user with validation permission if none of its payslips are paid. Reopening returns the batch’s validated payslips to draft. Deleting a batch requires delete permission and deletes the batch, its payslips, and their lines; deletion is refused if a paid payslip is present. This deletion is permanent: review the list shown in the confirmation before proceeding.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Employee card, payment, and PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Employee Payroll tab&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module adds a &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt; tab to user cards. A user with Payroll read permission can view the tab; an employee can also open their own card. The tab lists that employee’s contracts and payslips. Creation buttons depend on the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt; permission. The page filters results by the active Dolibarr entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. Link a payslip to Dolibarr’s native salary payment&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When activated, the module adds an extra field to a Dolibarr salary for selecting a paid payslip belonging to the same employee. A constraint prevents linking the same payslip to multiple salaries. The SQL trigger synchronizes the payslip status when the salary’s paid value changes: it changes the linked payslip from validated to paid when the salary is marked paid, and back to validated when the salary is marked unpaid.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Dolibarr trigger associated with creating a salary payment also sets the linked payslip status to paid. These automations depend on the extra field, the selected link, and successful trigger installation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.3. Generate and view the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the payslip card and start document generation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module produces an A4 PDF showing the company, employee, status, contract, structure, period, worked days, visible lines, and gross/net totals.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rules marked “show on payslip” are included; other rules are omitted from the detailed table.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PDF is saved in the module output directory for the active entity, or, if none is configured, in &amp;lt;code&amp;gt;DOL_DATA_ROOT/payroll&amp;lt;/code&amp;gt;, inside a directory named after the payslip reference. The card can then display or download it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Generating the PDF again writes to the same payslip reference. Existing documents are not automatically deleted when the payslip status changes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Menus, permissions, and visibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dolibarr permission&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;read&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;View the dashboard, payslips, batches, and documents; access help; grants read access to several lists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configure categories, rules, structures, contracts, and settings. Administrators also have access to setup.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Create and edit payslips, contracts, and batches according to each page’s checks; run calculations.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Validate payslips; subject to the setting, return or cancel validated payslips; validate or reopen batches.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;delete&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Delete records allowed by their status and dependencies.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Category, rule, structure, and contract menus are under &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll&amp;lt;/strong&amp;gt; and require the setup permission. Access to payslips and batches requires read permission; creation requires the corresponding write permission. Native Dolibarr permissions for Users and Salaries are also relevant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Data, imports, triggers, and logs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Stored data:&amp;lt;/strong&amp;gt; categories, rules, structures, structure-rule links, contracts, payslips, calculation lines, and batches in module tables; the payslip link is stored in an extra field on the Salary object.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Imports:&amp;lt;/strong&amp;gt; import profiles are declared for categories, rules, structures, and structure-rule links. Contracts and payslips are not listed among the import profiles in the module descriptor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;SQL triggers:&amp;lt;/strong&amp;gt; one trigger synchronizes certain status changes between the paid salary and linked payslip. Two other triggers prevent a payslip from being linked to different salaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr trigger:&amp;lt;/strong&amp;gt; when a salary payment is created, the module sets the linked payslip to paid.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Observed technical log:&amp;lt;/strong&amp;gt; the payment trigger writes timestamps, salary identifiers, SQL results, and error messages to &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;. The module does not manage this file’s rotation, retention, or permissions; the server administrator should review them.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Files:&amp;lt;/strong&amp;gt; generated PDFs are written under the module document output directory described in the PDF section. The module descriptor declares no scheduled job or purge policy for payslips, payroll data, or PDFs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Multi-entity:&amp;lt;/strong&amp;gt; operations and lists are filtered by the active Dolibarr entity; configuration constants are saved for that entity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Symptom&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Checks&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The Payroll menu or a page is inaccessible.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check that the module is enabled, the user has the required Payroll permission, and the native Users and Salaries modules are enabled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Calculation does not start or returns an error.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the employee, contract, structure, dates, active rules, sequences, and expression syntax. An unknown variable or division by zero stops calculation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Validation does not update the amounts.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The initial setting disables recalculation during validation. Recompute the draft first or change this setting according to the payroll procedure.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The batch generates no payslips.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the batch period and whether active contracts have a structure and overlap the period. Also check whether a payslip for the contract already exists in this batch.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Batch validation is refused.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Each draft must have at least one calculated line. Recompute or correct the indicated payslips before retrying validation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The payslip selection field is missing from a salary.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check module activation and whether the extra field was installed/enabled on the Salary object. Reactivate the module if needed, with sufficient SQL permissions.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The paid status does not follow a Dolibarr payment.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check that the payslip is linked to the correct salary, that triggers are installed, and review Dolibarr logs and &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The PDF is missing or cannot be opened.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the web server’s write access to the output directory and whether the document exists. Review the error message and Dolibarr logs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Limitations and precautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Have all payroll formulas reviewed by a specialist familiar with the applicable legislation before processing real salaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; excludes Saturdays and Sundays but includes public holidays; it does not use a leave calendar.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With the initial configuration, validating a payslip does not recalculate it. Review the lines and recompute explicitly before validation if the data has changed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Batch generation initially uses 22 worked days for each payslip it creates. Adjust this value to the actual situation before validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Returning a payslip to draft or canceling it depends on a setting that is disabled by default. Coordinate status changes for payslips linked to salaries with Dolibarr’s accounting and payment tracking.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Deleting a batch deletes its payslips and calculations unless a paid payslip blocks the operation. Review the batch before confirming deletion.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Automatic status synchronization depends on MySQL/MariaDB triggers and database permissions to create triggers; compatibility with other database engines remains unconfirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Support&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When reporting a problem, provide the module version, Dolibarr and PHP versions, affected entity, reproduction steps, and an error message with names, salary amounts, and other personal data removed. The module is published by [https://01consulting.eu 01 Consulting]. No support email address was found in the reviewed module files.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Odoo_Payroll_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Odoo_Payroll&amp;diff=67484</id>
		<title>Odoo Payroll</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Odoo_Payroll&amp;diff=67484"/>
		<updated>2026-09-29T16:24:39Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: module odoo payroll&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Odoo Payroll — Payroll for Dolibarr&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Summary:&amp;lt;/strong&amp;gt; management of payroll rules and structures, payroll contracts, and payslips for Dolibarr internal users.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared minimum Dolibarr version:&amp;lt;/strong&amp;gt; 18.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared minimum PHP version:&amp;lt;/strong&amp;gt; 7.4&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Versions actually verified:&amp;lt;/strong&amp;gt; no Dolibarr or PHP version was tested during this documentation review.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last reviewed:&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Publisher’s official website:&amp;lt;/strong&amp;gt; [https://01consulting.eu 01 Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demonstration video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;aeqG94iA8yQ&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Odoo Payroll is a native payroll module for Dolibarr, developed by 01 Consulting. Despite its name, it is installed in Dolibarr and does not require an Odoo instance. It lets administrators configure salary categories and rules, group them into structures, assign these structures to employee contracts, and calculate payslips.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The engine provides a configurable calculation framework; it does not guarantee compliance with any legislation, collective agreement, tax scale, or social contribution schedule. CNAS, IRG, and other applicable statutory rules must be designed and approved by a payroll specialist before production use.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Features&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Salary rule categories, which can be organized hierarchically.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Salary structures containing rules and optionally inheriting from a parent structure.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Conditional rules with fixed amounts, percentages, or controlled arithmetic formulas.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Contracts linked to Dolibarr users, with salary, weekly hours, dates, contract type, and department.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Payslip line calculation, gross and net totals, validation, and status tracking.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Individual payslip creation and batch generation for multiple employees.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Moving a validated payslip back to draft, canceling validated payslips, and mass actions, subject to permissions and settings.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PDF payslip generation and integration with Dolibarr’s native salary payment workflow.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A Payroll tab on user cards, Dolibarr import profiles, and filtering by the active entity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Requirements and compatibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr:&amp;lt;/strong&amp;gt; the module descriptor declares Dolibarr 18.0 as the minimum version. The version actually verified for this wiki is “none”.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP:&amp;lt;/strong&amp;gt; the descriptor declares PHP 7.4 as the minimum; no runtime testing was performed during this review.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Required Dolibarr modules:&amp;lt;/strong&amp;gt; Users (&amp;lt;code&amp;gt;modUser&amp;lt;/code&amp;gt;) and Salaries (&amp;lt;code&amp;gt;modSalaries&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Database:&amp;lt;/strong&amp;gt; initialization creates triggers using MySQL/MariaDB syntax. Compatibility with other SQL database engines has not been established. The database account must be able to create and drop triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents:&amp;lt;/strong&amp;gt; the generation process must be able to create files in the module’s output directory under Dolibarr documents.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, update, and deactivation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Installation and activation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that Dolibarr’s &amp;lt;strong&amp;gt;Users&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Salaries&amp;lt;/strong&amp;gt; modules are available.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the module directory in &amp;lt;code&amp;gt;htdocs/custom/payroll&amp;lt;/code&amp;gt;, or in the custom directory configured for external modules.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In Dolibarr, open &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;, find &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt;, and enable the module.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On activation, the module loads its SQL tables, adds certain missing contract columns, adds a salary extra field for linking a payslip, and attempts to create three triggers on salary tables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check that &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll&amp;lt;/strong&amp;gt; appears and the setup page opens. Before processing real payroll, run a complete calculation with test data and verify the PDFs and payment triggers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Activation also installs menus, permissions, and import profiles. If trigger creation fails, automatic status changes associated with payments will not work correctly; review the database error and Dolibarr logs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Updating&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Back up the Dolibarr database and documents before replacing module files.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the updated files. Deactivate and reactivate the module if initialization of new tables, columns, or triggers needs to run again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review existing categories, rules, contracts, and payslips, and check the triggers on salary tables.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate a test payslip, open its PDF, and verify the output path and user permissions.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The activation script checks for and adds certain missing contract columns, then makes the rule category mandatory after attempting to assign a category to orphaned rules. Migration details depend on the previous version and existing schema; back up the database before proceeding.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Deactivation and removal&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Deactivation hides the salary-to-payslip linking extra field and removes the three triggers created by the module. The deactivation process does not delete the payroll tables. The effects of manually removing the tables or module directory have not been established; do not delete this data without a backup and a defined migration procedure.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open the module’s &amp;lt;strong&amp;gt;Setup&amp;lt;/strong&amp;gt; page in Dolibarr. Access is limited to administrators and users with the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt; permission. The values below are the module’s declared initial values or the fallbacks used by the page; a value already saved for an entity may differ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initial value or fallback&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effect&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Payslip numbering&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Standard model; declared mask &amp;lt;code&amp;gt;PSL{00000}&amp;lt;/code&amp;gt;. The page falls back to &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt; if no mask is saved.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sets generated payslip references. Check the value shown in Setup after installation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract numbering&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Standard model, mask &amp;lt;code&amp;gt;CTR{00000}&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sets contract references.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allows a validated payslip to be returned to draft or canceled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_CONFIRM_PAYSLIPS_WITHOUT_RECOMPUTING&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Enabled (&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Prevents automatic recalculation during validation. When disabled, validation recalculates the payslip.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;When enabled, allows selected fields on draft payslip lines to be edited manually.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default bank account&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;None.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Value proposed in the payment workflow; this setting is shown when the Bank module is enabled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default payment method&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;None.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Payment method proposed in the salary payment workflow.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract types and departments&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dictionaries managed in Setup.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Add active codes and labels; an entry used by a contract cannot be deleted.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Numbering masks must contain at least four zeroes inside braces, for example &amp;lt;code&amp;gt;PAY{00000}&amp;lt;/code&amp;gt;. Available numbering models can be selected on the Setup page. Configuration constants are saved for the current Dolibarr entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. Preparing payroll configuration&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;6.1. Categories&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Salary Rule Categories&amp;lt;/strong&amp;gt;, create a category with a code and label.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally choose a parent category to organize the hierarchy.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enable or disable the category according to its use.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Codes are used in formulas as category totals prefixed with &amp;lt;code&amp;gt;CAT_&amp;lt;/code&amp;gt;, for example &amp;lt;code&amp;gt;CAT_BASIC&amp;lt;/code&amp;gt;. A code used in a formula must follow the characters accepted by the page and import profiles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.2. Salary structures&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;Structures&amp;lt;/strong&amp;gt;, create a structure with a reference and label.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Link rules to the structure and set their sequence order.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally select a parent structure. The engine loads rules linked to the structure and its chain of parent structures.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the structure and assign it to a contract.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A structure referenced by a contract or child structure is protected from deletion by the module’s dependency checks.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.3. Salary rules and calculations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A rule has a code, label, category, sequence number, condition, and computation type. Only active rules linked to the structure are loaded. Rules are calculated in ascending sequence order; rules already calculated are available by their code to later rules.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Always true:&amp;lt;/strong&amp;gt; applies the rule without an additional condition.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Range:&amp;lt;/strong&amp;gt; compares the salary with configured minimum and maximum values; both endpoints are inclusive.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Expression:&amp;lt;/strong&amp;gt; evaluates a condition such as &amp;lt;code&amp;gt;WAGE &amp;amp;gt;= 90000&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Fixed amount:&amp;lt;/strong&amp;gt; configured amount multiplied by the quantity expression; the model’s default quantity is &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Percentage:&amp;lt;/strong&amp;gt; applies a rate to a base expression; a negative percentage can represent a deduction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Formula:&amp;lt;/strong&amp;gt; evaluates a configured arithmetic expression.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Show on payslip:&amp;lt;/strong&amp;gt; controls whether the corresponding line appears in the PDF.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The engine accepts numbers, variables, parentheses, and the &amp;lt;code&amp;gt;+ - * /&amp;lt;/code&amp;gt; operators. Comparison operators &amp;lt;code&amp;gt;&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt; are accepted in a condition. It does not execute PHP, Python, or arbitrary functions. An unknown variable, invalid operator, or division by zero stops the calculation with an error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Variable&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Value used&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Example&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Salary from the contract linked to the payslip.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contract’s weekly hours.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE / WORK_HOURS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Worked days entered on the payslip.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WAGE * WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Weekdays, Monday through Friday, in the payslip period.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;WORKED_DAYS / MONTH_DAYS&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Earlier rule codes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Amount calculated by an earlier rule in sequence order.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;BASIC + PRIME&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_CODE&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Calculated total for a category; an empty total starts at zero.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;CAT_BASIC + CAT_ALW + CAT_DED&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; does not exclude public holidays: only Saturdays and Sundays are excluded. Formula examples illustrate syntax and are not recommended payroll scales.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Gross and net totals are taken from rules with the codes &amp;lt;code&amp;gt;GROSS&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;NET&amp;lt;/code&amp;gt;. If these rules do not provide the totals, the engine falls back to categories with those codes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;6.4. Contracts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In &amp;lt;strong&amp;gt;Contracts&amp;lt;/strong&amp;gt;, create a contract for an internal Dolibarr user.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the structure, salary, weekly hours, start date, and, if applicable, end date.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Optionally select a contract type and department from the configured dictionaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save and activate the contract if it should be offered for batch generation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A contract must have an employee and a start date. The module’s forms and classes prevent deleting certain referenced records, including a contract linked to payslips.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Managing payslips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;7.1. Create and calculate an individual payslip&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Employee Payslips&amp;lt;/strong&amp;gt;, then create a payslip.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select the employee and contract, set the period, and enter the number of worked days. Creating a payslip requires &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Save the payslip; it starts in &amp;lt;strong&amp;gt;Draft&amp;lt;/strong&amp;gt; status.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click &amp;lt;strong&amp;gt;Compute&amp;lt;/strong&amp;gt;. Calculation requires a contract and an available salary structure. If no structure is saved on the payslip yet, the contract’s structure is assigned to it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review the lines, gross, and net amounts. While the payslip is a draft, correct the configuration or data and compute it again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Validate it with a user who has the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt; permission. Review the result before validation because the initial setting prevents recalculation at this step.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the period is reversed, a contract or structure is missing, a variable is unknown, or an expression is invalid, calculation displays an error and must not be treated as complete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.2. Generate payslips in a batch&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll &amp;amp;gt; Payslip Batches&amp;lt;/strong&amp;gt; and create a batch with a label and valid period.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the batch card, run &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;. The module selects active contracts with a structure whose dates overlap all or part of the batch period, and for which the batch does not already contain a payslip.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module creates one draft per eligible contract with &amp;lt;strong&amp;gt;22 worked days&amp;lt;/strong&amp;gt;, then attempts to compute the batch’s draft payslips. Review and correct worked days if the actual situation differs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Review calculation errors and correct the affected contracts, structures, or rules before validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Validate the batch payslips. The action is refused if there are no drafts or if a draft has no calculated lines. When validation succeeds, the batch is closed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Running generation again in the same batch does not add a second payslip for a contract already included in that batch. This check is by contract and batch; it does not generally prevent two separate batches from covering the same period.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.3. Statuses, returning to draft, and cancellation&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Draft (0):&amp;lt;/strong&amp;gt; can be computed and deleted individually; lines can be edited if &amp;lt;code&amp;gt;PAYROLL_ALLOW_EDIT_PAYSLIP_LINES&amp;lt;/code&amp;gt; is enabled.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Validated (1):&amp;lt;/strong&amp;gt; status reached after validation. Whether validation recalculates the payslip depends on the setting described above.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Paid (2):&amp;lt;/strong&amp;gt; status associated with the Dolibarr salary payment when the payslip is linked to the corresponding salary.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Canceled (9):&amp;lt;/strong&amp;gt; canceled payslip status.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When &amp;lt;code&amp;gt;PAYROLL_ALLOW_CANCEL_CONFIRMED_PAYSLIPS&amp;lt;/code&amp;gt; is enabled, a user with validation permission can return a validated payslip to draft, cancel it, and use the &amp;lt;strong&amp;gt;Set to draft&amp;lt;/strong&amp;gt; mass action from the payslip list. The mass action only processes selected validated payslips. The individual action checks the permission and setting before changing the status; review the payslip and any linked salary before using it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A paid payslip must not be treated like an ordinary validated payslip: salary synchronization may change its status, and a batch cannot be reopened or deleted if it contains paid payslips. Individual payslip deletion is limited to drafts and also deletes their calculation lines.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;7.4. Reopen or delete a batch&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;A closed batch can be reopened by a user with validation permission if none of its payslips are paid. Reopening returns the batch’s validated payslips to draft. Deleting a batch requires delete permission and deletes the batch, its payslips, and their lines; deletion is refused if a paid payslip is present. This deletion is permanent: review the list shown in the confirmation before proceeding.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Employee card, payment, and PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Employee Payroll tab&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module adds a &amp;lt;strong&amp;gt;Payroll&amp;lt;/strong&amp;gt; tab to user cards. A user with Payroll read permission can view the tab; an employee can also open their own card. The tab lists that employee’s contracts and payslips. Creation buttons depend on the &amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt; permission. The page filters results by the active Dolibarr entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. Link a payslip to Dolibarr’s native salary payment&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When activated, the module adds an extra field to a Dolibarr salary for selecting a paid payslip belonging to the same employee. A constraint prevents linking the same payslip to multiple salaries. The SQL trigger synchronizes the payslip status when the salary’s paid value changes: it changes the linked payslip from validated to paid when the salary is marked paid, and back to validated when the salary is marked unpaid.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Dolibarr trigger associated with creating a salary payment also sets the linked payslip status to paid. These automations depend on the extra field, the selected link, and successful trigger installation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;8.3. Generate and view the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open the payslip card and start document generation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module produces an A4 PDF showing the company, employee, status, contract, structure, period, worked days, visible lines, and gross/net totals.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Rules marked “show on payslip” are included; other rules are omitted from the detailed table.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PDF is saved in the module output directory for the active entity, or, if none is configured, in &amp;lt;code&amp;gt;DOL_DATA_ROOT/payroll&amp;lt;/code&amp;gt;, inside a directory named after the payslip reference. The card can then display or download it.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Generating the PDF again writes to the same payslip reference. Existing documents are not automatically deleted when the payslip status changes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Menus, permissions, and visibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Dolibarr permission&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;read&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;View the dashboard, payslips, batches, and documents; access help; grants read access to several lists.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;setup&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configure categories, rules, structures, contracts, and settings. Administrators also have access to setup.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;write&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Create and edit payslips, contracts, and batches according to each page’s checks; run calculations.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;validate&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Validate payslips; subject to the setting, return or cancel validated payslips; validate or reopen batches.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;&amp;lt;code&amp;gt;payroll-&amp;amp;gt;delete&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Delete records allowed by their status and dependencies.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Category, rule, structure, and contract menus are under &amp;lt;strong&amp;gt;HRM &amp;amp;gt; Payroll&amp;lt;/strong&amp;gt; and require the setup permission. Access to payslips and batches requires read permission; creation requires the corresponding write permission. Native Dolibarr permissions for Users and Salaries are also relevant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Data, imports, triggers, and logs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Stored data:&amp;lt;/strong&amp;gt; categories, rules, structures, structure-rule links, contracts, payslips, calculation lines, and batches in module tables; the payslip link is stored in an extra field on the Salary object.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Imports:&amp;lt;/strong&amp;gt; import profiles are declared for categories, rules, structures, and structure-rule links. Contracts and payslips are not listed among the import profiles in the module descriptor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;SQL triggers:&amp;lt;/strong&amp;gt; one trigger synchronizes certain status changes between the paid salary and linked payslip. Two other triggers prevent a payslip from being linked to different salaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr trigger:&amp;lt;/strong&amp;gt; when a salary payment is created, the module sets the linked payslip to paid.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Observed technical log:&amp;lt;/strong&amp;gt; the payment trigger writes timestamps, salary identifiers, SQL results, and error messages to &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;. The module does not manage this file’s rotation, retention, or permissions; the server administrator should review them.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Files:&amp;lt;/strong&amp;gt; generated PDFs are written under the module document output directory described in the PDF section. The module descriptor declares no scheduled job or purge policy for payslips, payroll data, or PDFs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Multi-entity:&amp;lt;/strong&amp;gt; operations and lists are filtered by the active Dolibarr entity; configuration constants are saved for that entity.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Symptom&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Checks&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The Payroll menu or a page is inaccessible.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check that the module is enabled, the user has the required Payroll permission, and the native Users and Salaries modules are enabled.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Calculation does not start or returns an error.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the employee, contract, structure, dates, active rules, sequences, and expression syntax. An unknown variable or division by zero stops calculation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Validation does not update the amounts.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The initial setting disables recalculation during validation. Recompute the draft first or change this setting according to the payroll procedure.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The batch generates no payslips.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the batch period and whether active contracts have a structure and overlap the period. Also check whether a payslip for the contract already exists in this batch.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Batch validation is refused.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Each draft must have at least one calculated line. Recompute or correct the indicated payslips before retrying validation.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The payslip selection field is missing from a salary.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check module activation and whether the extra field was installed/enabled on the Salary object. Reactivate the module if needed, with sufficient SQL permissions.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The paid status does not follow a Dolibarr payment.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check that the payslip is linked to the correct salary, that triggers are installed, and review Dolibarr logs and &amp;lt;code&amp;gt;/tmp/payroll_debug.log&amp;lt;/code&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The PDF is missing or cannot be opened.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Check the web server’s write access to the output directory and whether the document exists. Review the error message and Dolibarr logs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Limitations and precautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Have all payroll formulas reviewed by a specialist familiar with the applicable legislation before processing real salaries.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;MONTH_DAYS&amp;lt;/code&amp;gt; excludes Saturdays and Sundays but includes public holidays; it does not use a leave calendar.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;With the initial configuration, validating a payslip does not recalculate it. Review the lines and recompute explicitly before validation if the data has changed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Batch generation initially uses 22 worked days for each payslip it creates. Adjust this value to the actual situation before validation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Returning a payslip to draft or canceling it depends on a setting that is disabled by default. Coordinate status changes for payslips linked to salaries with Dolibarr’s accounting and payment tracking.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Deleting a batch deletes its payslips and calculations unless a paid payslip blocks the operation. Review the batch before confirming deletion.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Automatic status synchronization depends on MySQL/MariaDB triggers and database permissions to create triggers; compatibility with other database engines remains unconfirmed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Support&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When reporting a problem, provide the module version, Dolibarr and PHP versions, affected entity, reproduction steps, and an error message with names, salary amounts, and other personal data removed. The module is published by [https://01consulting.eu 01 Consulting]. No support email address was found in the reviewed module files.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Odoo_Payroll_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=TakePOS_Digital_Invoice&amp;diff=67483</id>
		<title>TakePOS Digital Invoice</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=TakePOS_Digital_Invoice&amp;diff=67483"/>
		<updated>2026-09-29T14:31:58Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;TakePOS Digital Invoice&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Summary:&amp;lt;/strong&amp;gt; Lets a buyer of a TakePOS sale request an electronic invoice by scanning a QR code on the receipt.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 23.0 or later, PHP 7.2 or later&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;PaenAajCX0E&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Publisher website:&amp;lt;/strong&amp;gt; [https://01consulting.eu/ 01Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This guide covers installation, settings, receipt QR codes, the customer workflow, request tracking, EInvoicing integration, permissions, and troubleshooting.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Purpose and scope&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;TakePOS sales are often recorded against the generic third party assigned to a terminal. This module gives the buyer of a paid sale a way to provide company details, confirm an email address, and request the electronic invoice for that existing sale.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module identifies or creates a customer third party, links the TakePOS invoice to it, prepares the electronic invoice with EInvoicing, sends it to the approved platform configured there, then emails the requester the official readable PDF retrieved from that platform.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public workflow is intended for French companies with an active 14-digit SIRET. It does not create a new commercial invoice; it operates on the already-paid TakePOS invoice. Individuals and foreign companies are not supported.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. End-to-end workflow&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a TakePOS invoice is validated, the module creates a random 64-character identifier and stores it in the invoice &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; extrafield.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The receipt prints or displays a QR code that opens the public form for that invoice.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The buyer submits company details and a SIRET. The module checks the fields, email domain, and available official register data.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module sends a confirmation link to the submitted email address. Processing does not start until the link is opened.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;After confirmation, the module reuses the matching third party or creates one, then links the paid invoice to it.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing generates the electronic document using the configured protocol and sends it to the approved platform.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module retrieves the platform’s official readable PDF and emails it to the requester.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Errors are recorded on the request. An authorized user can retry processing. If the invoice has already been transmitted, the existing platform flow is reused to retrieve the PDF; the invoice is not sent a second time.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Requirements and compatibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr:&amp;lt;/strong&amp;gt; the module descriptor declares Dolibarr 23.0 or later; the module was prepared for Dolibarr 23.0.3.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP:&amp;lt;/strong&amp;gt; minimum declared version is 7.2.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr modules:&amp;lt;/strong&amp;gt; Invoices, TakePOS, and EInvoicing must be enabled.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;EInvoicing:&amp;lt;/strong&amp;gt; configure an approved platform, satisfy its prerequisites, and select the CII or Factur-X protocol.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Email:&amp;lt;/strong&amp;gt; outbound email from Dolibarr must be configured.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Server connectivity:&amp;lt;/strong&amp;gt; the server must be able to reach the Company Search API, DNS, and, if enabled, the Verifalia API over HTTPS.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Customer access:&amp;lt;/strong&amp;gt; the public Dolibarr URL must be reachable from the phone scanning the receipt.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;TakePOS terminal:&amp;lt;/strong&amp;gt; each relevant point of sale must have a default generic third party, used to determine whether the buyer is still anonymous.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, activation, and updates&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Install and activate&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Copy the &amp;lt;code&amp;gt;takeposdigitalinvoice&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;In Dolibarr, open &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Enable &amp;lt;strong&amp;gt;TakePOS Digital Invoice&amp;lt;/strong&amp;gt;. First check that Invoices, TakePOS, and EInvoicing are installed and enabled.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Open the module configuration and set the &amp;lt;strong&amp;gt;General&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Email&amp;lt;/strong&amp;gt; tabs.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Grant the required read and process permissions to the relevant users.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Add the QR tag to the browser receipt template and/or ESC/POS template used by the terminal.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Make a test sale and verify the QR code, public form, email confirmation, and request tracking.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Activation loads the request table, adds the invoice &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; extrafield (varchar, 64 characters), declares the tracking menu and invoice tab, registers permissions, and declares the retention scheduled task. An activation migration also handles the former CII tracking columns and, where possible, fills in the format from documents already generated.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Update&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Back up the database and Dolibarr documents before updating. Replace the module files with the new version, then reactivate the module if its menu or tab declaration has changed. Activation runs the migrations declared by the module. Afterward, check the configuration page, request menu, and a TakePOS invoice tab.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Disable or uninstall&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The effects on tables, the extrafield, and documents depend on the operation selected in Dolibarr. Back up data before uninstalling and review the consequences shown by Dolibarr. The public workflow does not operate while the module is disabled.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Permissions, menus, and screens&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Permission or screen&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Read requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Opens the request list and tracking tab on a TakePOS invoice. Dolibarr permission to view the invoice is also required.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Process requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allows Retry and Cancel actions in the list and invoice tab.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Administer requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Permission declared in the module descriptor. Configuration pages also require Dolibarr administrator status.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configuration&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Available to Dolibarr administrators from the module settings; includes General, Email, and About tabs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The &amp;lt;strong&amp;gt;Billing/Payments &amp;amp;gt; TakePOS Digital Invoice&amp;lt;/strong&amp;gt; menu is shown to users with read permission. The invoice tab is shown only on invoices originating from TakePOS and to users with the same permission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. General settings&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open the module settings and select the &amp;lt;strong&amp;gt;General&amp;lt;/strong&amp;gt; tab. The defaults below are defined by the configuration page; Dolibarr may retain a value already stored for the entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effect&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Public link lifetime&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;30 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Period from invoice validation; minimum one day.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Maximum attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Limits submissions for the same invoice and hashed IP address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Rate-limit window&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;15 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Time window applied to the attempt counter.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Completed request retention&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;365 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The scheduled cleanup can delete completed requests after this period.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Error request retention&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;90 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The scheduled cleanup can delete requests in error after this period.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Privacy policy URL&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empty&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional link displayed below the public form when configured.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code message&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;“Scan this QR code to request your electronic invoice.”&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Text printed or displayed with the QR code; an empty message falls back to the translated text.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Public form URL&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Computed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Read-only value; verify it from outside the server.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Email and PDF settings&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In the &amp;lt;strong&amp;gt;Email&amp;lt;/strong&amp;gt; tab, configure the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initial value&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Confirmation token lifetime&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;24 hours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The link is single-use and expires at its stored expiry time.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Resend delay&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Minimum delay before requesting another email for the invoice.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sender name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empty&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional name used with Dolibarr’s general sender address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Verifalia verification&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional external deliverability check; requires API username and password.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Verifalia timeout&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;20 seconds&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 5–30 seconds per call.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;PDF retrieval attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 1–6 checks of the same platform flow.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Delay between attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 seconds&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 1–5 seconds; no new transmission is made.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The sender address comes from &amp;lt;code&amp;gt;MAIN_MAIL_EMAIL_FROM&amp;lt;/code&amp;gt; in Dolibarr’s general email configuration. The module sender name is used for confirmation and PDF emails. If Verifalia is enabled without credentials, or its service rejects the request, submission is blocked with an appropriate error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Add the QR code to receipts&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Browser receipt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Open the TakePOS setup and edit the relevant browser receipt template.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Insert the &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt; tag once where the QR code should appear.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Save the template and print a receipt for a newly validated TakePOS invoice.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On a browser receipt, the substitution displays a QR image produced by Dolibarr’s TCPDF engine, with the configured message. The module loads the invoice extrafields before performing the substitution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. ESC/POS printer&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;In the RAW/Text printer setup, open the receipt template.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Add &amp;lt;code&amp;gt;{dol_fac_num}&amp;lt;/code&amp;gt; once.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Select this template for the terminal and run a print check.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module documents this tag in the ESC/POS template help and replaces it with the native QR instruction &amp;lt;code&amp;gt;{dol_print_qrcode}&amp;lt;/code&amp;gt; followed by the public URL. The ESC/POS replacements also recognize &amp;lt;code&amp;gt;{DOL_FAC_NUM}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;{__DOL_FAC_NUM__}&amp;lt;/code&amp;gt;. The QR message is sent as ESC/POS text after the code.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module also prepares the substitutions &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt;. If a valid hash is unavailable, substitutions are empty; while printing ESC/POS, the module tries to create the hash. If it fails, the tag is removed from the printout and an error is written to the Dolibarr log.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Do not add the tag in two locations in the same template. After enabling the module, verify a newly validated invoice: the hash is created by the TakePOS invoice validation trigger. Older receipts are not reprinted automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Public form and requested data&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public page looks up the invoice using its hash. It requires the invoice to originate from TakePOS, the link to be within its lifetime, the invoice to be paid/closed, and the invoice still to be linked to the terminal’s default generic third party.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public summary displays the seller, sale date, total including tax, terminal, and invoice reference masked except for its last four characters. It does not display sale lines, payment information, third-party identity, or the full invoice reference.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The form asks for:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;company name;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;address and optional additional address;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;postal code and town;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;14-digit SIRET;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;email address.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The country is set to France in third-party processing; the form does not offer a country selector. The privacy policy link appears only when configured.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Company and email checks&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.1. SIRET check&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module queries the public Company Search API at &amp;lt;code&amp;gt;https://recherche-entreprises.api.gouv.fr/search?q=&amp;lt;/code&amp;gt; using the submitted SIRET. It requires 14 digits, finds the matching establishment, and checks that its administrative status is active. It also compares the company name with the official data after normalizing accents, case, and separators, then compares the postal code and town (case and accents are normalized for the town).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Current check limitation:&amp;lt;/strong&amp;gt; the submitted street address is stored and may be used to create the third party, but the code does not compare it with the address returned by the API. Consistency checks cover the name, postal code, and town, not the street. A missing, closed, or invalid SIRET, or a mismatch in these checked fields, blocks submission. Network, DNS, TLS, timeout, unreadable-response, and service rate-limit errors produce specific or generic errors and do not create a third party.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.2. Email address check&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module checks the email format, then uses DNS to check that the domain has an MX record. If Verifalia is enabled, its API is also called: addresses classified as undeliverable or disposable are rejected; deliverable, risky, and unknown results are accepted by this check. A service failure or credentials/credit error blocks submission when the option is enabled.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Email confirmation is still required even when Verifalia is disabled or returns an accepted result. The random token sent to the customer is stored hashed in the database, expires according to the configured duration, and can be used once. Resending is subject to the configured minimum delay.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Confirmation and invoice processing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;After a valid submission, the request is stored in the tracking table as &amp;lt;strong&amp;gt;Pending confirmation&amp;lt;/strong&amp;gt;. A confirmation link is sent to the submitted address.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The customer opens the link before it expires. The token is consumed and the request changes to &amp;lt;strong&amp;gt;Ready&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Processing reloads the invoice and confirms it originates from TakePOS and is paid/closed. An atomic lock prevents the same request from being processed concurrently.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module searches for a third party by exact SIRET, then by SIREN (the first nine digits), preferring an exact SIRET match. If none exists, it creates a French customer third party and lets Dolibarr assign the customer code.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The TakePOS invoice is linked to this third party. Generation or sending through EInvoicing is refused while the invoice is still linked to the terminal’s default third party.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module checks that EInvoicing is enabled, its prerequisites are met, and its configured protocol is CII or Factur-X. It marks only this invoice as ready for EInvoicing generation.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing generates a document for the selected protocol. For Factur-X, the Dolibarr source PDF is generated before requesting the hybrid Factur-X document. For CII, the protocol produces an XML file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The provider configured in EInvoicing transmits the invoice to the approved platform. The module records the generation, transmission, and format steps.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module queries the platform flow for its &amp;lt;strong&amp;gt;ReadableView&amp;lt;/strong&amp;gt; resource, which must be a readable PDF. It makes the configured number of attempts if the view is not ready yet.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The official readable PDF is saved in the invoice document directory and emailed to the customer as an attachment.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;After the email is sent successfully, the request changes to &amp;lt;strong&amp;gt;Completed&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;With CII, the XML file is used for transmission and the customer receives the platform’s official readable PDF. With Factur-X, the hybrid document is generated and transmitted, while the customer attachment remains the readable PDF retrieved from the platform. This module does not email the standard Dolibarr PDF to the customer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Request statuses&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Status&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Meaning&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Next step&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pending confirmation&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The request is stored, but its email address has not been confirmed.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The customer must open the link before it expires.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Ready&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Email is confirmed and processing can start.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Automatic processing or the Retry action.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Processing&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The request is reserved for processing.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Wait for processing to finish and check detailed status.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Error&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;A step failed; its error code and step are retained.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Fix the cause and retry if email was confirmed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Completed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Transmission and PDF email both succeeded.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The public link reports that the request has already been processed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Canceled&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The public link can no longer be used.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;No standard retry is offered.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The table also stores separate indicators for email confirmation, SIRET validation, third-party linking, EInvoicing generation, platform transmission, PDF email, protocol used, error step, and creation, modification, completion, or cancellation dates.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Track and manage requests&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.1. Request list&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open &amp;lt;strong&amp;gt;Billing/Payments &amp;amp;gt; TakePOS Digital Invoice&amp;lt;/strong&amp;gt;. The list shows the invoice, third party when known, SIRET, email address, status, last error code, and creation date. Columns can be sorted and results are paginated. Filters include invoice reference, third party, SIRET, email, and status. Invoice and third-party references open their Dolibarr records.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.2. Invoice tab&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On a TakePOS invoice, open the &amp;lt;strong&amp;gt;TakePOS Digital Invoice&amp;lt;/strong&amp;gt; tab. It shows status, creation and modification dates, email confirmation, requester email, SIRET, protocol, generation/transmission/PDF email status, and, on failure, the step and error message. A download button is available when a readable PDF is present.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.3. Retry&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Retry is offered for a request whose email has been confirmed and whose status is Ready or Error. Processing resumes and uses the recorded indicators and platform flow. If transmission already succeeded, retry does not send a second invoice; it attempts to retrieve the PDF and complete delivery to the customer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.4. Cancel&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Cancel asks for confirmation, invalidates the public link, and marks the request canceled unless it is already completed or canceled. The TakePOS invoice cancellation trigger also cancels a non-completed request. The request remains available for tracking until it is purged.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;14. EInvoicing configuration and sending conditions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;TakePOS Digital Invoice does not replace EInvoicing or configure the approved platform. Configure the EInvoicing module separately: select the platform, credentials, and protocol. This version’s workflow accepts only the &amp;lt;code&amp;gt;CII&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FACTURX&amp;lt;/code&amp;gt; protocol values.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An anonymous TakePOS customer cannot receive an electronic invoice while the invoice remains linked to the terminal’s generic third party. The module checks this explicitly, including in the hook that intercepts direct EInvoicing generate or send actions on a TakePOS invoice. Identifying the customer makes only that invoice eligible; it does not change the global TakePOS invoice eligibility setting.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the EInvoicing protocol is changed after transmission, the module blocks using a different format for that request and asks for the format associated with the already-submitted flow to be restored. This avoids an inconsistent or duplicate transmission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;15. Stored data, files, and privacy&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Invoice extrafield:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, a random 64-character public identifier. Do not publish it separately or edit it manually.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Request table:&amp;lt;/strong&amp;gt; entity, invoice, optional third party, SIRET, company name, address, postal code, town, email, hashed IP fingerprint, hashed token and expiry, counters, statuses, errors, and timestamps.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents:&amp;lt;/strong&amp;gt; the EInvoicing electronic file and the platform’s readable PDF are stored with the invoice documents.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Public summary:&amp;lt;/strong&amp;gt; limited sale-identification details; invoice lines, payments, and third-party identity are not exposed before identification.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Logs:&amp;lt;/strong&amp;gt; the dedicated log is &amp;lt;code&amp;gt;DOL_DATA_ROOT/takeposdigitalinvoice/module.log&amp;lt;/code&amp;gt;. Technical error details may also be present in Dolibarr logs. Review and redact logs before sharing them.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The retention task is scheduled daily. It deletes completed requests according to completion date and error requests according to modification date. This cleanup method does not delete pending, ready, processing, or canceled requests. The task that purges requests does not delete invoice documents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;16. Triggers, hooks, and substitutions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_VALIDATE&amp;lt;/code&amp;gt;:&amp;lt;/strong&amp;gt; for a validated TakePOS invoice, the trigger ensures the public hash exists and creates it if missing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_CANCEL&amp;lt;/code&amp;gt;:&amp;lt;/strong&amp;gt; for a canceled TakePOS invoice, the trigger cancels its non-completed request.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Browser receipt:&amp;lt;/strong&amp;gt; the hook loads invoice extrafields before TakePOS substitutions are processed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;ESC/POS templates:&amp;lt;/strong&amp;gt; the hook adds the QR tag description to template help and substitutes the tag in the text sent to the printer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;EInvoicing actions:&amp;lt;/strong&amp;gt; a hook blocks direct generation or sending for a TakePOS invoice that remains linked to the default third party.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Substitutions:&amp;lt;/strong&amp;gt; the module provides &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt; for a TakePOS invoice with a valid hash.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Scheduled task:&amp;lt;/strong&amp;gt; periodically purges completed or error requests after their configured retention periods.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;17. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The QR code is missing from the browser receipt&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check that the module is enabled, the invoice comes from TakePOS, the template contains &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt;, and the invoice was validated after activation. Check that the tag is not repeated. Browser substitution requires the hash to be loaded in the invoice extrafields.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The QR code is missing from the ESC/POS printout&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the active RAW/Text template, the exact recognized tag, and that the template does not already send an equivalent tag. If the hash could not be stored, check Dolibarr logs and database/write permissions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The public link is rejected&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The hash must be valid; the invoice must originate from TakePOS, be closed/paid, and remain linked to the terminal’s generic third party. The link expires based on the validation date and configured duration. A completed request is reported as already processed; a canceled request cannot be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;SIRET verification fails&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the 14 digits, establishment status, company name, postal code, and town. A mismatch in these values or an unavailable API blocks the request. Current code does not compare the submitted street with the API address.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;No confirmation email arrives&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the address, domain and MX record, Dolibarr outbound email setup, and spam folder. If Verifalia is enabled, check the credentials, configured timeout, and service authentication or credit errors.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Confirmation succeeded but processing failed&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the latest error and failed step in the list or invoice tab. Verify the third-party link, EInvoicing activation and setup, CII/Factur-X protocol, and access to Dolibarr documents. Then use Retry if the user has process permission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Transmission succeeded but the PDF is not ready&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The platform may create its readable view asynchronously. Retry later; the module checks the existing flow and does not transmit the invoice again.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The download button is unavailable&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The button is enabled when the saved readable PDF is available, or when the invoice tab can use an accessible EInvoicing PDF as a fallback.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;18. Limitations and operational precautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The current public workflow is for French companies with an active SIRET; it does not support individuals or foreign companies.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Establishment consistency checks cover company name, postal code, and town; current code does not compare the street address with official data.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module retains one request per invoice. Do not create concurrent requests for the same invoice.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not manually remove or edit the hash, tokens, or processing indicators in the database.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not change the EInvoicing protocol during a request that has already been transmitted without restoring the format of its existing flow.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not edit the invoice’s third party while it is being processed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cleanup removes completed and error request history after the configured retention periods; retain any needed tracking information before then.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;19. Support&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;For help or to report a problem, contact [mailto:contact@01consulting.eu contact@01consulting.eu]. Include the module and Dolibarr versions, receipt type, workflow step, request status, error code, and approximate time. Redact SIRET, email addresses, tokens, platform credentials, invoice details, and any other confidential information from screenshots and log extracts.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Facture_numérique_pour_TakePOS]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Facture_num%C3%A9rique_pour_TakePOS&amp;diff=67482</id>
		<title>Facture numérique pour TakePOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Facture_num%C3%A9rique_pour_TakePOS&amp;diff=67482"/>
		<updated>2026-09-29T14:30:53Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: module takepos digital invoice fr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Facture électronique TakePOS&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Résumé&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Permet à l’acheteur d’une vente TakePOS de demander sa facture électronique au moyen d’un QR code sur son reçu.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 23.0 ou supérieur, PHP 7.2 ou supérieur&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;PaenAajCX0E&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site de démonstration]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de l’éditeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/ 01Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ce guide couvre l’installation, les réglages, le QR code des reçus, le parcours client, le suivi des demandes, l’intégration EInvoicing, les permissions et le diagnostic.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Rôle du module et périmètre&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les ventes TakePOS sont souvent enregistrées avec le tiers générique associé au terminal. Ce module donne à l’acheteur d’une vente payée un parcours pour fournir les coordonnées de son entreprise, confirmer son adresse e-mail et demander la facture électronique correspondant à cette vente.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le traitement identifie ou crée un tiers client, rattache la facture TakePOS à ce tiers, prépare la facture avec EInvoicing, la transmet au prestataire configuré dans EInvoicing, puis envoie au demandeur le PDF lisible officiel récupéré auprès de ce prestataire.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le parcours public est destiné aux entreprises françaises disposant d’un SIRET actif à 14 chiffres. Il ne sert pas à créer une nouvelle facture commerciale&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il agit sur la facture TakePOS déjà payée. Les particuliers et les entreprises étrangères ne sont pas pris en charge.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. Fonctionnement d’ensemble&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;À la validation d’une facture TakePOS, le module crée un identifiant aléatoire de 64 caractères et le conserve dans l’extrafield de facture &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le reçu imprime ou affiche un QR code qui ouvre le formulaire public de cette facture.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;L’acheteur fournit les coordonnées de l’entreprise et son SIRET ; le module contrôle les champs, le domaine e-mail et les données disponibles dans le registre officiel.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module envoie un lien de confirmation à l’adresse fournie. La demande n’est pas traitée avant l’ouverture de ce lien.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Après confirmation, le module réutilise le tiers correspondant ou crée un tiers, puis rattache la facture payée au tiers identifié.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing génère le document électronique selon le protocole configuré et le transmet à la plateforme agréée.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module récupère la vue PDF lisible officielle de la plateforme et l’envoie par e-mail au demandeur.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Une erreur à une étape est enregistrée sur la demande. Un utilisateur autorisé peut relancer le traitement ; si la facture a déjà été transmise, le même flux est repris pour récupérer le PDF et la facture n’est pas envoyée une seconde fois.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Prérequis et compatibilité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le descripteur déclare Dolibarr 23.0 ou supérieur ; le module a été préparé pour Dolibarr 23.0.3.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; version 7.2 minimum déclarée par le module.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Modules Dolibarr&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Factures, TakePOS et EInvoicing doivent être activés.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;EInvoicing&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le module doit être configuré avec une plateforme agréée, ses prérequis satisfaits et un protocole CII ou Factur-X.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;E-mails&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; l’envoi des e-mails depuis Dolibarr doit être correctement configuré.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Serveur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; il doit pouvoir joindre l’API Recherche d’entreprises, le service DNS et, si cette option est activée, l’API Verifalia en HTTPS.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Accès client&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; l’adresse publique de Dolibarr doit être joignable depuis le téléphone qui scanne le reçu.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Terminal TakePOS&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; chaque point de vente concerné doit disposer d’un tiers générique par défaut, utilisé pour déterminer si l’acheteur est encore anonyme.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, activation et mise à jour&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Installer et activer&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Copier le dossier &amp;lt;code&amp;gt;takeposdigitalinvoice&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Dans Dolibarr, ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Activer &amp;lt;strong&amp;gt;Facture électronique TakePOS&amp;lt;/strong&amp;gt;. Vérifier auparavant que Factures, TakePOS et EInvoicing sont disponibles et activés.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ouvrir la configuration du module et renseigner les onglets &amp;lt;strong&amp;gt;Général&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;E-mails&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Attribuer les permissions de lecture et de traitement aux utilisateurs concernés.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ajouter le tag du QR code au modèle de reçu navigateur et/ou au modèle ESC/POS utilisé par le terminal.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Réaliser une vente de test et vérifier le QR code, le formulaire public, la confirmation par e-mail et le suivi de la demande.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’activation charge la table des demandes, ajoute l’extrafield de facture &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; (varchar de 64 caractères), déclare le menu de suivi, l’onglet de facture, les permissions et la tâche planifiée de rétention. Une migration intégrée traite aussi les anciennes colonnes de suivi CII et renseigne le format à partir des documents déjà générés lorsque cela est possible.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Mettre à jour&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Sauvegarder la base de données et le répertoire de documents Dolibarr avant la mise à jour. Remplacer les fichiers du module par la nouvelle version, puis réactiver le module si sa déclaration de menu ou d’onglet a changé. L’activation exécute les migrations prévues par le descripteur. Contrôler la page de configuration, le menu de demandes et l’onglet d’une facture TakePOS après la mise à jour.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Désactiver ou désinstaller&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La procédure et les effets de suppression des tables, de l’extrafield et des documents dépendent de l’opération choisie dans Dolibarr. Sauvegarder les données avant toute désinstallation et vérifier les conséquences affichées par Dolibarr. La désactivation empêche le fonctionnement du parcours tant que le module reste inactif.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Permissions, menus et écrans&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Droit ou écran&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Fonction&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Consulter les demandes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Ouvre le menu de liste et l’onglet de suivi sur une facture TakePOS. Le droit Dolibarr de consulter la facture reste requis.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Traiter les demandes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Autorise les actions Réessayer et Annuler dans la liste et l’onglet de facture.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Administrer les demandes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Droit déclaré dans le descripteur du module. Les pages de configuration vérifient également le statut d’administrateur Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configuration&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Accessible aux administrateurs Dolibarr depuis la fiche de configuration du module ; comprend les onglets Général, E-mails et À propos.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le menu &amp;lt;strong&amp;gt;Facturation/Paiement &amp;amp;gt; Facture électronique TakePOS&amp;lt;/strong&amp;gt; est affiché aux utilisateurs ayant le droit de lecture. L’onglet de facture n’apparaît que pour les factures dont la source est TakePOS et si l’utilisateur possède ce même droit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. Configuration générale&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ouvrir la fiche du module, puis l’onglet &amp;lt;strong&amp;gt;Général&amp;lt;/strong&amp;gt;. Les valeurs par défaut suivantes sont définies dans le code de la page de configuration ; Dolibarr peut conserver une valeur déjà enregistrée pour l’entité.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Réglage&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Défaut&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effet&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Durée du lien public&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;30 jours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Durée à partir de la validation de la facture ; au minimum un jour.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre maximal de tentatives&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Limite les soumissions pour une même facture et une même adresse IP hachée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Fenêtre de limitation&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;15 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Fenêtre de temps appliquée au compteur de tentatives.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Conservation des demandes terminées&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;365 jours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Après ce délai, la tâche de rétention peut supprimer les demandes terminées.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Conservation des erreurs&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;90 jours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Après ce délai, la tâche peut supprimer les demandes en erreur.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;URL de politique de confidentialité&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vide&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Lien facultatif affiché sous le formulaire public lorsqu’il est renseigné.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Message du QR code&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;« Scannez ce QR code pour demander votre facture électronique. »&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Texte imprimé ou affiché avec le QR code ; un message vide revient au texte traduit.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;URL du formulaire public&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Calculée&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur en lecture seule à vérifier depuis l’extérieur du serveur.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Configuration des e-mails et du PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Dans l’onglet &amp;lt;strong&amp;gt;E-mails&amp;lt;/strong&amp;gt;, régler les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Réglage&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur initiale&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Durée du jeton de confirmation&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;24 heures&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le lien est à usage unique et expire à la date enregistrée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Délai de renvoi&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Délai minimal avant une nouvelle demande d’e-mail pour cette facture.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nom de l’expéditeur&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vide&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nom facultatif ajouté à l’adresse d’expédition générale de Dolibarr.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Vérification Verifalia&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Désactivée&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Contrôle externe facultatif de la délivrabilité ; requiert identifiant et mot de passe API.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Délai maximal Verifalia&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;20 secondes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur admise&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 5 à 30 secondes par appel.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Tentatives de récupération du PDF&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur admise&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 1 à 6 consultations du même flux.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Attente entre les tentatives&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 secondes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Valeur admise&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 1 à 5 secondes ; aucune nouvelle transmission n’est effectuée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’adresse d’expédition est &amp;lt;code&amp;gt;MAIN_MAIL_EMAIL_FROM&amp;lt;/code&amp;gt;, définie dans la configuration générale des e-mails de Dolibarr. Le nom d’expéditeur du module est utilisé pour l’e-mail de confirmation et celui contenant le PDF. Si Verifalia est activé sans identifiants, ou si son service refuse la requête, la demande est bloquée avec un message adapté.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Ajouter le QR code aux reçus&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Reçu navigateur&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrir la configuration du module TakePOS, puis le modèle du reçu navigateur concerné.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Insérer une fois le tag &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt; à l’emplacement souhaité.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Enregistrer le modèle et imprimer le reçu d’une nouvelle facture TakePOS validée.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Dans le reçu navigateur, la substitution affiche une image QR produite par le moteur TCPDF de Dolibarr, avec le message configuré. Le module charge les extrafields de la facture avant la substitution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. Imprimante ESC/POS&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Dans la configuration de l’imprimante RAW/Texte, ouvrir le modèle de reçu.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ajouter une seule fois &amp;lt;code&amp;gt;{dol_fac_num}&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Sélectionner ce modèle pour le terminal, puis effectuer une impression de contrôle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module documente le tag dans l’aide de configuration des modèles ESC/POS et le remplace par l’instruction QR native &amp;lt;code&amp;gt;{dol_print_qrcode}&amp;lt;/code&amp;gt;, suivie de l’URL publique. Les variantes &amp;lt;code&amp;gt;{DOL_FAC_NUM}&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;{__DOL_FAC_NUM__}&amp;lt;/code&amp;gt; sont aussi reconnues par le remplacement ESC/POS. Le message QR est envoyé comme texte ESC/POS après le code.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les substitutions &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt; sont également préparées par le module. Si aucun hash valide n’est disponible, les substitutions sont vides ; au moment de l’impression ESC/POS, le module tente de créer le hash. S’il échoue, il retire le tag de l’impression et écrit une erreur dans le journal Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ne pas ajouter le tag dans deux emplacements du même modèle. Après l’activation du module, vérifier une facture nouvellement validée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le hash est créé lors du déclencheur de validation de facture TakePOS. Les anciens reçus ne sont pas réimprimés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Formulaire public et données demandées&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le formulaire reçoit le hash de la facture dans son URL. Il n’est accepté que si le hash correspond à une facture dont la source est TakePOS, si le lien n’a pas expiré, si la facture est payée/clôturée et si elle est toujours rattachée au tiers générique du terminal.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le résumé public affiche le nom du vendeur, la date de vente, le total TTC, le terminal et une référence de facture masquée sauf ses quatre derniers caractères. Il ne montre pas les lignes de vente, les informations de paiement, l’identité du tiers ni la référence complète.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le formulaire demande&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;raison sociale ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;adresse et complément d’adresse facultatif ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;SIRET à 14 chiffres ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;adresse e-mail.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le pays est fixé à la France dans le traitement du tiers ; il n’est pas proposé comme choix dans le formulaire. L’URL de politique de confidentialité est affichée uniquement si elle est configurée.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Contrôles d’entreprise et de l’adresse e-mail&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.1. Contrôle du SIRET&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module interroge l’API publique Recherche d’entreprises à l’adresse &amp;lt;code&amp;gt;https://recherche-entreprises.api.gouv.fr/search?q=&amp;lt;/code&amp;gt;, avec le SIRET fourni. Il exige 14 chiffres, trouve l’établissement correspondant et vérifie que son état administratif est actif. Il compare aussi la raison sociale à la donnée officielle après normalisation des accents, casse et séparateurs, puis compare le code postal et la ville (casse et accents normalisés pour la ville).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Limite du contrôle actuel&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; l’adresse de voie saisie est enregistrée et peut servir à créer le tiers, mais le code ne la compare pas aux champs d’adresse retournés par l’API. La validation de cohérence couvre le nom, le code postal et la ville, pas la rue. Un SIRET absent, fermé, invalide ou une divergence sur ces champs bloque la soumission. Les erreurs réseau, DNS, TLS, délai dépassé, réponse illisible et limitation du service donnent des messages distincts ou génériques et ne créent pas de tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.2. Contrôle de l’adresse e-mail&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module vérifie le format de l’adresse, puis vérifie par DNS que le domaine possède un enregistrement MX. Si Verifalia est activé, son API est également appelée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: les adresses classées non délivrables ou jetables sont refusées ; les résultats classés délivrables, risqués ou inconnus sont acceptés par ce contrôle. Une panne ou une erreur d’identification/crédit Verifalia bloque la soumission lorsque l’option est activée.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La confirmation par e-mail reste requise même quand Verifalia est désactivé ou renvoie un résultat accepté. Le jeton aléatoire envoyé au client est stocké sous forme hachée en base, expire selon la durée configurée et ne peut être utilisé qu’une fois. Le renvoi est soumis au délai minimal configuré.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Confirmation et traitement de la facture&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;À la soumission valide, la demande est enregistrée dans la table de suivi en état &amp;lt;strong&amp;gt;En attente de confirmation&amp;lt;/strong&amp;gt;. Le lien de confirmation est envoyé à l’adresse saisie.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le client ouvre le lien reçu avant son expiration. Le jeton est consommé et l’état de la demande passe à &amp;lt;strong&amp;gt;Prête&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le traitement recharge la facture et confirme qu’elle provient de TakePOS et qu’elle est payée/clôturée. Un verrou atomique évite le traitement concurrent d’une même demande.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module recherche un tiers par SIRET, puis par SIREN (les neuf premiers chiffres), avec priorité à la correspondance exacte de SIRET. S’il n’existe pas, il crée un tiers client français et laisse Dolibarr attribuer le code client.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;La facture TakePOS est rattachée à ce tiers. Tant qu’elle est encore liée au tiers par défaut du terminal, la préparation et l’envoi EInvoicing sont refusés.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module vérifie qu’EInvoicing est actif, que ses prérequis sont satisfaits et que le protocole configuré est CII ou Factur-X. Il marque uniquement cette facture comme prête à la génération EInvoicing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing génère le document correspondant au protocole. Pour Factur-X, le PDF Dolibarr source est généré avant de demander le document Factur-X hybride. Pour CII, le protocole produit le fichier XML.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le fournisseur configuré dans EInvoicing transmet la facture à la plateforme agréée. Le module mémorise les étapes de génération, de transmission et le format.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module interroge le flux de la plateforme pour récupérer sa ressource &amp;lt;strong&amp;gt;ReadableView&amp;lt;/strong&amp;gt;, qui doit être un PDF lisible. Il effectue le nombre de tentatives configuré lorsque la vue n’est pas encore prête.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le PDF lisible officiel est enregistré dans le dossier documentaire de la facture et envoyé en pièce jointe au client.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Après l’envoi réussi de l’e-mail, la demande passe à l’état &amp;lt;strong&amp;gt;Terminée&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour le protocole CII, le fichier XML sert à la transmission ; le client reçoit le PDF lisible officiel de la plateforme. Pour Factur-X, le document hybride est généré et transmis, tandis que la pièce jointe client reste la vue lisible PDF récupérée auprès de la plateforme. Le PDF standard Dolibarr n’est pas le document envoyé au client par ce module.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. États d’une demande&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;État&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Signification&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Action suivante&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;En attente de confirmation&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La demande est enregistrée, mais l’adresse e-mail n’a pas encore été confirmée.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le client doit ouvrir le lien reçu avant expiration.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Prête&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;L’e-mail est confirmé et le traitement peut démarrer.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Traitement automatique ou action Réessayer.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;En cours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La demande a été réservée pour un traitement.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Attendre la fin du traitement et consulter l’état détaillé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Erreur&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Une étape a échoué ; le code d’erreur et l’étape sont conservés.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Corriger la cause et utiliser Réessayer si l’e-mail a été confirmé.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Terminée&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La transmission et l’envoi du PDF ont réussi.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Le lien public indique que la demande a déjà été traitée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Annulée&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;La demande ne peut plus utiliser son lien public.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Aucune relance standard n’est proposée.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La table conserve également des indicateurs distincts pour la confirmation de l’e-mail, la validation SIRET, le rattachement du tiers, la génération EInvoicing, l’envoi à la plateforme, l’envoi du PDF, le protocole utilisé, l’étape de l’erreur et les dates de création, modification, fin ou annulation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Suivre et gérer les demandes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.1. Liste générale&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Facturation/Paiement &amp;amp;gt; Facture électronique TakePOS&amp;lt;/strong&amp;gt;. La liste présente la facture, le tiers lorsqu’il est connu, le SIRET, l’adresse e-mail, l’état, le dernier code d’erreur et la date de création. Les colonnes autorisent le tri et la liste est paginée. Les filtres portent sur la référence de facture, le tiers, le SIRET, l’e-mail et l’état. Les références de facture et de tiers ouvrent leurs fiches Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.2. Onglet de la facture&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Sur la fiche d’une facture TakePOS, ouvrir l’onglet &amp;lt;strong&amp;gt;Facture électronique TakePOS&amp;lt;/strong&amp;gt;. Il affiche l’état, les dates de création et de modification, la confirmation e-mail, l’e-mail du demandeur, le SIRET, le protocole, les états de génération/transmission/envoi du PDF et, en cas d’échec, l’étape ainsi que le message d’erreur. Le bouton de téléchargement est disponible si un PDF lisible est présent.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.3. Réessayer&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’action est proposée pour une demande dont l’e-mail est confirmé et dont l’état est Prête ou Erreur. Le service reprend le traitement et réutilise les indicateurs et le flux de plateforme déjà enregistrés. Si la transmission a déjà réussi, la relance n’envoie pas une deuxième facture ; elle cherche à récupérer la vue PDF et à terminer l’envoi au client.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.4. Annuler&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’action Annuler demande une confirmation, invalide le lien public et marque la demande comme annulée, tant qu’elle n’est ni terminée ni déjà annulée. Elle est également appelée automatiquement par le déclencheur de facture TakePOS lors de l’annulation de la facture. La demande et son état restent consultables jusqu’à leur éventuelle purge.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;14. Configuration EInvoicing et conditions d’envoi&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;TakePOS Digital Invoice ne remplace pas EInvoicing et ne configure pas la plateforme agréée. Le module externe doit être activé et configuré séparément&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: choix de la plateforme, identifiants et protocole. Le parcours de cette version accepte uniquement les valeurs de protocole &amp;lt;code&amp;gt;CII&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;FACTURX&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le client TakePOS anonyme ne peut pas recevoir une facture électronique tant que la facture demeure liée au tiers générique du terminal. Le module vérifie explicitement ce point, y compris dans le hook qui intercepte les actions directes de génération ou d’envoi EInvoicing sur une facture TakePOS. L’identification du client ne rend éligible que la facture concernée ; elle ne change pas le réglage global d’éligibilité des factures TakePOS.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Si le protocole EInvoicing est changé après une transmission, le module bloque le changement de format pour cette demande et demande de rétablir le format associé au flux déjà déposé afin d’éviter une nouvelle transmission incohérente.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;15. Données enregistrées, fichiers et confidentialité&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Extrafield facture&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, identifiant public aléatoire de 64 caractères. Ne pas le publier séparément ni le modifier manuellement.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Table des demandes&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; entité, facture, tiers éventuel, SIRET, raison sociale, adresse, code postal, ville, e-mail, empreinte de l’adresse IP, empreinte et expiration du jeton, compteurs, états, erreurs et horodatages.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le fichier électronique EInvoicing et le PDF lisible de la plateforme sont enregistrés parmi les documents de la facture, sous le répertoire documentaire de celle-ci.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Résumé public&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; données réduites à l’identification de la vente ; les lignes de facture, les paiements et l’identité du tiers ne sont pas exposés avant identification.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Journaux&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le journal dédié est &amp;lt;code&amp;gt;DOL_DATA_ROOT/takeposdigitalinvoice/module.log&amp;lt;/code&amp;gt;. Des détails d’erreur peuvent aussi se trouver dans les journaux Dolibarr. Ne pas publier ces journaux sans les relire et masquer toute donnée sensible.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La tâche de rétention est déclarée avec une fréquence quotidienne. Elle purge les demandes terminées selon leur date de fin et les demandes en erreur selon leur date de modification. Elle ne purge pas dans cette méthode les demandes en attente, prêtes, en cours ou annulées. Les fichiers de facture ne sont pas supprimés par cette tâche de purge des demandes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;16. Déclencheurs, hooks et substitutions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_VALIDATE&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; pour une facture issue de TakePOS et validée, le trigger s’assure que le hash public existe et le crée s’il manque.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_CANCEL&amp;lt;/code&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; pour une facture TakePOS annulée, le trigger annule sa demande non terminée.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Reçu navigateur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le hook charge les extrafields de la facture avant le traitement des substitutions TakePOS.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Modèles ESC/POS&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le hook ajoute la description du tag QR à l’aide des modèles et substitue le tag dans le texte envoyé à l’imprimante.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Actions EInvoicing&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; un hook refuse la génération ou l’envoi direct sur une facture TakePOS restée rattachée au tiers par défaut.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Substitutions&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; le module renseigne &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt; pour une facture TakePOS avec hash valide.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Tâche planifiée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; purge périodiquement les demandes terminées ou en erreur au-delà de leurs durées de conservation.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;17. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le QR code n’apparaît pas sur le reçu navigateur&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Vérifier que le module est activé, que la facture provient de TakePOS, que le modèle contient &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt; et que la facture a été validée après activation. Vérifier aussi que le tag n’est pas placé deux fois. Le tag navigateur dépend du hash chargé dans les extrafields.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le QR code ne sort pas sur l’imprimante ESC/POS&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Vérifier le modèle RAW/Texte actif, l’orthographe du tag reconnu et que le modèle n’envoie pas déjà un autre tag équivalent. Si le hash n’a pas pu être enregistré, consulter le journal Dolibarr et les permissions d’écriture/base de données.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le lien public est refusé&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Le hash doit être valide, la facture doit provenir de TakePOS, être clôturée/payée et rester liée au tiers générique du terminal. Le lien expire selon la durée depuis la validation. Une demande terminée affiche qu’elle a déjà été traitée ; une demande annulée ne peut plus être utilisée.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;La vérification SIRET échoue&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Vérifier les 14 chiffres, l’activité de l’établissement, la raison sociale, le code postal et la ville saisis. Une divergence sur ces valeurs ou une indisponibilité de l’API bloque la demande. Le contrôle ne compare pas actuellement la rue saisie aux données de l’API.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Aucun e-mail de confirmation n’arrive&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Vérifier l’adresse, le domaine et son enregistrement MX, la configuration générale d’envoi Dolibarr et le dossier de courrier indésirable. Si Verifalia est actif, contrôler les identifiants, le délai configuré et les réponses d’authentification ou de crédit du service.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;La confirmation est faite mais le traitement échoue&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Consulter la dernière erreur et l’étape concernée dans la liste ou l’onglet de facture. Vérifier le rattachement du tiers, l’activation et la configuration d’EInvoicing, le protocole CII/Factur-X et l’accès aux documents Dolibarr, puis utiliser Réessayer lorsque le droit de traitement est attribué.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;La transmission est faite mais le PDF n’est pas encore disponible&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;La plateforme peut générer sa vue lisible de manière asynchrone. Réessayer plus tard&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: le module interroge le flux existant et ne transmet pas à nouveau la facture.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton de téléchargement est indisponible&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Le bouton devient actif quand le PDF lisible enregistré est disponible, ou lorsqu’un fichier PDF EInvoicing accessible peut être utilisé comme solution de repli par l’onglet de facture.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;18. Limites et précautions d’exploitation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Le parcours public actuel est réservé aux entreprises françaises avec SIRET actif ; il ne gère pas les particuliers ou sociétés étrangères.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;La cohérence de l’établissement contrôle le nom, le code postal et la ville ; l’adresse de rue n’est pas comparée aux données officielles par le code actuel.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Une demande par facture est conservée dans le module. Ne pas créer des demandes concurrentes pour une même facture.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ne pas supprimer ni modifier manuellement le hash, les jetons ou les indicateurs de traitement dans la base.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ne pas changer le protocole EInvoicing au milieu d’une demande déjà transmise sans rétablir le format de son flux.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ne pas modifier le tiers de la facture pendant son traitement.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;La purge supprime l’historique des demandes terminées ou en erreur après les durées réglées ; conserver les informations nécessaires au suivi avant ces échéances.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;19. Assistance&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour obtenir de l’aide ou signaler un problème, contacter [mailto:contact@01consulting.eu contact@01consulting.eu]. Indiquer la version du module et de Dolibarr, le type de reçu, l’étape du parcours, l’état de la demande, le code d’erreur et l’heure approximative. Masquer le SIRET, l’adresse e-mail, les jetons, les identifiants de plateforme, les données de facture et toute autre information confidentielle avant de partager une capture ou un extrait de journal.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[en:TakePOS_Digital_Invoice]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67481</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67481"/>
		<updated>2026-09-29T14:24:25Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Label Designer User Guide&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 20.0+, PHP 7.4+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;This guide describes, step by step, how to install, configure, and use Label Designer 1.0.0 for Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Module overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer lets you visually create label templates and generate PDF files using data stored in Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The module supports four object types:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;products and services;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product batches;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouses;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third parties (customers and suppliers).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;One template is created for each object type and reused automatically. You do not need a separate label for every product, batch, warehouse, or third party. When a PDF is generated, template variables are replaced with the current object&#039;s data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Requirements&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Before installation, check that:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 20 or later is installed;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.4 or later is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr&#039;s &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the web server can write to the Dolibarr documents directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation and activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copy the &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sign in to Dolibarr with an administrator account.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Find &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enable the module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is also enabled.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;When activated, Label Designer prepares its storage directory in Dolibarr documents and enables barcode use for products and third parties.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configure user permissions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the relevant user or group record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Grant the required Label Designer permissions:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;read labels;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;create and modify templates and PDFs.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the user can also view the relevant object: product, batch, warehouse, or third party.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Without permission to view the object, some data or variables may not be available.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;After an update that adds or changes module permissions, disable and re-enable Label Designer so Dolibarr registers the new permissions. You can then grant &amp;lt;strong&amp;gt;Read labels&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Create labels&amp;lt;/strong&amp;gt; separately to users and groups.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Open a label&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open a product, batch, warehouse, or third-party record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab provided by Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The page displays:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label settings;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the generated PDF files area;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt; button.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If another module also adds a tab named &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt;, identify the Label Designer tab by its URL or content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Set label parameters&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Settings are stored separately for each object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label width, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label height, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Bar width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Visual bar thickness, from 0.2 to 1.0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pixel size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code image resolution; default: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Show barcode value&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Shows or hides the text below the barcode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels horizontally&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed horizontally in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels vertically&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed vertically in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To change a value:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the pencil icon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enter the new value.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the change.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Barcode and QR code dimensions are synchronized with the Card Designer template. Changing them in the settings updates the template; changing their size in Card Designer also updates the related settings.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button restores the defaults for the displayed object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Create a template in Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The supplied templates are empty so that users can create their own labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;On the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab, set the document width and height first.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use the toolbar to add the elements you need:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Shapes&amp;lt;/strong&amp;gt; to add graphical shapes;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Text&amp;lt;/strong&amp;gt; to add free text;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; to add dynamic Dolibarr data;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; to use an uploaded image;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Stickers&amp;lt;/strong&amp;gt; to add a decorative element;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Color&amp;lt;/strong&amp;gt; to change an element&#039;s color;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Align&amp;lt;/strong&amp;gt; to position elements;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Delete&amp;lt;/strong&amp;gt; to remove the selected element.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize each element directly on the canvas.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the save.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Saving creates only the JSON template; it does not generate a PDF. After confirmation, Card Designer returns to the object record.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Add dynamic variables&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Product variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Batch variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Warehouse variables&amp;lt;/strong&amp;gt;, or &amp;lt;strong&amp;gt;Third-party variables&amp;lt;/strong&amp;gt;, depending on the open object. Then click a variable to add it to the template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Product variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price excluding tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price including tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;VAT rate;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;category;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Prices and the VAT rate are formatted with two decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Batch variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked product reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;use-by date (DLC);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;best-before date (DMD/DLUO);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Warehouse variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;location and address;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;postal code and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked project, project reference and title;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;categories or tags;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouse extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Third-party variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party name;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;customer code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;supplier code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;address, postal code, and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;email address and phone number;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Extra fields&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Extra fields configured in Dolibarr are automatically added to the variables for that object. Their technical names are associated with readable labels in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If an extra field is empty for the current object, its placeholder may still appear in Card Designer, but no value is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Use barcodes and QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Products and third parties&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code are available only when:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Barcodes module is enabled;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode use is enabled for the relevant object type in Dolibarr setup;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the object has a barcode value.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If a product or third party has no barcode, Card Designer may show the variable name as a placeholder, but no fictitious code is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Batches and warehouses&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code use the batch or warehouse reference. If the reference is empty, the corresponding area in the PDF is blank.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;QR code pixel size&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pixel size controls the resolution of the generated QR code image. A higher value improves sharpness when enlarged but increases the data size. The default value of 250 is suitable for most labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Upload and use photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;An upload QR code appears.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scan it with a phone or open the upload page directly.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Select PNG, JPG, or JPEG images to upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Return to Card Designer and reopen the &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; library if needed.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the photo to insert it into the label.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize the image, then save the template.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The upload page only sends files. Photo layout is done afterward in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Generate the PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the record to print.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Check the settings and object data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The module loads the template for that object type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Variables are replaced with the current object&#039;s data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The PDF is generated with Fabric.js and jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The file appears in the &amp;lt;strong&amp;gt;Attached files&amp;lt;/strong&amp;gt; area.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the PDF name or preview icon to view it.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The same template can generate labels for multiple objects in succession. The horizontal and vertical label counts apply only to the final PDF, repeating the label without changing the Card Designer template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modify an existing template&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open any object of the relevant type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Edit the template.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; and confirm.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Generate the PDF again.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The change applies to future labels of the same type. Previously generated PDFs are not updated automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configure Bluetooth printing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; page has two options:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner on Bluetooth printer&amp;lt;/strong&amp;gt;: enables the features intended for Bluetooth printing;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Replace accented characters on Bluetooth printers&amp;lt;/strong&amp;gt;: replaces characters that some printers cannot print correctly.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Bluetooth printing is disabled by default. The second option is useful only when the first is enabled and the printer has trouble with accented characters.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Design tips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Set the document dimensions before starting the layout.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave a margin around the label to avoid print cutoffs.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Do not stretch a barcode or QR code excessively.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Print a test and check that scanners can read the codes.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use clear images without unnecessarily high resolution.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave enough room for variables whose length changes between objects.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Save the template before leaving Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The Save button returns an HTTP 500 error&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the web server can write to the Dolibarr documents directory, especially the folder reserved for Label Designer templates. Disabling and re-enabling the module may recreate the required folder. Also check the PHP or web server log for the exact message.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The PDF is blank&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that a template containing elements has been saved for this object type. Templates installed by default are intentionally empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A variable appears in Card Designer but is missing from the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the field is populated on the object used to generate the PDF. An empty variable is not replaced with a fictitious value.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Extra fields are not visible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that extra fields are enabled for the correct object type and that the user has the required permissions. Reload Card Designer after adding a new field.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The barcode or QR code is unavailable&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;For a product or third party, check that the Barcodes module is enabled, barcode use is enabled for that object type, and the record has a value. For a batch or warehouse, check that its reference is not empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A size change does not seem to apply&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Save the value, reload Card Designer if it was already open, then generate a new PDF. Make sure you are viewing the latest file.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The page shows an old version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Hard-refresh the browser page. If needed, clear the Dolibarr and browser caches.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Storage and backups&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Card Designer templates are stored as JSON files in the module&#039;s directory under Dolibarr documents. Generated PDFs are stored with the documents associated with each object.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To back up the module configuration, include the following in your backup plan:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr database;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr documents directory;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Label Designer module directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Do not manually edit JSON files while a user is working in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Label_Designer_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=TakePOS_Digital_Invoice&amp;diff=67480</id>
		<title>TakePOS Digital Invoice</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=TakePOS_Digital_Invoice&amp;diff=67480"/>
		<updated>2026-09-29T14:23:09Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: module takepos digital invoice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;TakePOS Digital Invoice&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Summary:&amp;lt;/strong&amp;gt; Lets a buyer of a TakePOS sale request an electronic invoice by scanning a QR code on the receipt.&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 23.0 or later, PHP 7.2 or later&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-29&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot;&amp;gt;PaenAajCX0E&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Publisher website:&amp;lt;/strong&amp;gt; [https://01consulting.eu/ 01Consulting]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This guide covers installation, settings, receipt QR codes, the customer workflow, request tracking, EInvoicing integration, permissions, and troubleshooting.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;1. Purpose and scope&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;TakePOS sales are often recorded against the generic third party assigned to a terminal. This module gives the buyer of a paid sale a way to provide company details, confirm an email address, and request the electronic invoice for that existing sale.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module identifies or creates a customer third party, links the TakePOS invoice to it, prepares the electronic invoice with EInvoicing, sends it to the approved platform configured there, then emails the requester the official readable PDF retrieved from that platform.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public workflow is intended for French companies with an active 14-digit SIRET. It does not create a new commercial invoice; it operates on the already-paid TakePOS invoice. Individuals and foreign companies are not supported.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;2. End-to-end workflow&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a TakePOS invoice is validated, the module creates a random 64-character identifier and stores it in the invoice &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; extrafield.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The receipt prints or displays a QR code that opens the public form for that invoice.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The buyer submits company details and a SIRET. The module checks the fields, email domain, and available official register data.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module sends a confirmation link to the submitted email address. Processing does not start until the link is opened.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;After confirmation, the module reuses the matching third party or creates one, then links the paid invoice to it.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing generates the electronic document using the configured protocol and sends it to the approved platform.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module retrieves the platform’s official readable PDF and emails it to the requester.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Errors are recorded on the request. An authorized user can retry processing. If the invoice has already been transmitted, the existing platform flow is reused to retrieve the PDF; the invoice is not sent a second time.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;3. Requirements and compatibility&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr:&amp;lt;/strong&amp;gt; the module descriptor declares Dolibarr 23.0 or later; the module was prepared for Dolibarr 23.0.3.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;PHP:&amp;lt;/strong&amp;gt; minimum declared version is 7.2.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Dolibarr modules:&amp;lt;/strong&amp;gt; Invoices, TakePOS, and EInvoicing must be enabled.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;EInvoicing:&amp;lt;/strong&amp;gt; configure an approved platform, satisfy its prerequisites, and select the CII or Factur-X protocol.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Email:&amp;lt;/strong&amp;gt; outbound email from Dolibarr must be configured.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Server connectivity:&amp;lt;/strong&amp;gt; the server must be able to reach the Company Search API, DNS, and, if enabled, the Verifalia API over HTTPS.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Customer access:&amp;lt;/strong&amp;gt; the public Dolibarr URL must be reachable from the phone scanning the receipt.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;TakePOS terminal:&amp;lt;/strong&amp;gt; each relevant point of sale must have a default generic third party, used to determine whether the buyer is still anonymous.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;4. Installation, activation, and updates&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.1. Install and activate&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Copy the &amp;lt;code&amp;gt;takeposdigitalinvoice&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;In Dolibarr, open &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Enable &amp;lt;strong&amp;gt;TakePOS Digital Invoice&amp;lt;/strong&amp;gt;. First check that Invoices, TakePOS, and EInvoicing are installed and enabled.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Open the module configuration and set the &amp;lt;strong&amp;gt;General&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Email&amp;lt;/strong&amp;gt; tabs.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Grant the required read and process permissions to the relevant users.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Add the QR tag to the browser receipt template and/or ESC/POS template used by the terminal.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Make a test sale and verify the QR code, public form, email confirmation, and request tracking.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Activation loads the request table, adds the invoice &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt; extrafield (varchar, 64 characters), declares the tracking menu and invoice tab, registers permissions, and declares the retention scheduled task. An activation migration also handles the former CII tracking columns and, where possible, fills in the format from documents already generated.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.2. Update&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Back up the database and Dolibarr documents before updating. Replace the module files with the new version, then reactivate the module if its menu or tab declaration has changed. Activation runs the migrations declared by the module. Afterward, check the configuration page, request menu, and a TakePOS invoice tab.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;4.3. Disable or uninstall&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The effects on tables, the extrafield, and documents depend on the operation selected in Dolibarr. Back up data before uninstalling and review the consequences shown by Dolibarr. The public workflow does not operate while the module is disabled.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;5. Permissions, menus, and screens&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Permission or screen&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Read requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Opens the request list and tracking tab on a TakePOS invoice. Dolibarr permission to view the invoice is also required.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Process requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allows Retry and Cancel actions in the list and invoice tab.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Administer requests&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Permission declared in the module descriptor. Configuration pages also require Dolibarr administrator status.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Configuration&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Available to Dolibarr administrators from the module settings; includes General, Email, and About tabs.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The &amp;lt;strong&amp;gt;Billing/Payments &amp;amp;gt; TakePOS Digital Invoice&amp;lt;/strong&amp;gt; menu is shown to users with read permission. The invoice tab is shown only on invoices originating from TakePOS and to users with the same permission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;6. General settings&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open the module settings and select the &amp;lt;strong&amp;gt;General&amp;lt;/strong&amp;gt; tab. The defaults below are defined by the configuration page; Dolibarr may retain a value already stored for the entity.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Default&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Effect&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Public link lifetime&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;30 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Period from invoice validation; minimum one day.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Maximum attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Limits submissions for the same invoice and hashed IP address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Rate-limit window&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;15 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Time window applied to the attempt counter.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Completed request retention&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;365 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The scheduled cleanup can delete completed requests after this period.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Error request retention&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;90 days&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The scheduled cleanup can delete requests in error after this period.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Privacy policy URL&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empty&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional link displayed below the public form when configured.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code message&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;“Scan this QR code to request your electronic invoice.”&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Text printed or displayed with the QR code; an empty message falls back to the translated text.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Public form URL&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Computed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Read-only value; verify it from outside the server.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;7. Email and PDF settings&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In the &amp;lt;strong&amp;gt;Email&amp;lt;/strong&amp;gt; tab, configure the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Initial value&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Confirmation token lifetime&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;24 hours&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The link is single-use and expires at its stored expiry time.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Resend delay&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 minutes&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Minimum delay before requesting another email for the invoice.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Sender name&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Empty&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional name used with Dolibarr’s general sender address.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Verifalia verification&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Disabled&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Optional external deliverability check; requires API username and password.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Verifalia timeout&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;20 seconds&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 5–30 seconds per call.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;PDF retrieval attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 1–6 checks of the same platform flow.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Delay between attempts&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;2 seconds&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Allowed range: 1–5 seconds; no new transmission is made.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The sender address comes from &amp;lt;code&amp;gt;MAIN_MAIL_EMAIL_FROM&amp;lt;/code&amp;gt; in Dolibarr’s general email configuration. The module sender name is used for confirmation and PDF emails. If Verifalia is enabled without credentials, or its service rejects the request, submission is blocked with an appropriate error.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;8. Add the QR code to receipts&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.1. Browser receipt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Open the TakePOS setup and edit the relevant browser receipt template.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Insert the &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt; tag once where the QR code should appear.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Save the template and print a receipt for a newly validated TakePOS invoice.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On a browser receipt, the substitution displays a QR image produced by Dolibarr’s TCPDF engine, with the configured message. The module loads the invoice extrafields before performing the substitution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;8.2. ESC/POS printer&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;In the RAW/Text printer setup, open the receipt template.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Add &amp;lt;code&amp;gt;{dol_fac_num}&amp;lt;/code&amp;gt; once.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Select this template for the terminal and run a print check.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module documents this tag in the ESC/POS template help and replaces it with the native QR instruction &amp;lt;code&amp;gt;{dol_print_qrcode}&amp;lt;/code&amp;gt; followed by the public URL. The ESC/POS replacements also recognize &amp;lt;code&amp;gt;{DOL_FAC_NUM}&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;{__DOL_FAC_NUM__}&amp;lt;/code&amp;gt;. The QR message is sent as ESC/POS text after the code.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module also prepares the substitutions &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt;. If a valid hash is unavailable, substitutions are empty; while printing ESC/POS, the module tries to create the hash. If it fails, the tag is removed from the printout and an error is written to the Dolibarr log.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Do not add the tag in two locations in the same template. After enabling the module, verify a newly validated invoice: the hash is created by the TakePOS invoice validation trigger. Older receipts are not reprinted automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;9. Public form and requested data&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public page looks up the invoice using its hash. It requires the invoice to originate from TakePOS, the link to be within its lifetime, the invoice to be paid/closed, and the invoice still to be linked to the terminal’s default generic third party.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The public summary displays the seller, sale date, total including tax, terminal, and invoice reference masked except for its last four characters. It does not display sale lines, payment information, third-party identity, or the full invoice reference.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The form asks for:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;company name;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;address and optional additional address;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;postal code and town;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;14-digit SIRET;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;email address.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The country is set to France in third-party processing; the form does not offer a country selector. The privacy policy link appears only when configured.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;10. Company and email checks&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.1. SIRET check&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module queries the public Company Search API at &amp;lt;code&amp;gt;https://recherche-entreprises.api.gouv.fr/search?q=&amp;lt;/code&amp;gt; using the submitted SIRET. It requires 14 digits, finds the matching establishment, and checks that its administrative status is active. It also compares the company name with the official data after normalizing accents, case, and separators, then compares the postal code and town (case and accents are normalized for the town).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Current check limitation:&amp;lt;/strong&amp;gt; the submitted street address is stored and may be used to create the third party, but the code does not compare it with the address returned by the API. Consistency checks cover the name, postal code, and town, not the street. A missing, closed, or invalid SIRET, or a mismatch in these checked fields, blocks submission. Network, DNS, TLS, timeout, unreadable-response, and service rate-limit errors produce specific or generic errors and do not create a third party.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;10.2. Email address check&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The module checks the email format, then uses DNS to check that the domain has an MX record. If Verifalia is enabled, its API is also called: addresses classified as undeliverable or disposable are rejected; deliverable, risky, and unknown results are accepted by this check. A service failure or credentials/credit error blocks submission when the option is enabled.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Email confirmation is still required even when Verifalia is disabled or returns an accepted result. The random token sent to the customer is stored hashed in the database, expires according to the configured duration, and can be used once. Resending is subject to the configured minimum delay.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;11. Confirmation and invoice processing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;After a valid submission, the request is stored in the tracking table as &amp;lt;strong&amp;gt;Pending confirmation&amp;lt;/strong&amp;gt;. A confirmation link is sent to the submitted address.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The customer opens the link before it expires. The token is consumed and the request changes to &amp;lt;strong&amp;gt;Ready&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Processing reloads the invoice and confirms it originates from TakePOS and is paid/closed. An atomic lock prevents the same request from being processed concurrently.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module searches for a third party by exact SIRET, then by SIREN (the first nine digits), preferring an exact SIRET match. If none exists, it creates a French customer third party and lets Dolibarr assign the customer code.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The TakePOS invoice is linked to this third party. Generation or sending through EInvoicing is refused while the invoice is still linked to the terminal’s default third party.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module checks that EInvoicing is enabled, its prerequisites are met, and its configured protocol is CII or Factur-X. It marks only this invoice as ready for EInvoicing generation.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;EInvoicing generates a document for the selected protocol. For Factur-X, the Dolibarr source PDF is generated before requesting the hybrid Factur-X document. For CII, the protocol produces an XML file.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The provider configured in EInvoicing transmits the invoice to the approved platform. The module records the generation, transmission, and format steps.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module queries the platform flow for its &amp;lt;strong&amp;gt;ReadableView&amp;lt;/strong&amp;gt; resource, which must be a readable PDF. It makes the configured number of attempts if the view is not ready yet.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The official readable PDF is saved in the invoice document directory and emailed to the customer as an attachment.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;After the email is sent successfully, the request changes to &amp;lt;strong&amp;gt;Completed&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;With CII, the XML file is used for transmission and the customer receives the platform’s official readable PDF. With Factur-X, the hybrid document is generated and transmitted, while the customer attachment remains the readable PDF retrieved from the platform. This module does not email the standard Dolibarr PDF to the customer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;12. Request statuses&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Status&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Meaning&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Next step&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pending confirmation&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The request is stored, but its email address has not been confirmed.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The customer must open the link before it expires.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Ready&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Email is confirmed and processing can start.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Automatic processing or the Retry action.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Processing&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The request is reserved for processing.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Wait for processing to finish and check detailed status.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Error&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;A step failed; its error code and step are retained.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Fix the cause and retry if email was confirmed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Completed&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Transmission and PDF email both succeeded.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The public link reports that the request has already been processed.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Canceled&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;The public link can no longer be used.&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:8px;border:1px solid #dee2e6;&amp;quot;&amp;gt;No standard retry is offered.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The table also stores separate indicators for email confirmation, SIRET validation, third-party linking, EInvoicing generation, platform transmission, PDF email, protocol used, error step, and creation, modification, completion, or cancellation dates.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;13. Track and manage requests&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.1. Request list&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open &amp;lt;strong&amp;gt;Billing/Payments &amp;amp;gt; TakePOS Digital Invoice&amp;lt;/strong&amp;gt;. The list shows the invoice, third party when known, SIRET, email address, status, last error code, and creation date. Columns can be sorted and results are paginated. Filters include invoice reference, third party, SIRET, email, and status. Invoice and third-party references open their Dolibarr records.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.2. Invoice tab&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;On a TakePOS invoice, open the &amp;lt;strong&amp;gt;TakePOS Digital Invoice&amp;lt;/strong&amp;gt; tab. It shows status, creation and modification dates, email confirmation, requester email, SIRET, protocol, generation/transmission/PDF email status, and, on failure, the step and error message. A download button is available when a readable PDF is present.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.3. Retry&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Retry is offered for a request whose email has been confirmed and whose status is Ready or Error. Processing resumes and uses the recorded indicators and platform flow. If transmission already succeeded, retry does not send a second invoice; it attempts to retrieve the PDF and complete delivery to the customer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;13.4. Cancel&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Cancel asks for confirmation, invalidates the public link, and marks the request canceled unless it is already completed or canceled. The TakePOS invoice cancellation trigger also cancels a non-completed request. The request remains available for tracking until it is purged.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;14. EInvoicing configuration and sending conditions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;TakePOS Digital Invoice does not replace EInvoicing or configure the approved platform. Configure the EInvoicing module separately: select the platform, credentials, and protocol. This version’s workflow accepts only the &amp;lt;code&amp;gt;CII&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FACTURX&amp;lt;/code&amp;gt; protocol values.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;An anonymous TakePOS customer cannot receive an electronic invoice while the invoice remains linked to the terminal’s generic third party. The module checks this explicitly, including in the hook that intercepts direct EInvoicing generate or send actions on a TakePOS invoice. Identifying the customer makes only that invoice eligible; it does not change the global TakePOS invoice eligibility setting.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the EInvoicing protocol is changed after transmission, the module blocks using a different format for that request and asks for the format associated with the already-submitted flow to be restored. This avoids an inconsistent or duplicate transmission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;15. Stored data, files, and privacy&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Invoice extrafield:&amp;lt;/strong&amp;gt; &amp;lt;code&amp;gt;hash&amp;lt;/code&amp;gt;, a random 64-character public identifier. Do not publish it separately or edit it manually.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Request table:&amp;lt;/strong&amp;gt; entity, invoice, optional third party, SIRET, company name, address, postal code, town, email, hashed IP fingerprint, hashed token and expiry, counters, statuses, errors, and timestamps.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Documents:&amp;lt;/strong&amp;gt; the EInvoicing electronic file and the platform’s readable PDF are stored with the invoice documents.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Public summary:&amp;lt;/strong&amp;gt; limited sale-identification details; invoice lines, payments, and third-party identity are not exposed before identification.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Logs:&amp;lt;/strong&amp;gt; the dedicated log is &amp;lt;code&amp;gt;DOL_DATA_ROOT/takeposdigitalinvoice/module.log&amp;lt;/code&amp;gt;. Technical error details may also be present in Dolibarr logs. Review and redact logs before sharing them.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The retention task is scheduled daily. It deletes completed requests according to completion date and error requests according to modification date. This cleanup method does not delete pending, ready, processing, or canceled requests. The task that purges requests does not delete invoice documents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;16. Triggers, hooks, and substitutions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_VALIDATE&amp;lt;/code&amp;gt;:&amp;lt;/strong&amp;gt; for a validated TakePOS invoice, the trigger ensures the public hash exists and creates it if missing.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;code&amp;gt;BILL_CANCEL&amp;lt;/code&amp;gt;:&amp;lt;/strong&amp;gt; for a canceled TakePOS invoice, the trigger cancels its non-completed request.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Browser receipt:&amp;lt;/strong&amp;gt; the hook loads invoice extrafields before TakePOS substitutions are processed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;ESC/POS templates:&amp;lt;/strong&amp;gt; the hook adds the QR tag description to template help and substitutes the tag in the text sent to the printer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;EInvoicing actions:&amp;lt;/strong&amp;gt; a hook blocks direct generation or sending for a TakePOS invoice that remains linked to the default third party.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Substitutions:&amp;lt;/strong&amp;gt; the module provides &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;__DOL_FAC_NUM_URL__&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dol_fac_num&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;__dol_fac_num__&amp;lt;/code&amp;gt; for a TakePOS invoice with a valid hash.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Scheduled task:&amp;lt;/strong&amp;gt; periodically purges completed or error requests after their configured retention periods.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;17. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The QR code is missing from the browser receipt&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check that the module is enabled, the invoice comes from TakePOS, the template contains &amp;lt;code&amp;gt;__DOL_FAC_NUM__&amp;lt;/code&amp;gt;, and the invoice was validated after activation. Check that the tag is not repeated. Browser substitution requires the hash to be loaded in the invoice extrafields.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The QR code is missing from the ESC/POS printout&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the active RAW/Text template, the exact recognized tag, and that the template does not already send an equivalent tag. If the hash could not be stored, check Dolibarr logs and database/write permissions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The public link is rejected&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The hash must be valid; the invoice must originate from TakePOS, be closed/paid, and remain linked to the terminal’s generic third party. The link expires based on the validation date and configured duration. A completed request is reported as already processed; a canceled request cannot be used.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;SIRET verification fails&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the 14 digits, establishment status, company name, postal code, and town. A mismatch in these values or an unavailable API blocks the request. Current code does not compare the submitted street with the API address.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;No confirmation email arrives&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the address, domain and MX record, Dolibarr outbound email setup, and spam folder. If Verifalia is enabled, check the credentials, configured timeout, and service authentication or credit errors.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Confirmation succeeded but processing failed&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;Check the latest error and failed step in the list or invoice tab. Verify the third-party link, EInvoicing activation and setup, CII/Factur-X protocol, and access to Dolibarr documents. Then use Retry if the user has process permission.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Transmission succeeded but the PDF is not ready&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The platform may create its readable view asynchronously. Retry later; the module checks the existing flow and does not transmit the invoice again.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The download button is unavailable&amp;lt;/h3&amp;gt;&amp;lt;p&amp;gt;The button is enabled when the saved readable PDF is available, or when the invoice tab can use an accessible EInvoicing PDF as a fallback.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;18. Limitations and operational precautions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;The current public workflow is for French companies with an active SIRET; it does not support individuals or foreign companies.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Establishment consistency checks cover company name, postal code, and town; current code does not compare the street address with official data.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;The module retains one request per invoice. Do not create concurrent requests for the same invoice.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not manually remove or edit the hash, tokens, or processing indicators in the database.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not change the EInvoicing protocol during a request that has already been transmitted without restoring the format of its existing flow.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Do not edit the invoice’s third party while it is being processed.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cleanup removes completed and error request history after the configured retention periods; retain any needed tracking information before then.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;19. Support&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;For help or to report a problem, contact [mailto:contact@01consulting.eu contact@01consulting.eu]. Include the module and Dolibarr versions, receipt type, workflow step, request status, error code, and approximate time. Redact SIRET, email addresses, tokens, platform credentials, invoice details, and any other confidential information from screenshots and log extracts.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:TakePOS_Digital_Invoice_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer_FR&amp;diff=67473</id>
		<title>Label Designer FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer_FR&amp;diff=67473"/>
		<updated>2026-09-28T08:58:26Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Created page with &amp;quot;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt; &amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt; &amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt; &amp;lt;p...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 20.0+, PHP 7.4+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 20 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.4 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!-- You can edit this section but do NOT remove these comments     Links below will be automatically replicated on translated pages by PolyglotBot --&amp;gt; [[en:Label_Designer]] &amp;lt;!-- END interlang links --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67472</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67472"/>
		<updated>2026-09-28T08:58:14Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Label Designer User Guide&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 20.0+, PHP 7.4+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;This guide describes, step by step, how to install, configure, and use Label Designer 1.0.0 for Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Module overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer lets you visually create label templates and generate PDF files using data stored in Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The module supports four object types:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;products and services;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product batches;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouses;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third parties (customers and suppliers).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;One template is created for each object type and reused automatically. You do not need a separate label for every product, batch, warehouse, or third party. When a PDF is generated, template variables are replaced with the current object&#039;s data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Requirements&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Before installation, check that:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 20 or later is installed;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.4 or later is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr&#039;s &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the web server can write to the Dolibarr documents directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation and activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copy the &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sign in to Dolibarr with an administrator account.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Find &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enable the module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is also enabled.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;When activated, Label Designer prepares its storage directory in Dolibarr documents and enables barcode use for products and third parties.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configure user permissions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the relevant user or group record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Grant the required Label Designer permissions:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;read labels;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;create and modify templates and PDFs.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the user can also view the relevant object: product, batch, warehouse, or third party.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Without permission to view the object, some data or variables may not be available.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;After an update that adds or changes module permissions, disable and re-enable Label Designer so Dolibarr registers the new permissions. You can then grant &amp;lt;strong&amp;gt;Read labels&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Create labels&amp;lt;/strong&amp;gt; separately to users and groups.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Open a label&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open a product, batch, warehouse, or third-party record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab provided by Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The page displays:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label settings;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the generated PDF files area;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt; button.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If another module also adds a tab named &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt;, identify the Label Designer tab by its URL or content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Set label parameters&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Settings are stored separately for each object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label width, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label height, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Bar width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Visual bar thickness, from 0.2 to 1.0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pixel size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code image resolution; default: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Show barcode value&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Shows or hides the text below the barcode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels horizontally&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed horizontally in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels vertically&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed vertically in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To change a value:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the pencil icon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enter the new value.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the change.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Barcode and QR code dimensions are synchronized with the Card Designer template. Changing them in the settings updates the template; changing their size in Card Designer also updates the related settings.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button restores the defaults for the displayed object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Create a template in Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The supplied templates are empty so that users can create their own labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;On the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab, set the document width and height first.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use the toolbar to add the elements you need:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Shapes&amp;lt;/strong&amp;gt; to add graphical shapes;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Text&amp;lt;/strong&amp;gt; to add free text;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; to add dynamic Dolibarr data;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; to use an uploaded image;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Stickers&amp;lt;/strong&amp;gt; to add a decorative element;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Color&amp;lt;/strong&amp;gt; to change an element&#039;s color;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Align&amp;lt;/strong&amp;gt; to position elements;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Delete&amp;lt;/strong&amp;gt; to remove the selected element.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize each element directly on the canvas.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the save.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Saving creates only the JSON template; it does not generate a PDF. After confirmation, Card Designer returns to the object record.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Add dynamic variables&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Product variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Batch variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Warehouse variables&amp;lt;/strong&amp;gt;, or &amp;lt;strong&amp;gt;Third-party variables&amp;lt;/strong&amp;gt;, depending on the open object. Then click a variable to add it to the template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Product variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price excluding tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price including tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;VAT rate;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;category;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Prices and the VAT rate are formatted with two decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Batch variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked product reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;use-by date (DLC);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;best-before date (DMD/DLUO);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Warehouse variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;location and address;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;postal code and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked project, project reference and title;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;categories or tags;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouse extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Third-party variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party name;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;customer code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;supplier code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;address, postal code, and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;email address and phone number;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Extra fields&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Extra fields configured in Dolibarr are automatically added to the variables for that object. Their technical names are associated with readable labels in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If an extra field is empty for the current object, its placeholder may still appear in Card Designer, but no value is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Use barcodes and QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Products and third parties&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code are available only when:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Barcodes module is enabled;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode use is enabled for the relevant object type in Dolibarr setup;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the object has a barcode value.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If a product or third party has no barcode, Card Designer may show the variable name as a placeholder, but no fictitious code is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Batches and warehouses&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code use the batch or warehouse reference. If the reference is empty, the corresponding area in the PDF is blank.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;QR code pixel size&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pixel size controls the resolution of the generated QR code image. A higher value improves sharpness when enlarged but increases the data size. The default value of 250 is suitable for most labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Upload and use photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;An upload QR code appears.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scan it with a phone or open the upload page directly.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Select PNG, JPG, or JPEG images to upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Return to Card Designer and reopen the &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; library if needed.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the photo to insert it into the label.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize the image, then save the template.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The upload page only sends files. Photo layout is done afterward in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Generate the PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the record to print.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Check the settings and object data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The module loads the template for that object type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Variables are replaced with the current object&#039;s data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The PDF is generated with Fabric.js and jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The file appears in the &amp;lt;strong&amp;gt;Attached files&amp;lt;/strong&amp;gt; area.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the PDF name or preview icon to view it.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The same template can generate labels for multiple objects in succession. The horizontal and vertical label counts apply only to the final PDF, repeating the label without changing the Card Designer template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modify an existing template&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open any object of the relevant type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Edit the template.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; and confirm.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Generate the PDF again.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The change applies to future labels of the same type. Previously generated PDFs are not updated automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configure Bluetooth printing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; page has two options:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner on Bluetooth printer&amp;lt;/strong&amp;gt;: enables the features intended for Bluetooth printing;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Replace accented characters on Bluetooth printers&amp;lt;/strong&amp;gt;: replaces characters that some printers cannot print correctly.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Bluetooth printing is disabled by default. The second option is useful only when the first is enabled and the printer has trouble with accented characters.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Design tips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Set the document dimensions before starting the layout.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave a margin around the label to avoid print cutoffs.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Do not stretch a barcode or QR code excessively.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Print a test and check that scanners can read the codes.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use clear images without unnecessarily high resolution.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave enough room for variables whose length changes between objects.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Save the template before leaving Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The Save button returns an HTTP 500 error&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the web server can write to the Dolibarr documents directory, especially the folder reserved for Label Designer templates. Disabling and re-enabling the module may recreate the required folder. Also check the PHP or web server log for the exact message.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The PDF is blank&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that a template containing elements has been saved for this object type. Templates installed by default are intentionally empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A variable appears in Card Designer but is missing from the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the field is populated on the object used to generate the PDF. An empty variable is not replaced with a fictitious value.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Extra fields are not visible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that extra fields are enabled for the correct object type and that the user has the required permissions. Reload Card Designer after adding a new field.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The barcode or QR code is unavailable&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;For a product or third party, check that the Barcodes module is enabled, barcode use is enabled for that object type, and the record has a value. For a batch or warehouse, check that its reference is not empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A size change does not seem to apply&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Save the value, reload Card Designer if it was already open, then generate a new PDF. Make sure you are viewing the latest file.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The page shows an old version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Hard-refresh the browser page. If needed, clear the Dolibarr and browser caches.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Storage and backups&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Card Designer templates are stored as JSON files in the module&#039;s directory under Dolibarr documents. Generated PDFs are stored with the documents associated with each object.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To back up the module configuration, include the following in your backup plan:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr database;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr documents directory;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Label Designer module directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Do not manually edit JSON files while a user is working in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[fr:Label_Designer_FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67471</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67471"/>
		<updated>2026-09-28T08:50:25Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Label Designer User Guide&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Module version:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Declared compatibility:&amp;lt;/strong&amp;gt; Dolibarr 20.0+, PHP 7.4+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Last documentation review:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo video:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Demo site:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Open the demo site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;This guide describes, step by step, how to install, configure, and use Label Designer 1.0.0 for Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Module overview&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer lets you visually create label templates and generate PDF files using data stored in Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The module supports four object types:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;products and services;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product batches;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouses;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third parties (customers and suppliers).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;One template is created for each object type and reused automatically. You do not need a separate label for every product, batch, warehouse, or third party. When a PDF is generated, template variables are replaced with the current object&#039;s data.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Requirements&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Before installation, check that:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 20 or later is installed;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.4 or later is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr&#039;s &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is available;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the web server can write to the Dolibarr documents directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation and activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copy the &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; directory to &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sign in to Dolibarr with an administrator account.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Find &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enable the module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the &amp;lt;strong&amp;gt;Barcodes&amp;lt;/strong&amp;gt; module is also enabled.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;When activated, Label Designer prepares its storage directory in Dolibarr documents and enables barcode use for products and third parties.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configure user permissions&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the relevant user or group record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Grant the required Label Designer permissions:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;read labels;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;create and modify templates and PDFs.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Make sure the user can also view the relevant object: product, batch, warehouse, or third party.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Without permission to view the object, some data or variables may not be available.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;After an update that adds or changes module permissions, disable and re-enable Label Designer so Dolibarr registers the new permissions. You can then grant &amp;lt;strong&amp;gt;Read labels&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;Create labels&amp;lt;/strong&amp;gt; separately to users and groups.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Open a label&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open a product, batch, warehouse, or third-party record.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab provided by Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The page displays:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label settings;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the generated PDF files area;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt; button.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If another module also adds a tab named &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt;, identify the Label Designer tab by its URL or content.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Set label parameters&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Settings are stored separately for each object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Setting&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Purpose&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label width, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Document height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Final label height, in millimeters&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode width in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Barcode height in the template and PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Bar width&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Visual bar thickness, from 0.2 to 1.0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Pixel size&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;QR code image resolution; default: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Show barcode value&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Shows or hides the text below the barcode&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels horizontally&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed horizontally in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Labels vertically&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Number of copies placed vertically in the final PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To change a value:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the pencil icon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enter the new value.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the change.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Barcode and QR code dimensions are synchronized with the Card Designer template. Changing them in the settings updates the template; changing their size in Card Designer also updates the related settings.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Reset settings&amp;lt;/strong&amp;gt; button restores the defaults for the displayed object type.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Create a template in Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The supplied templates are empty so that users can create their own labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;On the &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab, set the document width and height first.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use the toolbar to add the elements you need:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Shapes&amp;lt;/strong&amp;gt; to add graphical shapes;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Text&amp;lt;/strong&amp;gt; to add free text;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; to add dynamic Dolibarr data;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; to use an uploaded image;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Stickers&amp;lt;/strong&amp;gt; to add a decorative element;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Color&amp;lt;/strong&amp;gt; to change an element&#039;s color;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Align&amp;lt;/strong&amp;gt; to position elements;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Delete&amp;lt;/strong&amp;gt; to remove the selected element.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize each element directly on the canvas.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the save.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Saving creates only the JSON template; it does not generate a PDF. After confirmation, Card Designer returns to the object record.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Add dynamic variables&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Product variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Batch variables&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Warehouse variables&amp;lt;/strong&amp;gt;, or &amp;lt;strong&amp;gt;Third-party variables&amp;lt;/strong&amp;gt;, depending on the open object. Then click a variable to add it to the template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Product variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price excluding tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;price including tax;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;VAT rate;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;category;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Prices and the VAT rate are formatted with two decimal places.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Batch variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked product reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;product description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;use-by date (DLC);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;best-before date (DMD/DLUO);&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the batch reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;batch extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Warehouse variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;label;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;location and address;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;postal code and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;linked project, project reference and title;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;categories or tags;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code generated from the warehouse reference;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;warehouse extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Third-party variables&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The main available variables are:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party name;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;customer code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;supplier code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;address, postal code, and city;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;email address and phone number;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;third-party extra fields.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Extra fields&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Extra fields configured in Dolibarr are automatically added to the variables for that object. Their technical names are associated with readable labels in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If an extra field is empty for the current object, its placeholder may still appear in Card Designer, but no value is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Use barcodes and QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Products and third parties&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code are available only when:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Barcodes module is enabled;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;barcode use is enabled for the relevant object type in Dolibarr setup;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the object has a barcode value.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;If a product or third party has no barcode, Card Designer may show the variable name as a placeholder, but no fictitious code is printed in the PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Batches and warehouses&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The barcode and QR code use the batch or warehouse reference. If the reference is empty, the corresponding area in the PDF is blank.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;QR code pixel size&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pixel size controls the resolution of the generated QR code image. A higher value improves sharpness when enlarged but increases the data size. The default value of 250 is suitable for most labels.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Upload and use photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;In Card Designer, click &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;An upload QR code appears.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scan it with a phone or open the upload page directly.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Select PNG, JPG, or JPEG images to upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirm the upload.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Return to Card Designer and reopen the &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; library if needed.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the photo to insert it into the label.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Move and resize the image, then save the template.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The upload page only sends files. Photo layout is done afterward in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Generate the PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open the record to print.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Check the settings and object data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Generate&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The module loads the template for that object type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Variables are replaced with the current object&#039;s data.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The PDF is generated with Fabric.js and jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;The file appears in the &amp;lt;strong&amp;gt;Attached files&amp;lt;/strong&amp;gt; area.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click the PDF name or preview icon to view it.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The same template can generate labels for multiple objects in succession. The horizontal and vertical label counts apply only to the final PDF, repeating the label without changing the Card Designer template.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modify an existing template&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Open any object of the relevant type.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Go to its &amp;lt;strong&amp;gt;Label&amp;lt;/strong&amp;gt; tab.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Edit the template.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Click &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; and confirm.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Generate the PDF again.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The change applies to future labels of the same type. Previously generated PDFs are not updated automatically.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configure Bluetooth printing&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;The &amp;lt;strong&amp;gt;Home &amp;amp;gt; Setup &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; page has two options:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner on Bluetooth printer&amp;lt;/strong&amp;gt;: enables the features intended for Bluetooth printing;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Replace accented characters on Bluetooth printers&amp;lt;/strong&amp;gt;: replaces characters that some printers cannot print correctly.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Bluetooth printing is disabled by default. The second option is useful only when the first is enabled and the printer has trouble with accented characters.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Design tips&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Set the document dimensions before starting the layout.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave a margin around the label to avoid print cutoffs.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Do not stretch a barcode or QR code excessively.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Print a test and check that scanners can read the codes.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Use clear images without unnecessarily high resolution.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Leave enough room for variables whose length changes between objects.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Save the template before leaving Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Troubleshooting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The Save button returns an HTTP 500 error&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the web server can write to the Dolibarr documents directory, especially the folder reserved for Label Designer templates. Disabling and re-enabling the module may recreate the required folder. Also check the PHP or web server log for the exact message.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The PDF is blank&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that a template containing elements has been saved for this object type. Templates installed by default are intentionally empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A variable appears in Card Designer but is missing from the PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that the field is populated on the object used to generate the PDF. An empty variable is not replaced with a fictitious value.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Extra fields are not visible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Check that extra fields are enabled for the correct object type and that the user has the required permissions. Reload Card Designer after adding a new field.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The barcode or QR code is unavailable&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;For a product or third party, check that the Barcodes module is enabled, barcode use is enabled for that object type, and the record has a value. For a batch or warehouse, check that its reference is not empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;A size change does not seem to apply&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Save the value, reload Card Designer if it was already open, then generate a new PDF. Make sure you are viewing the latest file.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;The page shows an old version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Hard-refresh the browser page. If needed, clear the Dolibarr and browser caches.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Storage and backups&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Card Designer templates are stored as JSON files in the module&#039;s directory under Dolibarr documents. Generated PDFs are stored with the documents associated with each object.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;To back up the module configuration, include the following in your backup plan:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr database;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Dolibarr documents directory;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;the Label Designer module directory.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Do not manually edit JSON files while a user is working in Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67468</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67468"/>
		<updated>2026-09-27T21:56:09Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67467</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67467"/>
		<updated>2026-09-27T21:53:57Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;youtube width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot;&amp;gt;Hcec6UGBJtI&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead style=&amp;quot;background:#f8f9fa;&amp;quot;&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67466</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67466"/>
		<updated>2026-09-27T21:50:40Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Vidéo de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;iframe width=&amp;quot;200&amp;quot; height=&amp;quot;120&amp;quot; src=&amp;quot;//www.youtube-nocookie.com/embed/Hcec6UGBJtI?&amp;quot; frameborder=&amp;quot;0&amp;quot; allowfullscreen=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Site de démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; [https://01consulting.eu/demo/htdocs/ Ouvrir le site]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead style=&amp;quot;background:#f8f9fa;&amp;quot;&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67460</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67460"/>
		<updated>2026-09-26T20:14:13Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Démonstration&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; &amp;lt;a href=&amp;quot;https://www.youtube.com/watch?v=Hcec6UGBJtI&amp;quot;&amp;gt;Voir la vidéo de démonstration&amp;lt;/a&amp;gt; · &amp;lt;a href=&amp;quot;https://01consulting.eu/demo/htdocs/&amp;quot;&amp;gt;Accéder au site de démonstration&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead style=&amp;quot;background:#f8f9fa;&amp;quot;&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67458</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67458"/>
		<updated>2026-09-26T10:53:30Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead style=&amp;quot;background:#f8f9fa;&amp;quot;&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67457</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67457"/>
		<updated>2026-09-26T10:52:40Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;width:100%;font-family:Arial,sans-serif;font-size:16px;line-height:1.6;color:#222;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color:#f8f9fa;padding:16px;border:1px solid #e9ecef;border-radius:5px;margin:0 0 24px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Sommaire&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;overflow-x:auto;margin:12px 0 20px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead style=&amp;quot;background:#f8f9fa;&amp;quot;&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot; style=&amp;quot;width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left;&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;padding:10px;border:1px solid #dee2e6;&amp;quot;&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul style=&amp;quot;margin:0 0 16px 0;padding-left:24px;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li style=&amp;quot;margin:0 0 4px 0;&amp;quot;&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;margin:0 0 14px 0;line-height:1.6;&amp;quot;&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67456</id>
		<title>Label Designer</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Label_Designer&amp;diff=67456"/>
		<updated>2026-09-26T10:06:47Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: creation de wiki du module label designer de 01consulting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;style&amp;gt;&lt;br /&gt;
.ld-doc{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.ld-nav{flex:1 1 220px;max-width:280px;position:static;background:#f8f9fa;padding:16px;border:1px solid #e9ecef;border-radius:5px}.ld-nav h3{margin-top:0;font-size:1.1em;border-bottom:2px solid #ccc;padding-bottom:10px}.ld-nav ul{list-style:none;padding-left:0;margin-bottom:0;font-size:.95em;line-height:1.7}.ld-nav a{text-decoration:none;color:#333}.ld-main{flex:3 1 520px;min-width:0;overflow-wrap:anywhere}.ld-main h1{margin-top:0}.ld-main h2{padding-top:24px;margin-top:24px}.ld-main h3,.ld-main h4{padding-top:12px;margin-top:18px}.ld-table{overflow-x:auto}.ld-table table{width:100%;border-collapse:collapse;border-color:#dee2e6;text-align:left}.ld-table thead{background:#f8f9fa}.ld-table th,.ld-table td{padding:10px;border:1px solid #dee2e6}&lt;br /&gt;
&amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;article lang=&amp;quot;fr&amp;quot; class=&amp;quot;ld-doc&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;nav class=&amp;quot;ld-nav&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Sommaire&amp;lt;/h3&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a href=&amp;quot;#sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/nav&amp;gt;&lt;br /&gt;
&amp;lt;main class=&amp;quot;ld-main&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;Guide d’utilisation de Label Designer&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Version du module&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 1.0.0&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Compatibilité déclarée&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; Dolibarr 15.0+, PHP 7.1+&amp;lt;br&amp;gt;&amp;lt;strong&amp;gt;Dernière vérification documentaire&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/strong&amp;gt; 2026-09-26&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ce document décrit, étape par étape, l’installation, la configuration et l’utilisation du module &amp;lt;strong&amp;gt;Label Designer 1.0.0&amp;lt;/strong&amp;gt; pour Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-1&amp;quot;&amp;gt;1. Présentation du module&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Label Designer permet de créer des modèles d’étiquettes visuellement, puis de générer des fichiers PDF à partir des données présentes dans Dolibarr.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le module prend en charge quatre types d’objets&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;les produits et services ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;les lots de produits ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;les entrepôts ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;les tiers (clients et fournisseurs).&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Un modèle est créé pour chaque type d’objet. Ce modèle est réutilisé automatiquement&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: il n’est donc pas nécessaire de concevoir une étiquette différente pour chaque produit, lot, entrepôt ou tiers. Lors de la génération du PDF, les variables du modèle sont remplacées par les données de l’objet courant.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-2&amp;quot;&amp;gt;2. Prérequis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Avant l’installation, vérifier les éléments suivants&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Dolibarr 15 ou une version supérieure est installé ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;PHP 7.1 ou une version supérieure est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; de Dolibarr est disponible ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le serveur web dispose d’un accès en écriture au répertoire des documents Dolibarr.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-3&amp;quot;&amp;gt;3. Installation et activation&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Copier le dossier &amp;lt;code&amp;gt;labeldesigner&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;htdocs/custom/&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Se connecter à Dolibarr avec un compte administrateur.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ouvrir &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Rechercher &amp;lt;strong&amp;gt;Label Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Activer le module.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Vérifier que le module &amp;lt;strong&amp;gt;Codes-barres&amp;lt;/strong&amp;gt; est également activé.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Lors de son activation, Label Designer prépare son répertoire de stockage dans les documents Dolibarr et active l’utilisation des codes-barres pour les produits et les tiers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-4&amp;quot;&amp;gt;4. Configuration des droits utilisateurs&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrir la fiche de l’utilisateur ou du groupe concerné.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Permissions&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Accorder les droits Label Designer nécessaires&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;lecture des étiquettes ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;création et modification des modèles et des PDF.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Vérifier que l’utilisateur possède aussi le droit de consulter l’objet concerné&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: produit, lot, entrepôt ou tiers.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Sans les permissions de l’objet, certaines données ou variables peuvent ne pas être accessibles.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Après une mise à jour ayant ajouté ou modifié les permissions du module, désactiver puis réactiver Label Designer afin que Dolibarr enregistre les nouvelles permissions. Il est ensuite possible d’accorder séparément &amp;lt;strong&amp;gt;Lire les étiquettes&amp;lt;/strong&amp;gt; et &amp;lt;strong&amp;gt;Créer les étiquettes&amp;lt;/strong&amp;gt; aux utilisateurs et aux groupes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-5&amp;quot;&amp;gt;5. Accéder à une étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrir la fiche d’un produit, d’un lot, d’un entrepôt ou d’un tiers.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt; appartenant à Label Designer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;La page affiche&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;les paramètres de l’étiquette ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le bouton &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;la zone des fichiers PDF générés ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le bouton &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Si un autre module ajoute également un onglet nommé &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, identifier celui de Label Designer à partir de son adresse ou de son contenu.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-6&amp;quot;&amp;gt;6. Régler les paramètres de l’étiquette&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les paramètres sont enregistrés séparément pour chaque type d’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;ld-table&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;thead&amp;gt;&amp;lt;/thead&amp;gt;&amp;lt;tbody&amp;gt;&amp;lt;/tbody&amp;gt;&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Paramètre&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Utilisation&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Largeur du document&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Largeur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hauteur du document&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Hauteur finale d’une étiquette, en millimètres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Largeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Largeur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Hauteur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Hauteur du code-barres dans le modèle et le PDF&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Largeur des barres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Épaisseur visuelle des barres, entre 0,2 et 1,0 mm&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Taille pixel&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Résolution de génération du QR code ; valeur par défaut&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: 250&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Afficher la valeur du code-barres&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Affiche ou masque le texte sous le code-barres&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Nombre d’étiquettes horizontalement&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nombre de copies placées horizontalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Nombre d’étiquettes verticalement&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nombre de copies placées verticalement dans le PDF final&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour modifier une valeur&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Cliquer sur l’icône en forme de crayon.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Saisir la nouvelle valeur.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Valider la modification.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les dimensions du code-barres et du QR code sont synchronisées avec le modèle Card Designer. Une modification effectuée dans les paramètres met à jour le modèle ; une modification de taille effectuée dans Card Designer met également à jour les paramètres concernés.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le bouton &amp;lt;strong&amp;gt;Réinitialiser les paramètres&amp;lt;/strong&amp;gt; restaure les valeurs par défaut du type d’objet affiché.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-7&amp;quot;&amp;gt;7. Créer un modèle dans Card Designer&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les modèles fournis sont vides afin de laisser l’utilisateur construire sa propre étiquette.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Depuis l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;, régler d’abord la largeur et la hauteur du document.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Utiliser la barre d’outils pour ajouter les éléments souhaités&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Formes&amp;lt;/strong&amp;gt; pour insérer des formes graphiques ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Texte&amp;lt;/strong&amp;gt; pour ajouter un texte libre ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Variables&amp;lt;/strong&amp;gt; pour ajouter une donnée dynamique de Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; pour utiliser une image importée ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Autocollants&amp;lt;/strong&amp;gt; pour ajouter un élément décoratif ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Couleur&amp;lt;/strong&amp;gt; pour modifier la couleur d’un élément ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Aligner&amp;lt;/strong&amp;gt; pour positionner les éléments ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Supprimer&amp;lt;/strong&amp;gt; pour retirer l’élément sélectionné.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Déplacer et redimensionner chaque élément directement sur la zone de travail.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Confirmer l’enregistrement.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’enregistrement crée uniquement le modèle JSON. Il ne génère pas de PDF. Après confirmation, Card Designer retourne vers la fiche de l’objet.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-8&amp;quot;&amp;gt;8. Ajouter des variables dynamiques&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Variables du produit&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables du lot&amp;lt;/strong&amp;gt;, &amp;lt;strong&amp;gt;Variables de l’entrepôt&amp;lt;/strong&amp;gt; ou &amp;lt;strong&amp;gt;Variables du tiers&amp;lt;/strong&amp;gt;, selon l’objet ouvert. Cliquer ensuite sur une variable pour l’ajouter au modèle.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-1&amp;quot;&amp;gt;8.1. Variables de produit&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;prix hors taxes ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;prix toutes taxes comprises ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;taux de TVA ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;catégorie ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;champs supplémentaires du produit.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les prix et le taux de TVA sont formatés avec deux chiffres après la virgule.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-2&amp;quot;&amp;gt;8.2. Variables de lot&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;référence du produit lié ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;libellé du produit ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;description du produit ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DLC ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;DMD/DLUO ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code-barres créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;QR code créé à partir de la référence du lot ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;champs supplémentaires du lot.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-3&amp;quot;&amp;gt;8.3. Variables d’entrepôt&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;référence ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;libellé ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;description ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;lieu et adresse ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;projet lié, référence du projet et titre du projet ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;catégories ou tags ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code-barres créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;QR code créé à partir de la référence de l’entrepôt ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;champs supplémentaires de l’entrepôt.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-4&amp;quot;&amp;gt;8.4. Variables de tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les principales variables disponibles sont&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;nom du tiers ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code client ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code fournisseur ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;adresse, code postal et ville ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;adresse électronique et téléphone ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;code-barres ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;QR code ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;champs supplémentaires du tiers.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h3 id=&amp;quot;sec-8-5&amp;quot;&amp;gt;8.5. Champs supplémentaires&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les champs supplémentaires configurés dans Dolibarr sont ajoutés automatiquement à la liste des variables de l’objet. Leur nom technique est associé à un libellé lisible dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Si un champ supplémentaire est vide pour l’objet courant, son emplacement peut apparaître sous forme de variable dans Card Designer, mais aucune valeur ne sera imprimée dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-9&amp;quot;&amp;gt;9. Utiliser les codes-barres et les QR codes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Produits et tiers&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le code-barres et le QR code sont proposés uniquement si&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;le module Codes-barres est activé ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;l’utilisation des codes-barres est activée pour le type d’objet concerné dans la configuration Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;l’objet possède une valeur de code-barres.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Si le produit ou le tiers ne possède pas de code-barres, Card Designer peut afficher le nom de la variable comme repère, mais aucun code fictif n’est imprimé dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Lots et entrepôts&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le code-barres et le QR code utilisent la référence du lot ou de l’entrepôt. Une référence vide produit donc un emplacement vide dans le PDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Taille pixel du QR code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La taille pixel contrôle la résolution de l’image générée pour le QR code. Une valeur plus élevée améliore la netteté lors d’un agrandissement, mais augmente le poids des données. La valeur par défaut de 250 convient à la majorité des étiquettes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-10&amp;quot;&amp;gt;10. Importer et utiliser des photos&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Dans Card Designer, cliquer sur &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Un QR code d’importation apparaît.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Scanner ce QR code avec un téléphone, ou ouvrir directement la page d’importation.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Sélectionner les images à envoyer au format PNG, JPG ou JPEG.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Valider l’importation.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Revenir dans Card Designer et rouvrir la bibliothèque &amp;lt;strong&amp;gt;Photos&amp;lt;/strong&amp;gt; si nécessaire.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur la photo souhaitée pour l’insérer dans l’étiquette.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Déplacer et redimensionner l’image, puis enregistrer le modèle.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La page d’importation sert uniquement à envoyer les fichiers. La mise en page de la photo se fait ensuite dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-11&amp;quot;&amp;gt;11. Générer le PDF&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrir la fiche de l’objet à imprimer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Accéder à son onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Vérifier les paramètres et les données de l’objet.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Générer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le module charge le modèle du type d’objet.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Les variables sont remplacées par les données de l’objet courant.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le PDF est généré avec Fabric.js et jsPDF.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Le fichier apparaît dans la zone &amp;lt;strong&amp;gt;Fichiers joints&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur le nom du PDF ou sur l’icône d’aperçu pour le consulter.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le même modèle peut donc produire successivement les étiquettes de plusieurs objets différents.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Le nombre d’étiquettes horizontal et vertical est appliqué uniquement au PDF final. Il permet de répéter l’étiquette sans modifier le modèle Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-12&amp;quot;&amp;gt;12. Modifier un modèle existant&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;Ouvrir n’importe quel objet du type concerné.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Accéder à l’onglet &amp;lt;strong&amp;gt;Étiquette&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Card Designer&amp;lt;/strong&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Modifier le modèle.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Cliquer sur &amp;lt;strong&amp;gt;Save&amp;lt;/strong&amp;gt; et confirmer.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Générer de nouveau le PDF.&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La modification s’applique à toutes les prochaines étiquettes du même type. Les PDF déjà générés ne sont pas modifiés automatiquement.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-13&amp;quot;&amp;gt;13. Configuration de l’impression Bluetooth&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;La page &amp;lt;strong&amp;gt;Accueil &amp;amp;gt; Configuration &amp;amp;gt; Modules/Applications &amp;amp;gt; Label Designer&amp;lt;/strong&amp;gt; contient deux options activables&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Labeldesigner sur imprimante Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: active les fonctions prévues pour l’impression Bluetooth ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Remplacer les caractères accentués sur imprimantes Bluetooth&amp;lt;/strong&amp;gt;&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;: remplace les caractères que certaines imprimantes ne savent pas imprimer correctement.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;L’impression Bluetooth est désactivée par défaut. La seconde option n’est utile que lorsque la première est activée et que l’imprimante rencontre des problèmes avec les caractères accentués.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-14&amp;quot;&amp;gt;14. Conseils de conception&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Définir les dimensions du document avant de commencer la mise en page.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Conserver une marge autour de l’étiquette pour éviter les coupures à l’impression.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Ne pas étirer excessivement un code-barres ou un QR code.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Effectuer un test d’impression et vérifier la lecture des codes avec un scanner.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Utiliser des images suffisamment nettes, sans résolution inutilement élevée.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Laisser assez d’espace pour les variables dont la longueur change selon l’objet.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Enregistrer le modèle avant de quitter Card Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-15&amp;quot;&amp;gt;15. Dépannage&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le bouton Save retourne une erreur HTTP 500&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Vérifier que le serveur web peut écrire dans le répertoire des documents Dolibarr, notamment dans le dossier réservé aux modèles Label Designer. Désactiver puis réactiver le module peut recréer le dossier nécessaire. Consulter également le journal PHP ou le journal du serveur web pour obtenir le message exact.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le PDF est vide&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Vérifier qu’un modèle contenant des éléments a été enregistré pour ce type d’objet. Les modèles installés par défaut sont volontairement vides.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une variable est visible dans Card Designer mais absente du PDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Vérifier que le champ est renseigné sur l’objet utilisé pour la génération. Une variable vide n’est pas remplacée par une valeur fictive.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Les champs supplémentaires ne sont pas visibles&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Vérifier que les champs supplémentaires sont activés pour le bon type d’objet et que l’utilisateur dispose des permissions nécessaires. Recharger Card Designer après l’ajout d’un nouveau champ.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Le code-barres ou le QR code n’est pas disponible&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour un produit ou un tiers, vérifier l’activation du module Codes-barres, l’option d’utilisation pour le type d’objet et la présence d’une valeur sur la fiche. Pour un lot ou un entrepôt, vérifier que la référence n’est pas vide.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Une modification de taille ne semble pas appliquée&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Enregistrer la valeur, recharger Card Designer si celui-ci était déjà ouvert, puis générer un nouveau PDF. Vérifier que l’on consulte bien le dernier fichier produit.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;L’affichage conserve une ancienne version&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Actualiser la page avec un rechargement complet du navigateur. Si nécessaire, vider le cache de Dolibarr et le cache du navigateur.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;h2 id=&amp;quot;sec-16&amp;quot;&amp;gt;16. Stockage et sauvegarde&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Les modèles Card Designer sont enregistrés sous forme de fichiers JSON dans le répertoire des documents Dolibarr réservé au module. Les PDF générés sont stockés dans les documents associés aux objets.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pour sauvegarder entièrement la configuration du module, inclure dans la stratégie de sauvegarde&amp;lt;span&amp;gt; &amp;lt;/span&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;la base de données Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le répertoire des documents Dolibarr ;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;le dossier du module Label Designer.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ne pas modifier manuellement les fichiers JSON pendant qu’un utilisateur travaille dans Card Designer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/main&amp;gt;&amp;lt;/article&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:01consulting_rectangle_clair_petit.png&amp;diff=67063</id>
		<title>File:01consulting rectangle clair petit.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:01consulting_rectangle_clair_petit.png&amp;diff=67063"/>
		<updated>2026-08-26T08:24:11Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=61930</id>
		<title>List of modules id</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=List_of_modules_id&amp;diff=61930"/>
		<updated>2024-11-19T18:55:50Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* ID 100000 - 499999 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateDocDevEn}}&lt;br /&gt;
{{TemplateDocDevEs}}&lt;br /&gt;
{{TemplateDocDevFr}}&lt;br /&gt;
{{TemplateDocDevZh}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Flag en}}&lt;br /&gt;
&lt;br /&gt;
This page list all reserved modules numbers / ID. If you build or want to build your own modules (like thi , you should take an ID range here. Please pick range into existing holes first.&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}}&lt;br /&gt;
Cette page recense tous les numéros / ID réservés de modules. Si vous avez réalisé ou voulez réaliser vos propres modules (comme les [[:Category:Modules complémentaires|modules complémentaires suivant]]), vous devriez prendre une plage d&#039;ID ici. Merci de prendre dans les trous existant en priorité !&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}}&lt;br /&gt;
Esta página contiene un listado de todos los id reservados para los módulos. Si ha creado o quiere realizar sus propios módulos, (como estos [[:Category:Módulos_complementarios|módulos complementarios]]), deberá reservarse un rango de ID aquí.&lt;br /&gt;
&lt;br /&gt;
{{Flag zh}}&lt;br /&gt;
此页面列出了所有保留的模块ID/编号。如果您正在构建或想要构建自己的模块（如 [[:Category:Complementary_modules|扩展模块]]），您应该在此处声明一个ID范围。感谢您优先考虑现有空当！&lt;br /&gt;
&lt;br /&gt;
{{Flag tr}}&lt;br /&gt;
&lt;br /&gt;
Bu sayfa tüm ayrılmış modül numaralarını / kimliklerini listeler. Kendi modüllerinizi oluşturuyorsanız veya oluşturmak istiyorsanız ([[:Category:Módulos complementarios|bu gibi]]), burada bir kimlik aralığı almalısınız. Lütfen önce mevcut deliklerden aralığı seçin.&lt;br /&gt;
&lt;br /&gt;
=ID 0 - 99999=&lt;br /&gt;
{{Flag en}}Reserved for Dolibarr&#039;s internal modules.&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}}&lt;br /&gt;
 Réservé aux modules internes de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}}Reservado a los módulos internos de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
{{Flag zh}}&lt;br /&gt;
 为Dolibarr的内部模块保留。&lt;br /&gt;
&lt;br /&gt;
{{Flag tr}}&lt;br /&gt;
 Dolibarr&#039;ın dahili modülleri için ayrılmıştır.&lt;br /&gt;
&lt;br /&gt;
=ID 100000 - 499999=&lt;br /&gt;
{{Flag en}}&#039;&#039;&#039;Reserved area for editors in need for an ID range. You can edit this page to add your own range (take a range of 50 numbers only the first time, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}}Zone réservée aux éditeurs qui ont besoin d&#039;une plage d&#039;ID spécifiques. Vous pouvez modifier cette page pour réserver votre plage (limitée à 50 valeurs la première fois, demandez nous pour plus)&lt;br /&gt;
&lt;br /&gt;
{{Flag sp}}Área reservada para los partners que necesiten un rango de ID. Puede modificar esta página para reservar su rango (limitado a 50 valores por editor)&lt;br /&gt;
&lt;br /&gt;
{{Flag zh}}为需要特定ID范围的开发者保留的区域。您可以更改此页面以预订您自己的范围（第一次限制为50个值，请向我们咨询更多信息）。&lt;br /&gt;
如果您预订超过50个ID，我们可能会在没有通知的情况下自动更改您的预订范围，您将来可能会遇到与其他模块的冲突，因此请遵守规则！&lt;br /&gt;
&lt;br /&gt;
{{Flag tr}}Kimlik aralığına ihtiyaç duyan editörler için ayrılmış alan. Kendi aralığınızı eklemek için bu sayfayı düzenleyebilirsiniz (yalnızca ilk seferde 50 sayı aralığını alın, daha fazlasını isteyin)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png]] If you reserve more than 50, we may automatically change your reservation range without information and you may experience conflicts with other modules in a future, so please follow the rules! &lt;br /&gt;
&lt;br /&gt;
*ID 100000 - 100999: OpenThink (http://www.openthink.be) - Belgium&lt;br /&gt;
*ID 101000 - 101999: NLTechno (https://www.nltechno.com) - France&lt;br /&gt;
*ID 102000 - 102999: Tiaris (http://www.tiaris.fr) - France&lt;br /&gt;
*ID 103000 - 103999: Open-concept.pro (http://www.open-concept.pro) - France&lt;br /&gt;
*ID 104000 - 104999: ATM Consulting (http://www.atm-consulting.fr) - France&lt;br /&gt;
*ID 105000 - 105999: GPC.solutions - France&lt;br /&gt;
*ID 106000 - 106999: PHPASSO&lt;br /&gt;
*ID 107000 - 107999: TecLib (http://www.teclib.com) / Auguria (http://www.auguria.net) - France&lt;br /&gt;
*ID 108000 - 108999: ETHICWEB&lt;br /&gt;
*ID 109000 - 109999: Aplose ([http://www.aplose.fr https://www.aplose.fr]) - France&lt;br /&gt;
*ID 110000 - 110999: Association Dolibarr (https://www.dolibarr.org)&lt;br /&gt;
*ID 111000 - 111999: Asset IT (www.assetit.ch) - Suisse&lt;br /&gt;
*ID 112000 - 112999: Aarboard AG (www.aarboard.ch) - Suisse&lt;br /&gt;
*ID 113000 - 113999: Asilib - Alexandre Spangaro&lt;br /&gt;
*ID 114000 - 114999: Iceleaf OÜ&lt;br /&gt;
*ID 115000 - 115999: 2A2C Conseil - Cyril ZEKSER&lt;br /&gt;
*ID 116000 - 116999: Wolftec GmbH&lt;br /&gt;
*ID 117000 - 117999: Oscim (http://www.oscim.fr)&lt;br /&gt;
*ID 118000 - 118999: Oarces Web (dev.oarces.com)&lt;br /&gt;
*ID 119000 - 119999: Manuel Berrocal - Absolacom&lt;br /&gt;
*ID 120000 - 120999: Régis Houssin (http://www.inodbox.com) - France&lt;br /&gt;
*ID 121000 - 121999: Oscss - Shop - France&lt;br /&gt;
*ID 122000 - 122999: MrSof - la Nation du Web&lt;br /&gt;
*ID 123000 - 123999: Bruno Généré (webiseasy.org)&lt;br /&gt;
*ID 124000 - 124999: backbone internet service (www.backbone.co.at) - Austria&lt;br /&gt;
*ID 125000 - 125999: ProgSI (www.progsi.ma)&lt;br /&gt;
*ID 126000 - 126999: Catalanet&lt;br /&gt;
*ID 127000 - 127999: Virgilio Filho pt-BR Brasil (@dolibarr.br) - Brazil&lt;br /&gt;
*ID 128000 - 128999: Nicolas Frappé France (www.sospc.info)&lt;br /&gt;
*ID 129000 - 129999: Adeo-Informatique&lt;br /&gt;
*ID 130000 - 130999: Technicks ICT (http://www.technicks.eu) - Italy&lt;br /&gt;
*ID 131000 - 131999: Joan Louis (itaca.fr) - France&lt;br /&gt;
*ID 132000 - 132999: Jean-Marie Arsac (https://azimut.fr) - France&lt;br /&gt;
*ID 133000 - 133999: Oriel Systems Ltd, UK. (www.orielsystems.com)&lt;br /&gt;
*ID 134000 - 134999: ALSOFT PVT. LTD. (https://www.alsoft.org)&lt;br /&gt;
*ID 135000 - 135999: Net-Logic (https://netlogic.fr)&lt;br /&gt;
*ID 136000 - 136050: MONA.RE - France&lt;br /&gt;
*ID 136051 - 136099: La Vida Marketing&lt;br /&gt;
*ID 136100 - 136149: Synergies-Tech France. (https://www.synergies-france.fr/)&lt;br /&gt;
*ID 136150 - 136199: Lyta&lt;br /&gt;
*ID 136200 - 136219: Maison Théophile Leclerc&lt;br /&gt;
*ID 136220 - 136270: SegoFount - Spain&lt;br /&gt;
*ID 136271 - 136320: Labor Dispatch (Simon Sheng , China)&lt;br /&gt;
*ID 136321 - 136370: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 136371 - 136420: Daxit Solutions (https://www.daxit.be)&lt;br /&gt;
*ID 136421 - 136470: HUSCH GmbH (https://husch-gmbh.de)&lt;br /&gt;
*ID 136471 - 138999: NSINFO (https://www.ns-info.fr)&lt;br /&gt;
*ID 139000 - 139999: Synergies-Tech France. (https://www.synergies-france.fr/)&lt;br /&gt;
*ID 140000 - 140999: Altairis (http://altairis.fr)&lt;br /&gt;
*ID 141000 - 141050: Projet2Team (https://www.projet2team.fr)&lt;br /&gt;
*ID 141051 - 141099: Elistair (http://elistair.com)&lt;br /&gt;
*ID 141100 - 141149: Blue Networks Technologies (https://www.blnt.fr)&lt;br /&gt;
*ID 141150 - 141199: Mainlab S.r.l. (https://www.mainlabonline.it) - Italy&lt;br /&gt;
*ID 141200 - 141249: Florian DUFOURG - France&lt;br /&gt;
*ID 141250 - 141299: SoftAddicts - Canada&lt;br /&gt;
*ID 141300 - 141349: Finanboo - (https://www.finanboo.com)&lt;br /&gt;
*ID 141350 - 141399: ConstruxZion Soft - Colombia (https://www.construxzionsoft.com.co)&lt;br /&gt;
*ID 141400 - 141450: COEXDIS - République Démocratique du Congo (https://www.coexdis.com)&lt;br /&gt;
*ID 141451 - 141501: HALFWARE - Algeria (https://www.half-ware.com)&lt;br /&gt;
*ID 141502 - 141552: Quantraum (https://quantraum.com)&lt;br /&gt;
*ID 141553 - 141603: Nateo Group&lt;br /&gt;
*ID 141604 - 141653: digital centric GmbH (https://www.digitalcentric.de/dolibarr)&lt;br /&gt;
*ID 141654 - 141699: Decrypting (https://www.decrypting.fr)&lt;br /&gt;
*ID 141700 - 141949: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 141950 - 141999: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 142000 - 142049: ITANéA (https://www.itanea.fr)&lt;br /&gt;
*ID 142050 - 142099: ERP Consulting NZ ([https://www.erpconsulting.co.nz www.erpconsulting.co.nz])&lt;br /&gt;
*ID 142100 - 142149: Bloxera GmbH (https://www.bloxera.com)&lt;br /&gt;
*ID 142150 - 142199: Evangelos Souglakos - Greece&lt;br /&gt;
*ID 142200 - 142249: Luc CALARESU - France&lt;br /&gt;
*ID 142250 - 142299: OmnIT Services - Belgique (https://www.omnitservices.biz)&lt;br /&gt;
*ID 142300 - 142349: Gwadeyes - Guadeloupe (https://www.gwadeyes-informatique.com/)&lt;br /&gt;
*ID 142350 - 142399: Solution Libre (https://www.solution-libre.fr/)&lt;br /&gt;
*ID 142400 - 142449: Res Digital (https://res.digital)&lt;br /&gt;
*ID 142450 - 142499: itopie informatique (https://www.itopie.ch)&lt;br /&gt;
*ID 142500 - 142549: Weblinx.IT GbR (https://weblinx.it/) - Germany&lt;br /&gt;
*ID 142550 - 142599: ASCI-Automation - Mexico (https://asci-automation.com.mx/)&lt;br /&gt;
*ID 142600 - 142649: ZENKO Design - Japan / France / Spain&lt;br /&gt;
*ID 142650 - 142699: AWeerWolf&lt;br /&gt;
*ID 142700 - 148749: Lysis (https://lysis.net/)&lt;br /&gt;
*ID 142750 - 142799: Hadritech (https://www.hadritech.com/)&lt;br /&gt;
*ID 142800 - 142849: Bloxera GmbH (https://www.bloxera.com)&lt;br /&gt;
*ID 142850 - 148999: Everlats S.L. - España (https://www.everlats.com)&lt;br /&gt;
*ID 149000 - 149999: SydTech - America Central (https://www.sydtech.io/)&lt;br /&gt;
*ID 150000 - 150999: Jeffinfo&lt;br /&gt;
*ID 151000 - 151999: Konverseo (https://konverseo.com)&lt;br /&gt;
*ID 152000 - 152049: Tanguy Pénet (http://tanguype.net)&lt;br /&gt;
*ID 152050 - 152099: Web Solutions&lt;br /&gt;
*ID 152100 - 152149: MagicNet (https://www.magicnet.it)&lt;br /&gt;
*ID 152150 - 156499: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 156500 - 156549: ACE Recycling  (https://www.acerecycling.net.au/)&lt;br /&gt;
*ID 156550 - 156599: Kreativität Works ([http://www.kreativitat.com http://kreativitat.com])&lt;br /&gt;
*ID 156600 - 156649: [https://pierre-couy.dev Pierre Couy]&lt;br /&gt;
*ID 156650 - 156699: CXI (https://cyrix.co.za)&lt;br /&gt;
*ID 156700 - 159999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 160000 - 160999: Charles-François BENKE (http://www.patas-monkey.com)&lt;br /&gt;
*ID 161000 - 161999: Abbes Bahfir (https://01consulting.eu)&lt;br /&gt;
*ID 162000 - 162999: Jacques Rébiscoul&lt;br /&gt;
*ID 163000 - 163999: Open-DSI (https://www.open-dsi.fr)&lt;br /&gt;
*ID 164000 - 164999: Pixelada S. Coop. And. (https://pixelada.org)&lt;br /&gt;
*ID 165000 - 165049: DovConnect&lt;br /&gt;
*ID 165050 - 165099: Mind Operated Systems (https://www.mosystems.biz)&lt;br /&gt;
*ID 165100 - 165150: SD-Formation (https://sdformation.fr)&lt;br /&gt;
*ID 165151 - 165199: NUM&#039;X (https://www.numx-sets.eu)&lt;br /&gt;
*ID 165200 - 165249: Benjam Préjent (https://www.benjam-prejent.fr)&lt;br /&gt;
*ID 165250 - 165299: Dhi Loka Private Limited, India (https://www.dhiloka.com)&lt;br /&gt;
*ID 165300 - 169999: Accellier Limited (https://www.accellier.com/)&lt;br /&gt;
*ID 170000 - 170999: TRIDENT CONSULTING LTD (www.tridentdxb.com)&lt;br /&gt;
*ID 171000 - 171999: LVSInformatique (www.lvsinformatique.com)&lt;br /&gt;
*ID 172000 - 172299: Ray Soft-Systems (https://www.ray-soft-systems.com)&lt;br /&gt;
*ID 172300 - 172349: Günter Lukas Consulting (https://gl.co.at)&lt;br /&gt;
*ID 172350 - 172399: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 172400 - 172449: Professional Structures Limited (https://pstructures.com)&lt;br /&gt;
*ID 172450 - 172699: IT-BS (https://www.it-bs.fr)&lt;br /&gt;
*ID 172700 - 172749: Indelog (https://www.indelog.fr)&lt;br /&gt;
*ID 172750 - 172799: NS-INFO90 (https://www.ns-info90.fr)&lt;br /&gt;
*ID 172800 - 172849: E-Concept Applications (https://e-concept-applications.fr)&lt;br /&gt;
*ID 172850 - 179999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 180000 - 180999: Triangle Ingénierie&lt;br /&gt;
*ID 181000 - 181999: TI Sin Problemas (https://www.tisinproblemas.com)&lt;br /&gt;
*ID 182000 - 182049: Chipserv Pawel Wlizlo (https://www.testware.it)&lt;br /&gt;
*ID 182050 - 182999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 183000 - 183999: BB2A Anthony Berton (https://www.bb2a.fr)&lt;br /&gt;
*ID 184000 - 184999: DPS PRINTING &amp;amp; DOCUMENTS SOCIEDAD ANONIMA (https://www.dps-lat.com)&lt;br /&gt;
*ID 185000 - 185049: Telioskour (https://github.com/telioskour)&lt;br /&gt;
*ID 185050 - 189999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 190000 - 190999: Diciannove (http://19.coop)&lt;br /&gt;
*ID 191000 - 191999: Elonet (https://elonet.fr)&lt;br /&gt;
*ID 192000 - 192049: IDFOR Consulting (https://www.idfor-consulting.fr/)&lt;br /&gt;
*ID 192050 - 198999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 199000 - 199999: RFMS&lt;br /&gt;
*ID 200000 - 200999: Noxiome&lt;br /&gt;
*ID 201000 - 201999: Sasa Ostrouska (saxa)&lt;br /&gt;
*ID 202000 - 202999: Z-Application&lt;br /&gt;
*ID 203000 - 203099: Elidee - elidee.com&lt;br /&gt;
*ID 203100 - 203999: Garcia MICHEL (soamichel.fr)&lt;br /&gt;
*ID 204000 - 204999: Ari Elbaz elarifr - accedinfo.com&lt;br /&gt;
*ID 205000 - 205999: Kreiz IT&lt;br /&gt;
*ID 206000 - 206999: GBINFO (www.gbinfo.fr)&lt;br /&gt;
*ID 207000 - 207099: MacroProg (https://www.macroprog.com)&lt;br /&gt;
*ID 207100 - 207149: Reactiva Software&lt;br /&gt;
*ID 207150 - 207199: Ndejje University Water Research and Development Centre ([https://github.com/NDUWRDC/LIMS/])&lt;br /&gt;
*ID 207200 - 207299: Massaoud Bouzenad ([https://www.dzprod.net dzprod.net])&lt;br /&gt;
*ID 207300 - 207349: Ksar&lt;br /&gt;
*ID 207350 - 207399: Easylinux (www.easylinux.fr)&lt;br /&gt;
*ID 207400 - 207449: Arthur LENOBLE&lt;br /&gt;
*ID 207450 - 212099: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 212100 - 212149: Audio Vidéo Technologies (https://www.avtek.fr)&lt;br /&gt;
*ID 212150 - 221999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 222000 - 222999:  dolibit  (https://www.dolibit.de)&lt;br /&gt;
*ID 223000 - 223049: Tráfico Canada&lt;br /&gt;
*ID 223050 - 229949: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 229950 - 229999: Solucions Informàtiques, Serveis i Innovació SLU (https://6innova.es)&lt;br /&gt;
*ID 230000 - 230049: Unareil (https://www.unareil.eu)&lt;br /&gt;
*ID 230050 - 230099: Lyra Network (https://www.lyra.com/)&lt;br /&gt;
*ID 230100 - 230149: Gheorghe Iftimi - CTW - RO&lt;br /&gt;
*ID 230150 - 230199: MEMA Machinery &amp;amp; Tools (https://www.mema.be)&lt;br /&gt;
*ID 230200 - 230249: Teleassist&lt;br /&gt;
*ID 230250 - 230299: Nh Developer&lt;br /&gt;
*ID 230300 - 230499: Chickenforce/code-chicken, IT Services Hahn (https://github.com/code-chicken [http://itservices-hahn.de/ https://itservices-hahn.de])&lt;br /&gt;
*ID 230500 - 230549: Hidup Consulting (https://consulting.hidup.io)&lt;br /&gt;
*ID 230550 - 230599 : CMR Conseil (https://www.weblockup.fr)&lt;br /&gt;
*ID 230600 - 230649 : aFreeMind Studio&lt;br /&gt;
*ID 230650 - 230699 : Unideal (https://www.uni-deal.com)&lt;br /&gt;
*ID 230700 - 230749 : DevLansdes (https://devlandes.com/)&lt;br /&gt;
*ID 230750 - 262699: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 262700 - 262799: Scopen (https://www.scopen.fr)&lt;br /&gt;
*ID 262800 - 274249: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 274250 - 274299: Nerv Project (www.nerv-project.eu)&lt;br /&gt;
*ID 274300 - 274349: Knowhere Consulting S.L. (https://www.knowhere-consulting.eu)&lt;br /&gt;
*ID 274350 - 274399: Milen karaganski (https://blacktiehost.com)&lt;br /&gt;
*ID 274400 - 274449: Vincent MAURY ([https://www.timgroup.fr www.timgroup.fr])&lt;br /&gt;
*ID 274450 - 274499: Daraelmin&lt;br /&gt;
*ID 274500 - 274549: Emilie LAFORET (http://www.ermvallon.com)&lt;br /&gt;
*ID 274550 - 278999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 279000 - 279049: VSDigital Electronics (https://vsdigital.ar) - Argentina&lt;br /&gt;
*ID 279050 - 279999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 280000 - 280049: Bingroup (https://www.beinng.com)&lt;br /&gt;
*ID 280050 - 280099: Medialta (https://medialta.com)&lt;br /&gt;
*ID 280100 - 280149: Cédric Ancelin - Ancode (https://www.dolistore.com/fr/recherche?search_query=ancode)&lt;br /&gt;
*ID 280150 - 289999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 290000 - 290099: BNS - Project doliBRA ([https://www.beinng.com https://www.bns.net.br]) - Brasil&lt;br /&gt;
*ID 290100 - 299999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 300000 - 300049: RapidProgress (https://www.rapidprogress.eu) - Bulgaria&lt;br /&gt;
*ID 300050 : 300099: M@ Solution (https://www.ma-solution.fr/)&lt;br /&gt;
*ID 300100 : 300149: LAVA RUN (https://www.lavarun.re)&lt;br /&gt;
*ID 300150 - 300199: PsyCrow Code&lt;br /&gt;
*ID 300200 : 300249 : Computences (https://www.computences.com/)&lt;br /&gt;
*ID 300250 : 300299 : LEVEL IT (https://levelit.com.ar)&lt;br /&gt;
*ID 300300 : 300349 : Progiseize (https://progiseize.fr)&lt;br /&gt;
*ID 300350 - 300399: MB Informatique (https://www.mb-informatique.fr)&lt;br /&gt;
*ID 300400 - 300449: Anouar Touati&lt;br /&gt;
*ID 300450 - 300499: Martin Danger&lt;br /&gt;
*ID 300500 - 301499: Whale Blows&lt;br /&gt;
*ID 301500 - 301549: Tom Trust - International&lt;br /&gt;
*ID 301550 - 302499: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 302500 - 302549: Diamubi (https://diamubi.com)&lt;br /&gt;
*ID 302550 - 302599: Datolab (https://www.datolab.com)&lt;br /&gt;
*ID 302600 - 302649: DuMaCo (https://www.dumaco.de)&lt;br /&gt;
*ID 302650 - 302699: Resilio SA&lt;br /&gt;
*ID 302700 - 302749: Aroga&lt;br /&gt;
*ID 302750 - 302799: Productivix (https://www.productivix.com)&lt;br /&gt;
*ID 302800 - 302849: Slibzz&lt;br /&gt;
*ID 302850 - 302899: idea design (https://ideadesign.dz)&lt;br /&gt;
*ID 302900 - 302949: AL MISBAH INFORMATIQUE (https://www.almisbah.ma)&lt;br /&gt;
*ID 302950 - 302999: Atis Solutions - France&lt;br /&gt;
*ID 303000 - 303499: Obixav - Nigeria&lt;br /&gt;
*ID 303500 - 303549: buschler plus GmbH, Germany (https://buschler.plus)&lt;br /&gt;
*ID 303550 - 303599: Prestalidaire - France (https://prestalidaire.com)&lt;br /&gt;
*ID 303600 - 309999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 310000 - 310049: Neilson Dufour (&amp;lt;nowiki&amp;gt;https://hypercode.ca&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
*ID 310050 - 313999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 314000 - 314049: Ruemmler IT Solutions (https://www.ruemmler.net)&lt;br /&gt;
*ID 314050 - 314149: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 314150 - 314199: Benoît PASCAL&lt;br /&gt;
*ID 314200 - 319999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 320000 - 320999: Novus Studios (www.novusstudios.it)&lt;br /&gt;
*ID 321000 - 321999: AtooNet (http://www.atoo-net.com)&lt;br /&gt;
*ID 322000 - 329999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 330000 - 330049: XTEC Industries (www.xtec-ind.com)&lt;br /&gt;
*ID 330050 - 330099: 10100 S.R.L. - (www.10100.to)&lt;br /&gt;
*ID 330100 - 330149: AES Dana SRL (https://aes-dana.be)&lt;br /&gt;
*ID 330150 - 330199: Freshcore (https://www.freshcore.fr)&lt;br /&gt;
*ID 330200 - 331999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 332000 - 332099: Gecka (https://gecka.nc)&lt;br /&gt;
*ID 332100 - 332149: Agence Milkshake (http://agencemilkshake.com)&lt;br /&gt;
*ID 332150 - 332199: Daniel Prowald IT – Service (https://prowald-it.de)&lt;br /&gt;
*ID 332200 - 332249: UNITICE (https://unitice.com)&lt;br /&gt;
*ID 332250 - 332299: Sidonie Moulart&lt;br /&gt;
*ID 332300 - 332349: LTDJ (Antonin MARCHAL - Le Temple du Jeu)&lt;br /&gt;
*ID 332350 - 333299: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 333300 - 333349: Sense Africa (http://sense.africa)&lt;br /&gt;
*ID 333350 - 349999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 350000 - 350049: SOUNDOU &amp;amp; MIDAS (https://www.soundou.org/)&lt;br /&gt;
*ID 350050 - 350099: Ildefonso González (&#039;&#039;&#039;https://igontek.es&#039;&#039;&#039;)&lt;br /&gt;
*ID 359000 - 359049: Milen Karaganski0&lt;br /&gt;
*ID 350100 - 399999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 400000 - 400999: 2byte.es (http://www.2byte.es)&lt;br /&gt;
*ID 401000 - 401999: B&amp;amp;D Informática&lt;br /&gt;
*ID 402000 - 402999: Marcos García de La Fuente (marcosgdf)&lt;br /&gt;
*ID 403000 - 403999: Sergibyte&lt;br /&gt;
*ID 404000 - 404999: Aikhan&lt;br /&gt;
*ID 405000 - 405999: AIME (http://www.aime.mx)&lt;br /&gt;
*ID 406000 - 406999: Som Núvol (https://somnuvol.coop)&lt;br /&gt;
*ID 407000 - 408999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 409000 - 409999: LliureTIC (https://www.lliuretic.cat)&lt;br /&gt;
*ID 410000 - 410999: DoliGov&lt;br /&gt;
*ID 411000 - 411049: GATTEK SARL (https://www.ga-ttek.com)&lt;br /&gt;
*ID 411050 - 419999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 420000 - 420099: BBS Concept&lt;br /&gt;
*ID 420100 - 420199: LeMousticProduction (www.lemousticproduction.info) -&amp;lt; module DoliRH&lt;br /&gt;
*ID 420200 - 421199: VatCheck (www.abnc.be)&lt;br /&gt;
*ID 421200 - 422199: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 422200 - 422999: Artaban (http://artaban.fr)&lt;br /&gt;
*ID 423000 - 423049: cyberesprit&lt;br /&gt;
*ID 423050 - 423099: R.Bossard&lt;br /&gt;
*ID 423100 - 423199: Joliciel (www.joliciel.fr)&lt;br /&gt;
*ID 423200 - 423999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 424000 - 424049: A3sys - Mon-Dolibarr (http://www.mon-dolibarr.fr) by Philazerty&lt;br /&gt;
*ID 424050 - 424099: Pragma-tech (www.pragma-tech.fr)&lt;br /&gt;
*ID 424100 - 424149: Ohoo Solutions (http://www.ohoosolutions.com)&lt;br /&gt;
*ID 424150 - 424199: DAGARCAM Informática (https://www.dagarcam.com/)&lt;br /&gt;
*ID 424200 - 424999: Lab51 (https://github.com/lab51org)&lt;br /&gt;
*ID 425000 - 425999: Sébastien SERRE Thivinfo (www.thivinfo.com)&lt;br /&gt;
*ID 426000 - 426099: Arkesis-Solution&lt;br /&gt;
*ID 426100 - 426149: GetLandy (www.getlandy.com)&lt;br /&gt;
*ID 426150 - 426649: OOB Software&lt;br /&gt;
*ID 426650 - 426849: Soft-Task Serviços e Sistemas (www.soft-task.com.br)&lt;br /&gt;
*ID 426850 - 426999: Bruno Caldas (https://github.com/BCaldas)&lt;br /&gt;
*ID 427000 - 427999: Kevin GUERRIER (alias xcl.saian)&lt;br /&gt;
*ID 428000 - 428099: af83&lt;br /&gt;
*ID 428100 - 428199: Arnaud Serrut - Adalon&lt;br /&gt;
*ID 428200 - 428249: imschweiler consulting (http://www.imschweiler-consulting.de&#039;&#039;&#039;&amp;lt;nowiki/&amp;gt;&#039;&#039;&#039;)&lt;br /&gt;
*ID 428250 - 428299: AL1FO&lt;br /&gt;
*ID 428300 - 428349: Federico García-Patiño Barbolani (&amp;lt;federico.garcia.patino@gmail.com&amp;gt;)&lt;br /&gt;
*ID 428350 - 428399: INTM Groupe - France (www.intm.com)&lt;br /&gt;
*ID 428400 - 428449: Nick Fragoulis - Greece&lt;br /&gt;
*ID 428450 - 428499: Letusgeek - France&lt;br /&gt;
*ID 428500 - 428549: hkwhitten - USA&lt;br /&gt;
*ID 428550 - 428999: SmartOne&lt;br /&gt;
*ID 429000 - 429999: induslab&lt;br /&gt;
*ID 430000 - 430099: Mixity sprl (www.mixity.be)&lt;br /&gt;
*ID 430100 - 430199: sgiraud&lt;br /&gt;
*ID 430200 - 430299: Merlion TI (www.merlion-si.com.br)&lt;br /&gt;
*ID 430300 - 431299: Libre Expert (www.libre-expert.com)&lt;br /&gt;
*ID 431300 - 431399: ptibogxiv (www.ptibogxiv.net)&lt;br /&gt;
*ID 431400 - 431499: Befox (www.befox.fr)&lt;br /&gt;
*ID 431500 - 431599: rue Béjo (www.ruebejo.fr)&lt;br /&gt;
*ID 431600 - 431699: Avizzeo (www.avizzeo.com)&lt;br /&gt;
*ID 431700 - 432199: Multisistemas (www.multisistemas.com.sv)&lt;br /&gt;
*ID 432200 - 432399: Burbuja - Chile (www.burbuja.cl)&lt;br /&gt;
*ID 432400 - 433399: INOVEA CONSEIL (https://www.inovea-conseil.com)&lt;br /&gt;
*ID 433400 - 434399: Rachid HRICH - Maroc (HricH ServiceS.)&lt;br /&gt;
*ID 434400 - 435399: Lance Bleakley - LanceIT (www.lanceit.net)&lt;br /&gt;
*ID 435400 - 435999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 436000 - 436099: SOWEBIO (www.soweb.io)&lt;br /&gt;
*ID 436100 - 436199: CAP-REL (www.cap-rel.fr)&lt;br /&gt;
*ID 436200 - 436300: TDE-INFORMATIQUE (www.tde-informatique.fr)&lt;br /&gt;
*ID 436301 - 436349: Evarisk ([https://www.evarisk.com/id-module-dolibarr/ www.evarisk.com])&lt;br /&gt;
*ID 436350 - 436399: Eoxia ([https://www.eoxia.com/dolibarr/modules/ www.eoxia.com])&lt;br /&gt;
*ID 436400 - 437399: Mohamed AHERDANE - Morocco - IT Consultant ( www.wave.ma )&lt;br /&gt;
*ID 437400 - 437449: Martin Neubauer - Germany&lt;br /&gt;
*ID 437450 - 437599: Club1click (www.club1click.es)&lt;br /&gt;
*ID 437600 - 437629: Coulon Vincent (https://github.com/HoverEpic)&lt;br /&gt;
*ID 437630 - 437649: Aytechnet (https://www.aytechnet.fr/) - François Pons&lt;br /&gt;
*ID 437650 - 437699: LibreMaster (https://libremaster.com) - Christophe T.&lt;br /&gt;
*ID 437700 - 437749: STELLAR Broadband (https://www.stellarbb.com) - U.S.A. - Philip Laycock&lt;br /&gt;
*ID 437750 - 437799: DIGITA.LU Ajous Solutions&lt;br /&gt;
*ID 437800 - 437850: iProspective (https://iprospective.fr) - Mathieu Moulin&lt;br /&gt;
*ID 437851 - 437900: Theobald Groupe.&lt;br /&gt;
*ID 437901 - 437950: Neuronnexion (http://neuronnexion.coop)&lt;br /&gt;
*ID 437951 - 437952: jmbc - APIA-ASSO (https://www.apia-asso.fr)&lt;br /&gt;
*ID 437953 - 438002: IPCZEN SARL (https://www.ipczeninformatique.fr/)&lt;br /&gt;
*ID 438003 - 438052: FESF IT Department (https://fesf.org.pk)&lt;br /&gt;
*ID 438053 - 438103: Pilot Engineering team&lt;br /&gt;
*ID 438104 - 438153: u2042 (https://u2042.com)&lt;br /&gt;
*ID 438154 - 438204: Djair E Pereira (ocultooooo@gmail.com) - Brasil&lt;br /&gt;
*ID 438205 - 438255: yoandm (https://yoandm.com)&lt;br /&gt;
*ID 438256 - 438299: Free&lt;br /&gt;
*ID 438300 - 438399: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 438400 - 439399: Tetras Libre - France - Développement logiciels libres (www.tetras-libre.fr)&lt;br /&gt;
*ID 439400 - 440399: Dolibarr-pro - France - Développement Dolibarr (www.dolibarr-pro.com)&lt;br /&gt;
*ID 440400 - 441399: Quidlab Co., Ltd - Thailand - ( www.quidlab.com )&lt;br /&gt;
*ID 441400 - 442399: Ide@log - France - (https://www.idealog-info.net) - Laurent Leblanc&lt;br /&gt;
*ID 442400 - 443399: Valerio Bianchi (www.valeriobianchi.com)&lt;br /&gt;
*ID 443400 - 444399: delassalle - France - (www.delassalle.fr) - Joseph Delassalle&lt;br /&gt;
*ID 444400 - 445399: Webartis - Maroc - (www.webartis.net) - François Dry&lt;br /&gt;
*ID 445400 - 445499: SCOP Au-delà des nuages - France&lt;br /&gt;
*ID 445500 - 445549: X Net Systems - Egypt - (https://www.xneteg.com)&lt;br /&gt;
*ID 445550 - 445999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 446000 - 446999: iouston (http://www.iouston.com) - France - Julien Marchand&lt;br /&gt;
*ID 447000 - 447999: rSanjoSEO - Rafael San José Tovar (www.rsanjoseo.com) - Spain&lt;br /&gt;
*ID 448000 - 448999: Code 42 (www.code42.fr)&lt;br /&gt;
*ID 449000 - 449999: TakePOS (www.takepos.com)&lt;br /&gt;
*ID 450000 - 450999: Pierre ARDOIN&lt;br /&gt;
*ID 451000 - 451999: Éditeur depordi.fr&lt;br /&gt;
*ID 452000 - 452999: Dylan NAKONG&lt;br /&gt;
*ID 453000 - 453999: Menahd Ouchenir - France - menahd-ouchenir.com&lt;br /&gt;
*ID 454000 - 454999: Withheld - Canada&lt;br /&gt;
*ID 455000 - 455999: Gaëtan MAISON - Info Libre @ Dom - France (https://www.infolibreadom.com)&lt;br /&gt;
*ID 456000 - 456999: Laurent LEBLEU - B.L.C. - Blue Line Company - Lille - France (www.bluelinecompany.fr/dolibarr)&lt;br /&gt;
*ID 457000 - 457999: Sébastien BOUCHER&lt;br /&gt;
*ID 458000 - 458999: Lester HERNÁNDEZ - Argentina - (freelancerlrhd@gmail.com)&lt;br /&gt;
*ID 459000 - 459999: Infopen - France&lt;br /&gt;
*ID 460000 - 460049: torvista - Spain&lt;br /&gt;
*ID 460050 - 460999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 461000 - 461999: MEGALOGI - Maroc (www.erpcloud.ma)&lt;br /&gt;
*ID 462000 - 462999: Making Digital (www.making-digital.fr) - France&lt;br /&gt;
*ID 463000 - 463999: linx s.r.l.s.&lt;br /&gt;
*ID 464000 - 464999: NimbleCubed Inc. (www.nimblecubed.com)&lt;br /&gt;
*ID 465000 - 465999: Artefacts - CourantAlternatif&lt;br /&gt;
*ID 466000 - 466999: CDM Consultores - (www.cdm.guru)&lt;br /&gt;
*ID 467000 - 467999: M71 Service GmbH - (www.m71-service.de)&lt;br /&gt;
*ID 468000 - 468049: Clément Segonzac - France (clement.segonzac@gmail.com)&lt;br /&gt;
*ID 468050 - 468099: Flavien Belli - France (https://github.com/Marshlyin || belliflaviencontactpro@gmail.com)&lt;br /&gt;
*ID 468100 - 468119: Chl (https://code.bugness.org/Dolibarr)&lt;br /&gt;
*ID 468120 - 468169: Commotron GmbH (https://www.commotron.com/)&lt;br /&gt;
*ID 468170 - &#039;&#039;&#039;468219&#039;&#039;&#039;: Infans Group (franck.lauby@infans.fr)&lt;br /&gt;
*ID &#039;&#039;&#039;468175&#039;&#039;&#039; - &#039;&#039;&#039;468199&#039;&#039;&#039;: Gaëlle Rauffet - France (kiwiscan.net)&lt;br /&gt;
*ID &#039;&#039;&#039;468200&#039;&#039;&#039; - 468249: Paulo Oliveira - Brasil (paulorcdo@gmail.com)&lt;br /&gt;
*ID 468250 - 468269:  CD-Systems - France (https://www.cd-systems.fr)&lt;br /&gt;
*ID 468270 - 468299: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 468300 - 468349: Uvensys - Germany (https://uvensys.de)&lt;br /&gt;
*ID 468350 - 468399: Laudeco - Belgium (http://github.com/laudeco)&lt;br /&gt;
*ID 468400 - 468449: Alexis LAURIER - France (https://www.alexislaurier.fr)&lt;br /&gt;
*ID 468450 - 468499: Mehdi Belkhayat - Maroc (https://opensi.ma)&lt;br /&gt;
*ID 468500 - 468599: InvIT GmbH - Germany (https://invit.sh)&lt;br /&gt;
*ID 468600 - 468649: Ricardo Sequeira - Portugal (https://ricardo-sequeira.com)&lt;br /&gt;
*ID 468650 - 468699: J-IT - Belgique (https://www.j-it.be)&lt;br /&gt;
*ID 468700 - 468749: Fidesio - France (https://www.fidesio.com/)&lt;br /&gt;
*ID 468750 - 468799: Sgestion - Spain (http://www.sgestion.net/)&lt;br /&gt;
*ID 468800 - 468849: Denis JULIEN - Brasil (matrinxa@free.fr)&lt;br /&gt;
*ID 468850 - 468899: Mmariko - Module GED - Effios&lt;br /&gt;
*ID 468900 - 468949: Maazou Amadou Abdoul aziz - Maroc (yaronfada@gmail.com)&lt;br /&gt;
*ID 468950 - 468999: Alexis LAURIER - France (https://www.alexislaurier.fr)&lt;br /&gt;
*ID 469000 - 469049: John Livingston (https://github.com/JohnXLivingston/)&lt;br /&gt;
*ID 469050 - 469099: Macrorom ICT-services (https://macrorom.nl/)&lt;br /&gt;
*ID 469100 - 469149: HABOT IT - France (https://habot.it)&lt;br /&gt;
*ID 469150 - 469159: CaribbeanConsult.Com CCC - France Guadeloupe (https://dolibarr.ccc.gp)&lt;br /&gt;
*ID 469160 - 469171: GMBG - Portugal&lt;br /&gt;
*ID 469172 - 469199: BGi Lda - Portugal&lt;br /&gt;
*ID 469200 - 469949: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 469950 - 469999: Goldoweb (http://goldoweb.com)&lt;br /&gt;
*ID 470000 - 470999: Reindeer Digital (https://rdeer.cz)&lt;br /&gt;
*ID 471000 - 471099: CAP-REL (www.cap-rel.fr)&lt;br /&gt;
*ID 471100 - 471199: M. Morillon&lt;br /&gt;
*ID 471200 - 471209: Pablo Nuñez&lt;br /&gt;
*ID 471210 - 471249: FANEL A.Ş  (https://www.fanel.com.tr)  [[mail@fanel.com.tr]]&lt;br /&gt;
*ID 471250 - 480999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 481000 - 481999: Alhaidab-ITIS (https://alhaidab.dolibarr.sd)&lt;br /&gt;
*ID 482000 - 482999: Basix IT (https://www.basix.de)&lt;br /&gt;
*ID 483000 - 483049: SASCO SpA (https://www.sasco.cl)&lt;br /&gt;
*ID 483050 - 483099: WIP Engineering (https://www.wip-gmbh.com)&lt;br /&gt;
*ID 483100 - 483149: J.Kaiser&lt;br /&gt;
*ID 483150 - 483199: CodLines (https://www.codlines.com)&lt;br /&gt;
*ID 483200 - 484999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 485000 - 485049: Gest Info Service Plus (contact@gest-plus.fr)&lt;br /&gt;
*ID 485050 - 489999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 490000 - 490049: VOLD (https://vold.lu)&lt;br /&gt;
*ID 490050 - 490999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 491000 - 491049: NORD ERP CRM (https://www.nord-erp-crm.fr/)&lt;br /&gt;
*ID 491050 - 491099: KJR-online (https://kjr-online.fr/)&lt;br /&gt;
*ID 491100 - 491149: eNova&lt;br /&gt;
*ID 491150 - 491199: App 4 Business&lt;br /&gt;
*ID 491200 - 491249: Mil24 (http://www.mil24.com.py)&lt;br /&gt;
*ID 491250 - 491299: M2AM&lt;br /&gt;
*ID 491300 - 491349: luigifab (https://github.com/luigifab), also reuse id:105009 for Sentry fork&lt;br /&gt;
*ID 491350 - 491399: Frédéric France (https://github.com/frederic34)&lt;br /&gt;
*ID 491400 - 491449: E-dem (https://www.e-dem.com/)&lt;br /&gt;
*ID 491450 - 491499: Burofree (https://burofree.es)&lt;br /&gt;
*ID 491500 - 491549: EMDELEN (https://emdelen.fr/)&lt;br /&gt;
*ID 491550 - 491999: &#039;&#039;&#039;Free (take ranges of 50 only please at once, ask us for more)&#039;&#039;&#039;&lt;br /&gt;
*ID 492000 - 492999: Anura (https://www.anura.fr/)&lt;br /&gt;
*ID 493000 - 493050: Bourez Bastien EI (https://bastien-b.fr/)&lt;br /&gt;
*ID 499000 - 499999: IT GENIUSES (https://www.itgeniuses.com)&lt;br /&gt;
&lt;br /&gt;
DO NOT ADD RECORD HERE, PLEASE FILL HOLES FIRST !!!!&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=ID &amp;gt; 500000=&lt;br /&gt;
&lt;br /&gt;
This range can&#039;t be reserved. It is a common range. If you don&#039;t plan to distribute your module, you can use an ID in this range with no need to reserve it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Flag en}}If you don&#039;t already have reserved ids and need some, please don&#039;t use hazardous number and use a number higher than 500000, but it is better to ask a wiki account, and reserve your own range by editing the  100000 - 499999 range (50 ids at once).&lt;br /&gt;
&lt;br /&gt;
{{Flag fr}}Si vous n&#039;avez pas de numéros réservés et en avez besoin, n&#039;utilisez pas de chiffres au hasard et utilisez une valeur supérieure à 500000, toutefois, il est préférable d&#039;obtenir un compte wiki, et  réserver vous-même votre plage en ajoutant votre entrée dans la zone 100000 - 499999 (par lot de 50 d&#039;abord).{{Flag sp}}Si no dispone de número reservado y necesita, no use cifras redondeadas y usa un valor superior a 500000. Si tiene una cuenta wiki, puede reservarse usted mismo sus id añadiendo su entrada en la zona 100000 - 499999.&lt;br /&gt;
&lt;br /&gt;
{{Flag zh}}如果您没有预留ID，并且现在需要预留，请不要使用随机数字，要使用大于500000的值。但最好是获得一个wiki帐户，并通过在字段100000-499999中添加您的条目来保留您的ID范围（第一次限制为50个ID）。{{Flag tr}}Bu aralık rezerve edilemez. Bu ortak bir aralıktır. Modülünüzü dağıtmayı planlamıyorsanız, bu aralıktaki bir kimliği rezerve etmenize gerek kalmadan kullanabilirsiniz.&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=53383</id>
		<title>Module Gestionnaire de menu abbes FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=53383"/>
		<updated>2022-04-06T11:24:59Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* Résumé :[edit | edit source] */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestionnaire de menu abbes&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
=&amp;lt;nowiki&amp;gt;Résumé :[edit | edit source]&amp;lt;/nowiki&amp;gt;=&lt;br /&gt;
Le gestionnaire de menu Abbes a été le premier outil dans sa catégorie. Il a été créé dans le but de faciliter la navigation dans les menus de Dolibarr, en simplifiant la gestion des éléments de menu et en offrant toutes les possibilités de personnalisation imaginables. &lt;br /&gt;
&lt;br /&gt;
Il permet notamment de remplacer le menu de gauche par un menu déroulant qui apparaît au passage de la souris sur les éléments du menu du haut, puis d&#039;accéder aux éléments du menu de gauche en un clic au lie de deux ou plus. Il permet aussi de fixer la barre de menus de haut dans les pages de listings d’éléments&lt;br /&gt;
&lt;br /&gt;
La dernière version inclut la sauvegarde et restauration de menus et les ascenseurs dans les menus déroulants.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/menupar.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Autres&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Page de configuration de MenuPar]]&lt;br /&gt;
On a une liste de 4 paramètres avec un point d&#039;interrogation qui affiche une explication détaillée dés qu&#039;on place la souris dessus. :&lt;br /&gt;
&lt;br /&gt;
#Afficher une entrée de menu pour chaque catégorie de produits : Par défaut, il existe seulement une entrée dans le menu pour lister les produits. Activez cette option pour afficher une entrée pour chaque catégorie de produits pour les utilisateurs définis par l&#039;option USERCAT.&lt;br /&gt;
#USERCAT	Utilisateurs de menus de catégories de produits : Ce paramètre contient tous les login des utilisateurs ayant une entrée dans les de menus de catégories de produits.&lt;br /&gt;
#Ascenseurs : Affiche des ascenseurs dans les menus déroulants&lt;br /&gt;
#Longueur de la liste déroulante :  Longueur fixe de la liste déroulante à ascenseurs en 1 et 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation et Utilisation=&lt;br /&gt;
L&#039;activation du gestionnaire de menu Abbes est distincte de l&#039;activation du module. Elle se fait à la suite de celle-ci dans le menu accueil	configuration	menus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation du gestionnaire de menu abbes]]&lt;br /&gt;
Une fois le gestionnaire de menu activé, la colonne de gauche disparaît immédiatement et les menus déroulants correspondants aux éléments du menu du haut apparaissent dés qu&#039;on positionne la souris dessus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menu accueil]]&lt;br /&gt;
Le quatre éléments du haut du menu accueil sont dépliables. Ce qui permet d&#039;accéder du premier coup aux éléments de menu finaux.&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menu Produits|Services]]&lt;br /&gt;
Comme tous les éléments de menus de gauche sont affichés sur un seul niveau, leurs nombres dans les menus déroulants peut-être important. On peut alors, configurer le gestionnaire pour leur associer un ascenseur et limiter leur pour tous les menus déroulants autres le menu accueil. Sur l&#039;image, on voit aussi les éléments permettant de lister les produits par catégorie disponibles à travers le deuxième paramètre de configuration. &lt;br /&gt;
&lt;br /&gt;
=Fonctions avancées :=&lt;br /&gt;
&lt;br /&gt;
==Edition de menu :==&lt;br /&gt;
Le gestionnaire de menu MenuPar est basé sur le menu Auguria. On peut donc ajouter, modifier, ou supprimer les éléments de menu en accédant à accueil	configuration	menus	Edition de menu :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edition du menu]]&lt;br /&gt;
&lt;br /&gt;
==Sauvegarde de menus:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des modifications dans la structure du menu, il est possible de sauvegarder les changements effectués et les recharger au besoin. Cette fonction est accessible sur depuis la page de configuration du module à travers le bouton &#039;&#039;&#039;Sauvegarde/Restauration de la table de menus&#039;&#039;&#039; :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Sauvegarde de menus]]&lt;br /&gt;
La fonction de sauvegarde de menus de MenuPar est en tout point identique à celle de sauvegarde de la base de données de Dolibarr. La différence réside en ce que la fonction de sauvegarde de menus de MenuPar fait la sauvegarde de la seule table de menus llx_menu et l&#039;existence d&#039;un bouton de restauration à coté de chaque fichier de sauvegarde.&lt;br /&gt;
=Autres sources d&#039;information :=&lt;br /&gt;
&lt;br /&gt;
Page d&#039;informations sur le module sur Dolipar.org :http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Site de demo : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212 &lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307 &lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&amp;lt;nowiki/&amp;gt;Lien sur Dolistore :[https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-MenuPar.html https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html]&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=DevCamp_Valence_2021_Organization&amp;diff=52075</id>
		<title>DevCamp Valence 2021 Organization</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=DevCamp_Valence_2021_Organization&amp;diff=52075"/>
		<updated>2021-09-22T05:10:46Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* Attendees registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TemplateAssoEn}}&lt;br /&gt;
[[Category:DevCamps]]&lt;br /&gt;
&lt;br /&gt;
=Event=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dolibarr DevCamp 2021&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3rd edition of the Dolibarr DevCamp in Valence, &#039;&#039;&#039;reserved to Dolibarr community major developers or contributors&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png]] &#039;&#039;&#039;Only 35 seats available: Priority to [https://partners.dolibarr.org Preferred Partner] will be done if we have more.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Warning.png]] &#039;&#039;&#039;Warning, a Covid health pass is mandatory to attend this event&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Dates==&lt;br /&gt;
&lt;br /&gt;
October 2021, 21th - 24th&lt;br /&gt;
&lt;br /&gt;
==Location==&lt;br /&gt;
&lt;br /&gt;
Ibis Hotel, 2-4 avenue de la Gare, Alixan (near Valence), France&lt;br /&gt;
&lt;br /&gt;
==How to come==&lt;br /&gt;
&lt;br /&gt;
*Airplane: Lyon airport then train to Valence TGV&lt;br /&gt;
*Train: Valence TGV train station&lt;br /&gt;
*Car: Exit the A7 highway at Valence North or Valence South and follow TGV Station (Gare TGV)&lt;br /&gt;
&lt;br /&gt;
==Main languages==&lt;br /&gt;
French / English&lt;br /&gt;
&lt;br /&gt;
==Organizers==&lt;br /&gt;
&lt;br /&gt;
*Main: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
*Hosting: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
*Lodging and Catering: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
&lt;br /&gt;
==Lodging and catering==&lt;br /&gt;
&lt;br /&gt;
Ibis Hotel rooms and restaurant&lt;br /&gt;
&lt;br /&gt;
Saturday evening in a restaurant &amp;quot;La cuisine&amp;quot; in Valence center&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
==Day 1 (Thursday)==&lt;br /&gt;
&lt;br /&gt;
*2:00 PM : Devcamp starts&lt;br /&gt;
&lt;br /&gt;
==Day 2 (Friday)==&lt;br /&gt;
&lt;br /&gt;
*TBD&lt;br /&gt;
&lt;br /&gt;
==Day 3 (Saturday)==&lt;br /&gt;
&lt;br /&gt;
*10:00 am - 12:00 am : Bug fix contest&lt;br /&gt;
&lt;br /&gt;
==Day 4 (Sunday)==&lt;br /&gt;
&lt;br /&gt;
*12:00 PM : Devcamp ends&lt;br /&gt;
&lt;br /&gt;
=Topics and issues to work on=&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/Dolibarr/dolibarr/labels/Bug Bug fix contest]&lt;br /&gt;
*Sharing of good practices throughout the developers community&lt;br /&gt;
*Discussion on any topics, like [https://github.com/Dolibarr/dolibarr/issues?q=is%3Aopen+is%3Aissue+label%3A%22Priority+Top+Strategic%22 Top strategic Feature Requests]...&lt;br /&gt;
&lt;br /&gt;
=Validate your registration=&lt;br /&gt;
&lt;br /&gt;
[[File:warning.png]] To validate your registration (required to have your registration validated), you must make a &#039;&#039;&#039;payment of 50 € per person&#039;&#039;&#039; before the 30th of september [https://admin.dolibarr.org/public/eventorganization/attendee_register.php?id=9&amp;amp;type=global&amp;amp;securekey=13a8cfcfc13b9366340809bd7a299406 from this page]&lt;br /&gt;
&lt;br /&gt;
If you can&#039;t pay using a credit card, fill the form and cancel the payment process. Then contact us at tresorier@dolibarr.org to make your payment with a bank transfer.&lt;br /&gt;
&lt;br /&gt;
During the devcamp, the hostel may be paid by the Dolibarr association . Take a look at the rules defined for what is paid by the Dolibarr foundation for DevCamp  [https://wiki.dolibarr.org/index.php/Remboursement_frais#Formule_de_remboursement_.22DevCamp.22_Dolibarr available here]&lt;br /&gt;
&lt;br /&gt;
=Attendees registration=&lt;br /&gt;
&lt;br /&gt;
This list contains the registration requests. [https://www.dolibarr.org/fr/dolibarr-devcamp-valence-2021.php See this page to get the status of registration].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Laurent magnin.jpg||40px]] + 3 from Eoxia (Theo, Nicolas, Jules)&lt;br /&gt;
&lt;br /&gt;
*Lastname Firstname: Laurent Magnin&lt;br /&gt;
*Age: 47&lt;br /&gt;
*Coming from (town, country): Montpellier (34), France&lt;br /&gt;
*Arrival date and hour: Thursday 12h00&lt;br /&gt;
*Departure date and hour: Sunday 14h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car from Montpellier&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: laurent@eoxia.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Maxime_Kohlhaas.png|40px]] + 3 from ATM Consulting (John, Léna and Florian)&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: [[Maxime Kohlhaas]]&lt;br /&gt;
*Age: 34&lt;br /&gt;
*Coming from (town, country): Valence (26000), France&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Sunday 12:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): No&lt;br /&gt;
*Contact email: maxime@atm-consulting.fr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Laurent Destailleur.png|40px]] + 1 from DoliCloud (Laurent + Lucas)&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: [[Laurent Destailleur]]&lt;br /&gt;
*Age: 48&lt;br /&gt;
*Coming from (town, country): Pessac (33600), France&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Sunday 12:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): TBD&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): Common booked hotel&lt;br /&gt;
*Book hotel for me (yes/no): Yes&lt;br /&gt;
*Contact email: contact@dolicloud.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Nicolas Zabouri.png|left|52x52px]]&lt;br /&gt;
+ 2 from Inovea Conseil (Florian, Ilies)&lt;br /&gt;
&lt;br /&gt;
*Lastname Firstname: [[Nicolas Zabouri]]&lt;br /&gt;
*Age: 39&lt;br /&gt;
*Coming from (town, country): Charmes (88)&lt;br /&gt;
*Arrival date and hour: Thursday 12h00&lt;br /&gt;
*Departure date and hour: Sunday 14h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car from Charmes&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: info@inovea-conseil.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: Éric Seigne (CAP-REL)&lt;br /&gt;
*Age: 42&lt;br /&gt;
*Coming from (town, country): Alès (30), France&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Maybe Sunday 12:00 (to be precised)&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Contact email: eric.seigne@cap-rel.fr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: Andreu Bisquerra Gaya&lt;br /&gt;
*Age: 38&lt;br /&gt;
*Coming from (town, country): Mallorca, SPAIN (I will come with PCR)&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Maybe Sunday 12:00 (to be precised)&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): Yes&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Contact email: jove@bisquerra.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
+ 4 from Code 42 (Eric, F***, C****, H****)&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: Eric GROULT&lt;br /&gt;
*Age: 40&lt;br /&gt;
*Coming from (town, country): NANTES (44100), France&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Sunday 12:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Train &amp;amp; Plane&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Contact email: eric@code42.fr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: Philippe GRAND&lt;br /&gt;
*Age: 00&lt;br /&gt;
*Coming from (town, country): OLIVET, France&lt;br /&gt;
*Arrival date and hour: Thursday 14:00&lt;br /&gt;
*Departure date and hour: Maybe Sunday 12:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): Yes&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Contact email: philippe.grand@atoo-net.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Company : Groupe Theobald&lt;br /&gt;
*Firstname Lastname: Franck MOREAU&lt;br /&gt;
*Age: 43&lt;br /&gt;
*Coming from (town, country): Thionville (57), France&lt;br /&gt;
*Arrival date and hour: Thursday 10h00&lt;br /&gt;
*Departure date and hour: Sunday 16h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car from Thionville&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: moreauf@theobald-groupe.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : IT-BS&lt;br /&gt;
*Firstname Lastname: Nicolas SILOBRE&lt;br /&gt;
*Age: 46&lt;br /&gt;
*Coming from (town, country): Belfort (90), France&lt;br /&gt;
*Arrival date and hour: Thursday 10h00&lt;br /&gt;
*Departure date and hour: Sunday 16h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: nicolas.silobre@it-bs.fr&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Company : Tiaris&lt;br /&gt;
*Firstname Lastname: Jean Heimburger&amp;lt;br /&amp;gt;&lt;br /&gt;
*Age: 61&lt;br /&gt;
*Coming from (town, country): Walscheid (57), France&lt;br /&gt;
*Arrival date and hour: Thursday 14h00&lt;br /&gt;
*Departure date and hour: Sunday 12h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: [[Mailto:jean.heimburger@tiaris.info|jean.heimburger@tiaris.info]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Florian Henry.png|left|52x52px]]&lt;br /&gt;
&lt;br /&gt;
*Company : Association Dolibarr&lt;br /&gt;
*Firstname Lastname: [[User:Florian_Henry]]&lt;br /&gt;
*Age: 40&lt;br /&gt;
*Coming from (town, country): France&lt;br /&gt;
*Arrival date and hour: Thursday 14h00&lt;br /&gt;
*Departure date and hour: Friday 17h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): None / Self&lt;br /&gt;
*Book hotel for me (yes/no): no&lt;br /&gt;
*Email for contact: [[Mailto:jean.heimburger@tiaris.info|jean.heimburger@tiaris.info]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : Opendsi&lt;br /&gt;
*Firstname Lastname: Philippe Scoffoni&lt;br /&gt;
*Age: 53&lt;br /&gt;
*Coming from (town, country): Lyon&lt;br /&gt;
*Arrival date and hour: Thursday 14h00&lt;br /&gt;
*Departure date and hour: Friday 18h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: [[Mailto:pscoffoni@open-dsi.fr]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : Net Logic&lt;br /&gt;
*Firstname Lastname: Gilles Poirier&lt;br /&gt;
*Age: 60&lt;br /&gt;
*Coming from (town, country): Noisy Le grand&lt;br /&gt;
*Arrival date and hour: Thursday 14h00&lt;br /&gt;
*Departure date and hour: Friday 17h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: [[Mailto:gilles.poirier@netlogic.fr]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : Net Logic&lt;br /&gt;
*Firstname Lastname: Frédéric France&lt;br /&gt;
*Age: 55&lt;br /&gt;
*Coming from (town, country): Montpellier (St Drézéry)&lt;br /&gt;
*Arrival date and hour: Thursday 14h00&lt;br /&gt;
*Departure date and hour: Friday 17h00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: [[Mailto:frederic.france@netlogic.fr]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : Oscss Shop&lt;br /&gt;
*Firstname Lastname: Norbert PENEL&lt;br /&gt;
*Age: 43&lt;br /&gt;
*Coming from (town, country): Grenoble&lt;br /&gt;
*Arrival date and hour: Friday 9h00&lt;br /&gt;
*Departure date and hour: Sunday at the end of E.&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): No fish&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: [[Mailto:n.penel@oscss-shop.fr]]&lt;br /&gt;
&lt;br /&gt;
*Company : Oscss Shop&lt;br /&gt;
*Firstname Lastname: Aurélien IMHOF&lt;br /&gt;
*Age: 46&lt;br /&gt;
*Coming from (town, country): Chartres&lt;br /&gt;
*Arrival date and hour: Friday 11h00&lt;br /&gt;
*Departure date and hour: Sunday at the end of E.&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): No fish&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Company : Jeffinfo SARL&lt;br /&gt;
*Firstname Lastname: Olivier Geffroy&lt;br /&gt;
*Age: 44&lt;br /&gt;
*Coming from (town, country): Lille&lt;br /&gt;
*Arrival date and hour: Friday 9h00&lt;br /&gt;
*Departure date and hour: Sunday at the end of E.&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…):&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: jeff@jeffinfo.com&lt;br /&gt;
&lt;br /&gt;
*Company : Business Assistante&lt;br /&gt;
*Firstname Lastname: Stephanie Leman&lt;br /&gt;
*Age: 44&lt;br /&gt;
*Coming from (town, country): Lille&lt;br /&gt;
*Arrival date and hour: Friday 9h00&lt;br /&gt;
*Departure date and hour: Sunday at the end of E.&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…):&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: stephanie@businessassistante.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : PRAGMA-TECH&lt;br /&gt;
*Firstname Lastname: Barrouillet Nicolas&lt;br /&gt;
*Age: 44&lt;br /&gt;
*Coming from (town, country): PAU&lt;br /&gt;
&lt;br /&gt;
*Arrival date and hour: thursday 21st 20h00&lt;br /&gt;
*Departure date and hour: sunday 24th 07h30 morning&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…):&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: nicolas@pragma-tech.fr&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Company : Ab1 Consulting&lt;br /&gt;
*Firstname Lastname: Abbes Bahfir&lt;br /&gt;
*Age: 55&lt;br /&gt;
*Coming from (town, country): Marseille&lt;br /&gt;
&lt;br /&gt;
*Arrival date and hour: thursday 21st Moring&lt;br /&gt;
*Departure date and hour: sunday 24th Afternoon&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…):&lt;br /&gt;
*Accommodation (Common booking hotel/self…): Common booking&lt;br /&gt;
*Book hotel for me (yes/no): yes&lt;br /&gt;
*Email for contact: bafbes@gmail.com&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Ab1consulting_logo.png&amp;diff=50396</id>
		<title>File:Ab1consulting logo.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Ab1consulting_logo.png&amp;diff=50396"/>
		<updated>2021-04-19T20:07:11Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: logo ab1consulting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
logo ab1consulting&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=DevCamp_Valence_2020_Organization&amp;diff=48490</id>
		<title>DevCamp Valence 2020 Organization</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=DevCamp_Valence_2020_Organization&amp;diff=48490"/>
		<updated>2020-10-07T11:19:35Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* Attendees registration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOINDEX__&lt;br /&gt;
{{TemplateAssoEn}}&lt;br /&gt;
[[Category:DevCamps]]&lt;br /&gt;
&lt;br /&gt;
=Event=&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dolibarr Christmas DevCamp 2020&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
3rd edition of the Christmas Devcamp in Valence after 2016 and 2018, strongly technical oriented, goal is to work on bug fixes for Dolibarr 13.0 ;)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;! Places are limited !&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Dates==&lt;br /&gt;
&lt;br /&gt;
November 2020, 27-28-29&lt;br /&gt;
&lt;br /&gt;
==Location==&lt;br /&gt;
&lt;br /&gt;
Ibis Hotel, 2-4 avenue de la Gare, Alixan (near Valence), France (https://all.accor.com/hotel/8717/index.fr.shtml)&lt;br /&gt;
&lt;br /&gt;
==How to come==&lt;br /&gt;
&lt;br /&gt;
*Airplane: Lyon airport then train to Valence TGV&lt;br /&gt;
*Train: Valence TGV train station&lt;br /&gt;
*Car: Exit the A7 highway at Valence North or Valence South and follow TGV Station (Gare TGV)&lt;br /&gt;
&lt;br /&gt;
==Main languages==&lt;br /&gt;
&lt;br /&gt;
*French / English&lt;br /&gt;
&lt;br /&gt;
==Organizers==&lt;br /&gt;
&lt;br /&gt;
*Main: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
*Hosting: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
*Lodging and Catering: ATM Consulting (maxime@atm-consulting.fr)&lt;br /&gt;
&lt;br /&gt;
==Lodging and catering==&lt;br /&gt;
&lt;br /&gt;
Meals and bedrooms will be provided during the devcamp by the Ibis hotel. Feel free to bring sweets and beverages at your convenience !&lt;br /&gt;
&lt;br /&gt;
=Planning=&lt;br /&gt;
&lt;br /&gt;
==Day 1 (Friday)==&lt;br /&gt;
&lt;br /&gt;
*14:00 - Devcamp begins !&lt;br /&gt;
*20:00 - Dinner&lt;br /&gt;
&lt;br /&gt;
==Day 2 (Saturday)==&lt;br /&gt;
&lt;br /&gt;
*09:00 - Devcamp continues !&lt;br /&gt;
*12:00 - Lunch&lt;br /&gt;
*20:00 - Dinner&lt;br /&gt;
&lt;br /&gt;
==Day 3 (Sunday)==&lt;br /&gt;
&lt;br /&gt;
*09:00 - Devcamp continues !&lt;br /&gt;
*12:00 - Lunch&lt;br /&gt;
*14:00 - Devcamp ends&lt;br /&gt;
&lt;br /&gt;
=Topics and issues to work on=&lt;br /&gt;
&lt;br /&gt;
*TakePOS present, roadmap and new TakePOS connector&lt;br /&gt;
&lt;br /&gt;
=Attendees registration=&lt;br /&gt;
[[File:Maxime_Kohlhaas.png|40px]] + ? from ATM Consulting&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname:[[Maxime Kohlhaas]]&lt;br /&gt;
*Age: 33&lt;br /&gt;
*Coming from (town, country): Valence (26000), France&lt;br /&gt;
*Arrival date and hour: Friday 12:00&lt;br /&gt;
*Departure date and hour: Sunday 16:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): No&lt;br /&gt;
*Contact email: maxime@atm-consulting.fr&lt;br /&gt;
&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname: Andreu Bisquerra Gaya&lt;br /&gt;
*Age: 37&lt;br /&gt;
*Coming from (town, country): Mallorca - Spain (I come from Spain, but I will come with a negative PCR)&lt;br /&gt;
*Arrival date and hour: Friday 12:00&lt;br /&gt;
*Departure date and hour: Sunday 16:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Car&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): Yes&lt;br /&gt;
*Contact email: jove@bisquerra.com&lt;br /&gt;
&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[[File:Laurent_Destailleur.png|40px]] + ? from NLTechno&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname:[[Laurent Destailleur]]&lt;br /&gt;
*Age: 48&lt;br /&gt;
*Coming from (town, country): Pessac (33600), France&lt;br /&gt;
*Arrival date and hour: Friday 15:00&lt;br /&gt;
*Departure date and hour: Sunday 14:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): Yes&lt;br /&gt;
*Contact email: contact@nltechno.com&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&lt;br /&gt;
*Firstname Lastname:[[Bahfir Abbes]]&lt;br /&gt;
*Age: 53&lt;br /&gt;
*Coming from (town, country): Algiers, Algeria&lt;br /&gt;
*Arrival date and hour: Thursday 15:00&lt;br /&gt;
*Departure date and hour: Sunday 14:00&lt;br /&gt;
*Transportation (Train/Bus/Car/Plane): Plane+Train&lt;br /&gt;
*Food (Special diet, allergies, vegetarian…): None&lt;br /&gt;
*Accommodation (Common booked hotel/self…): None&lt;br /&gt;
*Book hotel for me (yes/no): Yes&lt;br /&gt;
*Contact email: bafbes@gmail.com&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48464</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48464"/>
		<updated>2020-09-23T22:15:25Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo Gestor de menús Abbes ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestor de menús Abbes&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El Gestor de menús Abbes fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48463</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48463"/>
		<updated>2020-09-23T22:11:49Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo Gestor de menús Abbes ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestor de menús Abbes&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El Gestor de menús MenuPar fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48462</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48462"/>
		<updated>2020-09-23T22:10:57Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo Gestor de menús Abbes ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestor de menús Abbes&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El Gestor de menús MenuPar fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48461</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48461"/>
		<updated>2020-09-23T22:10:26Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo Gestor de menús Abbes ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=MenuPar&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El Gestor de menús MenuPar fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_MenuPar_ES&amp;diff=48460</id>
		<title>Module MenuPar ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_MenuPar_ES&amp;diff=48460"/>
		<updated>2020-09-23T22:08:19Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar ES to Module Gestor de menu Abbes ES&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Module Gestor de menu Abbes ES]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48459</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48459"/>
		<updated>2020-09-23T22:08:19Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar ES to Module Gestor de menu Abbes ES&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo MenuPar ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=MenuPar&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El administrador de menús MenuPar fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48458</id>
		<title>Module Gestor de menu Abbes ES</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestor_de_menu_Abbes_ES&amp;diff=48458"/>
		<updated>2020-09-23T22:07:56Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Módulo MenuPar ES}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=información=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=MenuPar&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Requisitos previos=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
&lt;br /&gt;
=Resumen:=&lt;br /&gt;
El administrador de menús MenuPar fue la primera herramienta en su categoría. Fue creado para facilitar la navegación en los menús de Dolibarr, simplificando la gestión de los elementos del menú y ofreciendo todas las posibilidades de personalización imaginables.&lt;br /&gt;
&lt;br /&gt;
=Instalación=&lt;br /&gt;
&lt;br /&gt;
*Descargue el archivo (.zip) del módulo  del sitio web www.dolistore.com o recupérelo de cualquier otra manera.&lt;br /&gt;
*Coloque el archivo en el directorio raíz de dolibarr o cree una carpeta personalizada en la raíz de dolibarr para colocarlo allí con todos sus módulos adicionales (si elige esta solución, recuerde descomentar las dos líneas del archivo conf en relación)&lt;br /&gt;
*Descomprima el archivo con el comando descomprimir module_menupar-X.Y.Z.zip&lt;br /&gt;
*La ubicación correcta del módulo debe ser del tipo: htdocs/custom/menupar.&lt;br /&gt;
*Vaya a la ubicación de instalación del módulo y otorgue privilegios de lectura y escritura al servidor PHP para los siguientes archivos:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
El módulo está operativo y se puede activar.&lt;br /&gt;
&lt;br /&gt;
=Configuración=&lt;br /&gt;
Para usar este módulo, primero debe activarlo. Para hacer esto, después de iniciar sesión con una cuenta de administrador, vaya a la página &amp;quot; &#039;&#039;&#039;Inicio - Configuración - Módulos&#039;&#039;&#039; &amp;quot;. El módulo aparece en la categoría &amp;quot;Otros&amp;quot;, haga clic en &amp;quot;Activar&amp;quot;. Aparece un pictograma al final de la línea del módulo, haga clic en él para acceder a la página de configuración específica de este módulo:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Página de configuración de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]Tenemos una lista de 4 parámetros con un signo de interrogación que muestra una explicación detallada tan pronto como colocamos el ratón sobre ella. :&lt;br /&gt;
&lt;br /&gt;
#Mostrar una entrada de menú para cada categoría de producto : De manera predeterminada, solo hay una entrada en el menú para enumerar los productos. Active esta opción para mostrar una entrada para cada categoría de producto para los usuarios definidos por la opción USERCAT.&lt;br /&gt;
#USERCAT→ Usuarios de de los menús de categorías de productos: este parámetro contiene todos los nombres de inicio de sesión de los usuarios con una entrada en los menús de categorías de productos.&lt;br /&gt;
#Scrolls: muestra los scrolls en menús desplegables&lt;br /&gt;
#Longitud de la lista desplegable: longitud fija de la lista desplegable con scrolls en 1 y 1000 píxeles.&lt;br /&gt;
&lt;br /&gt;
=Activación y uso=&lt;br /&gt;
La activación del administrador de menús de MenuPar es independiente de la activación del módulo. Se hace trás la activación del módulo en el menú de configuración del menú de inicio :[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activación del administrador de menús de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Una vez que se activa el administrador de menús, la columna izquierda desaparece inmediatamente y los menús desplegables correspondientes a los elementos en el menú superior aparecen tan pronto como se coloca el ratón sobre él :[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menú principal|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]Los cuatro elementos en la parte superior del menú de inicio son expandibles. Esto le da acceso inmediato a los elementos finales del menú.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menú Productos|Servicios|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Dado que todos los elementos del menú de la izquierda se ven en un solo nivel, sus números en los menús desplegables pueden ser significativos. Luego podemos configurar el administrador para asociar un scroll con ellos y limitarlos para todos los menús desplegables que no sean el menú de inicio. En la imagen, también vemos los elementos que permiten enumerar los productos por categoría disponibles a través del segundo parámetro de configuración.&lt;br /&gt;
&lt;br /&gt;
=Funciones avanzadas:=&lt;br /&gt;
&lt;br /&gt;
==Edición del menú:==&lt;br /&gt;
El administrador de menús de MenuPar se basa en el menú de Auguria. Por lo tanto, podemos agregar, modificar o eliminar elementos del menú accediendo a principal→configuración→menús→edición de menu :[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edición del menú|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Guardar menús:==&lt;br /&gt;
Después de realizar cambios en la estructura del menú, es posible guardar los cambios realizados y volver a cargarlos cuando lo necesitamos. Se puede acceder a esta función desde la página de configuración del módulo a través del botón &#039;&#039;&#039;Copia de seguridad/Restaurar la tabla de menús&#039;&#039;&#039; :[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Guardar menús|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]La función de copia de seguridad del menú de MenuPar es idéntica en todos los aspectos a la de la copia de seguridad de la base de datos Dolibarr. La diferencia consta en que la función de copia de seguridad del menú MenuPar realiza una copia de seguridad de la única tabla de menú llx_menu y la existencia de un botón de restauración junto a cada archivo de copia de seguridad.&lt;br /&gt;
&lt;br /&gt;
=Otras fuentes de información:=&lt;br /&gt;
Página de información del módulo en Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Sitio de demostración : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Enlace en Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Módulos complementarios]]&lt;br /&gt;
{{DEFAULTSORT:Módulo MenuPar ES}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_MenuPar_EN&amp;diff=48457</id>
		<title>Module MenuPar EN</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_MenuPar_EN&amp;diff=48457"/>
		<updated>2020-09-23T22:05:05Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar EN to Module Abbes menu manager EN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Module Abbes menu manager EN]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Abbes_menu_manager_EN&amp;diff=48456</id>
		<title>Module Abbes menu manager EN</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Abbes_menu_manager_EN&amp;diff=48456"/>
		<updated>2020-09-23T22:05:05Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar EN to Module Abbes menu manager EN&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &lt;br /&gt;
[[fr:Module MenuPar FR]]&lt;br /&gt;
[[es:Module MenuPar ES]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Summary: [edit | edit source]=&lt;br /&gt;
Abbes menu manager was the first tool in its category. It was created in order to facilitate navigation in Dolibarr menus, by simplifying management of menu items and offering all imaginable possibilities of personalization.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Download the module archive file (.zip) from the website www.dolistore.com or recover it in any other way.&lt;br /&gt;
*Place the file in dolibarr root directory or create a custom folder in dolibarr root and place it there with all your additional modules (If you choose this solution, remember to uncomment the two lines of the conf file in report)&lt;br /&gt;
*Unzip the file with the command unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*The correct module location must be of the type: htdocs/custom/menupar.&lt;br /&gt;
*Go to the installation location of the module and give read and write privileges to the PHP server for the following files:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
The module is operational and can be activated.&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
To use this module, you must first activate it. To do this, after logging in with an administrator account, go to the &amp;quot; &#039;&#039;&#039;Home - Configuration - Modules&#039;&#039;&#039; &amp;quot; page. The module appears in &amp;quot;Others&amp;quot;, click on &amp;quot;Activate&amp;quot;. A pictogram appears at the end of the module line, click on it to access the configuration page specific to this module:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|MenuPar configuration Page|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]We have a list of 4 parameters with a question mark which displays a detailed explanation as soon as we place the mouse on it :&lt;br /&gt;
&lt;br /&gt;
#Display a menu entry for each product category: By default, there is only one entry in the menu to list the products. Activate this option to display an entry for each product category for users defined by the USERCAT option.&lt;br /&gt;
#USERCAT→ Users of product category menus: This parameter contains all the login names of users with an entry in the product category menus.&lt;br /&gt;
#Scrolls: Displays Scrolls in drop-down menus&lt;br /&gt;
#Length of the drop-down list: Fixed length of the drop-down list with scroll between 1 and 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation and Use=&lt;br /&gt;
Activating the MenuPar menu manager is different from activating the module. This is done after module activation in home menu →configuration→ menu:[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Once the menu manager is activated, the left column immediately disappears and in the drop-down menus corresponding to top menu items  appear as soon as you position the mouse on it:[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Home Menu |link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]The four items at the top of the home menu are foldable. This gives immediate access to the final menu items.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Products|Services menu|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Since all of the menu items on the left are displayed on one level, their numbers in the drop-down menus may be significant. We can then configure the menu manager to associate a scroll with them and limit their size for all the drop-down menus other than the home menu. On the image, we also see the menu elements allowing to list products by categories available through the second configuration parameter.&lt;br /&gt;
&lt;br /&gt;
=Advanced functions:=&lt;br /&gt;
&lt;br /&gt;
==Menu edition:==&lt;br /&gt;
The MenuPar menu manager is based on the Auguria menu. One can therefore add, modify or delete  menu items by accessing home→configuration→menus→Edit menu:[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edit menu|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&lt;br /&gt;
==Menu backup :==&lt;br /&gt;
After making changes in the menu structure, it is possible to backup the changes made and reload them when needed. This function is accessible from the module configuration page through the &#039;&#039;&#039;Backup/Restore&#039;&#039;&#039; &#039;&#039;&#039;the menu table&#039;&#039;&#039; button:[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Menu backup|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]The menu backup function of MenuPar is identical in all respects to that of Dolibarr database backup. The difference is that MenuPar menu backup function backs up only llx_menu menu table and that there exists a restore button next to each backup file.&lt;br /&gt;
&lt;br /&gt;
=Other sources of information:=&lt;br /&gt;
Information page of the module on Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Demo site : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Videos in French on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr￼￼]&lt;br /&gt;
&lt;br /&gt;
Videos in English on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Videos in Spanish on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Link on Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Abbes_menu_manager_EN&amp;diff=48455</id>
		<title>Module Abbes menu manager EN</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Abbes_menu_manager_EN&amp;diff=48455"/>
		<updated>2020-09-23T22:04:34Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &lt;br /&gt;
[[fr:Module MenuPar FR]]&lt;br /&gt;
[[es:Module MenuPar ES]]&lt;br /&gt;
&amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|editor=Ab13.fr&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Summary: [edit | edit source]=&lt;br /&gt;
Abbes menu manager was the first tool in its category. It was created in order to facilitate navigation in Dolibarr menus, by simplifying management of menu items and offering all imaginable possibilities of personalization.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Download the module archive file (.zip) from the website www.dolistore.com or recover it in any other way.&lt;br /&gt;
*Place the file in dolibarr root directory or create a custom folder in dolibarr root and place it there with all your additional modules (If you choose this solution, remember to uncomment the two lines of the conf file in report)&lt;br /&gt;
*Unzip the file with the command unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*The correct module location must be of the type: htdocs/custom/menupar.&lt;br /&gt;
*Go to the installation location of the module and give read and write privileges to the PHP server for the following files:&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
The module is operational and can be activated.&lt;br /&gt;
&lt;br /&gt;
=Configuration=&lt;br /&gt;
To use this module, you must first activate it. To do this, after logging in with an administrator account, go to the &amp;quot; &#039;&#039;&#039;Home - Configuration - Modules&#039;&#039;&#039; &amp;quot; page. The module appears in &amp;quot;Others&amp;quot;, click on &amp;quot;Activate&amp;quot;. A pictogram appears at the end of the module line, click on it to access the configuration page specific to this module:[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|MenuPar configuration Page|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_15-39-50.png]]We have a list of 4 parameters with a question mark which displays a detailed explanation as soon as we place the mouse on it :&lt;br /&gt;
&lt;br /&gt;
#Display a menu entry for each product category: By default, there is only one entry in the menu to list the products. Activate this option to display an entry for each product category for users defined by the USERCAT option.&lt;br /&gt;
#USERCAT→ Users of product category menus: This parameter contains all the login names of users with an entry in the product category menus.&lt;br /&gt;
#Scrolls: Displays Scrolls in drop-down menus&lt;br /&gt;
#Length of the drop-down list: Fixed length of the drop-down list with scroll between 1 and 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation and Use=&lt;br /&gt;
Activating the MenuPar menu manager is different from activating the module. This is done after module activation in home menu →configuration→ menu:[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_17-55-25.png]]Once the menu manager is activated, the left column immediately disappears and in the drop-down menus corresponding to top menu items  appear as soon as you position the mouse on it:[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Home Menu |link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-27-18.png]]The four items at the top of the home menu are foldable. This gives immediate access to the final menu items.[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Products|Services menu|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-19-42.png]]Since all of the menu items on the left are displayed on one level, their numbers in the drop-down menus may be significant. We can then configure the menu manager to associate a scroll with them and limit their size for all the drop-down menus other than the home menu. On the image, we also see the menu elements allowing to list products by categories available through the second configuration parameter.&lt;br /&gt;
&lt;br /&gt;
=Advanced functions:=&lt;br /&gt;
&lt;br /&gt;
==Menu edition:==&lt;br /&gt;
The MenuPar menu manager is based on the Auguria menu. One can therefore add, modify or delete  menu items by accessing home→configuration→menus→Edit menu:[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edit menu|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_18-46-35.png]]&lt;br /&gt;
==Menu backup :==&lt;br /&gt;
After making changes in the menu structure, it is possible to backup the changes made and reload them when needed. This function is accessible from the module configuration page through the &#039;&#039;&#039;Backup/Restore&#039;&#039;&#039; &#039;&#039;&#039;the menu table&#039;&#039;&#039; button:[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Menu backup|link=https://wiki.dolibarr.org/index.php/File:Capture_d%E2%80%99%C3%A9cran_de_2019-12-15_19-44-46.png]]The menu backup function of MenuPar is identical in all respects to that of Dolibarr database backup. The difference is that MenuPar menu backup function backs up only llx_menu menu table and that there exists a restore button next to each backup file.&lt;br /&gt;
&lt;br /&gt;
=Other sources of information:=&lt;br /&gt;
Information page of the module on Dolipar.org: http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Demo site : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Videos in French on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr￼￼]&lt;br /&gt;
&lt;br /&gt;
Videos in English on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Videos in Spanish on Youtube of demonstration of the first version of MenuPar of 2014: [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212&lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307&lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&lt;br /&gt;
&lt;br /&gt;
Link on Dolistore: https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
[[Category:Complementary modules]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_MenuPar_FR&amp;diff=48454</id>
		<title>Module MenuPar FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_MenuPar_FR&amp;diff=48454"/>
		<updated>2020-09-23T21:47:14Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar FR to Module Gestionnaire de menu abbes FR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Module Gestionnaire de menu abbes FR]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48453</id>
		<title>Module Gestionnaire de menu abbes FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48453"/>
		<updated>2020-09-23T21:47:14Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: Abahfir moved page Module MenuPar FR to Module Gestionnaire de menu abbes FR&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestionnaire de menu abbes&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
=&amp;lt;nowiki&amp;gt;Résumé :[edit | edit source]&amp;lt;/nowiki&amp;gt;=&lt;br /&gt;
Le gestionnaire de menu MenuPar a été le premier outil dans sa catégorie. Il a été créé dans le but de faciliter la navigation dans les menus de Dolibarr, en simplifiant la gestion des éléments de menu et en offrant toutes les possibilités de personnalisation imaginables. &lt;br /&gt;
&lt;br /&gt;
Il permet notamment de remplacer le menu de gauche par un menu déroulant qui apparaît au passage de la souris sur les éléments du menu du haut, puis d&#039;accéder aux éléments du menu de gauche en un clic au lie de deux ou plus. Il permet aussi de fixer la barre de menus de haut dans les pages de listings d’éléments&lt;br /&gt;
&lt;br /&gt;
La dernière version inclut la sauvegarde et restauration de menus et les ascenseurs dans les menus déroulants.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/menupar.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Autres&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Page de configuration de MenuPar]]&lt;br /&gt;
On a une liste de 4 paramètres avec un point d&#039;interrogation qui affiche une explication détaillée dés qu&#039;on place la souris dessus. :&lt;br /&gt;
&lt;br /&gt;
#Afficher une entrée de menu pour chaque catégorie de produits : Par défaut, il existe seulement une entrée dans le menu pour lister les produits. Activez cette option pour afficher une entrée pour chaque catégorie de produits pour les utilisateurs définis par l&#039;option USERCAT.&lt;br /&gt;
#USERCAT	Utilisateurs de menus de catégories de produits : Ce paramètre contient tous les login des utilisateurs ayant une entrée dans les de menus de catégories de produits.&lt;br /&gt;
#Ascenseurs : Affiche des ascenseurs dans les menus déroulants&lt;br /&gt;
#Longueur de la liste déroulante :  Longueur fixe de la liste déroulante à ascenseurs en 1 et 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation et Utilisation=&lt;br /&gt;
L&#039;activation du gestionnaire de menu MenuPar est distincte de l&#039;activation du module. Elle se fait à la suite de celle-ci dans le menu accueil	configuration	menus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar]]&lt;br /&gt;
Une fois le gestionnaire de menu activé, la colonne de gauche disparaît immédiatement et les menus déroulants correspondants aux éléments du menu du haut apparaissent dés qu&#039;on positionne la souris dessus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menu accueil]]&lt;br /&gt;
Le quatre éléments du haut du menu accueil sont dépliables. Ce qui permet d&#039;accéder du premier coup aux éléments de menu finaux.&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menu Produits|Services]]&lt;br /&gt;
Comme tous les éléments de menus de gauche sont affichés sur un seul niveau, leurs nombres dans les menus déroulants peut-être important. On peut alors, configurer le gestionnaire pour leur associer un ascenseur et limiter leur pour tous les menus déroulants autres le menu accueil. Sur l&#039;image, on voit aussi les éléments permettant de lister les produits par catégorie disponibles à travers le deuxième paramètre de configuration. &lt;br /&gt;
&lt;br /&gt;
=Fonctions avancées :=&lt;br /&gt;
&lt;br /&gt;
==Edition de menu :==&lt;br /&gt;
Le gestionnaire de menu MenuPar est basé sur le menu Auguria. On peut donc ajouter, modifier, ou supprimer les éléments de menu en accédant à accueil	configuration	menus	Edition de menu :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edition du menu]]&lt;br /&gt;
&lt;br /&gt;
==Sauvegarde de menus:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des modifications dans la structure du menu, il est possible de sauvegarder les changements effectués et les recharger au besoin. Cette fonction est accessible sur depuis la page de configuration du module à travers le bouton &#039;&#039;&#039;Sauvegarde/Restauration de la table de menus&#039;&#039;&#039; :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Sauvegarde de menus]]&lt;br /&gt;
La fonction de sauvegarde de menus de MenuPar est en tout point identique à celle de sauvegarde de la base de données de Dolibarr. La différence réside en ce que la fonction de sauvegarde de menus de MenuPar fait la sauvegarde de la seule table de menus llx_menu et l&#039;existence d&#039;un bouton de restauration à coté de chaque fichier de sauvegarde.&lt;br /&gt;
=Autres sources d&#039;information :=&lt;br /&gt;
&lt;br /&gt;
Page d&#039;informations sur le module sur Dolipar.org :http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Site de demo : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212 &lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307 &lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&amp;lt;nowiki/&amp;gt;Lien sur Dolistore :[https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-MenuPar.html https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html]&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48452</id>
		<title>Module Gestionnaire de menu abbes FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48452"/>
		<updated>2020-09-23T21:46:26Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestionnaire de menu abbes&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|webbuy=https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-abbes.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
=&amp;lt;nowiki&amp;gt;Résumé :[edit | edit source]&amp;lt;/nowiki&amp;gt;=&lt;br /&gt;
Le gestionnaire de menu MenuPar a été le premier outil dans sa catégorie. Il a été créé dans le but de faciliter la navigation dans les menus de Dolibarr, en simplifiant la gestion des éléments de menu et en offrant toutes les possibilités de personnalisation imaginables. &lt;br /&gt;
&lt;br /&gt;
Il permet notamment de remplacer le menu de gauche par un menu déroulant qui apparaît au passage de la souris sur les éléments du menu du haut, puis d&#039;accéder aux éléments du menu de gauche en un clic au lie de deux ou plus. Il permet aussi de fixer la barre de menus de haut dans les pages de listings d’éléments&lt;br /&gt;
&lt;br /&gt;
La dernière version inclut la sauvegarde et restauration de menus et les ascenseurs dans les menus déroulants.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/menupar.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Autres&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Page de configuration de MenuPar]]&lt;br /&gt;
On a une liste de 4 paramètres avec un point d&#039;interrogation qui affiche une explication détaillée dés qu&#039;on place la souris dessus. :&lt;br /&gt;
&lt;br /&gt;
#Afficher une entrée de menu pour chaque catégorie de produits : Par défaut, il existe seulement une entrée dans le menu pour lister les produits. Activez cette option pour afficher une entrée pour chaque catégorie de produits pour les utilisateurs définis par l&#039;option USERCAT.&lt;br /&gt;
#USERCAT	Utilisateurs de menus de catégories de produits : Ce paramètre contient tous les login des utilisateurs ayant une entrée dans les de menus de catégories de produits.&lt;br /&gt;
#Ascenseurs : Affiche des ascenseurs dans les menus déroulants&lt;br /&gt;
#Longueur de la liste déroulante :  Longueur fixe de la liste déroulante à ascenseurs en 1 et 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation et Utilisation=&lt;br /&gt;
L&#039;activation du gestionnaire de menu MenuPar est distincte de l&#039;activation du module. Elle se fait à la suite de celle-ci dans le menu accueil	configuration	menus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar]]&lt;br /&gt;
Une fois le gestionnaire de menu activé, la colonne de gauche disparaît immédiatement et les menus déroulants correspondants aux éléments du menu du haut apparaissent dés qu&#039;on positionne la souris dessus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menu accueil]]&lt;br /&gt;
Le quatre éléments du haut du menu accueil sont dépliables. Ce qui permet d&#039;accéder du premier coup aux éléments de menu finaux.&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menu Produits|Services]]&lt;br /&gt;
Comme tous les éléments de menus de gauche sont affichés sur un seul niveau, leurs nombres dans les menus déroulants peut-être important. On peut alors, configurer le gestionnaire pour leur associer un ascenseur et limiter leur pour tous les menus déroulants autres le menu accueil. Sur l&#039;image, on voit aussi les éléments permettant de lister les produits par catégorie disponibles à travers le deuxième paramètre de configuration. &lt;br /&gt;
&lt;br /&gt;
=Fonctions avancées :=&lt;br /&gt;
&lt;br /&gt;
==Edition de menu :==&lt;br /&gt;
Le gestionnaire de menu MenuPar est basé sur le menu Auguria. On peut donc ajouter, modifier, ou supprimer les éléments de menu en accédant à accueil	configuration	menus	Edition de menu :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edition du menu]]&lt;br /&gt;
&lt;br /&gt;
==Sauvegarde de menus:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des modifications dans la structure du menu, il est possible de sauvegarder les changements effectués et les recharger au besoin. Cette fonction est accessible sur depuis la page de configuration du module à travers le bouton &#039;&#039;&#039;Sauvegarde/Restauration de la table de menus&#039;&#039;&#039; :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Sauvegarde de menus]]&lt;br /&gt;
La fonction de sauvegarde de menus de MenuPar est en tout point identique à celle de sauvegarde de la base de données de Dolibarr. La différence réside en ce que la fonction de sauvegarde de menus de MenuPar fait la sauvegarde de la seule table de menus llx_menu et l&#039;existence d&#039;un bouton de restauration à coté de chaque fichier de sauvegarde.&lt;br /&gt;
=Autres sources d&#039;information :=&lt;br /&gt;
&lt;br /&gt;
Page d&#039;informations sur le module sur Dolipar.org :http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Site de demo : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212 &lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307 &lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&amp;lt;nowiki/&amp;gt;Lien sur Dolistore :[https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-MenuPar.html https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html]&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48450</id>
		<title>Module Gestionnaire de menu abbes FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=48450"/>
		<updated>2020-09-23T21:44:45Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Gestionnaire de menu abbes&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|webbuy=https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
=&amp;lt;nowiki&amp;gt;Résumé :[edit | edit source]&amp;lt;/nowiki&amp;gt;=&lt;br /&gt;
Le gestionnaire de menu MenuPar a été le premier outil dans sa catégorie. Il a été créé dans le but de faciliter la navigation dans les menus de Dolibarr, en simplifiant la gestion des éléments de menu et en offrant toutes les possibilités de personnalisation imaginables. &lt;br /&gt;
&lt;br /&gt;
Il permet notamment de remplacer le menu de gauche par un menu déroulant qui apparaît au passage de la souris sur les éléments du menu du haut, puis d&#039;accéder aux éléments du menu de gauche en un clic au lie de deux ou plus. Il permet aussi de fixer la barre de menus de haut dans les pages de listings d’éléments&lt;br /&gt;
&lt;br /&gt;
La dernière version inclut la sauvegarde et restauration de menus et les ascenseurs dans les menus déroulants.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/menupar.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Autres&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Page de configuration de MenuPar]]&lt;br /&gt;
On a une liste de 4 paramètres avec un point d&#039;interrogation qui affiche une explication détaillée dés qu&#039;on place la souris dessus. :&lt;br /&gt;
&lt;br /&gt;
#Afficher une entrée de menu pour chaque catégorie de produits : Par défaut, il existe seulement une entrée dans le menu pour lister les produits. Activez cette option pour afficher une entrée pour chaque catégorie de produits pour les utilisateurs définis par l&#039;option USERCAT.&lt;br /&gt;
#USERCAT	Utilisateurs de menus de catégories de produits : Ce paramètre contient tous les login des utilisateurs ayant une entrée dans les de menus de catégories de produits.&lt;br /&gt;
#Ascenseurs : Affiche des ascenseurs dans les menus déroulants&lt;br /&gt;
#Longueur de la liste déroulante :  Longueur fixe de la liste déroulante à ascenseurs en 1 et 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation et Utilisation=&lt;br /&gt;
L&#039;activation du gestionnaire de menu MenuPar est distincte de l&#039;activation du module. Elle se fait à la suite de celle-ci dans le menu accueil	configuration	menus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar]]&lt;br /&gt;
Une fois le gestionnaire de menu activé, la colonne de gauche disparaît immédiatement et les menus déroulants correspondants aux éléments du menu du haut apparaissent dés qu&#039;on positionne la souris dessus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menu accueil]]&lt;br /&gt;
Le quatre éléments du haut du menu accueil sont dépliables. Ce qui permet d&#039;accéder du premier coup aux éléments de menu finaux.&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menu Produits|Services]]&lt;br /&gt;
Comme tous les éléments de menus de gauche sont affichés sur un seul niveau, leurs nombres dans les menus déroulants peut-être important. On peut alors, configurer le gestionnaire pour leur associer un ascenseur et limiter leur pour tous les menus déroulants autres le menu accueil. Sur l&#039;image, on voit aussi les éléments permettant de lister les produits par catégorie disponibles à travers le deuxième paramètre de configuration. &lt;br /&gt;
&lt;br /&gt;
=Fonctions avancées :=&lt;br /&gt;
&lt;br /&gt;
==Edition de menu :==&lt;br /&gt;
Le gestionnaire de menu MenuPar est basé sur le menu Auguria. On peut donc ajouter, modifier, ou supprimer les éléments de menu en accédant à accueil	configuration	menus	Edition de menu :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edition du menu]]&lt;br /&gt;
&lt;br /&gt;
==Sauvegarde de menus:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des modifications dans la structure du menu, il est possible de sauvegarder les changements effectués et les recharger au besoin. Cette fonction est accessible sur depuis la page de configuration du module à travers le bouton &#039;&#039;&#039;Sauvegarde/Restauration de la table de menus&#039;&#039;&#039; :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Sauvegarde de menus]]&lt;br /&gt;
La fonction de sauvegarde de menus de MenuPar est en tout point identique à celle de sauvegarde de la base de données de Dolibarr. La différence réside en ce que la fonction de sauvegarde de menus de MenuPar fait la sauvegarde de la seule table de menus llx_menu et l&#039;existence d&#039;un bouton de restauration à coté de chaque fichier de sauvegarde.&lt;br /&gt;
=Autres sources d&#039;information :=&lt;br /&gt;
&lt;br /&gt;
Page d&#039;informations sur le module sur Dolipar.org :http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Site de demo : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212 &lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307 &lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&amp;lt;nowiki/&amp;gt;Lien sur Dolistore :[https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-MenuPar.html https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html]&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=47802</id>
		<title>Module Gestionnaire de menu abbes FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Gestionnaire_de_menu_abbes_FR&amp;diff=47802"/>
		<updated>2020-07-04T22:08:10Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_CashdeskPar_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevEn}} {{TemplateDocUser}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=MenuPar&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/menupar&lt;br /&gt;
|webbuy=https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=9.0.0&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 9.0.x, 10.0.x&lt;br /&gt;
=&amp;lt;nowiki&amp;gt;Résumé :[edit | edit source]&amp;lt;/nowiki&amp;gt;=&lt;br /&gt;
Le gestionnaire de menu MenuPar a été le premier outil dans sa catégorie. Il a été créé dans le but de faciliter la navigation dans les menus de Dolibarr, en simplifiant la gestion des éléments de menu et en offrant toutes les possibilités de personnalisation imaginables. &lt;br /&gt;
&lt;br /&gt;
Il permet notamment de remplacer le menu de gauche par un menu déroulant qui apparaît au passage de la souris sur les éléments du menu du haut, puis d&#039;accéder aux éléments du menu de gauche en un clic au lie de deux ou plus. Il permet aussi de fixer la barre de menus de haut dans les pages de listings d’éléments&lt;br /&gt;
&lt;br /&gt;
La dernière version inclut la sauvegarde et restauration de menus et les ascenseurs dans les menus déroulants.&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_menupar-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/menupar.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#menupar_consts.php&lt;br /&gt;
#menupar_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Autres&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 15-39-50.png|alt=Page de configuration de MenuPar|none|thumb|1300x1300px|Page de configuration de MenuPar]]&lt;br /&gt;
On a une liste de 4 paramètres avec un point d&#039;interrogation qui affiche une explication détaillée dés qu&#039;on place la souris dessus. :&lt;br /&gt;
&lt;br /&gt;
#Afficher une entrée de menu pour chaque catégorie de produits : Par défaut, il existe seulement une entrée dans le menu pour lister les produits. Activez cette option pour afficher une entrée pour chaque catégorie de produits pour les utilisateurs définis par l&#039;option USERCAT.&lt;br /&gt;
#USERCAT	Utilisateurs de menus de catégories de produits : Ce paramètre contient tous les login des utilisateurs ayant une entrée dans les de menus de catégories de produits.&lt;br /&gt;
#Ascenseurs : Affiche des ascenseurs dans les menus déroulants&lt;br /&gt;
#Longueur de la liste déroulante :  Longueur fixe de la liste déroulante à ascenseurs en 1 et 1000 pixels.&lt;br /&gt;
&lt;br /&gt;
=Activation et Utilisation=&lt;br /&gt;
L&#039;activation du gestionnaire de menu MenuPar est distincte de l&#039;activation du module. Elle se fait à la suite de celle-ci dans le menu accueil	configuration	menus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 17-55-25.png|alt=Activation de MenuPar|none|thumb|1300x1300px|Activation de MenuPar]]&lt;br /&gt;
Une fois le gestionnaire de menu activé, la colonne de gauche disparaît immédiatement et les menus déroulants correspondants aux éléments du menu du haut apparaissent dés qu&#039;on positionne la souris dessus :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-27-18.png|alt=Menu accueil|none|thumb|1300x1300px|Menu accueil]]&lt;br /&gt;
Le quatre éléments du haut du menu accueil sont dépliables. Ce qui permet d&#039;accéder du premier coup aux éléments de menu finaux.&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-19-42.png|none|thumb|1300x1300px|Menu Produits|Services]]&lt;br /&gt;
Comme tous les éléments de menus de gauche sont affichés sur un seul niveau, leurs nombres dans les menus déroulants peut-être important. On peut alors, configurer le gestionnaire pour leur associer un ascenseur et limiter leur pour tous les menus déroulants autres le menu accueil. Sur l&#039;image, on voit aussi les éléments permettant de lister les produits par catégorie disponibles à travers le deuxième paramètre de configuration. &lt;br /&gt;
&lt;br /&gt;
=Fonctions avancées :=&lt;br /&gt;
&lt;br /&gt;
==Edition de menu :==&lt;br /&gt;
Le gestionnaire de menu MenuPar est basé sur le menu Auguria. On peut donc ajouter, modifier, ou supprimer les éléments de menu en accédant à accueil	configuration	menus	Edition de menu :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 18-46-35.png|alt=Edition du menu|none|thumb|1300x1300px|Edition du menu]]&lt;br /&gt;
&lt;br /&gt;
==Sauvegarde de menus:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir effectué des modifications dans la structure du menu, il est possible de sauvegarder les changements effectués et les recharger au besoin. Cette fonction est accessible sur depuis la page de configuration du module à travers le bouton &#039;&#039;&#039;Sauvegarde/Restauration de la table de menus&#039;&#039;&#039; :&lt;br /&gt;
[[File:Capture d’écran de 2019-12-15 19-44-46.png|alt=Sauvegarde de menus|none|thumb|1300x1300px|Sauvegarde de menus]]&lt;br /&gt;
La fonction de sauvegarde de menus de MenuPar est en tout point identique à celle de sauvegarde de la base de données de Dolibarr. La différence réside en ce que la fonction de sauvegarde de menus de MenuPar fait la sauvegarde de la seule table de menus llx_menu et l&#039;existence d&#039;un bouton de restauration à coté de chaque fichier de sauvegarde.&lt;br /&gt;
=Autres sources d&#039;information :=&lt;br /&gt;
&lt;br /&gt;
Page d&#039;informations sur le module sur Dolipar.org :http://dolipar.org/content/menupar&lt;br /&gt;
&lt;br /&gt;
Site de demo : [[dolipar.org/dolibarr]]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Français sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=k7tgj7Wevu0 Gestionnaire de menu abbes pour Dolibarr]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Anglais sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=Qxk2T5BXK0E Abbes menu manager for Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
Vidéo en Espagnol sur Youtube de démonstration de la première version de MenuPar de 2014  : [https://www.youtube.com/watch?v=bPoEgsng-z8 Gestor de menu Abbes para Dolibarr v. 1.0]&lt;br /&gt;
&lt;br /&gt;
English Forum : https://www.dolibarr.org/forum/t/cashdeskpar-news/18212 &lt;br /&gt;
&lt;br /&gt;
Forum Français : https://www.dolibarr.fr/forum/t/gestionnaire-de-menu-menupar/31307 &lt;br /&gt;
&lt;br /&gt;
Foro en Español : https://www.dolibarr.es/foro/viewtopic.php?f=15&amp;amp;t=10576&amp;lt;nowiki/&amp;gt;Lien sur Dolistore :[https://www.dolistore.com/fr/modules/1158-Gestionnaire-de-menu-MenuPar.html https://www.dolistore.com/modules/1158-Gestionnaire-de-menu-MenuPar.html]&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45681</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45681"/>
		<updated>2020-01-26T16:58:41Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Module de Parametrage FR}}&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; &lt;br /&gt;
{{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de  traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
Ci dessous la page de composition de configuration obtenue en cliquant sur le bouton de composition complète . Les trois images sont obtenues en déroulant la page :&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous obtenons un formulaires composé de 3 sections et un bouton &#039;&#039;&#039;composer&#039;&#039;&#039; pour l’envoyer. Chaque section est composée de sous-sections et chaque sous-section présente une série de paramètres dans une Datatable&lt;br /&gt;
&lt;br /&gt;
Les 3 sections sont structurées comme ci-dessous :&lt;br /&gt;
&lt;br /&gt;
#Paramètres	dans le fichier de configuration actuel : Contient les paramètres	du fichier de configuration actuel du module de paramétrage. Ils	son présentés filtrés par type. On a donc un maximum de 3 sous	sections :&lt;br /&gt;
##Paramètres		du core : commençant avec MAIN_ ou ne contenant pas de		caractères soulignés.&lt;br /&gt;
##Paramètres		de modules non paramétrables : Autres paramètres de la base de		données.&lt;br /&gt;
##Paramètres		de modules paramétrables : Paramètres déclarés par		l’instruction &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
#Paramètres	dans les fichiers de configuration de modules paramétrables :  Les	fichiers de configuration des modules paramétrables sont structurés	tout comme le fichier de configurations du module de paramétrage.	On a donc pour chaque module paramétrable présent dans	l’installation le paramètres :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
##Paramètres		de modules paramétrables.&lt;br /&gt;
#Paramètres	dans la base de données : Les paramètres contenus dans la	table &#039;&#039;&#039;llx_const&#039;&#039;&#039; de la base de données de Dolibarr partagés	en deux sous-sections :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
&lt;br /&gt;
Chaque paramètre est représenté sur cinq colonnes :&lt;br /&gt;
&lt;br /&gt;
#Sélection :	Case à cocher pour sélectionner/désélectionner l’élément.&lt;br /&gt;
#Module	: Pour	les paramètres de modules paramétrables ou non paramétrables. Il	est vide pour les paramètres du core.&lt;br /&gt;
#Paramètre :	Nom complet du paramètre.&lt;br /&gt;
#Valeur :	Valeur du paramètre.&lt;br /&gt;
#Note :	Contient le commentaire affiché si le commentaire dans le fichier	de configuration est vide et que le paramètre n’existe pas dans	le fichier de langue&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de paramètres est représenté dans un élément Jquery Datatable est accompagné d’un bouton pour sélectionner l’ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
La différence entre la composition complète et la composition de base réside en ce que dans la première, tous les paramètres présents dans les fichiers de configuration sont présélectionnes  alors qu’aucun paramètre n’est sélectionné dans la seconde.&lt;br /&gt;
&lt;br /&gt;
En appuyant sur le bouton composer, on lance la recréation du fichier de configuration du module de paramétrage avec les paramètres sélectionnés. En case de conflit de paramètre en double un message est affiché indiquant la localisation des conflits et en appliquant le style de surbrillance aux deux paramètres en double et en invitant à désélectionner l’une des deux comme dans l’exemple suivant ( Dans la deuxième image, la page est déroulée pour faire apparaître le deuxième élément ) :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-07.png|alt=Conflit de paramètres 1/2|none|thumb|1300x1300px|Conflit de paramètres 1/2]]&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-14.png|alt=Conflit de paramètres 2/2|none|thumb|1300x1300px|Conflit de paramètres 2/2]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=8 -Création de sections de paramétrage dans des pages spécifiques de Dolibarr=&lt;br /&gt;
La création de sections de paramétrage dans les pages spécifique de Dolibarr fait seulement appel aux paramètres de la base de données, paramètres du core ou de modules non paramétrables. Les paramètres de modules paramétrables existant dans les fichiers de configuration de leurs modules sont conçus pour être utilisés seulement dans les pages de ce dernier. Si on a besoin de faire appel à un paramètre de ce type, on peut toujours le déclarer en tant paramètres base de données à l’intérieur du module paramétrable.&lt;br /&gt;
&lt;br /&gt;
C’est cette fonction qui a permis de rendre obsolètes les modules Facturepar, Facturepar plus et corepar. Le module Facturepar affichait une section de paramétrage dans la page d’édition de factures clients avec environ 24 paramètres alors que grâce au module de paramétrage, on a 81 paramètres contrôlables dans la cette page et on peut procéder de façon similaires pour toutes les pages de Dolibarr y compris celle de modules externe&lt;br /&gt;
&lt;br /&gt;
Pour créer une section de paramétrage pour une page spécifique de de Dolibarr, il faut procéder en plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
#Composition	et sauvegarde dans des fichier d’une ou plusieurs configurations.&lt;br /&gt;
#Création	manuelle d’un fichier de configuration en combinant les paramètres	des fichiers composés.&lt;br /&gt;
#Création	d’une entrée dans le dictionnaire de correspondance de	configuration vers urls du module de paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour la page d’édition de factures (ex : Facturepar) on a créé une entrée dans le dictionnaire comme dans l’image suivante :&lt;br /&gt;
[[File:Dictionnaire des correspondances config. vers url.png|alt=Dictionnaire des correspondances configurations / urls|none|thumb|1300x1300px|Dictionnaire des correspondances configurations / urls]]&lt;br /&gt;
Ce qui donne une section de paramétrage dans la page d’édition de factures comme dans l’image suivante accessible dans le site démo dans le lien http://dolipar.org/dolibarr/htdocs/compta/facture/card.php?facid=245 :   &lt;br /&gt;
[[File:Facturepar.png|alt=Page de l&#039;ex module Facturepar|none|thumb|1300x1300px|Page de l&#039;ex module Facturepar]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;br /&gt;
{{DEFAULTSORT:Module de Parametrage FR}}&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45680</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45680"/>
		<updated>2020-01-26T16:57:48Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* 8 -Création de sections de paramétrage dans des pages spécifiques de Dolibarr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de  traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
Ci dessous la page de composition de configuration obtenue en cliquant sur le bouton de composition complète . Les trois images sont obtenues en déroulant la page :&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous obtenons un formulaires composé de 3 sections et un bouton &#039;&#039;&#039;composer&#039;&#039;&#039; pour l’envoyer. Chaque section est composée de sous-sections et chaque sous-section présente une série de paramètres dans une Datatable&lt;br /&gt;
&lt;br /&gt;
Les 3 sections sont structurées comme ci-dessous :&lt;br /&gt;
&lt;br /&gt;
#Paramètres	dans le fichier de configuration actuel : Contient les paramètres	du fichier de configuration actuel du module de paramétrage. Ils	son présentés filtrés par type. On a donc un maximum de 3 sous	sections :&lt;br /&gt;
##Paramètres		du core : commençant avec MAIN_ ou ne contenant pas de		caractères soulignés.&lt;br /&gt;
##Paramètres		de modules non paramétrables : Autres paramètres de la base de		données.&lt;br /&gt;
##Paramètres		de modules paramétrables : Paramètres déclarés par		l’instruction &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
#Paramètres	dans les fichiers de configuration de modules paramétrables :  Les	fichiers de configuration des modules paramétrables sont structurés	tout comme le fichier de configurations du module de paramétrage.	On a donc pour chaque module paramétrable présent dans	l’installation le paramètres :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
##Paramètres		de modules paramétrables.&lt;br /&gt;
#Paramètres	dans la base de données : Les paramètres contenus dans la	table &#039;&#039;&#039;llx_const&#039;&#039;&#039; de la base de données de Dolibarr partagés	en deux sous-sections :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
&lt;br /&gt;
Chaque paramètre est représenté sur cinq colonnes :&lt;br /&gt;
&lt;br /&gt;
#Sélection :	Case à cocher pour sélectionner/désélectionner l’élément.&lt;br /&gt;
#Module	: Pour	les paramètres de modules paramétrables ou non paramétrables. Il	est vide pour les paramètres du core.&lt;br /&gt;
#Paramètre :	Nom complet du paramètre.&lt;br /&gt;
#Valeur :	Valeur du paramètre.&lt;br /&gt;
#Note :	Contient le commentaire affiché si le commentaire dans le fichier	de configuration est vide et que le paramètre n’existe pas dans	le fichier de langue&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de paramètres est représenté dans un élément Jquery Datatable est accompagné d’un bouton pour sélectionner l’ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
La différence entre la composition complète et la composition de base réside en ce que dans la première, tous les paramètres présents dans les fichiers de configuration sont présélectionnes  alors qu’aucun paramètre n’est sélectionné dans la seconde.&lt;br /&gt;
&lt;br /&gt;
En appuyant sur le bouton composer, on lance la recréation du fichier de configuration du module de paramétrage avec les paramètres sélectionnés. En case de conflit de paramètre en double un message est affiché indiquant la localisation des conflits et en appliquant le style de surbrillance aux deux paramètres en double et en invitant à désélectionner l’une des deux comme dans l’exemple suivant ( Dans la deuxième image, la page est déroulée pour faire apparaître le deuxième élément ) :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-07.png|alt=Conflit de paramètres 1/2|none|thumb|1300x1300px|Conflit de paramètres 1/2]]&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-14.png|alt=Conflit de paramètres 2/2|none|thumb|1300x1300px|Conflit de paramètres 2/2]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=8 -Création de sections de paramétrage dans des pages spécifiques de Dolibarr=&lt;br /&gt;
La création de sections de paramétrage dans les pages spécifique de Dolibarr fait seulement appel aux paramètres de la base de données, paramètres du core ou de modules non paramétrables. Les paramètres de modules paramétrables existant dans les fichiers de configuration de leurs modules sont conçus pour être utilisés seulement dans les pages de ce dernier. Si on a besoin de faire appel à un paramètre de ce type, on peut toujours le déclarer en tant paramètres base de données à l’intérieur du module paramétrable.&lt;br /&gt;
&lt;br /&gt;
C’est cette fonction qui a permis de rendre obsolètes les modules Facturepar, Facturepar plus et corepar. Le module Facturepar affichait une section de paramétrage dans la page d’édition de factures clients avec environ 24 paramètres alors que grâce au module de paramétrage, on a 81 paramètres contrôlables dans la cette page et on peut procéder de façon similaires pour toutes les pages de Dolibarr y compris celle de modules externe&lt;br /&gt;
&lt;br /&gt;
Pour créer une section de paramétrage pour une page spécifique de de Dolibarr, il faut procéder en plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
#Composition	et sauvegarde dans des fichier d’une ou plusieurs configurations.&lt;br /&gt;
#Création	manuelle d’un fichier de configuration en combinant les paramètres	des fichiers composés.&lt;br /&gt;
#Création	d’une entrée dans le dictionnaire de correspondance de	configuration vers urls du module de paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour la page d’édition de factures (ex : Facturepar) on a créé une entrée dans le dictionnaire comme dans l’image suivante :&lt;br /&gt;
[[File:Dictionnaire des correspondances config. vers url.png|alt=Dictionnaire des correspondances configurations / urls|none|thumb|1300x1300px|Dictionnaire des correspondances configurations / urls]]&lt;br /&gt;
Ce qui donne une section de paramétrage dans la page d’édition de factures comme dans l’image suivante accessible dans le site démo dans le lien http://dolipar.org/dolibarr/htdocs/compta/facture/card.php?facid=245 :   &lt;br /&gt;
[[File:Facturepar.png|alt=Page de l&#039;ex module Facturepar|none|thumb|1300x1300px|Page de l&#039;ex module Facturepar]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Category:Modules complémentaires]]&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45679</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45679"/>
		<updated>2020-01-26T16:52:21Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de  traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
Ci dessous la page de composition de configuration obtenue en cliquant sur le bouton de composition complète . Les trois images sont obtenues en déroulant la page :&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous obtenons un formulaires composé de 3 sections et un bouton &#039;&#039;&#039;composer&#039;&#039;&#039; pour l’envoyer. Chaque section est composée de sous-sections et chaque sous-section présente une série de paramètres dans une Datatable&lt;br /&gt;
&lt;br /&gt;
Les 3 sections sont structurées comme ci-dessous :&lt;br /&gt;
&lt;br /&gt;
#Paramètres	dans le fichier de configuration actuel : Contient les paramètres	du fichier de configuration actuel du module de paramétrage. Ils	son présentés filtrés par type. On a donc un maximum de 3 sous	sections :&lt;br /&gt;
##Paramètres		du core : commençant avec MAIN_ ou ne contenant pas de		caractères soulignés.&lt;br /&gt;
##Paramètres		de modules non paramétrables : Autres paramètres de la base de		données.&lt;br /&gt;
##Paramètres		de modules paramétrables : Paramètres déclarés par		l’instruction &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
#Paramètres	dans les fichiers de configuration de modules paramétrables :  Les	fichiers de configuration des modules paramétrables sont structurés	tout comme le fichier de configurations du module de paramétrage.	On a donc pour chaque module paramétrable présent dans	l’installation le paramètres :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
##Paramètres		de modules paramétrables.&lt;br /&gt;
#Paramètres	dans la base de données : Les paramètres contenus dans la	table &#039;&#039;&#039;llx_const&#039;&#039;&#039; de la base de données de Dolibarr partagés	en deux sous-sections :&lt;br /&gt;
##Paramètres		du core.&lt;br /&gt;
##Paramètres		de modules non paramétrables.&lt;br /&gt;
&lt;br /&gt;
Chaque paramètre est représenté sur cinq colonnes :&lt;br /&gt;
&lt;br /&gt;
#Sélection :	Case à cocher pour sélectionner/désélectionner l’élément.&lt;br /&gt;
#Module	: Pour	les paramètres de modules paramétrables ou non paramétrables. Il	est vide pour les paramètres du core.&lt;br /&gt;
#Paramètre :	Nom complet du paramètre.&lt;br /&gt;
#Valeur :	Valeur du paramètre.&lt;br /&gt;
#Note :	Contient le commentaire affiché si le commentaire dans le fichier	de configuration est vide et que le paramètre n’existe pas dans	le fichier de langue&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de paramètres est représenté dans un élément Jquery Datatable est accompagné d’un bouton pour sélectionner l’ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
La différence entre la composition complète et la composition de base réside en ce que dans la première, tous les paramètres présents dans les fichiers de configuration sont présélectionnes  alors qu’aucun paramètre n’est sélectionné dans la seconde.&lt;br /&gt;
&lt;br /&gt;
En appuyant sur le bouton composer, on lance la recréation du fichier de configuration du module de paramétrage avec les paramètres sélectionnés. En case de conflit de paramètre en double un message est affiché indiquant la localisation des conflits et en appliquant le style de surbrillance aux deux paramètres en double et en invitant à désélectionner l’une des deux comme dans l’exemple suivant ( Dans la deuxième image, la page est déroulée pour faire apparaître le deuxième élément ) :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-07.png|alt=Conflit de paramètres 1/2|none|thumb|1300x1300px|Conflit de paramètres 1/2]]&lt;br /&gt;
[[File:Capture d’écran de 2020-01-26 13-58-14.png|alt=Conflit de paramètres 2/2|none|thumb|1300x1300px|Conflit de paramètres 2/2]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 8 -Création de sections de paramétrage dans des pages spécifiques de Dolibarr =&lt;br /&gt;
La création de sections de paramétrage dans les pages spécifique de Dolibarr fait seulement appel aux paramètres de la base de données, paramètres du core ou de modules non paramétrables. Les paramètres de modules paramétrables existant dans les fichiers de configuration de leurs modules sont conçus pour être utilisés seulement dans les pages de ce dernier. Si on a besoin de faire appel à un paramètre de ce type, on peut toujours le déclarer en tant paramètres base de données à l’intérieur du module paramétrable.&lt;br /&gt;
&lt;br /&gt;
C’est cette fonction qui a permis de rendre obsolètes les modules Facturepar, Facturepar plus et corepar. Le module Facturepar affichait une section de paramétrage dans la page d’édition de factures clients avec environ 24 paramètres alors que grâce au module de paramétrage, on a 81 paramètres contrôlables dans la cette page et on peut procéder de façon similaires pour toutes les pages de Dolibarr y compris celle de modules externe&lt;br /&gt;
&lt;br /&gt;
Pour créer une section de paramétrage pour une page spécifique de de Dolibarr, il faut procéder en plusieurs étapes :&lt;br /&gt;
&lt;br /&gt;
# Composition	et sauvegarde dans des fichier d’une ou plusieurs configurations.&lt;br /&gt;
# Création	manuelle d’un fichier de configuration en combinant les paramètres	des fichiers composés.&lt;br /&gt;
# Création	d’une entrée dans le dictionnaire de correspondance de	configuration vers urls du module de paramétrage.&lt;br /&gt;
&lt;br /&gt;
Pour la page d’édition de factures (ex : Facturepar) on a créé une entrée dans le dictionnaire comme dans l’image suivante :&lt;br /&gt;
[[File:Dictionnaire des correspondances config. vers url.png|alt=Dictionnaire des correspondances configurations / urls|none|thumb|1300x1300px|Dictionnaire des correspondances configurations / urls]]&lt;br /&gt;
Ce qui donne une section de paramétrage dans la page d’édition de factures comme dans l’image suivante accessible dans le site démo dans le lien &amp;lt;nowiki&amp;gt;http://dolipar.org/dolibarr/htdocs/compta/facture/card.php?facid=245&amp;lt;/nowiki&amp;gt; :   &lt;br /&gt;
[[File:Facturepar.png|alt=Page de l&#039;ex module Facturepar|none|thumb|1300x1300px|Page de l&#039;ex module Facturepar]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Capture_d%E2%80%99%C3%A9cran_de_2020-01-26_13-58-14.png&amp;diff=45678</id>
		<title>File:Capture d’écran de 2020-01-26 13-58-14.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Capture_d%E2%80%99%C3%A9cran_de_2020-01-26_13-58-14.png&amp;diff=45678"/>
		<updated>2020-01-26T16:43:50Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Conflit de paramètres 2/2&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=File:Capture_d%E2%80%99%C3%A9cran_de_2020-01-26_13-58-07.png&amp;diff=45677</id>
		<title>File:Capture d’écran de 2020-01-26 13-58-07.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=File:Capture_d%E2%80%99%C3%A9cran_de_2020-01-26_13-58-07.png&amp;diff=45677"/>
		<updated>2020-01-26T16:42:05Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Conflit de paramètres 1/2&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45676</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45676"/>
		<updated>2020-01-26T16:39:28Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de  traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
Ci dessous la page de composition de configuration obtenue en cliquant sur le bouton de composition complète . Les trois images sont obtenues en déroulant la page :&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous obtenons un formulaires composé de 3 sections et un bouton &#039;&#039;&#039;composer&#039;&#039;&#039; pour l’envoyer. Chaque section est composée de sous-sections et chaque sous-section présente une série de paramètres dans une Datatable&lt;br /&gt;
&lt;br /&gt;
Les 3 sections sont structurées comme ci-dessous :&lt;br /&gt;
&lt;br /&gt;
# Paramètres	dans le fichier de configuration actuel : Contient les paramètres	du fichier de configuration actuel du module de paramétrage. Ils	son présentés filtrés par type. On a donc un maximum de 3 sous	sections :&lt;br /&gt;
## Paramètres		du core : commençant avec MAIN_ ou ne contenant pas de		caractères soulignés.&lt;br /&gt;
## Paramètres		de modules non paramétrables : Autres paramètres de la base de		données.&lt;br /&gt;
## Paramètres		de modules paramétrables : Paramètres déclarés par		l’instruction &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
# Paramètres	dans les fichiers de configuration de modules paramétrables :  Les	fichiers de configuration des modules paramétrables sont structurés	tout comme le fichier de configurations du module de paramétrage.	On a donc pour chaque module paramétrable présent dans	l’installation le paramètres :&lt;br /&gt;
## Paramètres		du core.&lt;br /&gt;
## Paramètres		de modules non paramétrables.&lt;br /&gt;
## Paramètres		de modules paramétrables.&lt;br /&gt;
# Paramètres	dans la base de données : Les paramètres contenus dans la	table &#039;&#039;&#039;llx_const&#039;&#039;&#039; de la base de données de Dolibarr partagés	en deux sous-sections :&lt;br /&gt;
## Paramètres		du core.&lt;br /&gt;
## Paramètres		de modules non paramétrables.&lt;br /&gt;
&lt;br /&gt;
Chaque paramètre est représenté sur cinq colonnes :&lt;br /&gt;
&lt;br /&gt;
# Sélection :	Case à cocher pour sélectionner/désélectionner l’élément.&lt;br /&gt;
# Module	: Pour	les paramètres de modules paramétrables ou non paramétrables. Il	est vide pour les paramètres du core.&lt;br /&gt;
# Paramètre :	Nom complet du paramètre.&lt;br /&gt;
# Valeur :	Valeur du paramètre.&lt;br /&gt;
# Note :	Contient le commentaire affiché si le commentaire dans le fichier	de configuration est vide et que le paramètre n’existe pas dans	le fichier de langue&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de paramètres est représenté dans un élément Jquery Datatable est accompagné d’un bouton pour sélectionner l’ensemble du groupe.&lt;br /&gt;
&lt;br /&gt;
La différence entre la composition complète et la composition de base réside en ce que dans la première, tous les paramètres présents dans les fichiers de configuration sont présélectionnes  alors qu’aucun paramètre n’est sélectionné dans la seconde.&lt;br /&gt;
&lt;br /&gt;
En appuyant sur le bouton composer, on lance la recréation du fichier de configuration du module de paramétrage avec les paramètres sélectionnés. En case de conflit de paramètre en double un message est affiché indiquant la localisation des conflits et en appliquant le style de surbrillance aux deux paramètres en double et en invitant à désélectionner l’une des deux comme dans l’exemple suivant ( Dans la deuxième image, la page est déroulée pour faire apparaître le deuxième élément ) :&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45675</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45675"/>
		<updated>2020-01-26T09:04:47Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* La composition de configurations : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de		traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
Ci dessous la page de composition de configuration obtenue en cliquant sur le bouton de composition complète . Les trois images sont obtenues en déroulant la page :&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
Nous obtenons les 3 sections suivantes:&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45674</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45674"/>
		<updated>2020-01-26T09:01:21Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
=Remarques sur le paramétrage logiciel en général et dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Description de notre solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de		traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
&amp;lt;br /&amp;gt;Ci dessous la page de composition de configuration ( composition complète ):&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45673</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45673"/>
		<updated>2020-01-26T08:54:25Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
&lt;br /&gt;
= Etude Analytique du paramétrage logiciel dans Dolibarr : =&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Définition d’une solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de		traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=Configuration du module=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
&amp;lt;br /&amp;gt;Ci dessous la page de composition de configuration ( composition complète ):&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
	<entry>
		<id>https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45672</id>
		<title>Module Parametrage FR</title>
		<link rel="alternate" type="text/html" href="https://wiki.dolibarr.org/index.php?title=Module_Parametrage_FR&amp;diff=45672"/>
		<updated>2020-01-25T21:47:40Z</updated>

		<summary type="html">&lt;p&gt;Abahfir: /* La composition de configurations : */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- BEGIN interlang links --&amp;gt; &amp;lt;!-- Do NOT edit this section&lt;br /&gt;
     Links below are automatically managed by PolyglotBot&lt;br /&gt;
     You can edit links on the English source page : Module_Parametrage_EN --&amp;gt; &amp;lt;!-- END interlang links --&amp;gt; {{TemplateDocDevFr}} {{TemplateDocUtil}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;seo metak=&amp;quot;Ultimatepdf, Dolibarr, models, design, interface, invoice, order, proposal, project&amp;quot; /&amp;gt;&lt;br /&gt;
=Informations=&lt;br /&gt;
{{TemplateModuleInfo&lt;br /&gt;
|modulename=Parametrage&lt;br /&gt;
|editor=Dolipar.org&lt;br /&gt;
|web=http://dolipar.org/content/parametrage&lt;br /&gt;
|webbuy=&lt;br /&gt;
|status=stable&lt;br /&gt;
|prerequisites=&lt;br /&gt;
|minversion=10.0.X&lt;br /&gt;
|note=&lt;br /&gt;
}}&lt;br /&gt;
=Prérequis=&lt;br /&gt;
Dolibarr 10.0.x&lt;br /&gt;
=Résumé=&lt;br /&gt;
Le module de paramétrage est le point d&#039;arrivée de tous les modules paramétrables de Dolipar.org que sont les modules Cashdeskpar et Menupar. Les modules Facturepar et Corepar ont disparu au profit de ce module qui permet de créer à la volée toutes leurs fonctionnalités et plus.&lt;br /&gt;
=Installation=&lt;br /&gt;
&lt;br /&gt;
*Téléchargez le fichier archive du module (.zip) depuis le site web www.dolistore.com ou récupérez le par toute autre manière.&lt;br /&gt;
*Placez le fichier dans le répertoire racine de dolibarr ou bien créez un dossier custom à la racine de dolibarr pour l&#039;y placer avec tous vos modules supplémentaires ( Si vous choisissez cette solution, pensez à dé-commenter les deux lignes du fichier de conf en rapport)&lt;br /&gt;
*Décompressez le fichier par la commande unzip module_parametrage-X.Y.Z.zip&lt;br /&gt;
*L&#039;emplacement correct du module doit être du type : htdocs/custom/parametrage.&lt;br /&gt;
*Aller dans l&#039;emplacement d&#039;installation du module et donner les privilèges de lecture et d&#039;écriture au seveur PHP pour les fichiers suivants :&lt;br /&gt;
&lt;br /&gt;
#parametrage_consts.php&lt;br /&gt;
#parametrage_default_consts.php&lt;br /&gt;
&lt;br /&gt;
Le module est opérationnel et peut être activé.&lt;br /&gt;
=Configuration=&lt;br /&gt;
Pour utiliser ce module, il vous faut d&#039;abord l&#039;activer. Pour cela, après s&#039;être connecté avec un compte administrateur, allez sur la page &amp;quot;&#039;&#039;&#039;Accueil - Configuration - Modules&#039;&#039;&#039;&amp;quot;. Le module apparaît dans &amp;quot;Dolipar&amp;quot;, cliquez sur &amp;quot;Activer&amp;quot;. Un pictogramme apparaît à la fin de la ligne du module, cliquez dessus pour accéder à la page de configuration spécifique à ce module :&lt;br /&gt;
&lt;br /&gt;
Comme le module de paramétrage est un module système, toutes ses fonctionnalités  se retrouvent dans la page de configuration suivante :&lt;br /&gt;
[[File:Page de configuration du module.png|alt=Page de configuration du module|none|thumb|1300x1300px|Page de configuration du module]]&lt;br /&gt;
La page de configuration se compose de deux parties :&lt;br /&gt;
&lt;br /&gt;
#La section de configuration et d&#039;utilisation du module, qui comprend :&lt;br /&gt;
##Le bouton d&#039;activation du contrôle de modules paramétrables à travers le module de paramétrage : Ce bouton permet de remplacer tous les réglages dans les modules paramétrables par ceux définis dans le module de paramétrages. Actuellement, les deux seuls modules paramétrables existant concernés sont les modules Cashdeskpar et le gestionaire de menu Menupar. D&#039;autres modules vont certainement étoffer cette liste dans le futur proche.&lt;br /&gt;
##Les boutons de composition de configurations: Permettent de composer le fichier de configuration du module de paramétrage. La composition complète permet d&#039;auto-sélectionner au départ tous les paramètres de la configuration actuelle alors que la composition de base permet de partir d&#039;une sélection vide ( Voir paragraphe : Composition de configurations)&lt;br /&gt;
##Le bouton de sauvegarde de configurations : Permet de sauvegarder la configuration actuelle dans un fichier. Il faut fournir un nom de fichier avant d&#039;appuyer sur le bouton &#039;&#039;&#039;enregistrer&#039;&#039;&#039;.&lt;br /&gt;
##Le bouton de suppression de configurations :  Permet de supprimer des fichiers de configuration préalablement enregistrés.&lt;br /&gt;
#La section de paramétrage du module de paramétrage : Cette section affiche tous les paramètres du module obtenus à travers la fonction de composition. Le bouton &#039;&#039;&#039;RAFRAICHIR LA PAGE&#039;&#039;&#039; commun à tous les modules paramétrables, permet de rafraîchir la page sans s&#039;y déplacer pour visualiser immédiatement les effets de modification d&#039;un paramètre&lt;br /&gt;
&lt;br /&gt;
=Analyse du paramétrage logiciel dans Dolibarr :=&lt;br /&gt;
Pour bien comprendre les fonctions du module, il est nécessaire de connaitre quelques notions sur le paramétrage de logiciel en général, puis pourquoi et comment on a implémenté toute une méthodologie de paramétrage dans Dolibarr avec les bénéfices qu&#039;elle apporte.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres du logiciel:====&lt;br /&gt;
Par convention dans les solutions logicielles web, on utilise trois types de paramètres :&lt;br /&gt;
&lt;br /&gt;
    1. Les paramètres base de données ( En majorité ) : Ce sont des paramètres  stockés dans la base de données dans le but de pouvoir être gérés comme n’importe quel autre type de données. &lt;br /&gt;
&lt;br /&gt;
    2. Les paramètres fichiers : Utilisés pour définir des paramètres qui dépendent de la plateforme ou qui définissent les paramètres d’accès à la base de données et ne peuvent donc pas être stockés en base de données.&lt;br /&gt;
&lt;br /&gt;
    3. Les paramètres utilisateurs : Ce troisième type de paramètres concerne ceux qui sont spécifiques aux utilisateurs. Dans la plupart des applications, ces paramètres sont stockés au niveau du navigateur, dans les cookies ou dans sa base de données locale.&lt;br /&gt;
&lt;br /&gt;
====Les types de paramètres dans Dolibarr :====&lt;br /&gt;
Dans Dolibarr, comme dans la plupart des applications web, les constantes base de données sont utilisées pour configurer les différentes options de l’application qui sont appelées à être modifiées au cours du sa mise en œuvre et sont stockées dans la table « llx_const ».&lt;br /&gt;
&lt;br /&gt;
En plus de stocker les paramètres d’accès à la base de données, les constantes fichier sont utilisées pour référencer les chemins des différents sous-ensembles de l’application ainsi que le mode de fonctionnement (développement ou production). En un sens, les constantes fichiers concernent les paramètres à qui on affecte des valeurs une seule fois et ne sont pas destinés à être changés dans une installation.  &lt;br /&gt;
&lt;br /&gt;
Pour les paramètres utilisateurs , on utilise dans Dolibarr une table spéciale « llx_user_param » pour enregistrer les données de l’utilisateur. Les cookies sont seulement utilisées pour identifier la session.&lt;br /&gt;
&lt;br /&gt;
====Le concept de configuration au sens large :====&lt;br /&gt;
On désigne comme configuration au sens large, l’ensemble de tous les paramètres d’une application adaptés à une entreprise ou une activité déterminée. Un ERP tel que Dolibarr pourrait par exemple être utilisé par une entreprise de commerce de détail ou par une entreprise de production avec deux configurations complètement différentes. Les deux entreprises peuvent utiliser des modules communs avec des paramètres communs ou de modules, spécifiques au type d’entreprise.  &lt;br /&gt;
&lt;br /&gt;
De la, on peut définir une configuration comme un ensemble de valeurs affectées à des paramètres. On peut utiliser une configuration pour enregistrer l’ensemble de valeurs de paramètres associés à chacun des deux types d’entreprises. Ceci inclut les modules activés, les valeurs de paramètres associés à chacun de ces modules ainsi que des valeurs associées à des paramètres de Dolibarr.&lt;br /&gt;
&lt;br /&gt;
====Considérations pour le stockage des paramètres de configurations :====&lt;br /&gt;
On peut stocker les paramètres qui définissent une configuration dans une table de la base de données ou bien dans un fichier. Bien que traditionnellement on préfère utiliser les constantes base de données pour stocker les paramètres de l’application, on distingue plusieurs avantages pour l’utilisation de fichiers à la place: &lt;br /&gt;
&lt;br /&gt;
#Un fichier est plus facilement consultable qu’une table de base de données. Il peut même être consulté sans installation de Dolibarr.&lt;br /&gt;
#Les modifications dans un fichier peuvent être gérées par un gestionnaire de versions tel que GIT. Dans le cas d’une table, Il faudra créer une table spéciale pour gérer l’historique avec le traitement qui s’ensuit.&lt;br /&gt;
#Dans le cas de Dolibarr, il existe encore un troisième avantage, qui est celui de pouvoir définir des métadonnées en commentaires sur les paramètres au lieu d&#039;utiliser les champs limités de la table llx_const. C&#039;est ce qui a permis de définir plusieurs types de données  dans les fichiers de configurations de modules paramétrable (Voir ci dessous).&lt;br /&gt;
&lt;br /&gt;
Il existe toutefois quelques inconvénients mineurs :&lt;br /&gt;
&lt;br /&gt;
    1. Les requêtes SQL sont très utiles pour faire des consultations complexes. Un effort de programmation plus important est nécessaire pour faire des recherches complexes dans des fichiers texte.&lt;br /&gt;
&lt;br /&gt;
=Définition d’une solution de gestion de configurations dans Dolibarr :=&lt;br /&gt;
Dans le cas de Dolibarr, une configuration est un simple fichier php avec des directives &#039;&#039;&#039;define&#039;&#039;&#039; pour chaque paramètre de module paramétrable et une instruction du type $conf-&amp;gt;global-&amp;gt;XX=YY pour les paramètres base de données. C’est l’exécution de ce fichier qui définit la configuration choisie. Ces paramètres peuvent être modifiés pour ajuster la configuration. On peut aussi créer de nouvelles configurations par modification de configurations préexistantes. &lt;br /&gt;
&lt;br /&gt;
Cette solution inclut les modules paramétrables, les modules paramétrables et le module de paramétrage. &lt;br /&gt;
&lt;br /&gt;
===Les modules paramétrables :===&lt;br /&gt;
Les modules paramétrables sont des modules conçus pour interagir efficacement avec le module de paramétrage. Ils  se limitent actuellement à &#039;&#039;&#039;Cashdeskpar&#039;&#039;&#039; et &#039;&#039;&#039;Menupar&#039;&#039;&#039;. Leurs caractéristiques sont :&lt;br /&gt;
&lt;br /&gt;
#Tous les paramètres de ces modules sont inscrits sur un fichier de configuration.&lt;br /&gt;
#Les paramètres sont consultables et modifiables dans la configuration du module.&lt;br /&gt;
#On définit 3 types de paramètres : chaîne,intervalle et booléens.&lt;br /&gt;
#Dans la page de configuration du module, on peut définir une ou plusieurs pages qui affichent une section de paramétrage pour changer les valeurs de paramètres à la volée.&lt;br /&gt;
#Chaque paramètre peut être configuré pour apparaître ou non dans les sections de paramétrage autres que la page de configuration du module.&lt;br /&gt;
&lt;br /&gt;
===Les modules non paramétrables :===&lt;br /&gt;
Tous les modules sur Dolistore ainsi que les modules inclus dans la distribution standard de Dolibarr font partie de cette catégorie. Leur paramètres de configuration sont enregistrés dans la base de données de Dolibarr dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039;. Par convention, le nom du module est inclu dans le nom du paramètre et est composé des premières lettres de ce dernier avant le caractère souligné.   &lt;br /&gt;
&lt;br /&gt;
===Le module de paramétrage :===&lt;br /&gt;
Ses tâches essentielles sont :&lt;br /&gt;
&lt;br /&gt;
#La composition de configurations par chargement de paramètres de la base de données et de fichiers de configuration de modules paramétrables.&lt;br /&gt;
#La modification des valeurs des paramètres actuels.&lt;br /&gt;
#La sauvegarde et restauration de configurations.&lt;br /&gt;
#L’inclusion de sections de paramétrage adaptées à des pages spécifiques.&lt;br /&gt;
&lt;br /&gt;
Le module gère deux types de paramètres :&lt;br /&gt;
&lt;br /&gt;
#Les paramètres base de données : Ils sont enregistrés dans la table &#039;&#039;&#039;llx_const&#039;&#039;&#039; et sont composés de deux sous-types :&lt;br /&gt;
##Les paramètres du core : sont tous les paramètres commençant par MAIN_ ou qui ne contiennent pas de caractères soulignés.&lt;br /&gt;
##Les paramètres de modules non paramétrables :sont tous les paramètres commençant par un nom de module suivi d&#039;un caractère souligné.￼&lt;br /&gt;
#Les paramètres de modules paramétrables : sont des paramètres enregistrés sous forme de constantes PHP et sont définis dans les fichiers de configuration de modules à l&#039;aide d&#039;instructions &#039;&#039;&#039;define&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Exemple de module paramétrable et de son fichier de configuration :=&lt;br /&gt;
L&#039;exemple le plus représentatif de module paramétrable est le module Cashdeskpar dont la démo est disponible sous le lien: http://dolipar.org/dolibarr/htdocs/custom_dolipar/cashdeskpar/affIndex.php?menu=facturation &lt;br /&gt;
&lt;br /&gt;
Ci dessous une copie d&#039;écran de sa page principale :&lt;br /&gt;
[[File:Capture d’écran de 2020-01-25 14-24-10.png|alt=Page principale de Cashdeskpar|none|thumb|1000x1000px|Page principale de Cashdeskpar]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ci dessous le contenu de son fichier de configuration cashdespar_default_consts.php :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;lt;?php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;global $conf;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_BD&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;$conf-&amp;gt;global-&amp;gt;CHARTOFACCOUNTS=&#039;113&#039;;//Plan comptable&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_CASHDESKPAR--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_AUTOCOMPLETE&#039;,0);//bm//0//1-requiert 2:Formulaire autocomplete pour sélection&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_POPUP_TICKET&#039;,0);//bm//0//2-inhibe l&#039;ouverture automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_DONT_PRINT_TICKET&#039;,0);//bm//0//3-inhibe l&#039;impression automatique du ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_FOCUS_LISTE&#039;,0);//bm//0//4-Rend le focus à la liste si ref vide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_REMISE_PERCENT&#039;,0);//bm//0//5-Cacher remise en pourcentage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_HIDE_TVA&#039;,0);//bm//0//6-cache TVA dans cashdesk&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFIABLE_PRICE&#039;,0);//bm//0//7-prix modifiable&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MODIFY_DELETED&#039;,1);//bm//0//8-Modifier une ligne aprés suppression&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_CODE&#039;,1);//bm//////9-xx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MONNAIE_VIDE&#039;,0);//bm//0//10-Ticket sans type de monnaie&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PANIER_RAPIDE&#039;,0);//bm//0//11-saisie rapide&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PAIEMENT_AUTO&#039;,0);//bm//0//12-saisie automatique du paiement égal au montant total&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PARAMETRES&#039;,1);//bm//0//13-Formulaire de parametrage&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_QTE_ENTER_KEY&#039;,1);//bm//0//14-Faire passer au champ suivant à la validation sur le champ Qte&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_LINES&#039;,1);//bm//0//15-Voir les lignes facture&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SHOW_TEL&#039;,1);//bm//0//16-Affiche le nº de telephone dans le ticket&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_THEME_31&#039;,0);//bm//////17-&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE_POPUP&#039;,1);//bm//0//18-requiert 4:Montre le ticket en popup&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_RAPIDE&#039;,0);//bm//0//19-4:Bouton ticket direct&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_TICKET_TITRE_BONLIVRAISON&#039;,1);//bm//0//20-requiert 3:Titre ticket (Bon de livraison)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_CREATION_CHANGEMENT_CLIENTS&#039;,0);//bm//0//21-Créer et changer le client&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_SEARCH_POS&#039;,-1);//im-1:10//0//22-Position de début pour recherche totale&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_MOBILE_LAYOUT&#039;,0);//bm//0//23-Adapter le thème à l&#039;écran de téléphone&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_TICKET&#039;,1);//bm//0//24-Le ticket sera stocké dans une image sur laquelle un programme est lancé pour imprimer l&#039;étiquette&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_ANDROID_JS_TICKET&#039;,1);//bm//0//25-Le ticket stocké dans une image sera imprimé dans une webview par Javascript&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_OPEN_SECTIONS&#039;,0);//bm//0//26-Ouvrir les sections au lancement de la page&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;//param_PRODUCT--------------&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOCOMPLETE_LIMIT_RESULTS_VALUE&#039;,22);//im1-100//0//nombre de résultats d&#039;autocomplete&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_ZY_AUTOSELECT_LENGTH&#039;,2);//im1-10//1//Nombre de caractéres minimum pour recherche&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_SELECT_BY_REFS&#039;,0);//bm//0//Activer Autoselect sur les références seulement&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;define(&#039;CASHDESKPAR_PRODUCT_FORM_LIST_SORT_KEY&#039;,0);//bm//0//xxx&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce fichier de configuration composé de plusieurs sections. L&#039;analyseur syntaxique de configuration interprète des métadonnées en commentaires pour présenter les paramètres de configuration dans la section de paramétrage :&lt;br /&gt;
&lt;br /&gt;
#Chaque ligne de définition de paramètre est suivie d&#039;un commentaire servant de métadonnées pour l&#039;analyseur syntaxique.&lt;br /&gt;
#Les lignes de commentaires tels que //param_PRODUCT-------------- définissent une sous section pliable sous laquelle sont présentés les paramètres en dessous regroupés sous le terme PRODUCT. Le fichier de langue contient le message contenant le nom de la sous section avec la clé param_PRODUCT.&lt;br /&gt;
#La ligne //Param_BD-------------- définit une sous section pliable pour les paramètres de la base de données. Les paramètres qu&#039;elle contient sont de la forme $conf-&amp;gt;global-&amp;gt;XX=&#039;YY&#039;;//ZZ. XX étant le nom du paramètre, YY sa valeur et ZZ un commentaire qui si il existe il est affiché en priorité dans la section de paramétrage.&lt;br /&gt;
#Les paramètres de modules paramétrables sont déclarés en tant que constantes par une instruction &#039;&#039;&#039;define&#039;&#039;&#039; avec les premières lettres avant souligné définissent le nom du module.&lt;br /&gt;
#Le texte en commentaire après la définition du paramètre de module paramétrable est composé de métadonnées reconnaissables par l’analyseur syntaxique de la fonction de paramétrage. On a dans l’ordre séparés par des ‘//’:&lt;br /&gt;
##Le type et statut :&lt;br /&gt;
###La première lettre peut prendre les valeurs &#039;&#039;&#039;b&#039;&#039;&#039; pour booléens, &#039;&#039;&#039;i&#039;&#039;&#039; pour intervalle et &#039;&#039;&#039;s&#039;&#039;&#039; pour chaine de caractère.&lt;br /&gt;
###La deuxième lettre peut prendre les valeurs &#039;&#039;&#039;m&#039;&#039;&#039; pour modifiable, &#039;&#039;&#039;u&#039;&#039;&#039; pour non modifiable et &#039;&#039;&#039;h&#039;&#039;&#039; pour hidden ou invisible. Les paramètres invisibles dans la page d’utilisation de la fonction de paramétrage restent visibles dans la page de configuration, depuis laquelle on peut activer ou désactiver le statut visible des paramètres (Voir le wiki de Cashdeskpar dans  [[Module CashdeskPar FR|https://wiki.dolibarr.org/index.php/Module_CashdeskPar_FR]])&lt;br /&gt;
###Les paramètres de type intervalle sont suivis par une indication de la borne inférieure et supérieure séparés par ‘&#039;&#039;&#039;:&#039;&#039;&#039;’.&lt;br /&gt;
##La valeur par défaut&lt;br /&gt;
##Le commentaire affiché s’il n’existe pas de		traduction du paramètre en clé dans le fichier de langues.&lt;br /&gt;
&lt;br /&gt;
=La composition de configurations :=&lt;br /&gt;
&amp;lt;br /&amp;gt;Ci dessous la page de composition de configuration ( composition complète ):&lt;br /&gt;
[[File:Page de composition complète.png|alt=Page de composition complète 1/3|none|thumb|1300x1300px|Page de composition complète 1/3]]&lt;br /&gt;
[[File:Page de composition complète 2-3.png|alt=Page de composition complète 2/3|none|thumb|1300x1300px|Page de composition complète 2/3]]&lt;br /&gt;
[[File:Page de composition complète 3-3.png|none|thumb|1300x1300px|Page de composition complète 3/3]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Abahfir</name></author>
	</entry>
</feed>