Discover powerful Dolibarr extensions designed to automate your business processes

Jewelry Management (Gestion Joaillerie) is a business module that turns Dolibarr ERP/CRM into a genuine jewelry-management application. It is intended for jewelry houses, goldsmith and silversmith workshops, retail jewelers, gemstone and precious-metal dealers, and appraisal practices.
The module implements the complete operational chain of a jewelry business: sourcing and valuing raw materials (gemstones and precious metals), designing and manufacturing pieces in the workshop, certifying and appraising them, selling them either from stock or as bespoke commissions, servicing them through after-sales repairs, and managing the ancillary activities of secure vault storage, consignment (deposit-sale) and event rental. The objective is that a jewelry business should not need a second, specialised application alongside Dolibarr.
· A jewelry-specific data model that native Dolibarr does not provide: karat and purity, gross and net metal weight, hallmarks, the gemmological 4 C's, laboratory certification, carat weights and vault insured values.
· A production workflow designed for a jewelry workshop (stone setting, polishing, quality control) rather than a generic manufacturing order.
· A bespoke-commission costing tool that separates metal, stone and labour budgets.
· A customer record enriched with the information a jewelry advisor actually uses: ring size, preferred metal and stones, budget range and personal anniversary dates.
· Three activities that are specific to the trade and absent from standard ERPs: appraisal/expertise, consignment with commission, and jewelry rental.
· An executive dashboard and a reporting suite built on these jewelry indicators.
|
Property |
Value |
|
Commercial name |
Jewelry Management — Gestion Joaillerie |
|
Technical name |
joailleriemanagement |
|
Module number |
511200 |
|
Version |
1.0.0 |
|
Publisher |
DoliResources — www.doliresources.com |
|
Copyright |
© 2026 DoliResources |
|
License |
GNU GPL v3 or later |
|
Minimum Dolibarr |
16.0 |
|
Minimum PHP |
7.1 (PHP 8.x compatible) |
|
Required modules |
Third Parties (Société), Products |
|
Database tables |
17 (prefix llx_joa_) |
|
Business objects |
17 |
|
Permissions |
17, across 6 functional groups |
|
Menu entries |
21 (1 top menu + 20 left-menu entries) |
|
Reports |
6, each exportable to CSV and printable |
|
Languages |
English, French, Italian, German, Spanish |
The module is organised into five functional domains plus reporting. Each domain maps to one permission group, so access can be granted by role — a catalog manager, a workshop foreman, a sales advisor, a gemmologist and a buyer can each be given exactly the rights their job requires.
Read and write permissions are granted by default on activation so the module is immediately usable; delete and administration permissions must be granted explicitly.
All seventeen objects share the same generic engine, which guarantees a consistent user experience:
· A list view with per-column search filters, sortable columns, pagination, and a show/hide column selector placed next to the search icons.
· A card view showing every field, with edit, delete and create actions, and a cockpit summarising the linked records.
· A lifecycle status: Draft, In progress, Completed, Cancelled.
· Multi-company support (entity), creation and modification timestamps, and author tracking.
· An in-page navigation bar giving one-click access to every other object of the module, which stays synchronised with the Dolibarr left menu.
Creative product lines grouping the pieces of the catalog. Table: joa_collection
The central object: every finished piece of the catalog. Table: joa_piece
Loose and set stones, inventoried to gemmological standards. Table: joa_gemstone3.4 Precious metals
Raw precious-metal stock, valued at spot price. Table: joa_metal
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique lot reference, e.g. MET-OR18 |
|
metal_type |
Vocabulary |
gold, silver, platinum, palladium |
|
purity |
Text (16) |
Purity: 750, 585, 925, 950, 999 |
|
form |
Text (32) |
Physical form: ingot, wire, sheet, casting grain |
|
weight_grams |
Decimal |
Quantity in stock, in grams |
|
spot_price |
Amount |
Spot price per gram |
|
stock_value |
Amount |
Stock valuation = weight × spot price |
|
fk_supplier |
Link → Third party |
Supplying dealer |
|
location |
Text (128) |
Storage location |
|
last_valuation |
Date |
Date of the last revaluation |
|
note |
Long text |
Free notes |
The production dossier driving the workshop. Table: joa_workorder
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique work-order reference, e.g. OF-2026-1001 |
|
fk_piece |
Link → Jewelry piece |
Piece being produced or worked on |
|
fk_soc |
Link → Third party |
Customer the order is for |
|
order_type |
Vocabulary |
creation, repair, transformation, engraving |
|
fk_craftsman |
Link → Craftsman |
Craftsman in charge |
|
date_start |
Date |
Start date |
|
date_due |
Date |
Due date |
|
labor_hours |
Decimal |
Total labour hours |
|
materials_cost |
Amount |
Cost of metal and stones consumed |
|
total_cost |
Amount |
Total cost = materials + labour |
|
priority |
Text (16) |
High, Normal, Low |
|
wo_status |
Vocabulary |
draft, in progress, stone setting, polishing, quality control, completed, delivered |
|
note |
Long text |
Free notes |
Individual operations that make up a work order. Table: joa_workorder_line
|
Field |
Type |
Description |
|
fk_workorder |
Link → Work order |
Parent work order |
|
task |
Text (255) |
Operation: casting, forming, stone setting, polishing, engraving, quality control, rhodium plating |
|
fk_craftsman |
Link → Craftsman |
Craftsman who performed the task |
|
hours |
Decimal |
Hours spent |
|
hourly_rate |
Amount |
Hourly rate applied |
|
line_cost |
Amount |
Task cost = hours × rate |
The workshop team repository. Table: joa_craftsman
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique craftsman reference, e.g. ART-01 |
|
name |
Text (128) |
Full name |
|
specialty |
Vocabulary |
jeweler, stone setter, polisher, engraver, gemmologist |
|
skill_level |
Text (32) |
Master, Expert, Experienced, Apprentice |
|
hourly_rate |
Amount |
Standard hourly rate used to cost tasks |
|
phone |
Text (32) |
Telephone |
|
|
Text (128) |
E-mail address |
|
is_active |
Yes/No |
Currently active in the workshop |
|
note |
Long text |
Free notes |
After-sales service dossier for customer items. Table: joa_repair
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique repair reference, e.g. REP-2026-1001 |
|
fk_soc |
Link → Third party |
Customer |
|
item_description |
Text (255) |
Description of the item handed in |
|
problem |
Long text |
Fault reported by the customer |
|
diagnosis |
Long text |
Workshop diagnosis |
|
fk_craftsman |
Link → Craftsman |
Craftsman in charge |
|
quote_amount |
Amount |
Repair quote given to the customer |
|
date_received |
Date |
Date the item was received |
|
date_promised |
Date |
Date promised to the customer |
|
date_done |
Date |
Date the repair was completed |
|
repair_status |
Vocabulary |
received, diagnosed, in progress, completed, delivered |
|
note |
Long text |
Free notes |
Sales of pieces, including bespoke commissions. Table: joa_order
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique order reference, e.g. CMD-2026-1001 |
|
fk_soc |
Link → Third party |
Customer |
|
fk_piece |
Link → Jewelry piece |
Piece sold |
|
order_date |
Date |
Order date |
|
order_type |
Vocabulary |
counter sale, order, bespoke creation |
|
total_ht |
Amount |
Total excluding tax |
|
total_ttc |
Amount |
Total including tax |
|
margin_amount |
Amount |
Commercial margin on the sale |
|
deposit |
Amount |
Deposit received |
|
payment_status |
Vocabulary |
paid, deposit, pending |
|
delivery_date |
Date |
Delivery / hand-over date |
|
fk_commande |
Link → Dolibarr Order |
Native Dolibarr sales order |
|
fk_facture |
Link → Dolibarr Invoice |
Native Dolibarr invoice |
|
order_status |
Vocabulary |
quote, confirmed, production, ready, delivered, cancelled |
|
note |
Long text |
Free notes |
Costing tool for bespoke commissions. Table: joa_quote
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique quote reference, e.g. DEV-2026-1001 |
|
fk_soc |
Link → Third party |
Prospect or customer |
|
description |
Text (255) |
Description of the requested creation |
|
estimated_value |
Amount |
Total estimate presented to the customer |
|
metal_budget |
Amount |
Metal share of the estimate |
|
stone_budget |
Amount |
Gemstone share of the estimate |
|
labor_estimate |
Amount |
Labour share of the estimate |
|
validity_date |
Date |
Quote validity date |
|
fk_propal |
Link → Dolibarr Proposal |
Native Dolibarr commercial proposal |
|
quote_status |
Vocabulary |
draft, sent, accepted, rejected, expired |
|
note |
Long text |
Free notes |
Jewelry-specific enrichment of the native third party. Table: joa_customer
|
Field |
Type |
Description |
|
fk_soc |
Link → Third party |
The native Dolibarr customer record |
|
segment |
Vocabulary |
VIP, collector, occasional, professional, prospect |
|
preferred_metal |
Text (64) |
Preferred metal: yellow gold, white gold, platinum, rose gold |
|
preferred_stones |
Text (128) |
Preferred gemstones |
|
ring_size |
Text (16) |
Ring size, for proactive proposals |
|
budget_range |
Text (64) |
Usual purchasing budget range |
|
total_spent |
Amount |
Lifetime value |
|
nb_purchases |
Integer |
Number of purchases made |
|
special_dates |
Text (255) |
Birthday, wedding anniversary — relationship triggers |
|
loyalty_tier |
Vocabulary |
Gold, Platinum, Diamond, Emerald |
|
note |
Long text |
Free notes |
Documentary traceability attached to a piece. Table: joa_certificate
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique certificate reference, e.g. CERT-1001 |
|
fk_piece |
Link → Jewelry piece |
Piece the certificate covers |
|
cert_type |
Vocabulary |
authenticity, expert valuation, insurance |
|
issuer_lab |
Text (64) |
Issuing laboratory or expert house |
|
cert_number |
Text (64) |
Certificate number |
|
issue_date |
Date |
Issue date |
|
appraised_value |
Amount |
Value stated on the certificate |
|
gemologist |
Text (128) |
Signing gemmologist |
|
note |
Long text |
Free notes |
Formal valuation requested by a customer. Table: joa_appraisal
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique appraisal reference, e.g. EXP-2026-1001 |
|
fk_soc |
Link → Third party |
Requesting customer |
|
item_description |
Text (255) |
Description of the item appraised |
|
purpose |
Vocabulary |
insurance, resale, inheritance, pawn/loan |
|
appraised_value |
Amount |
Appraised value |
|
method |
Text (64) |
Valuation method applied |
|
expert |
Text (128) |
Expert who performed the appraisal |
|
date_appraisal |
Date |
Date of the appraisal |
|
appraisal_status |
Vocabulary |
requested, in progress, completed, delivered |
|
note |
Long text |
Free notes |
Secure storage register for valuable pieces. Table: joa_vault
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique vault entry reference, e.g. CFR-1001 |
|
fk_piece |
Link → Jewelry piece |
Piece stored |
|
vault_location |
Text (128) |
Safe / compartment identifier |
|
insured_value |
Amount |
Value declared to the insurer |
|
last_audit_date |
Date |
Date of the last physical inventory check |
|
item_condition |
Text (64) |
Condition of the item |
|
note |
Long text |
Free notes |
Specialised sourcing partners. Table: joa_supplier
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique supplier reference, e.g. FRN-001 |
|
fk_soc |
Link → Third party |
Native Dolibarr supplier record |
|
name |
Text (128) |
Supplier name |
|
supplier_type |
Vocabulary |
gemstones, metals, components |
|
specialty |
Text (128) |
Area of specialisation |
|
rating |
Integer |
Quality rating (1–5) |
|
lead_time_days |
Integer |
Average lead time in days |
|
note |
Long text |
Free notes |
Pieces entrusted by a third party for sale. Table: joa_consignment
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique consignment reference, e.g. DEP-2026-1001 |
|
fk_soc |
Link → Third party |
Consignor (owner of the item) |
|
item_description |
Text (255) |
Description of the consigned item |
|
estimated_value |
Amount |
Estimated value of the item |
|
agreed_price |
Amount |
Selling price agreed with the consignor |
|
commission_pct |
Decimal |
Commission rate retained by the house |
|
date_start |
Date |
Start of the consignment period |
|
date_end |
Date |
End of the consignment period |
|
consignment_status |
Vocabulary |
active, sold, returned |
|
note |
Long text |
Free notes |
Event-driven rental of pieces. Table: joa_rental
|
Field |
Type |
Description |
|
ref |
Text (64) |
Unique rental reference, e.g. LOC-2026-1001 |
|
fk_soc |
Link → Third party |
Renting customer |
|
fk_piece |
Link → Jewelry piece |
Piece rented |
|
event_date |
Date |
Date of the event |
|
rental_fee |
Amount |
Rental fee charged |
|
deposit |
Amount |
Security deposit held |
|
date_out |
Date |
Check-out date |
|
date_return |
Date |
Return date |
|
rental_status |
Vocabulary |
reserved, out, returned |
|
note |
Long text |
Free notes |
Vocabularies are stored language-independently as codes and rendered in the user's language, so a multilingual team always sees consistent data.
Ring · Necklace · Bracelet · Earrings · Pendant · Watch · Brooch
Gold · Silver · Platinum · Palladium — with purity 750, 585, 925, 950, 999
Diamond · Ruby · Sapphire · Emerald · Pearl · Topaz · Amethyst
|
Stage |
Meaning |
|
Draft |
The dossier is being prepared; production has not started |
|
In progress |
Metal work has started (casting, forming) |
|
Stone setting |
Stones are being set by the stone setter |
|
Polishing |
The piece is being polished and finished |
|
Quality control |
Final inspection before release |
|
Completed |
The piece is finished and ready |
|
Delivered |
The piece has been handed over to the customer |
Segments: VIP · Collector · Occasional · Professional · Prospect
Loyalty tiers: Gold · Platinum · Diamond · Emerald
|
Object |
Statuses |
|
Customer order |
quote · confirmed · production · ready · delivered · cancelled |
|
Payment |
paid · deposit · pending |
|
Custom quote |
draft · sent · accepted · rejected · expired |
|
Repair |
received · diagnosed · in progress · completed · delivered |
|
Appraisal |
requested · in progress · completed · delivered |
|
Consignment |
active · sold · returned |
|
Rental |
reserved · out · returned |
|
Piece stock |
in stock · reserved · sold · on consignment |
The dashboard is the landing page of the module. Its gold-and-onyx visual charter deliberately departs from the standard Dolibarr dashboard in order to reflect the codes of fine jewelry: a dark onyx-to-gold gradient hero banner, gold-accented KPI cards, a champagne navigation bar and colour-coded production columns. It is organised into five reading zones.
|
Indicator |
Definition |
|
Total revenue |
Sum of all non-cancelled customer orders, including tax |
|
Revenue this month |
Same, restricted to the current calendar month |
|
Commercial margin |
Sum of the margin recorded on non-cancelled orders |
|
Number of orders |
Count of non-cancelled customer orders |
|
Average basket |
Average order value including tax |
|
Jewelry stock value |
Sum of the sale price of every piece not yet sold |
|
Open quotes |
Bespoke quotes still in draft or sent status |
|
Quote conversion rate |
Accepted quotes ÷ total quotes, as a percentage |
A kanban board displays the work orders distributed across the seven stages of the production cycle. Each column shows the number of orders at that stage and the cumulative cost they represent, and is colour-coded so that bottlenecks are visible at a glance.
|
Chart |
Content |
|
Revenue evolution |
Bar chart of revenue for each of the last twelve months |
|
Distribution by category |
Pie chart of the catalog split across the seven piece categories |
|
Best-selling pieces |
Bar chart of the eight most frequently ordered pieces |
|
Gemstone distribution |
Pie chart of the stone inventory by stone family |
|
Indicator |
Definition |
|
VIP customers |
Customers classified in the VIP segment |
|
New customers |
Customers with at most one purchase |
|
Open appraisals |
Appraisals not yet completed or delivered |
|
Issued certificates |
Total number of certificates on file |
|
Indicator |
Definition |
|
Precious metal value |
Total valuation of the raw metal stock at spot price |
|
Gemstones in stock |
Number of stones in inventory |
|
Open repairs |
Repairs not yet completed or delivered |
|
Vault insured value |
Total insured value of the pieces held in the vault |
A dedicated Reporting menu provides six decisional reports, presented as tabs. Every report can be exported to CSV for further analysis and printed directly from the browser.
|
Report |
Rows |
Columns |
|
Sales |
One row per month, 12 months |
Month · Number of orders · Revenue · Average basket · Commercial margin |
|
Top pieces |
One row per piece sold (top 25) |
Piece name · Category · Number of orders · Total revenue |
|
Customers |
One row per customer segment |
Segment · Number of customers · Total spent · Average basket |
|
Stock & valuation |
One row per piece category |
Category · Number of pieces · Total cost price · Total stock value |
|
Workshop & production |
One row per production stage |
Status · Number of work orders · Labour hours · Cumulative cost |
|
Gemstones & certifications |
One row per stone family |
Stone type · Number of stones · Total carat weight · Market value |
The module extends Dolibarr rather than running in parallel with it. It declares a dependency on the native Third Parties and Products modules, and links to the standard commercial documents through dedicated fields that are rendered as clickable links to the native record.
|
Native module |
How the module uses it |
|
Third parties (Société) |
Customers, suppliers and consignors ARE native third parties — the module never duplicates them. VIP customers, suppliers, orders, quotes, repairs, appraisals, consignments and rentals each carry a live link that renders as a clickable third-party record. |
|
Products |
Each jewelry piece may be linked to a native product record, so stock and pricing can be shared with the rest of the ERP and with any e-commerce channel. |
|
Commercial proposals (Quotes) |
Each bespoke quote carries a link to a native Dolibarr commercial proposal, so the formal customer-facing quote document is produced by Dolibarr itself. |
|
Sales orders |
Each customer order carries a link to a native Dolibarr sales order. |
|
Invoices |
Each customer order carries a link to a native Dolibarr invoice, connecting the jewelry sale to the accounting chain. |
|
Users and permissions |
The 17 permissions integrate with the standard Dolibarr rights system and can be assigned to users and user groups in the usual way. |
|
Multi-company |
Every object is entity-aware, so the module works on a multi-company Dolibarr installation. |
|
Parameter |
Default |
Purpose |
|
Default currency |
Company currency |
Currency used for all monetary amounts in the module |
|
Gold spot price (per gram) |
65 |
Reference price used to value the precious-metal stock |
|
Low stock threshold |
5 |
Alert level used for stock monitoring |
|
Default consignment commission |
20 % |
Commission rate pre-filled on new consignment records |
The configuration page includes a dedicated "Demonstration data" section with two buttons, allowing the module to be evaluated with meaningful data and then reset to a clean state.
· Install demo data — generates a complete, realistic and fully cross-referenced dataset covering all seventeen objects. Native third parties are created alongside, so every link in the module is live rather than empty.
· Remove demo data — deletes the entire demonstration dataset, including the native third parties it created. Every demonstration record is tagged on creation, which guarantees that the removal is complete and that no production data is ever affected.
The dataset is also generated automatically on first activation, so the dashboard, the charts and the reports are immediately meaningful. It contains, among other records:
|
Object |
Records |
Object |
Records |
|
Collections |
5 |
Customer orders |
42 over 12 months |
|
Jewelry pieces |
16 |
Custom quotes |
14 |
|
Gemstones |
12 certified |
VIP customers |
12 |
|
Precious metals |
6 lots |
Certificates |
on qualifying pieces |
|
Craftsmen |
5 |
Appraisals |
10 |
|
Work orders |
21 across all 7 stages |
Vault entries |
on high-value pieces |
|
Workshop tasks |
2 to 4 per work order |
Suppliers |
4 |
|
Repairs |
12 |
Consignments / rentals |
8 / 8 |
The module ships with five complete translations: English, French, Italian, German and Spanish. Every interface string is translated — menu entries, list and card titles, field labels, status and category vocabularies, dashboard indicators, chart titles, report headings, configuration parameters and confirmation messages.
Because vocabularies are stored as language-independent codes and translated only for display, a team working in several languages shares exactly the same underlying data. The module also protects its own wording against label collisions with other installed Dolibarr modules, so its screens always display its own terminology.
· In Dolibarr, open Home → Setup → Modules/Applications → Deploy/install external app and upload module_joailleriemanagement-1.0.zip. Alternatively, copy the joailleriemanagement folder into htdocs/custom/.
· Enable "Gestion Joaillerie" in the module list. Activation creates the 17 database tables, the 17 permissions and the 21 menu entries, and generates the demonstration dataset.
· Open the module from the top menu (gem icon) to reach the dashboard.
· Review the parameters on the module configuration page and, when ready for production, remove the demonstration data.
· Assign the permission groups to the relevant users and user groups.
The module upgrades safely: on each activation it re-checks the physical database schema and adds any column introduced by a newer version, and it rebuilds its menus rather than duplicating them.
Jewelry Management (Gestion Joaillerie) is designed, developed and published by DoliResources, which holds the copyright to the module.
DoliResources — www.doliresources.com
© 2026 DoliResources. Released under the GNU General Public License version 3 or later.