Module Ultimateqrcode EN
Informations
| Module name | Ultimateqrcode |
| Editor / Editeur | Atoo.Net - https://www.atoo-net.com |
| Download or buy page / Page achat ou téléchargement | External module - www.dolistore.com |
| Status / Statut / Estado | Stable |
| Prerequisites / Prérequis | PHP 8.2 or above, PHP GD extension
Dolibarr min version: See on Dolistore Dolibarr max version: See on Dolistore |
| Last update date / Date mise à jour fiche / Fecha última actualización | 2026-09-29 |
| Note / Nota | Compatible with Dolibarr v25 and PHP 8.5 |
UltimateQRcode adds QR codes to Dolibarr records (third parties, contacts, products, commercial documents, projects…). Each QR code encodes the fields you choose, can carry a logo in its centre and prints on a 120 × 57 mm label. Person records also get a vCard QR code that a smartphone scans to add the contact to its address book.
Requirements
| Item | Version |
|---|---|
| Dolibarr | 25.0.0 or above |
| PHP | 8.2 or above (tested up to PHP 8.5) |
| PHP extension | GD (PNG image generation) |
| Dolibarr modules | No mandatory module. Tabs only appear on objects whose module is enabled (Invoices, Stocks, Projects…) |
The chillerlan/php-qrcode and michelf/php-markdown libraries are shipped with the module: no Composer installation is needed.
Installation
- Download the
module_ultimateqrcode-25.0.x.ziparchive from the DoliStore - In Dolibarr: Home → Setup → Modules/Applications, tab Deploy/install external app/module, upload the archive. Otherwise, unzip the archive into
htdocs/custom/: you must gethtdocs/custom/ultimateqrcode/ - Find the UltimateQRcode module in the list and enable it
- Grant the permissions to users or groups (see Permissions)
- Upgrading from an earlier version: replace the
ultimateqrcodefolder, then disable and re-enable the module so that Dolibarr reloads the tabs and permissions.
Module setup
Open the setup page from Home → Setup → Modules/Applications → UltimateQRcode (gear icon).
The setup page has four tabs: QR codes, QR with logo, User guide and About.
"QR codes" tab (free generator)
This tab is an on-demand QR code generator: the QR code created here is not linked to any Dolibarr record and can encode any content.
| Field | Description |
|---|---|
| Enter here the data to encode in the QR code | The content to encode: URL, e-mail address, phone number, free text… |
| Quality | Error correction level: • Low (L, ≈ 7 %): most compact QR code • Medium (M, ≈ 15 %): common use • Quartile (Q, ≈ 25 %): good resistance • High (H, ≈ 30 %): very resistant to dirt and scratches |
| Size | From 1 to 10 pixels per QR code module |
| GENERATE button | Generates and displays the QR code |
| PRINT LABEL button | Opens the QR code on a 120 × 57 mm label (see Label printing) |
"QR with logo" tab
This tab creates a free QR code carrying a logo in its centre. Generated QR codes are kept in the module's temporary folder and can be displayed again, printed or deleted.
| Item | Description |
|---|---|
| Enter here the data to encode in the QR code | URL or content to encode |
| Size | From 2 to 10, controls the image resolution |
| Logo table | Logos available in documents/mycompany/logos/, with size, date, preview (magnifier), rename and delete. The radio button selects the logo to embed
|
| GENERATE button | Creates the QR code with the selected logo |
| UPLOAD | Adds a new logo (PNG recommended) |
| Select a QR code to display + DISPLAY | Displays a QR code generated earlier |
| Bin icon | Deletes the selected QR code, after confirmation |
| PRINT LABEL button | Prints the displayed QR code on a 120 × 57 mm label |
- Note: error correction is forced to High, because the logo hides part of the matrix.
"User guide" tab
The full user guide can be read directly in Dolibarr, in the user's language (French, English, German, Spanish or Italian).
"About" tab
Shows the module version, author, licence and links to the documentation.
Use in records
The module adds a QR code tab to the records of the following 16 objects:
| Object | Added tab | vCard QR code |
|---|---|---|
| Third party | QR code | Yes |
| Contact / Address | QR code | Yes |
| User | QR code | Yes |
| Member | QR code | Yes |
| User group | QR code | |
| Product / Service | QR code | |
| Lot / Serial number | QR code | |
| Warehouse | QR code | |
| Commercial proposal | QR code | |
| Sales order | QR code | |
| Purchase order | QR code | |
| Customer invoice | QR code | |
| Supplier invoice | QR code | |
| Contract | QR code | |
| Intervention | QR code | |
| Project | QR code |
Common layout of the QR code tab
Each QR code tab is organised in five areas.
Area 1 — Settings bar
At the top of the tab, a settings bar lets you choose:
| Setting | Description |
|---|---|
| Size | QR code resolution, from 2 to 10 pixels per module |
| Quality | Error correction: Low (L), Medium (M), Quartile (Q) or High (H) |
| Logo | Logo embedded in the centre of the QR code, chosen in the table of area 2 |
- Note: as soon as a logo is selected, the quality is forced to High (H) and the note (Forced to High with a logo) appears next to the selector.
These settings are saved per object type (invoices, proposals, orders…) and apply to every QR code of the tab.
Area 2 — Logo selection table
The table lists the logos of the documents/mycompany/logos/ folder:
| Column | Description |
|---|---|
| Radio button | Selects the logo, or "No logo" |
| Logo | File name |
| Size | File size in bytes |
| Date | Upload date |
| Preview | Magnifier to display the logo |
| Actions | Rename and delete |
A form at the bottom of the page uploads new logos.
- Safety: if the logo is too large for the QR code capacity, the module generates the QR code without the logo instead of failing, and records the incident in the Dolibarr log.
Area 3 — Data QR code
You choose the fields to encode by ticking them:
- the checkbox includes or excludes the field;
- the middle column shows the label and the current value of the field (greyed out when unticked);
- the generated QR code is displayed next to the table, with or without logo, together with the PRINT LABEL button.
Fields available per object:
| Object | Available fields |
|---|---|
| Third party | Company, Address, Zip code, Town, Country, Phone, Email, URL |
| Contact | First name, Last name, Phone, Mobile phone, Email, Address, Zip code, Town, Country, URL |
| User | Login, First name, Last name, Phone, Mobile phone, Email, Address, Zip code, Town, Country, URL |
| Member | First name, Last name, Phone, Personal phone, Email, Address, Zip code, Town, Country, URL |
| User group | Group name, Description, URL |
| Product / Service | Ref., Label, Description, Price excl. tax, Price incl. tax, Barcode, Weight, Volume, URL |
| Lot / Serial number | Lot/Serial, Eat-by date, Sell-by date, URL |
| Warehouse | Label, Short location name, Description, Address, Zip code, Town, Country, URL |
| Commercial proposal | Ref., Customer ref., Company, Email, Phone, Date, End of validity date, Total excl. tax, Total incl. tax, Public note, URL |
| Sales order | Ref., Customer ref., Company, Email, Phone, Date, Total excl. tax, Total incl. tax, Public note, URL |
| Purchase order | Ref., Supplier ref., Company, Email, Phone, Date, Total excl. tax, Total incl. tax, Public note, URL |
| Customer invoice | Ref., Customer ref., Company, Email, Phone, Invoice date, Payment due date, Total excl. tax, Total incl. tax, Public note, URL |
| Supplier invoice | Ref., Supplier ref., Company, Email, Phone, Invoice date, Payment due date, Total excl. tax, Total incl. tax, Public note, URL |
| Contract | Ref., Customer ref., Supplier ref., Company, Email, Phone, Contract date, Public note, URL |
| Intervention | Ref., Company, Email, Phone, Date, Description, URL |
| Project | Ref., Project label, Company, Email, Phone, Start date, End date, Public note, URL |
- Note: the extra fields filled in on the record are added to the list automatically, as Extra field: label. Those created by other modules are ignored.
Area 4 — Record URL QR code
On the right (or below the table, depending on the screen width), the tab shows:
- the Record URL label followed by a link to the record;
- a second QR code encoding the direct URL of the record, also printable on a label;
- at the bottom of the page, the SAVE and CANCEL buttons.
Area 5 — vCard QR code (Third party, Contact, User, Member)
The Third party, Contact, User and Member records also show a vCard QR code. Scanned with a smartphone, it offers to add the contact straight to the address book. The encoded vCard 3.0 content is displayed in plain text next to the QR code.
Live preview
The QR codes are updated in real time when you change:
- the size;
- the quality;
- the logo;
- the ticked fields.
No page reload is needed. The preview uses an AJAX request sent 300 ms after the last change. It works on all 16 QR code tabs.
Automatic default field selection
On first display, as long as no configuration has been saved, the module ticks the fields that are filled in on the record. The QR code is therefore relevant from the very first opening.
Saving the configuration
Tick or untick the fields, then click SAVE. The selection applies to all objects of the same type (one configuration per object type).
QR code tab — Examples per object
Customer invoice
Example on a customer invoice: Ref., Company, Email, Phone, Invoice date, Payment due date, Total excl. tax, Total incl. tax and URL are ticked. The expert_dolibarr.png logo is embedded in the centre of both QR codes and the quality is forced to High (H).
Product
On a product, the QR code can encode the reference, label, prices, barcode, weight and volume: handy for shelf or storeroom labelling.
Warehouse
Useful to identify storage locations physically. The Short location name field specifies the area (aisle, rack…).
User
The user QR code encodes the business contact details (login, first name, last name, phones, email, address…), and the vCard QR code adds them to an address book. Handy for badges or internal business cards.
- Note: the QR code tab of a user is only visible to the user themselves or to users allowed to read user records.
Reusable QR code image (QR with logo)
To get a QR code image with a logo to reuse elsewhere (website, brochure, e-mail signature), use the QR with logo setup tab:
- enter the record URL or any other content in the input field;
- choose the size and the logo, then click GENERATE;
- display the QR code again at any time with Select a QR code to display, print it or delete it.
- Note: the former "QR-Url" tab of third parties, which the module no longer declared, has been removed. The record URL QR code remains available in area 4 of every QR code tab.
Label printing
The PRINT LABEL button, or a click on a QR code, opens a print window in 120 × 57 mm format, suited to common label printers.
The label of a record contains:
- on the left: the data QR code;
- in the centre: the key information of the record (reference, third party, total…, depending on the object);
- on the right: the record URL QR code.
The generators of the QR codes and QR with logo tabs print the QR code they have just created in the same way.
The window opens the browser print dialog automatically.
- Note: for best results on adhesive labels, set the printer to the 120 × 57 mm format and remove the margins in the browser print options.
Permissions
The module defines two permissions, granted per user or per group in Users & Groups:
| Permission | Effect |
|---|---|
| Read QR codes | Shows the QR code tabs and the generated QR codes |
| Create / Modify QR codes | Lets the user tick or untick fields and save the configuration |
- Note: without the read permission, the QR code tabs are hidden. Without the modify permission, the user sees the QR codes but cannot change the field selection. Uploading, renaming and deleting logos is reserved to administrators.
What's new and v25 compatibility
Version 25.0.0 aligns UltimateQRcode with Dolibarr 25.
| Change | Detail |
|---|---|
| Minimum versions | Dolibarr 25.0.0 and PHP 8.2 |
| PHP 8.4 and 8.5 | No deprecation raised by the module: descriptor properties aligned with the core, "About" page without warning |
| Payment tabs | The "QR code" tabs of customer and supplier payments, which pointed to missing pages (404 error), have been removed |
| QR-Url tab | The orphan page of the former QR-Url tab of third parties has been deleted; the documentation now points to the QR with logo tab |
| Translated permissions | Both permissions are now displayed in the user's language ("Read QR codes", "Create / Modify QR codes") |
| vCard display | The vCard content and multi-line addresses are displayed properly, without a visible "\n" and without page overflow |
| Extra fields | The "Extra field" label is translated (it used to show "ExtraField") |
| User guide | New setup tab showing the full guide in the 5 languages |
| Continuous integration | Every PHP file of the module is checked with php -l under PHP 8.4 and 8.5
|
v24 history
New features in v24
| Feature | Description |
|---|---|
| Per-record settings | Size, quality and logo configurable directly in each QR code tab |
| Embedded logo | PNG logo in the centre of every QR code, on all pages |
| Live preview | Real-time QR code update when changing size, quality, logo or ticked fields |
| vCard QR code | For third parties, contacts, users and members |
| Logo management | Upload, preview, rename and delete logos from each record |
Dolibarr v24 compatibility
| Fix | Detail |
|---|---|
| Module picto | .png extension added to the $this->picto property of the descriptor
|
| Currency | getDolCurrency() instead of $conf->currency (deprecated)
|
| Constants | dolibarr_set_const() instead of writing directly into $conf->global
|
Bug fixes in v24
| Bug | Fix |
|---|---|
| Invoice tab not found | Case of the tab key fixed in the descriptor |
| Obsolete setup parameter | "QR code display size (in pixels)" removed, replaced by the size setting of each record |
| Logo too large | Automatic fallback to no logo instead of an error |
Translations in v24
Missing translation keys added in the 5 languages (FR, EN, DE, ES, IT): quality, logo management and all object types.
FAQ
- The QR code is empty or shows "No data"
- No field is ticked, or the ticked fields are empty on the record. Tick at least one filled-in field and click SAVE.
- The label does not print at the right size
- Check that the printer paper format is set to 120 × 57 mm and remove the margins in the browser print options.
- Extra fields do not appear
- Only extra fields filled in on the record are offered. They are defined in the setup of the relevant module (for example Third parties → Extra attributes).
- The QR code with logo cannot be read
- The logo covers too much surface. Use a smaller, ideally square, logo. The quality is already forced to High (H) as soon as a logo is selected.
- The QR code is displayed without logo although I selected one
- The logo is too large for the encoded content: the module then generates the QR code without the logo. Try a smaller logo or tick fewer fields.
- The QR codes are not updated when I change the settings
- The live preview requires JavaScript. Check that no script blocker is active.
- The QR code tab does not appear on some records
- Check that the module is enabled, that the Dolibarr module of the object is enabled too, and that the user has the Read QR codes permission. After an upgrade, disable then re-enable UltimateQRcode.
- Where has the QR-Url tab of third parties gone?
- It has been removed. The record URL QR code is in the QR code tab (area 4), and the QR with logo setup tab creates reusable images.
