---
title: "QR codes courts"
weight: 47
description: "Raccourcir l'adresse encodée dans les QR codes des équipements pour des codes moins denses, plus robustes et lisibles sur les petits rubans : principe, configuration du serveur (règle de réécriture Apache ou Nginx), vérification et lecture de l'encadré de diagnostic."
---

# 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) :

```apache
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 :

```nginx
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](/smartinterventions/declaration-anomalie-publique)
  et dans la page [Configuration](/smartinterventions/configuration).
