Module UltimatePropale EN

Summary

Informations

Module name UltimatePropale
Editor / Editeur  
Download or buy page / Page achat ou téléchargement External module - www.dolistore.com
Status / Statut / Estado Stable
Prerequisites / Prérequis Commercial proposals module enabled - PHP 8.2 minimum

Dolibarr min version: See on Dolistore    Dolibarr max version: See on Dolistore

Last update date / Date mise à jour fiche / Fecha última actualización 2026-10-7
Note / Nota ⬆ Back to summary

Features

UltimatePropale replaces Dolibarr's native PDF model for commercial proposals (quotes) with a fully customisable model: ultimatepropale_propal. It lets you define your brand identity (logo, colours, margins, page background, column widths), choose precisely what is printed on the proposal, append your general sales conditions (GSC) or extra PDF files, add barcodes and QR codes, and have the proposal signed online by your customer.

UltimatePropale is the edition of the UltimatePDF module dedicated to proposals. For orders and invoices, see UltimatepdfLight or UltimateInvoice. For contracts, shipments, delivery notes, expense reports, interventions, projects, products/BOMs or supplier documents, the full UltimatePDF version is required.

Two levels of configuration

The module is built around two notions that should not be confused:

  • The Design (Models tab) defines what the proposal looks like: colours, margins, logo, company alias, page background, column widths. Several Designs can coexist, only one is active by default (ULTIMATE_DESIGN constant), and a selector at the top right of the application switches between them instantly.
  • The Options and Proposals pages decide what is printed on the proposal: visible columns, address blocks, legal mentions, approval block, printed signatures, etc. They do not change the graphic look.

Graphic customisation (Designs)

  • Page background: background image or background PDF (pre-designed letterhead), with transparency and X/Y positioning.
  • Header: logo height and width, second logo (partner, certification), sender block width with drag-and-drop preview and a French postal standard window envelope preset.
  • Company alias: prints on the proposal a company name, address, capital or VAT number different from the real legal entity — useful for a trade name or a subsidiary.
  • Vector icons: the phone, mobile, fax, email and website icons of the address blocks are Font Awesome icons, sharp at any zoom level, with a colour that can be set per Design.
  • Margins and columns: PDF margins and the width of each column of the line table (reference, picture, VAT, unit price, quantity, unit, discount), each resizable with the mouse on a graphic preview.
  • Footer: font size, height reserved for the free text, text and background colours.
  • Font: choice of the document font (DejaVuSans for extended or Cyrillic character sets).
  • Export / import: each Design can be exported to a JSON file and imported on the same Dolibarr or another one, including a Design exported from UltimatePDF, UltimatepdfLight or UltimateInvoice. The imported Design is created disabled, and renamed if its label already exists.
  • Real PDF preview: a button of the form generates the PDF of the most recent proposal with the settings being entered, without saving them.

Each block of the form has its own Save button: you validate block by block without losing what you entered in the others. The blocks fold like an accordion.

Proposal content

  • Lines: line numbering, product picture, unit price excl. tax, discount, unit price after discount, quantity, weight and total weight, unit, dashes between lines, description hidden by default.
  • Header and addresses: recipient and customer details, professional IDs (SIRET...), intra-EU VAT number, linked project, linked objects, header not repeated, text associated with the date, fold mark.
  • Sales representative: "Case followed by" mention with the name and email of the internal sales representative following the proposal.
  • Proposal specific: version management, additional presentation pages before the proposal, VAT reverse charge mention (construction subcontracting), hiding of the proposal date, delivery date or customer references.
  • Signature: approval block, online customer signature area filled from Dolibarr's public signature page, manager's and sales representative's signatures (images).

PDF merging and GSC

  • GSC: a general sales conditions file is uploaded from the Options page and appended to the proposal, with optional default preselection. The GSC are appended on every generation, including the automatic regeneration on validation and mass actions.
  • Additional files: once the option is enabled on the Proposals page, one or more PDF files can be merged with the proposal from its card, with optional page renumbering.
  • Product PDFs: the products' technical PDF sheets can be appended automatically after the proposal.

Barcodes and QR codes

  • Product barcodes (EAN13 with check digit, CODE128, CODE39) and third-party barcodes, at the top or bottom of the page.
  • Company (MyCompany) or third-party QR codes. Only one QR code at a time is allowed at the top of the proposal, to avoid overlaps.

Compatibility with the Milestone module

