QR codes courts

Chaque étiquette d'équipement porte un QR code qui contient l'adresse de la page publique de l'équipement. Plus cette adresse est longue, plus le QR code est dense. L'option QR codes courts remplace cette adresse par une forme courte, servie par votre propre serveur : aucun service extérieur n'intervient.

Pourquoi la longueur de l'adresse compte

Un QR code est une grille de petits carrés (les "modules"). Le nombre de modules dépend de la longueur du texte encodé, et la taille de l'étiquette, elle, est fixe : plus il y a de modules, plus chacun est petit.

Adresse encodée Longueur QR code Carré sur un ruban de 12 mm
https://dolibarr.client.fr/custom/smartinterventions/public/equipment.php?q= + code de 36 caractères environ 120 caractères 45 x 45 0,20 mm
https://qr.client.fr/equipment.php?q= + code de 36 caractères environ 80 caractères 37 x 37 0,24 mm
https://qr.client.fr/e/ + code de 25 caractères environ 50 caractères 33 x 33 0,26 mm

Des carrés plus petits rendent le QR code plus fragile :

  • l'usure et les rayures effacent plus vite un petit carré ;
  • les salissures, la graisse ou la peinture en masquent davantage ;
  • les reflets sur un ruban brillant gênent davantage la lecture ;
  • il faut s'approcher plus près pour flasher, et sous 0,21 mm environ, un téléphone n'arrive plus à le lire de façon fiable.

Sur un ruban de 12 mm, la première adresse du tableau passe sous ce seuil : le QR code n'y est plus lisible de façon fiable.

Ce que fait l'option

Avec l'option active, le QR code d'un équipement encode :

https://<adresse de la page publique>/e/<code de 25 caractères>
  • Le code de 25 caractères est l'identifiant du QR de l'équipement réécrit sous une forme plus compacte (chiffres et lettres minuscules). Il n'est pas plus facile à deviner que l'identifiant d'origine.
  • Rien n'est stocké en plus : l'application mobile retrouve l'équipement à partir du code par simple calcul, donc le scan dans l'application fonctionne hors ligne, exactement comme avant.
  • L'adresse courte s'applique partout où un QR code est produit : étiquettes imprimées depuis l'application mobile et planches d'étiquettes du back-office.
  • Les étiquettes déjà collées continuent de fonctionner : l'ancienne adresse reste acceptée par la page publique et par le scanner de l'application. Il n'est pas nécessaire de les réimprimer.
  • Un équipement dont le QR a été rattaché à une étiquette existante (QR imprimé par un autre outil) garde son adresse d'origine : seuls les identifiants générés par le module ont une forme courte.

Ce qu'il faut côté serveur

L'adresse courte /e/<code> n'est pas un fichier : c'est votre serveur web qui doit la transmettre à la page publique du module. Il faut donc :

  1. Une adresse de page publique dédiée, renseignée dans Configuration du module > onglet Page publique, champ "Adresse du site web pour les pages publiques d'équipement" (par exemple https://qr.client.fr). Cet hôte sert le dossier public/ du module. Sans cette adresse, l'option reste sans effet et les QR codes gardent l'adresse longue : le serveur Dolibarr lui-même n'a pas la règle de réécriture.
  2. Une règle de réécriture sur cet hôte, qui transforme /e/<code> en /equipment.php?c=<code>.

Votre hébergeur ou la personne qui administre le serveur doit poser cette règle. Voici la règle pour les deux serveurs web les plus courants.

Apache

Dans la configuration de l'hôte public (le VirtualHost), ou dans un fichier .htaccess placé dans le dossier public/ du module si votre hébergement les autorise (module mod_rewrite actif) :

RewriteEngine On
RewriteRule "^/?e/([0-9a-zA-Z]{25})$" "/equipment.php?c=$1" [L,QSA]

Nginx

Dans le bloc server de l'hôte public, avant le bloc qui traite les fichiers PHP :

rewrite "^/e/([0-9a-zA-Z]{25})$" /equipment.php?c=$1 last;

Cas particuliers

  • L'adresse publique contient un chemin (par exemple https://www.client.fr/qr) : l'adresse courte devient https://www.client.fr/qr/e/<code>. Adaptez la règle à ce préfixe (^/qr/e/... vers /qr/equipment.php?c=$1).
  • L'hôte public est un mandataire (reverse proxy) vers Dolibarr : la règle doit viser le chemin complet de la page publique sur Dolibarr, /custom/smartinterventions/public/equipment.php?c=$1 (ou le chemin d'installation de vos modules).

Activer l'option, dans cet ordre

  1. Renseignez l'adresse de la page publique si ce n'est pas déjà fait.
  2. Faites poser la règle de réécriture sur ce serveur.
  3. Vérifiez la règle : ouvrez dans un navigateur https://<adresse de la page publique>/e/0000000000000000000000000 (un zéro répété 25 fois). Vous devez voir la page du module titrée "Équipement introuvable". Une page d'erreur du serveur ("404 Not Found" brute) signifie que la règle n'est pas en place.
  4. Cochez QR codes courts dans l'onglet Page publique.
  5. Imprimez une étiquette de test (planche du back-office ou application mobile) et flashez-la avec l'appareil photo d'un téléphone : la page publique de l'équipement doit s'ouvrir.

Les techniciens reçoivent le réglage à leur prochaine synchronisation ; leurs étiquettes suivantes utilisent l'adresse courte.

Gardez la règle de réécriture en place pour toujours, même si vous désactivez l'option plus tard : les étiquettes imprimées en forme courte restent collées sur les équipements et en ont besoin pour fonctionner.

L'encadré "Adresse encodée dans les QR codes"

En bas de l'onglet Page publique, un encadré affiche un exemple de l'adresse que vos QR codes contiennent avec la configuration actuelle, sa longueur et la taille du QR code obtenu. Il indique l'un des trois états suivants :

  • Longueur adaptée (62 caractères au plus, QR code de 33 x 33) : c'est ce qu'apportent les QR codes courts. Rien à faire.
  • Longueur correcte (jusqu'à 84 caractères, QR code de 37 x 37) : c'est le cas d'une adresse longue sur un hôte public court. Le QR code reste lisible sur tous les rubans ; les QR codes courts le rendraient plus robuste.
  • Attention : cette adresse est longue (au-delà de 84 caractères) : c'est typiquement le cas sans adresse de page publique dédiée, quand l'adresse contient tout le chemin de Dolibarr. Le QR code est dense, sensible à l'usure et devient illisible sur les rubans étroits. Renseignez une adresse de page publique courte et, si possible, activez les QR codes courts.

Le même avertissement s'affiche juste après l'enregistrement de la configuration quand l'adresse est trop longue, ou quand l'option est cochée sans adresse de page publique.

Quand les QR codes courts sont actifs, l'encadré rappelle de vérifier la règle de réécriture avant d'imprimer.

Bon à savoir

  • Majuscules ou minuscules : l'adresse courte est écrite en minuscules, ce qui donne un QR code de 33 x 33. La même adresse entièrement en majuscules tiendrait dans 29 x 29, car un QR code a un mode d'encodage plus compact réservé aux chiffres et aux lettres majuscules. Le module ne l'utilise pas : l'adresse s'afficherait en capitales sur le téléphone au moment de l'ouvrir, pour un gain modeste.
  • Pas de service de raccourcissement extérieur : une étiquette reste collée des années sur un équipement. Un service tiers peut fermer, changer ses conditions ou suivre les scans ; ici, tout reste sur votre serveur.
  • La page publique et ce qu'elle affiche sont décrits dans Déclaration d'anomalie via le QR public et dans la page Configuration.