Discover powerful Dolibarr extensions designed to automate your business processes

1. Executive Summary
Market Gardening Farm Management turns Dolibarr into a complete operating system for a market gardening business. It covers the whole chain from the seed lot to the cashed payment: land register, growing campaigns, crop plans and rotations, nursery, plantings, field operations and labour, irrigation and fertilisation, crop protection, harvests, packing, traceability, sales, production costs and profitability.
The module is published by DoliResources. It installs as a standard Dolibarr custom module, never modifies the core, and integrates with the native third-party, product, stock, warehouse, batch, quotation, order, shipment, invoice, payment, supplier, project, agenda and document modules.
The module is a management, planning and decision-support tool. It never replaces agronomic diagnosis, the prescription of a plant protection treatment, laboratory analysis, or any legal obligation applicable to farming. Every sensitive technical decision remains the responsibility of a qualified professional.
2. Business Objectives
The module answers five questions a market gardener asks every week: what is growing where, what has to be done today, how much water and how many inputs have been used, what will be harvested and when, and whether the crop actually made money.
· Give a single, current picture of the land, the standing crops and the work in progress.
· Record every operation carried out on a crop lot so the produce is traceable in both directions.
· Measure water, fertiliser, plant protection, labour and machinery consumption per crop lot.
· Forecast harvests, honour customer contracts and avoid over-booking finished stock.
· Compute a defensible cost price per kilo and a margin per parcel, per crop and per customer.
· Keep the evidence a certification audit asks for, without a parallel spreadsheet.
3. Functional Scope
Sixty-one business objects are shipped, grouped in fifteen functional areas and reachable from a structured left menu and an in-page navigation bar that follows the agronomic journey.
· Land: farms, sites, parcels, blocks and beds, greenhouses and tunnels, soil analyses.
· Campaigns: growing campaigns, crop plans, rotations.
· Crops: crop and variety reference data, crop lots, growth stages, observations.
· Nursery: seed lots, sowings, seedling batches, plantings and transplants.
· Operations: farm tasks, teams, workers, time records, absences.
· Water: water sources, irrigation sectors, irrigation programs, irrigation events.
· Fertilisation: fertilisation plans, fertiliser applications, fertigation.
· Protection: pests and diseases, plant protection treatments, biological control.
· Inputs: input catalogue, input lots, suppliers, purchases.
· Equipment: farm equipment, maintenance, fuel and energy.
· Harvest: forecasts, harvests, harvest lots, losses.
· Packing: packing operations, packaging, labels, finished lots.
· Sales: customers, contracts, sales orders, lot reservations, deliveries, invoices, payments.
· Costing: production cost sheets per crop lot.
· Quality: certifications, audits, quality checks, non-conformities, customer complaints.
4. User Roles
Permissions are organised in thirty-five functional groups. Each group carries read, create or modify and delete, plus a dedicated right where a decision is involved: close a campaign, validate a crop plan, assign a task, validate a time record, derogate a pre-harvest interval, validate an invoice, close a non-conformity.
Read and write are granted by default so the module is usable straight after activation. Delete, the decision rights, the cost-reading right and the administration right are off by default: they are granted explicitly, per the principle of least privilege.
· Farm manager and director: full read access, reporting, costs and margins.
· Agronomist and crop manager: parcels, crop lots, observations, plans, irrigation, fertilisation.
· Nursery manager: seed lots, sowings, seedlings, plantings.
· Irrigation and fertigation manager: water sources, sectors, programs, irrigation, fertigation.
· Plant protection manager: pests, observations, treatments including derogation, biological control.
· Team leader and farm worker: today's tasks, field time records, absences.
· Harvest and packing manager: forecasts, harvests, harvest lots, packing, packaging, finished lots.
· Quality manager and auditor: quality checks, certifications, audits, non-conformities, traceability.
· Storekeeper and buyer: inputs, input lots, suppliers, purchases.
· Mechanic: equipment, maintenance, fuel and energy.
· Sales manager and accountant: customers, contracts, orders, deliveries, invoicing, payments.
· Read-only user: lists and reporting, no write access.
5. Dashboard
The Market Gardening Farm Command Center gathers on a single screen what a crop manager needs at the start of the day. It is organised in seven zones: today's activity, the crop lot journey, land and crops, water and fertilisation, harvests and stock, sales, and alerts, followed by the charts.
Every ratio is computed over the same population on both sides. Average yield divides harvested kilos by the area that actually produced them, so a lot still in the nursery affects neither the numerator nor the denominator. The margin rate only retains cost sheets that carry both a cost and a revenue. The loss rate divides losses by what was produced plus what was lost.
Each alert tile is a link that opens the matching filtered list.
6. Farms and Sites
A farm carries its legal identity, its manager, its address and coordinates, its total, cultivated and greenhouse areas, its production mode, its water rights and its registration number. It can be linked to a native Dolibarr third party.
A site is a production location within the farm: main site, satellite, nursery, packhouse, storage or leased land. It records whether a cold room, a packhouse or a nursery is present, and its distance from the main site. The parcel count and the cultivated area of a farm are recomputed from the land actually recorded, so the summary can never contradict the list.
7. Parcels
A parcel carries its code, its cadastral reference, its area and usable area, its shape, its soil type, its slope, its orientation, its coordinates, its irrigation system, its water access and whether it is farmed organically and since when.
The parcel status is derived from the crop lots standing on it: a parcel carrying an active lot is cultivated, and one carrying none cannot be. The badge and the displayed crop therefore always agree. A farm map positions every parcel from its recorded coordinates, colours it by status, sizes it by area and flags organic management and the number of planned tasks.
8. Greenhouses and Tunnels
Protected cropping is described independently of the open field: multi-span greenhouses, glasshouses, high tunnels, walk-in tunnels, shade houses and insect-proof net houses.
Each structure records its cover material, its area, its dimensions, its ridge height, the number of spans, and whether it has heating and of what type, ventilation, shading and fertigation. Soilless structures declare their substrate. Installation and cover renewal dates support the replacement plan.
9. Soil Analysis
A soil analysis records the sampling and result dates, the laboratory, the sample type and depth, the pH, organic matter, conductivity, texture, clay, silt and sand fractions, nitrogen, phosphorus, potassium, calcium and magnesium, the cation exchange capacity and total limestone.
The module stores and presents the results; it does not interpret them. The recommendation field receives the agronomist's written advice and is never computed.
10. Agricultural Campaigns
A campaign carries a season, a crop year, start and end dates, objectives, planned and planted areas, a budget, a target and actual yield, revenue and a manager. Its status follows draft, planned, validated, in progress, suspended, finished, closed and cancelled.
The number of crop plans, the planted area and the realised yield are recomputed from the crop plans and crop lots actually attached to the campaign.
11. Crop Planning
A crop plan binds a campaign, a parcel, a block, a crop and a variety to planned sowing, planting and harvest dates, a density, a plant count, a target yield per hectare and a target quantity.
It also carries the intended irrigation mode, a summary of the fertilisation and protection plans, a budget and an expected revenue, which is what makes the budget-versus-actual comparison possible at the end of the campaign.
12. Crop Rotation
A rotation entry records, per parcel and per crop year, the previous, current and next crop with the botanical family of each, the rank in the cycle, the fallow period, any green manure and the return interval to respect.
The module keeps and displays the history and the constraint entered; it does not impose an automatic agronomic recommendation.
13. Crops
The crop reference data carries the common and latin names, the botanical family, the crop group, the production unit, the average cycle and nursery duration, the reference density and yield, the water requirement, the optimal temperature range, the usual sowing and harvest periods, whether the crop is grown under cover, its shelf life and its storage temperature.
Sixteen crops are shipped with the demonstration dataset: tomato, courgette, pepper, aubergine, cucumber, lettuce, spinach, carrot, radish, onion, leek, green bean, melon, cauliflower, basil and early potato. The catalogue is fully configurable.
14. Varieties
A variety belongs to a crop and carries its type, its seed supplier, its cycle, its target yield, its caliber range, its fruit colour and average weight, its declared resistances, whether the seed is organic and whether the variety is a hybrid, its germination rate, its thousand-seed weight, its certification reference and its price per thousand seeds.
15. Crop Lots
The crop lot is the pivot of the whole module: everything done in the field attaches to it, and everything that leaves the field descends from it.
It carries the campaign, the crop plan, the parcel, the block or greenhouse, the crop and variety, the area, the start date, the first and last harvest dates, the density and plant count, the current stage, the production mode, the target quantity, the harvested kilos, the yield, the losses, the total cost and the revenue.
Harvested kilos, losses and yield are recomputed from the harvests and losses actually recorded, so the card can never contradict the list it summarises.
16. Nursery
The nursery chains four objects so the traceability line reaches back to the seed: the seed lot received from the supplier, the sowing, the seedling batch produced, and the planting in the field.
A seed lot carries its lot number, supplier, reception, production and expiry dates, the quantity received, available and used, the germination rate, the purity, whether the seed is organic or treated, its storage location and its certificate reference.
17. Sowing
A sowing records the seed lot, crop and variety, the sowing method, the date, the nursery location, the number of trays and cells per tray, the seeds sown, the substrate and its volume, the germination date and rate, the seedlings that emerged and those lost with the reason, the planned readiness date, the operator and the cost.
18. Planting
A planting records the crop lot, the seedling batch consumed, the parcel and block, the planting type, the date, the number of plants, the area planted, the density, the row and in-row spacing, the team, the number of workers, the duration, the plants lost, whether gap filling was done, and the labour and plant costs.
19. Crop Stages
Growth stages are recorded against the crop lot as a dated journal: sowing, germination, seedling, transplanting, vegetative growth, flowering, fruit set, bulking, ripening, harvest and end of cycle.
Each entry carries the days after planting, the plant height, the leaf count, the stand homogeneity and vigour, the observer and the expected date of the next stage.
20. Farm Operations
A farm task carries its type, the campaign, the parcel and crop lot, the team, the equipment used, the priority, the planned and actual dates, the planned and actual hours, the number of workers, the area and quantity completed with its unit, the labour, input and equipment costs, the weather conditions and the supervisor.
Twenty-two operation types are shipped, from soil preparation and ploughing through mulching, sowing, planting, irrigation, fertilising, treatment, weeding, hoeing, trellising, pruning, deleafing and pollination to harvesting, clean-up and crop residue destruction.
21. Task Planning
The planning board shows four rolling weeks, one row per team and one column per week, and the window can be moved four weeks at a time.
Each tile carries the date, the operation type and the parcel. A task whose planned date is older than the configured threshold is flagged as overdue. A second table gives the load per parcel over the displayed window, in number of tasks and planned hours.
22. Workforce
Teams carry their type, their leader, their headcount, their speciality, their hourly cost, their daily capacity in hectares and their shift pattern. The headcount is recomputed from the workers actually attached.
A worker carries the employment type, the team, an optional link to a Dolibarr user, the job title, the skills, the contact details, the birth, hire and contract end dates, the contract type, the hourly rate, the weekly hours, whether a plant protection licence is held and when it expires, whether the worker is cleared to drive a tractor, and a productivity index.
23. Field Time Tracking
A time record binds a worker, a task, a parcel and a crop lot to a date, start and end times, hours worked, break, overtime, the quantity completed with its unit, the productivity, the hourly rate and the resulting cost.
The entry mode is recorded: mobile app, field tablet, office entry, supervisor entry or file import. A record is entered in the field and validated by the supervisor before it feeds the costing, so a mistaken entry cannot immediately distort profitability. A responsive field screen lists today's tasks and the latest records.
24. Irrigation
Irrigation is described on four levels: the water source, the equipped sector, the watering program and the irrigation event actually carried out.
A water source carries its type, its coordinates, its depth and capacity, its flow rate, its annual quota and the volume consumed, the pump power and energy type, the cost per cubic metre, the water quality, the conductivity and pH, the last analysis date and the abstraction authorisation.
A sector carries its system type, the area served, the number of valves and drippers, the dripper flow, the line spacing, the nominal flow, the pressure, the distribution uniformity, and whether it has filtration, fertigation and automated control.
25. Water Consumption
Each irrigation event records the duration, the flow rate, the volume in cubic metres, the water depth in millimetres, the area, the energy consumed, and the water and energy costs, along with the trigger mode and the operator.
Volumes are consolidated back onto the water source, which makes the consumption against the authorised quota directly readable. Reporting gives the consumption per parcel, per source and per sector, with the associated cost.
26. Fertilization
A fertilisation plan binds a campaign, a crop lot and a parcel, optionally to a soil analysis, and carries the nitrogen, phosphorus and potassium targets per hectare, the organic matter to apply, the number of applications, the method, the budget and the agronomist responsible.
A fertiliser application records the input and its lot, the fertiliser type, the date, the quantity and dose per hectare, the nutrient contents and the nitrogen actually supplied, the method, the equipment, the operator, the weather conditions and the cost.
27. Fertigation
Fertigation is recorded separately because it is measured differently: the nutrient solution, the recipe, the stock tank volume, the injection rate, the duration, the water volume, the target and measured conductivity, the target and measured pH, and the nitrogen and potassium supplied.
Measured values are recorded next to their targets, which is what makes a drift visible rather than merely recorded.
28. Crop Monitoring
An observation records the crop lot and parcel, the date, the observation type, the pest or disease concerned, the growth stage, the intensity, the affected area, the number of plants checked and affected, the zone concerned, whether the intervention threshold is reached, the observer, a photo reference and the action proposed.
The number of affected plants follows the recorded intensity, so a severe observation can never report two affected plants out of sixty. An observation never triggers a treatment by itself.
29. Plant Protection
A treatment records the crop lot and parcel, the target pest, the originating observation, the product and its lot, the treatment type, the active substance and marketing authorisation number, the date and time, the dose and its unit, the spray volume per hectare, the area treated, the total quantity, the equipment and nozzle type, the operator and the licence held, whether protective equipment was worn, and the temperature, wind speed and humidity at the time.
The module records what was done and displays the intervals that apply. It never prescribes a treatment: the decision belongs to a qualified, licensed professional, and the applicable product label always prevails.
30. Integrated Pest Management
Biological and integrated control is managed as a first-class object: beneficial releases, pheromone and sticky traps, mating disruption, insect netting, biopesticides, companion planting, manual removal and crop sanitation.
Each action records the crop lot and target pest, the method, the beneficial organism with its latin name, the release date and quantity, the area, the number and type of traps, the observed efficacy, the control date, the supplier, the cost and the operator.
31. Pre-Harvest Intervals
The pre-harvest interval is read from the product record itself, and the earliest permitted harvest date is derived from it, so a treatment record can never contradict the product label. The re-entry interval is handled the same way.
The dashboard counts the crop lots still inside an interval, and the harvest record carries an explicit check flag. A configuration switch makes the control administratively blocking; a derogation remains possible for a user holding the dedicated right, and it is traced.
32. Inputs
The input catalogue covers seeds, seedlings, fertilisers, amendments, plant protection products, biocontrol products, substrates, mulch films, twine, stakes, packaging, consumables and fuel.
Each input carries its category, brand, active substance and authorisation number, formulation, nutrient contents, default dose and unit, pre-harvest and re-entry intervals, whether it is approved for organic farming, its toxicity class, its storage condition, its packaging unit, its unit price and its minimum and current stock.
33. Inventory
Current stock is recomputed from the input lots still available, so the catalogue figure and the lot detail always agree. Inputs falling below their minimum stock are counted on the dashboard and listed by a single click.
Inputs can be linked to native Dolibarr products, which lets a farm that already manages warehouses, batches and serial numbers in Dolibarr keep a single stock reference.
34. Lots and Expiry Dates
An input lot carries its lot number, the input, the supplier, the originating purchase, the reception, production and expiry dates, the quantity received, available and used with its unit, the unit price and total value, the warehouse and storage location, and the days remaining before expiry.
Seed lots follow the same pattern. Both feed the expiry alert, whose window is configurable.
35. Purchasing
A purchase records the supplier, the campaign, an optional link to a native Dolibarr supplier order, the purchase type, the order, planned delivery and reception dates, the number of lines, the amounts excluding and including tax, the amount paid, the main input, the quantities ordered and received, whether the delivery was conform, and the buyer.
Supplier purchase volumes are consolidated onto the supplier record.
36. Agricultural Equipment
Equipment covers tractors, two-wheel tractors, trailers, ploughs, rotary tillers, bed formers, seeders, transplanters, sprayers, spreaders, mowers, pumps, generators, fertigation units, cold rooms, washing and packing lines, vehicles and hand tools.
Each item carries its brand, model, serial number and registration plate, its power, its commissioning date and purchase price, its ownership mode, its hour counter and odometer, its fuel type and consumption, its hourly cost, the next maintenance date and hour counter, the insurance and inspection expiry dates and its availability rate.
37. Maintenance
Maintenance covers preventive and corrective work, overhauls, regulatory inspections, calibration, breakdown repair and seasonal servicing.
Each job records the equipment, the type, the planned and completed dates, the failure description and the work performed, the provider and technician, the parts and labour costs, the downtime, the hour counter at service and the next due date. Jobs due inside the configured window are counted on the dashboard.
38. Fuel and Energy
Fuel and energy records cover diesel, petrol, electricity, gas, biomass, solar and gravity-fed supply, each with the equipment, the site, the date, the quantity and unit, the unit price and total cost, the counter reading, the average consumption, the supplier, the invoice reference, the operator and an anomaly flag.
39. Harvest Forecasting
A forecast binds a campaign, a crop lot, a crop and a variety to an expected harvest date and week number, an expected quantity and yield, the area, the expected quality and caliber, the destination, the number of pickings expected and a confidence level.
Once the date has passed, the realised quantity is recorded next to the forecast, which is what makes the forecast-versus-actual chart meaningful.
40. Harvesting
A harvest records the picking: the campaign, crop lot, parcel, crop, variety and team, the date and times, the picking number, the method, the gross and net quantities, the quantity rejected, the area harvested, the yield, the number of workers, the duration, the output per worker-hour, the quality grade and caliber, the Brix degree, the temperature, the destination, the pre-harvest interval check and the labour cost.
41. Harvest Lots
Every harvest produces a harvest lot carrying a unique number. That number is what travels through packing, stock and delivery, and it is the entry point of the traceability screen.
A harvest lot carries the harvest, crop lot, parcel, crop and variety, the harvest date, the quantity and quantity still available, the quality grade and caliber, the number of crates, the storage location and temperature, the use-by date, the date of the last treatment, whether the pre-harvest interval was respected, whether the produce is organic, and the cost per kilo.
42. Quality Grading
Grades and calibers are controlled vocabularies: Extra, Class I, Class II, industry, rejected and downgraded for the grade; very small to very large, mixed size and numbered calibers for the size.
Grades are carried consistently by the harvest, the harvest lot, the finished lot, the order and the reservation, so a grade can never change meaning between two screens.
43. Harvest Losses
A loss records the crop lot, the harvest lot, the parcel, the stage at which it occurred, the reason, the date, the quantity, the area affected, the loss rate, the estimated value, the destination of the lost produce, the person responsible and the corrective action.
Losses are recorded at seven stages, from the field to the delivery, which is what allows the loss rate to be attributed rather than merely observed.
44. Packing
Packing chains the operations carried out on a harvest lot: reception, sorting, washing, grading, packing, labelling, palletising, cooling and storage.
Each operation carries the incoming and outgoing quantities, the waste and the process yield, the number of units produced, the packaging consumed, the line, the team, the number of workers, the duration and the labour and packaging costs. Each operation consumes the output of the previous one, so the packing loss is measurable step by step.
45. Packaging
The packaging catalogue covers crates, cartons, wooden crates, bags, punnets, nets, films, pallets and bulk bins, with their material, capacity, dimensions, tare weight, units per pallet, whether they are returnable, recyclable and food grade, their unit price and their stock.
46. Labeling
Labels carry the produce name, the category and caliber, the net weight, the lot number, the packing and use-by dates, the origin, a barcode and a QR code pointing at the traceability record, and the configurable additional statements such as the organic certification reference.
Produce, crate, pallet, traceability, organic and promotional label types are supported, in six formats.
47. Traceability
The traceability screen starts from a harvest lot and walks the chain in both directions.
Upstream it shows the parcel and crop lot, the seed lot with its supplier, germination rate and expiry date, the sowing and the planting, then every input applied to the crop lot: fertiliser applications, plant protection treatments and biological control actions in one chronological list with the operator and the pre-harvest interval of each product, followed by the field operations and the irrigation events.
Downstream it shows the packing operations, the finished lots, the quality checks, and then the delivery, the customer, the order and the invoice. A customer complaint is therefore traceable back to the parcel in a few clicks.
48. Finished Goods Inventory
A finished lot carries its own number, the packing operation and harvest lot it descends from, the crop, variety, packaging and optional native product, the packing and use-by dates, the quantity produced, available and reserved, the number of units and pallets, the quality grade and caliber, the cold room and storage temperature, whether the produce is organic, the cost per kilo and the selling price per kilo.
49. Customers
Customers are typed by market: wholesaler, retailer, supermarket chain, local market, restaurant, hotel, cooperative, exporter, processor, public catering and consumer group, each with a sales channel.
A customer record carries the quality requirements, whether organic or GlobalG.A.P. certification is required, the payment terms, the delivery frequency, the annual volume, the cumulated revenue and the outstanding balance. Revenue and outstanding balance are recomputed from the invoices actually issued.
50. Quotations
Quotations are handled by the native Dolibarr quotation module. The module links to it rather than duplicating it: a customer record points at the native third party, and a sales order can carry the reference of the native order it originated from, so the standard commercial workflow, the document templates and the accounting integration are preserved.
51. Sales Orders
A sales order carries the customer, an optional contract, an optional link to a native Dolibarr order, the order type, the order and planned delivery dates, the crop and variety, the quality grade and caliber, the quantity ordered and delivered, the packaging requested, the unit price and the amounts.
A lot reservation blocks a finished lot on an order. The reserved quantity is bounded by what the lot actually holds, so over-booking is structurally impossible.
52. Deliveries
A delivery records the order, the customer, the finished lot, an optional link to a native shipment, the date, departure and arrival times, the quantity, the number of units and pallets, the carrier, the vehicle and driver, the transport temperature, the distance and cost, the delivery note reference, who signed for it and whether it was on time.
53. Billing
Invoicing carries the customer, the order and the delivery, an optional link to a native Dolibarr invoice, the invoice type, the invoice and due dates, the quantity, the amounts excluding and including tax, the tax rate, the amount paid and due, the days late and the payment mode.
Payments record the invoice and customer, the date, the amount, the payment mode, the bank reference, whether the payment is reconciled, the receipt number and the collector. Standard, deposit, balance, grouped, credit note and proforma invoice types are supported.
54. Production Costs
A cost sheet is produced per crop lot that actually produced. It details sixteen items: seeds, seedlings, fertilisers, treatments, irrigation, energy, labour, machinery, fuel, maintenance, packaging, packing, transport, storage, losses and overheads.
The cost per kilo divides the total cost by the kilos carried by the same sheet; a sheet with no quantity is excluded from both sides of the ratio. The cost per hectare is computed the same way.
55. Margins
The margin is the revenue of the cost sheet less its total cost, and the margin rate is that margin over the same revenue. Only sheets carrying both a cost and a revenue are retained, so a lot that has been costed but not yet sold does not report a permanent negative margin.
56. Profitability
Profitability is available per parcel, per crop, per variety and per customer, and it is exported with the rest of the reporting.
The cost-reading right is separate from the others and is not granted by default, which lets a farm open the operational screens widely while keeping the financial detail restricted.
57. Quality
A quality check records the harvest lot or finished lot, the crop, the check type, the date, the controller, the sample size, the measured caliber, the average weight, the Brix degree, the firmness, the temperature, the defect rate, the grade assigned, whether the result is conform, the decision taken and any laboratory reference.
Reception, caliber, visual, sugar content, firmness, temperature, residue and packaging checks are supported, with five decisions: accepted, accepted with reservation, downgraded, quarantined and rejected.
58. Certifications
Certifications cover organic farming, GlobalG.A.P., HACCP, IFS, BRC, superior quality labels, protected designation and geographical indication, internal standards and customer specifications.
Each certification carries the certifying body, the certificate number, the scope, the issue, expiry and next audit dates, the certified area, the annual cost and the number of gaps still open, which is recomputed from the recent audits. Certifications expiring inside the configured window are counted on the dashboard.
An audit records the points checked, the conform points, the minor and major gaps, the score, the result, the follow-up date and the report reference.
59. Non-Conformities
A non-conformity follows the full cycle: the process concerned, the parcel, crop lot, harvest lot or customer involved, the detection date and who detected it, the description, the severity, the immediate action, the root cause, the corrective action, the person responsible, the due and closing dates, the effectiveness check and the cost impact.
Eleven processes are covered, from land management and the nursery through cropping, irrigation, fertilisation and plant protection to harvest, packing, storage, delivery and administration.
60. Customer Complaints
A complaint records the customer, the order, the delivery and the finished lot concerned, the date, the reason, the quantity concerned, the description, the severity, the analysis, the answer given, any credit note, whether goods were returned, the answer date and delay, and the handler.
Because the complaint points at the finished lot, the traceability screen reaches the parcel, the inputs applied and the operations carried out without any further search.
61. Reporting
The reporting suite is organised in twelve tabs: land, campaigns, operations, irrigation, inputs, equipment, harvests, packing, sales, profitability, quality and decision support.
A period selector of three, six, twelve or twenty-four months applies to the dated tables; reference data is always given in full. Each tab exports to CSV and to Excel, and prints.
Exports are produced as plain text: translated labels are decoded, so no HTML entity ever reaches the file.
62. Business Intelligence
The decision-support tab provides the four-week harvest outlook by crop and week with a confidence level, the upcoming labour requirement by operation type, the input expiry risk ordered by date, and profitability by customer.
These analyses are decision aids built on the recorded data. They are explicitly labelled as such in the interface and do not replace agronomic expertise.
63. API
The module exposes its sixty-one objects under /api/index.php/marketgardening/, which is more than three hundred routes, plus a consolidated reporting route.
Authentication uses the standard DOLAPIKEY header. Each route enforces the same permission as the matching screen, an invalid key returns HTTP 401, list routes support pagination, sorting on a whitelisted column and a generic filter, and errors are returned as structured JSON.
· GET /api/index.php/marketgardening/parcels?limit=25
· GET /api/index.php/marketgardening/croplots/{id}
· POST /api/index.php/marketgardening/harvests
· PUT /api/index.php/marketgardening/irrigations/{id}
· DELETE /api/index.php/marketgardening/tasks/{id}
· GET /api/index.php/marketgardening/reporting
64. Security
Every write goes through the Dolibarr CSRF token, every query is built with escaped values, every output is escaped, and every page checks the permission of the object it displays before rendering anything.
All objects are entity-managed and every query filters on the current entity, so a multi-company installation is isolated by construction. Sort fields are whitelisted before reaching SQL. The module never modifies the Dolibarr core: it installs under custom/ and integrates through hooks, triggers, permissions, menus, document templates and the REST API.
65. Demo Data
A demonstration dataset is shipped and can be generated or removed from the setup page at any time. It covers the entire journey with a coherent farm: eighteen parcels, eight greenhouses, sixteen crops and their varieties, forty-four crop lots with their growth stages, the full nursery chain, eight teams and forty workers, four hundred and sixty operations with their time records, five water sources and nearly five hundred irrigation events, fertilisation, pests and treatments, inputs and their lots, equipment and maintenance, harvests, packing and finished lots, customers, orders, deliveries, invoices and payments, cost sheets, certifications, audits, quality checks, non-conformities and complaints.
Every generated row is tagged with the technical marker MGFDEMO. The purge removes only those rows, cascading onto records attached to a demonstration parent, and leaves real data untouched.
66. Installation
Unzip module_marketgardening-1.0.zip into htdocs/custom/ so that htdocs/custom/marketgardening/ exists, then activate the module from Home > Setup > Modules.
Activation creates the sixty-one tables, the one hundred and seventeen permissions and the menus, self-heals the schema on upgrade, and loads the demonstration dataset. The module requires the native Third parties and Products modules, runs on Dolibarr 16 to 23 and PHP 8, and works on MySQL and MariaDB.
Deactivating the module removes its menus, permissions and constants; the tables and their content remain in place.
67. Deliverables
The delivery folder contains the installable module archive, the screenshot set, the French user and training manual, this English functional documentation and the English technical documentation.
· module_marketgardening-1.0.zip - the installable Dolibarr module.
· screenshots/ - documentation screenshots of every screen.
· Market_Gardening_User_Training_Manual_FR.pdf - French user and training manual.
· Market_Gardening_Complete_Features_EN.docx - this document.
· Market_Gardening_Technical_Documentation_EN.md - architecture, schema, API and extension points.
Appendix: business objects
61 objects, 162 coded columns sharing 103 controlled vocabularies.
|
Object |
Table |
Fields |
|
Mgffarm |
llx_mgf_farm |
26 |
|
Mgfsite |
llx_mgf_site |
20 |
|
Mgfparcel |
llx_mgf_parcel |
23 |
|
Mgfblock |
llx_mgf_block |
16 |
|
Mgfgreenhouse |
llx_mgf_greenhouse |
22 |
|
Mgfsoil |
llx_mgf_soil |
25 |
|
Mgfcampaign |
llx_mgf_campaign |
19 |
|
Mgfcropplan |
llx_mgf_cropplan |
24 |
|
Mgfrotation |
llx_mgf_rotation |
19 |
|
Mgfcrop |
llx_mgf_crop |
20 |
|
Mgfvariety |
llx_mgf_variety |
20 |
|
Mgfcroplot |
llx_mgf_croplot |
27 |
|
Mgfstage |
llx_mgf_stage |
13 |
|
Mgfobservation |
llx_mgf_observation |
18 |
|
Mgfseedlot |
llx_mgf_seedlot |
23 |
|
Mgfsowing |
llx_mgf_sowing |
24 |
|
Mgfseedling |
llx_mgf_seedling |
19 |
|
Mgfplanting |
llx_mgf_planting |
21 |
|
Mgftask |
llx_mgf_task |
25 |
|
Mgfteam |
llx_mgf_team |
13 |
|
Mgfworker |
llx_mgf_worker |
22 |
|
Mgftimesheet |
llx_mgf_timesheet |
21 |
|
Mgfabsence |
llx_mgf_absence |
11 |
|
Mgfwatersource |
llx_mgf_watersource |
22 |
|
Mgfirrigsector |
llx_mgf_irrigsector |
19 |
|
Mgfirrigprogram |
llx_mgf_irrigprogram |
17 |
|
Mgfirrigation |
llx_mgf_irrigation |
23 |
|
Mgffertplan |
llx_mgf_fertplan |
19 |
|
Mgffertapp |
llx_mgf_fertapp |
23 |
|
Mgffertigation |
llx_mgf_fertigation |
21 |
|
Mgfpest |
llx_mgf_pest |
14 |
|
Mgftreatment |
llx_mgf_treatment |
33 |
|
Mgfbiocontrol |
llx_mgf_biocontrol |
20 |
|
Mgfinput |
llx_mgf_input |
25 |
|
Mgfinputlot |
llx_mgf_inputlot |
19 |
|
Mgfsupplier |
llx_mgf_supplier |
18 |
|
Mgfpurchase |
llx_mgf_purchase |
20 |
|
Mgfequipment |
llx_mgf_equipment |
25 |
|
Mgfmaintenance |
llx_mgf_maintenance |
18 |
|
Mgffuel |
llx_mgf_fuel |
17 |
|
Mgfforecast |
llx_mgf_forecast |
20 |
|
Mgfharvest |
llx_mgf_harvest |
29 |
|
Mgfharvestlot |
llx_mgf_harvestlot |
22 |
|
Mgfloss |
llx_mgf_loss |
16 |
|
Mgfpacking |
llx_mgf_packing |
23 |
|
Mgfpackaging |
llx_mgf_packaging |
20 |
|
Mgflabel |
llx_mgf_label |
18 |
|
Mgffinishedlot |
llx_mgf_finishedlot |
24 |
|
Mgfcustomer |
llx_mgf_customer |
21 |
|
Mgfcontract |
llx_mgf_contract |
20 |
|
Mgforder |
llx_mgf_order |
22 |
|
Mgfreservation |
llx_mgf_reservation |
14 |
|
Mgfdelivery |
llx_mgf_delivery |
22 |
|
Mgfinvoice |
llx_mgf_invoice |
19 |
|
Mgfpayment |
llx_mgf_payment |
12 |
|
Mgfcost |
llx_mgf_cost |
32 |
|
Mgfcertification |
llx_mgf_certification |
16 |
|
Mgfaudit |
llx_mgf_audit |
19 |
|
Mgfqualitycheck |
llx_mgf_qualitycheck |
20 |
|
Mgfnonconformity |
llx_mgf_nonconformity |
21 |
|
Mgfcomplaint |
llx_mgf_complaint |
20 |
The module is a management, planning and decision-support tool. It never replaces agronomic diagnosis, the prescription of a plant protection treatment, laboratory analysis, or any legal obligation applicable to farming. Every sensitive technical decision remains the responsibility of a qualified professional.