Skip to content

Dolibarr V12.0.0 released

Dolibarr V12.0 released

The dolibarr association is pleased to announce the release of version branch 12.0 of Dolibarr ERP & CRM (a0a65d071f6f9)
Version 12 is a major release with many new features for both users and developers.
Many important functions have been introduced in this version. For a detailed list of changes, see the ChangeLog .

ChangeLog for 12.0.0 compared to 11.0.0
For users:

NEW: Module MO (Manufacturing Order) is available as stable module.
NEW: Receipt printer module moved from ‘development’ to ‘experimental’
NEW: Add option MAIN_VIEW_LINE_NUMBER_IN_LIST for some lists.
NEW: add numbering module for TakePOS module
NEW: 2 new options when creating an invoice from time spent on a project : by period or by task
NEW: Accountancy add column thirdparty on binding page
NEW: Accountancy – Add Export for Fiducial Winfic eWinfic WinSis Compta
NEW: Accountancy – Add Export LD compta version 10
NEW: Accountancy – Add mode intra & export for product or service bought
NEW: Accountancy – Add possibility to manage a short alternative label for account – Use to simplify accountancy
NEW: Accountancy – General ledger – Add an option to search not reconciled lines
NEW: Add accountancy code of thirdparty in contact and supplier export
NEW: support webp image format
NEW: Add checkbox “overwrite if exists” into ECM/DMS module
NEW: add a link to notes in members list
NEW: add a parameter to group same products in TakePOS
NEW: add a parameter to sort product by label in TakePOS
NEW: Add a profil to import contact categories
NEW: Add company extrafields into order export
NEW: add const CASHDESK_FORCE_DECREASE_STOCK to force batch decrementation
NEW: add const TAKEPOS_NUMPAD_USE_PAYMENT_ICON to use icons on payment buttons
NEW: add csv separator setup in module admin
NEW: add dedicated substitutions keys for extrafields of type date and datetime
NEW: add default warehouse for dispatch
NEW: Add due date in feature “Export accounting documents”
NEW: Add duration information for fichinter
NEW: Start support of Dark theme into ELDY theme
NEW: Add field author public alias for blog post on website module
NEW: Add “finished” field on product list
NEW: Add French association chart of accounts 2018
NEW: Add French farm chart of accounts 2014
NEW: Add French foundation chart of accounts 2018
NEW: add global reduction in cash desk
NEW: Add graph type ‘piesemicircle’
NEW: Add hook getInputIdProf. Better solution for #13228
NEW: Add hook on margin list page
NEW: add icon on payment buttons in cash desk
NEW: Add include various payments and loans in accounting report with simplfified accountancy
NEW: Add invoice stat graph and categ search
NEW: Addition of delivery times in substitution variables
NEW: add member to validate on dashboard
NEW: Add method to add social network sharing buttons on blog posts
NEW: add multicurrency columns to document lists
NEW: add numbering module for cash desk
NEW: add Opening Balance column to balance.php
NEW: add opportunity status in project stats
NEW: Add option PDF_USE_ALSO_LANGUAGE_CODE to generate PDF in 2 languages
NEW: Add option to hide all inactive users into combo list of users.
NEW: add PDF certificate if present on document folder
NEW: add product if only one found
NEW: Add product on key “Enter” in search bar
NEW: add professional ID 1 in sepamandate document
NEW: Add Project Ref Column on list of social/fiscal contributions
NEW: add Project Ref in events export
NEW: add public and private notes in propal list
NEW: Add social networks of the company
NEW: Add sorting for contacts of … pages
NEW: Add subtitution variables for url of document in backoffice
NEW: Add tel and fax in warehouse card
NEW: add total of value in product stat
NEW: add total weighted amount in project list
NEW: add units in product list
NEW: add VAT ID in sepamandate document
NEW: add VAT rates in free zone for product/service in TakePOS
NEW: add weighted amount on project/opportunity
NEW: add width and height measures in product list
NEW: add WYSiWYG on member type’s description
NEW: [Allow constants values to be overridden by environment variables]
NEW: Allow custom module class origine type in Mouvementstock
NEW: allow display extrafields on pdf
NEW: Allow extrafields on pdf : extend to line desc
NEW: allow time consumed to be linked to another task
NEW: Another way to navigate between pages for some lists
NEW: Add author column in the client/supplier invoice lists and into order list
NEW: bank account tags for invoice ODT template
NEW: Bar Restaurant tab and Auto order
NEW: better filter on shipment list as other list
NEW: Better php module view admin
NEW: Bookkeeping – Add link to document & pdf
NEW: Bookmarks are now in top menu bar
NEW: Can check all events in one click in setup of audited events
NEW: Can create an deposit from order using a percentage of qty.
NEW: Can edit option PDF_USE_ALSO_LANGUAGE_CODE from PDF setup page
NEW: Can enter and edit stripe credit card using the Stripe card ID
NEW: Can filter on donation status in list
NEW: Can replace a string into all pages in website module
NEW: Can select several fields to personalize list before submit.
NEW: Can select which element to export in export accounting documents.
NEW: can update contact in import model
NEW: Cash Fence in TakePOS
NEW: Categories and subcategories sorted by label in TakePOS
NEW: Categories for actioncomm
NEW: Category filter for bank and warehouse list
NEW: Chart of accounts to Ecuador
NEW: class tool for converting units
NEW: Close #13011 Add button create thirdparty when creating intervention
NEW: Colorful theme for TakePOS
NEW: columns units in product list
NEW: compatibility of translabel with more dict
NEW: Confirm file delete on fracture card
NEW: “contact_civility” for ODT templates
NEW: CUPS printing compatibility for TakePOS
NEW: Customer command list – Add date start & date end
NEW: display weight in shipment list
NEW: Documentation about PHP support in Dolibarr
NEW: Donation – Update FR CERFA to 11580*04
NEW: Easier way to setup the different types of tax. Better visibility.
NEW: enable put for agendaevents api
NEW: Expedition list – Add date start & date end
NEW: Experiment supplier packaging with option PRODUCT_USE_SUPPLIER_PACKAGING: Using price according to the minimum quantity
NEW: Export module, add extrafields for Contract and Contract line
NEW: Extend retained warranty to be available for all invoices
NEW: filter by product on supplier order API
NEW: French new regions
NEW: get documents for categories with RESP API
NEW: get proposal by ref with API
NEW: Hidden option MAIN_TEMP_DIR
NEW: hook and data id
NEW: hook on ics generation to add more events in eventarray
NEW: hook on product load stats
NEW: If $dolibarr_main_force_https is set, the flag ‘secure’ on session
NEW: ignore dir for apple pay with stripe
NEW: Invoice list – Add date start & date end
NEW: invoice list: enable multicurrency columns
NEW: labels on reduction buttons in cash desk
NEW: Minimum sell prices taking into account in TakePOS
NEW: monthly view to enter time
NEW: Multiple sales in TakePOS
NEW: multiselect categorie client stats facturation
NEW: no confirm discard ticket if paid
NEW: not show linked table on add message action
NEW: only auto print paid ticket in cash desk
NEW: only show units columns in product list (not in service list)
NEW: order list: enable multicurrency columns
NEW: Overwrite tpl with module_part[‘tpl’] is deprecated. USe hooks
NEW: possibility to defined rounding rules by currency
NEW: possibility to show society info when print page
NEW: Povide a RSS Feed for blogposts
NEW: Project task list, add column selector and extrafields
NEW: Propal list – Add date start & date end
NEW: propal list: enable multicurrency columns
NEW: Restore version of application on main screen (for screenshots)
NEW: Salaries list – Add date start & date end
NEW: search on key code “enter” if defined in TakePOS
NEW: set payment method on paid ticket in TakePOS
NEW: Show active widget state of a RSS feed
NEW: Show count of each category elements in category card
NEW: Show creator, last update user of category/tag in the information tab
NEW: Show list of users in the user category card
NEW: show messages on ticket card
NEW: show “New category” button in top of sub categories list
NEW: show project label in project index
NEW: Show units of products in stocks and hide total units if content is of diffents units
NEW: sorting elements on project overview
NEW: special option MAIN_CREATEFROM_KEEP_LINE_ORIGIN_INFORMATION to store in document line created form other documents lines the id of original lines and origin class line rather than origin object id and origin object type
NEW: stats invoice graph with 3 bars (3 years instead of 2)
NEW: supplier invoice list: enable multicurrency columns
NEW: supplier order list: enable multicurrency columns
NEW: supplier proposal list: enable multicurrency columns
NEW: Support of tag {line_pos} for line numbers for tables in ODT templates
NEW: Support some HTML contents into ODT documents
NEW: Parameters for Bar Restaurant are grouped in same tab
NEW: Takepos : Sort products by reference
NEW: Takepos supplements are supported.
NEW: The info_admin() can show text after click on other text
NEW: The module selection uses a KanBan view by default.
NEW: tooltip for Unit_type and scale in “Dictionary setup – Measuring Units”
NEW: tooltip notes with first public note and then private note
NEW: Tree view for sub-categories
NEW: Truncate columns names when too long and show full title as popup
NEW: upload odt models for invoices, order, proposal, thirdparties and shipments.
NEW: Use native –convert-to feature to convert to pdf
NEW: Add user on order list
NEW: Various payment list – Add search date start & date end & subledger account
NEW: visu FROM day TO day in permonth view
NEW: Website logs are now into a separated log file.
NEW: X-Axis on graph are shown verticaly when there is a lot of values.
NEW: Can force ref of a variant product

