Discover powerful Dolibarr extensions designed to automate your business processes

AgroFactory Manager turns Dolibarr into a genuine AgroFactory ERP Suite: an integrated industrial platform to run a complete food factory without relying on a separate industrial ERP.
Value chain covered:
Raw materials → Industrial processing → Quality control → Storage → Distribution → Customers
The module targets food plants, food-processing industries, processing units, packing stations, freezing units, dairies, slaughterhouses, canneries, beverage plants, cereal industries and fruit and vegetable processing units.
|
Domain |
Coverage |
|
Upstream |
Raw materials, agricultural and industrial suppliers, reception and inbound control, packaging |
|
Production |
Recipes and formulations, finished products, production orders, shop-floor tracking, lines, machines, planning |
|
Traceability |
Lots, upstream / internal / downstream traceability, use-by and best-before dates, product recalls |
|
Quality |
HACCP control plan, laboratory, non-conformities, certifications |
|
Cold chain |
Cold rooms, freezers, IoT supervision, temperature alerts |
|
Support |
Industrial maintenance (CMMS), HSE, industrial costs |
|
Decision |
Dashboard, reporting, industrial AI assistant, REST API |
|
Item |
Value |
|
Business objects |
24 (each with list, card, search, column selector and access control) |
|
Permissions |
26 across 9 functional groups |
|
Menu entries |
31 (1 top level + 30 left menu) |
|
Database tables |
24 (llx_afm_*) |
|
Languages |
French, English, Spanish, Italian, German |
|
Reports |
8, exportable to CSV, Excel, Word and PDF |
|
REST API routes |
9 |
|
Dashboard charts |
6 industrial charts + status kanban + alert zone |
The module is organised into six complementary industrial engines, all backed by the same data repository and by Dolibarr's native modules.
|
Engine |
Responsibility |
|
Production Engine |
Production orders, planning, routings, recipes, consumption, yields |
|
Food Traceability Engine |
Lots, upstream traceability, downstream traceability, product recalls |
|
Quality Management Engine |
Quality controls, analyses, non-conformities, corrective actions |
|
Cold Chain Engine |
Temperature, cold rooms, refrigerated storage |
|
Industrial Cost Engine |
Production costs, margins, profitability |
|
Reporting Intelligence Engine |
KPIs, analysis, industrial reports, decision intelligence |
· Every business object extends Dolibarr's CommonObject and is declared in a single registry (lib/agrofactorymanager_objects.php) that drives the generic list and card engines.
· Tables are prefixed llx_afm_*; each carries entity, status, creation and modification audit columns and an import_key used to isolate demonstration data.
· A schema self-heal runs at activation: Dolibarr only ever runs CREATE TABLE, so missing columns are added with ALTER TABLE on upgrade.
· Multi-company is supported throughout: every query filters on getEntity().
· All language keys are prefixed (Afm...) so no other installed module can win the shared translation merge and render its own wording inside this module's screens.
· Icons are restricted to Font Awesome 5 Free, the version Dolibarr 16–23 ships.
The module implements the full industrial flow, from the supplier's lot to the customer delivery.
Supplier order → Reception → Quality control → Acceptance or rejection → Put to stock
· Reception records the weighing (received quantity, net weight) and the temperature on arrival.
· Visual check and laboratory analysis are recorded independently (compliant, non-compliant, pending).
· Reception status: pending control, accepted, partially accepted, rejected (with reason).
· The supplier lot captured here is the key of the upstream traceability chain.
· Versioned recipes with validation (validator and validation date).
· Recipe types: standard, organic, seasonal, trial.
· Batch size, expected yield, preparation time, cooking time and cooking temperature.
· Composition lines carry the ingredient, dosage, unit, share of batch, allergen flag and substitutability.
· The batch cost is derived from each ingredient's dosage and unit price.
Order lifecycle: planned → released → in progress → paused → completed / cancelled
Manufacturing route: preparation → processing → cooking → cooling → packaging → storage
· Each order carries the product, recipe, line, team, priority and planned / produced / scrapped quantities.
· Yield and progress are computed from the planned and produced quantities.
· Every step records its start and end, duration, temperature, operator and input / output quantities.
· Machines and external MES can declare production through the REST API, which recomputes yield and progress.
· Daily, weekly and monthly views.
· Machine load per line: planned quantity against the theoretical capacity of the window.
· Above 100 percent the line is overloaded (red); above 80 percent it is under tension (orange).
· Priorities and resource availability are shown alongside the scheduled orders.
One-click food traceability is the module's most critical capability: a single lot number returns the complete genealogy of the product, both upstream and downstream.
|
Direction |
Returned information |
|
Upstream |
For every component: raw material, supplier, supplier lot, origin, certification, reception and reception date |
|
Internal |
Production order, line, team, yield and every manufacturing step (dates, durations, temperatures, operators) |
|
Quality |
All quality controls of the lot with measured value, limits, conformity and CCP flag |
|
Downstream |
Customers delivered, quantities, carrier, delivery temperature and destination |
In the event of a food-safety alert, this single search returns the exact list of customers to recall, which is the regulatory expectation under EC Regulation 178/2002.
· Lot statuses: pending analysis, released, blocked (with reason), consumed, recalled.
· Use-by (DLC) and best-before (DDM) dates are derived from the production date and the product setup.
· Lots approaching their use-by date are raised on the dashboard (threshold configurable, 15 days by default).
· Product recalls record the concerned and recovered quantities, the customers involved and whether the authorities were informed.
|
Control family |
Purpose |
|
Physical |
Temperature, weight, foreign bodies, packaging integrity |
|
Chemical |
pH, fat content, additives, residues |
|
Microbiological |
Total flora, coliforms, Listeria monocytogenes, Salmonella |
|
Organoleptic |
Texture, taste, appearance, smell |
· Each control records a control point, a parameter, a measured value, lower and upper limits and a conformity verdict.
· The CCP flag marks critical control points of the HACCP plan.
· Controls are attached to the lot, the product and the production order, which feeds the traceability view.
Process: detection → root cause analysis → corrective action → validation
· Root cause analysis methods: 5M, Ishikawa, 5 Why.
· Types: product, process, supplier, hygiene, equipment. Severity: minor, major, critical.
· Root cause, corrective action, owner, closure date and financial impact are recorded.
· Non-conformities feed the defect Pareto and the AI quality assistant.
· Sample types: raw material, in-process, finished product, surface swab, water.
· Analysis statuses: pending, running, completed, validated.
· Internal or external laboratory, analyst and validator are recorded.
Tracked schemes: ISO 22000, HACCP, IFS, BRC, BIO (organic) and Halal. The module records the certification body, scope, obtention, expiry and audit dates, the auditor and the number of findings. Certifications expiring within 90 days are raised on the dashboard.
· Every enclosure carries its capacity, target temperature, minimum and maximum bounds, humidity and fill rate.
· Any reading outside the range switches the enclosure to alert and is journalled with its deviation.
· 24-hour temperature curves are drawn per enclosure from the IoT readings.
· Sensors push readings through the REST API, which computes the alert level and updates the enclosure.
The module exposes a REST API to connect machines, IoT gateways and external systems. It requires Dolibarr's API/Web services module to be enabled and an API key on the calling user.
Base URL: /api/index.php/agrofactorymanager/ — authentication through the DOLAPIKEY header.
|
Method |
Route |
Purpose |
|
GET |
kpi |
Factory KPIs (production, quality, traceability, cold chain, maintenance) |
|
GET |
productionorders |
List production orders (filterable by status) |
|
GET |
productionorders/{id} |
One production order with its manufacturing steps |
|
POST |
productionorders/{id}/declare |
Machine production feedback (quantity, scrap); recomputes yield and progress |
|
GET |
lots |
List production lots |
|
GET |
traceability/{ref} |
Full genealogy of a lot (upstream, steps, quality, downstream) |
|
GET |
coldrooms |
Cold rooms with their current temperature |
|
POST |
readings |
Push an IoT reading; computes the alert level and updates the room |
|
GET |
qualitycontrols |
List quality controls |
curl -X POST "https://<host>/api/index.php/agrofactorymanager/readings" \
-H "DOLAPIKEY: <your-api-key>" \
-d "coldroom=2&temperature=5.8&humidity=81&sensor=IOT-002"
The endpoint stores the reading, computes its alert level against the room's min/max range (none / warning / critical), updates the room's current temperature and status, and returns the created reading as JSON.
· Every route enforces the permission of its functional group for the authenticated caller.
· An invalid API key receives a 401 response; an unauthorised group receives a 403.
· Sort fields are whitelisted against the real table columns before reaching SQL.
· Result sets are paginated and capped (default 100, maximum 500 rows per call).
The module defines 26 permissions across 9 functional groups, set per user or per group in Setup → Users and groups.
|
Group |
Scope |
Actions |
|
material |
Raw materials, suppliers, receptions, packaging |
read / write / delete |
|
production |
Recipes, finished products, production orders, steps, lines |
read / write / delete |
|
quality |
Quality controls, laboratory, non-conformities, certifications |
read / write / delete |
|
traceability |
Lots, traceability, deliveries, recalls |
read / write / delete |
|
coldchain |
Cold rooms, IoT readings |
read / write / delete |
|
maintenance |
Machines and maintenance operations |
read / write / delete |
|
hse |
HSE events |
read / write / delete |
|
cost |
Industrial costs |
read / write / delete |
|
reporting |
Reporting and AI assistant |
read |
Read and write are granted by default at activation so the module is usable immediately; delete and administration are not.
· Every list and card page checks the permission of its object's group before rendering.
· All queries are filtered by entity, so multi-company data never leaks across entities.
· Forms are protected by Dolibarr's CSRF token; posted payloads are re-validated against a whitelist.
· All values are escaped before reaching the database and HTML-escaped on output.
· User-supplied sort fields and view switches are whitelisted, never interpolated raw into SQL.
Every record carries its author and creation date, and its last modifier and modification date. Actions are journalled through Dolibarr's native event log.
The demonstration dataset is tagged with a dedicated import key. Removing it deletes only tagged rows — and cascades to user-created children of demonstration parents so that no record is ever left orphaned on a dead foreign key. Real production data is never touched.
AgroFactory Manager — published by DoliResources
www.doliresources.com — © 2026 DoliResources — GNU GPL v3 or later