UltimatePropale recognises the milestone lines of the Milestone module (product_type = 9): they are not treated as standard product lines in the line weight and unit price after discount calculations, and keep their own formatting in the PDF.

Built-in user guide

A complete guide in English, French, German, Spanish and Italian can be read directly from the module setup, User guide tab, in the interface language. It is updated with each version and details every option.

⬆ Back to summary

Prerequisites

Dolibarr: Supported versions:

  • 25.x

PHP: version 8.2 minimum, tested up to PHP 8.5.

Dolibarr modules: the Commercial proposals module must be enabled.

Incompatible modules: UltimatePropale cannot be enabled at the same time as UltimatePDF, UltimatepdfLight or UltimateInvoice.

⚙️ Installation procedure

Three methods are available, from the simplest to the most technical. The UltimatePropale zip weighs about 1.5 MB: it fits under the default Dolibarr and PHP upload limits (2 MB), but a more restrictive installation may reject it (see below).

⚙️ Method 1: installation from the Dolibarr interface

  1. Go to Home > Setup > Modules/Applications.
  2. Open the Deploy/install external app/module tab.
  3. Click Choose file and select the module .zip file.
  4. Click Upload to start the installation.
  5. Enable the module once the installation is complete.
Checking the maximum upload size

Three limits apply to the zip upload, and the smallest one wins:

Limit Where to see / change it Common value
Dolibarr limit (MAIN_UPLOAD_DOC) Home > Setup > Security, Files tab, "Maximum size for uploaded files" (in KB) 2048 KB (Dolibarr installation value)
upload_max_filesize (PHP) server php.ini file 2M (PHP default)
post_max_size (PHP) server php.ini file 8M

How to find the current values:

  • On the Deploy/install external app/module page, hover the information icon to the right of the Upload button: Dolibarr displays "Dolibarr limit: X Kb, PHP limit: Y Kb".
  • The PHP settings are detailed in Admin Tools > About PHP (page admin/system/phpinfo.php): look for upload_max_filesize and post_max_size.

If one of the limits is below the zip size, Dolibarr rejects the file with the message "File size is too large or file not provided".

How to raise them:

  1. Dolibarr limit: in Home > Setup > Security, Files tab, enter for example 10240 (10 MB) and save.
  2. PHP limits: in php.ini (or your hosting control panel: Plesk, cPanel, "PHP settings"…), set for example:
upload_max_filesize = 10M
post_max_size = 12M
post_max_size must stay greater than or equal to upload_max_filesize. Then restart the web server or PHP-FPM (not needed with most hosting providers, which apply the change immediately) and check the new values in About PHP.

On shared hosting, PHP limits cannot always be changed. In that case, use method 2 or 3.

⚙️ Method 2: manual installation on the server (SSH)

The zip contains an htdocs/ultimatepropale/ folder; it is the ultimatepropale folder that must end up in the Dolibarr custom directory.

  1. Copy the zip to the server, for example into /tmp.
  2. Unzip: unzip module_ultimatepropale-X.Y.Z.zip -d /tmp/ultimatepropale_zip
  3. Copy the module folder: cp -r /tmp/ultimatepropale_zip/htdocs/ultimatepropale /path/to/dolibarr/htdocs/custom/
  4. Give ownership to the web server if needed, for example: chown -R www-data:www-data /path/to/dolibarr/htdocs/custom/ultimatepropale
  5. Check that the module location is: htdocs/custom/ultimatepropale (and not htdocs/custom/htdocs/ultimatepropale).
  6. Enable the module from Dolibarr.

⚙️ Method 3: FTP / SFTP upload (last resort)

If you can neither upload files in Dolibarr nor access the server through SSH:

  1. Unzip the archive on your computer (right click > "Extract All…" on Windows).
  2. Open the extracted folder: it contains htdocs, which itself contains the ultimatepropale folder.
  3. Connect to the server with an FTP/SFTP client (for example FileZilla), using the credentials supplied by your hosting provider.
  4. Find the Dolibarr directory: it is the one containing the admin, core, conf… and custom folders. Depending on the provider, it is named htdocs, httpdocs, www or public_html. If custom does not exist, create it.
  5. Upload the ultimatepropale folder (not the zip, nor the surrounding htdocs folder) into custom.
  6. Wait for the transfer to finish and check in the FTP client log that no file failed: an interrupted transfer leaves an incomplete module.
  7. Check that the final path is …/custom/ultimatepropale/core/modules/modUltimatePropale.class.php.
  8. Enable the module from Home > Setup > Modules/Applications.