For developers or integrators:

NEW: Add a method $form->widgetForTranslation to allow any field of a form to be entered into different languages.
NEW: Add API to get types of expense reports
NEW: API filter bankaccounts by category
NEW: API filter contacts by category
NEW: API filter members by category
NEW: API filter projects by category
NEW: API filter thirdpartie by category
NEW: API filter thirdparty by category
NEW: API filter user by category
NEW: API filter warehouses by categorie
NEW: api for get user’s documents
NEW: api invoice get by ref
NEW: API to update purchase price.
NEW: Move engine to build charts from jflot to chart.js
NEW: Upgrade ace to 1.4.8 – Upgrade select2 to 4.0.13
NEW: Upgrade Stripe library to 6.43.1
NEW: Bookkeeping by account – Add selectfields & hook
NEW: Can force position of legend of graph on right (instead of top)
NEW: Can change destination of “Back to list” using a “backtolist” parameter
NEW: add more category types from hook


Following changes may create regressions for some external modules, but were necessary to make Dolibarr better:

  • PHP 5.5 is no more supported. Minimum PHP is now 5.6+.
  • Default mode for GETPOST function is now ‘alphanohtml’ instead of ‘none’. So check when you make POST or GET requests with
    HTML content that you make a GETPOST(‘myparam’, ‘restricthtml’) or GETPOST(‘myparam’, ‘none’) if you really need posted content without sanitizing
    the HTML code of content (in such a case, sanitize data later)
  • Removed hidden constant MAIN_EXTRAFIELDS_IN_ONE_TD that was useless.
  • Reference of object including a “/” are no more allowed. It is never used by default but to support setup that introduced it, the “/” will be replaced
    by a “_” automatically when a reference (with a custom numbering mask that use it) is generated.
  • Library jflot (replace with chartjs) was removed.
  • Library geoip (replaced with geoip2) was removed.
  • Object field ref_int is deprecated and set to ‘not used’, method to fetch object by only ref_int is not supported anymore.
  • UserGroup class has been refactored with new architecture. Triggers of class UserGroup are now USERGROUP_CREATE, USERGROUP_MODIFY, USERGROUP_DELETE
  • A new way to navigate between pages in list is available. To use it (not mandatory), you must:
  • replace line $page = GETPOST(‘page’, ‘int’) with $page = GETPOSTISSET(‘pageplusone’) ? (GETPOST(‘pageplusone’) – 1) : GETPOST(“page”, ‘int’);
  • remove input field in form ”;’
  • add parameter $pagenavastextinput to value 1 when calling print_barre_liste()


Only people that installed Dolibarr using the all-in-one autoinstaller for Windows called “DoliWAMP” are concerned by the following warnings:

  • DoliWAMP autoinstaller for Windows is not more available on 32bits systems. Use standard package if you need to use such architecture.
  • It is not possible to migrate from an installation done with the old DoliWAMP autoinstaller for Windows by using this new one. You must make a backup
    of your database, make a fresh installation using the new installer and reload.
  • Don’t forget that DoliWAMP is a good solution to make a quick test of Dolibarr on your local computer but was never recommanded as a production
    solution on a local desktop since a desktop computer has not a backup and security policy as good as on a server (when there is one).
    DoliWAMP remains a solution for fast test or demo purposes.