To update through FTP, replace the existing ultimatepropale folder (after backing it up), then disable and re-enable the module to apply any database changes. Your templates and settings, stored in the database, are kept.

Setup

To use this module, you must first enable it. To do so, log in with an administrator account and go to the "Home - Setup - Modules" page. The module appears in the "Atoo-Net" tab, click "Enable". An icon appears at the end of the module line, click it to open the module specific setup pages.

All the module administration pages are protected by the ultimatepropale -> config right: only users with this right (usually administrators) can access them. Other users simply see the ultimatepropale_propal model in the "Models" drop-down list of proposal cards.

The setup is made of five tabs: Models, Options, Proposals, User guide and About.

Models tab (Designs)

This is where the graphic look of your proposals is created.

- The list shows all existing Designs: label, description, border type, colours, status and a "Default" badge for the one currently used.
- Click Add a design to create a new one, or the pencil to edit an existing design.
- Fill in block by block: model information and font, page background, header and logos, company alias, central block, margins and column widths, footer. Each block has its own Save button.
- A disabled Design no longer appears in selection lists. The "Master model" and the default Design cannot be deleted, so that document generation never breaks.
- Export this model downloads the Design as a JSON file, Import a model recreates it on the same Dolibarr or another one. The imported Design is created disabled, and renamed if its label already exists.
- The Real PDF preview button of the form generates the PDF of the most recent proposal, with the ultimatepropale_propal model and the settings being entered, without saving them. The PDF of that proposal is regenerated along the way: regenerate it after saving the Design.

Important: after changing a Design, if the generated proposal does not seem to have changed, check that this Design carries the "Default" badge.

Options tab (global settings)

These settings apply to the proposal regardless of the chosen Design: logos, address blocks and professional IDs, page background, line content, GSC, bank details, paper format.

Most settings are on/off switches applied immediately; the paper format and professional IDs are validated with a dedicated Save button.

Uploading the GSC

In the dedicated block, select your general sales conditions PDF file and upload it. It then appears in a drop-down list near the Generate button of the proposal card, and can be preselected by default.

Proposals tab

The page groups the settings specific to the proposal content: addresses, sales representative, barcodes and QR codes, linked project and objects, header and layout, line columns, VAT reverse charge, hiding options, proposal versions, presentation pages, approval block and online signature area, printed signatures, PDF merging.

The sections of this page fold like an accordion.

User guide tab

Displays the complete module guide in the interface language (English, French, German, Spanish or Italian, French being the fallback). It is the reference documentation, more detailed than this page.

⬆ Back to summary

Usage

- Open the proposal card, then, in the Documents block at the bottom of the card, choose the ultimatepropale_propal model in the "Models" drop-down list and click Generate.
- Default model: in Home - Setup - Modules, Commercial proposals page, choose ultimatepropale_propal as the default model. It is the one used by proposal validation, mass actions and other modules. The former Ultimatepdf ultimate_propal model disappears once that module is disabled.
- The PDF appears in the list of attached files: it can be downloaded, previewed or sent by email.
- Switch Design quickly: use the dedicated selector in the menu at the top right of the application, without going back to the full setup.
- Append the GSC: select the GSC file in the drop-down list near the Generate button.
- Merge an extra PDF: once the option is enabled on the Proposals page, select the file(s) to merge from the card.
- Have the proposal signed online: enable the electronic signature area on the Proposals page, then send the customer the link to Dolibarr's public signature page. The signature is applied in the dedicated frame.

Presentation pages and online signature

Presentation pages and cover page

Enable Add new presentation page before proposal (ULTIMATE_PDF_PROPAL_ADD_NEW_PRESENTATION_PAGES) on the module's Proposals page. The proposal PDF is then organised as follows:

Order Pages Where to set them
1 Cover page Design edition, Set up the core bloc block
2 Presentation pages specific to the proposal Proposal card, Position column = Before the proposal (presentation)
3 The proposal: header, lines, totals and "Approved" box —
4 Annexes: files merged after the proposal, product technical sheets, terms of sale Proposal card (After the proposal), Proposals page, Options page

Choosing the cover. In the Design edition, expand the Set up the core bloc block:

  • the Background image for proposal presentation list offers the four supplied backgrounds (blue, cyan, green, orange) and the covers you uploaded;
  • the Upload a custom cover for the proposal (picture or PDF) field adds a cover to this list. A PDF is stored in proposals/cover: only its first page is used, stretched over the whole page.

The module prints the company logo, the document title, the recipient's name, the proposal date and its validity end date over the cover: choose a cover on which these areas remain readable.

Adding presentation pages to a proposal.

  1. Attach the PDF to the proposal (Linked files tab).
  2. On the proposal card, in the File(s) merged with proposal block, tick the file, choose Before the proposal (presentation) in the Position column, then click Save.
  3. Regenerate the proposal PDF.

Several files are inserted in the order of the list, that is the alphabetical order of their names: prefix them (1-, 2-...) to force an order. Each imported page, before or after the proposal, keeps its size and orientation and gets the proposal footer (company details and "n / total" page number).

Online signature by the customer

The customer signs the proposal from a web page, without printing it: the signature is placed in the "Approved" box of the PDF and the proposal moves to the Signed status.

Setting up

  1. In Setup > Modules > Commercial proposals, enable Allow online signing (Dolibarr core option, PROPOSAL_ALLOW_ONLINESIGN).
  2. On the module's Proposals page, enable Display : " Agreed and signed " (ULTIMATEPDF_PDF_PROPAL_USE_ELECTRONIC_SIGNING). The proposal then prints, below the totals, a "Written acceptance, company stamp, date and signature" box.
  3. Validate the proposal and generate its PDF with the ultimatepropale_propal model.

Sending the link to the customer. The card of the validated proposal shows the Link for online signature block. Copy it into your e-mail, or use the __ONLINE_SIGN_URL__ variable in an e-mail template. The customer opens the page, reads the PDF, clicks Accept proposal, types their name, draws their signature and confirms. Dolibarr then saves a new REF_signed-YYYYMMDDHHMMSS.pdf file next to the original PDF, which is left unchanged.

On which page is the signature placed? On the page carrying the "Approved" box, and only that one. At each generation, the model writes the number of this page into the PDF properties (PAGESIGN=n keyword), which Dolibarr's signature page reads. The cover and the presentation pages placed before the proposal are counted. Annexes placed after it (merged files, technical sheets, terms of sale) never move the signature. Example: a cover, two presentation pages, a two-page proposal, a technical annex and the terms of sale give PAGESIGN=5, whatever the length of the annexes.

Good to know

  • The PDF shown on the card is the one signed: regenerate it after any change to the proposal, before sending the link. A PDF produced by an earlier version of the module, without the PAGESIGN keyword, is signed on its last page.
  • Earlier versions wrote the page count of the last generated PDF into the PROPAL_SIGNATURE_ON_SPECIFIC_PAGE constant. Global to the entity and taking precedence over PAGESIGN, it sent the signature onto the annexes, or even onto a page of another proposal. The module now deletes it at each generation: do not create it again.
  • The height of the signature on the page comes from another core constant, PROPAL_SIGNATURE_YFORIMGSTART, also global: the module writes the position of the box into it at each generation. If another proposal, whose box is at a different height, is generated between the generation and the signature, the signature may be shifted vertically. In that case, regenerate the proposal PDF before sending the link again.

Troubleshooting

Symptom Probable cause
The ultimatepropale_propal model does not appear in the list The UltimatePropale module or the Commercial proposals module is not enabled, or the model is not enabled in the commercial proposals setup
Automatic generations (validation, mass actions) use another model ultimatepropale_propal is not the default model for commercial proposals
UltimatePropale cannot be enabled UltimatePDF, UltimatepdfLight or UltimateInvoice is enabled: disable it first
The proposal does not reflect the changes made to a Design This Design is not the one carrying the "Default" badge
Two QR codes overlap at the top of the proposal Former configuration: disable one of the QR codes, only one is allowed at a time
The online signature is not on the right page, or not at the right height PDF generated by an earlier version (no PAGESIGN keyword), PROPAL_SIGNATURE_ON_SPECIFIC_PAGE constant recreated by another module, or another proposal generated in the meantime: regenerate the PDF, then send the link again
The online signature link does not appear on the proposal card Proposal not validated, or Allow online signature option disabled in the commercial proposals setup
The presentation pages are missing from the PDF Presentation pages option disabled, or file not ticked on the proposal card, or position not saved

The Dolibarr log (Home - Setup - Other - Logs) traces each generation.

⬆ Back to summary

Other languages

⬆ Back to summary