Dolibarr to MokoSuite CRM one-time migration import tool #196

Open
opened 2026-06-06 17:13:53 +00:00 by jmiller · 0 comments
Owner

Summary

Build a one-time migration import tool that pulls all CRM data from an existing Dolibarr installation into MokoWaaS CRM. This must be run before any data is entered into the MokoWaaS CRM — it is a one-shot, first-run-only operation.

Parent issue: #192

Import Sources (choose one)

Option A: Direct Database Connection

  • User provides MySQL/MariaDB connection parameters (host, port, database, user, password)
  • Tool connects directly to the Dolibarr database and reads tables
  • Preferred method — live data, no file handling

Option B: MySQL Dump Import

  • User uploads a full Dolibarr MySQL export (.sql file)
  • Tool parses and imports into a temporary schema, then maps to MokoWaaS tables
  • Fallback for when direct DB access isn't available

Data to Import

Contacts & Thirdparties

Dolibarr Table MokoWaaS Target Notes
llx_societe #__contact_details + #__mokowaas_crm_roles Map client flag (1=customer, 2=prospect, 3=both) and fournisseur flag to CRM roles
llx_socpeople #__contact_details People linked to companies
llx_categorie + llx_categorie_societe Joomla contact categories Category assignments
llx_societe_account CRM external account mapping External platform credentials

Financial & Payment Settings

Dolibarr Table MokoWaaS Target Notes
llx_paiement / llx_c_paiement CRM payment methods Payment type definitions
Stripe config (STRIPE_* in llx_const) MokoWaaS Stripe settings API keys, webhook secrets
PayPal config (PAYPAL_* in llx_const) MokoWaaS PayPal settings Client ID, secret, mode
llx_societe_rib CRM bank account records Customer/vendor bank details

Products & Inventory

Dolibarr Table MokoWaaS Target Notes
llx_product #__mokowaas_crm_products Product catalog
llx_product_stock Stock levels Per-warehouse quantities
llx_entrepot Warehouses Warehouse definitions
llx_categorie_product Product categories Category assignments

Sales Pipeline

Dolibarr Table MokoWaaS Target Notes
llx_propal #__mokowaas_crm_deals Proposals as deals
llx_commande CRM orders Sales orders
llx_facture CRM invoices Customer invoices
llx_facture_fourn CRM supplier invoices Vendor invoices

E-Signature Requests

Dolibarr Table MokoWaaS Target Notes
llx_mokodolisign_request #__mokowaas_crm_esign_requests Signature requests
llx_mokodolisign_signer #__mokowaas_crm_esign_signers Signer records + tokens
llx_mokodolisign_event #__mokowaas_crm_esign_events Audit trail

Users & Permissions

Dolibarr Table MokoWaaS Target Notes
llx_user Joomla users Map to existing or create new
llx_usergroup Joomla user groups Group assignments

Constraints

  • One-time only — The import can only be run once. After execution, a flag file or DB record prevents re-running.
  • Pre-CRM data — Must be executed before any manual CRM data entry. If CRM tables are not empty, the tool refuses to run.
  • Validation step — Show a preview/summary of what will be imported before committing (record counts per table, warnings for unmappable data).
  • Rollback — If import fails partway through, roll back all changes (transaction-based).
  • Logging — Full import log stored for audit (what was imported, what was skipped, any errors).

UI Location

  • com_mokowaas admin → CRM section → "Import from Dolibarr" (only visible when CRM tables are empty)
  • Wizard-style: Connection → Scan → Preview → Import → Complete
  • Hidden/removed after successful import
## Summary Build a one-time migration import tool that pulls all CRM data from an existing Dolibarr installation into MokoWaaS CRM. This must be run **before any data is entered** into the MokoWaaS CRM — it is a one-shot, first-run-only operation. **Parent issue:** #192 ## Import Sources (choose one) ### Option A: Direct Database Connection - User provides MySQL/MariaDB connection parameters (host, port, database, user, password) - Tool connects directly to the Dolibarr database and reads tables - Preferred method — live data, no file handling ### Option B: MySQL Dump Import - User uploads a full Dolibarr MySQL export (`.sql` file) - Tool parses and imports into a temporary schema, then maps to MokoWaaS tables - Fallback for when direct DB access isn't available ## Data to Import ### Contacts & Thirdparties | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_societe` | `#__contact_details` + `#__mokowaas_crm_roles` | Map `client` flag (1=customer, 2=prospect, 3=both) and `fournisseur` flag to CRM roles | | `llx_socpeople` | `#__contact_details` | People linked to companies | | `llx_categorie` + `llx_categorie_societe` | Joomla contact categories | Category assignments | | `llx_societe_account` | CRM external account mapping | External platform credentials | ### Financial & Payment Settings | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_paiement` / `llx_c_paiement` | CRM payment methods | Payment type definitions | | Stripe config (`STRIPE_*` in `llx_const`) | MokoWaaS Stripe settings | API keys, webhook secrets | | PayPal config (`PAYPAL_*` in `llx_const`) | MokoWaaS PayPal settings | Client ID, secret, mode | | `llx_societe_rib` | CRM bank account records | Customer/vendor bank details | ### Products & Inventory | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_product` | `#__mokowaas_crm_products` | Product catalog | | `llx_product_stock` | Stock levels | Per-warehouse quantities | | `llx_entrepot` | Warehouses | Warehouse definitions | | `llx_categorie_product` | Product categories | Category assignments | ### Sales Pipeline | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_propal` | `#__mokowaas_crm_deals` | Proposals as deals | | `llx_commande` | CRM orders | Sales orders | | `llx_facture` | CRM invoices | Customer invoices | | `llx_facture_fourn` | CRM supplier invoices | Vendor invoices | ### E-Signature Requests | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_mokodolisign_request` | `#__mokowaas_crm_esign_requests` | Signature requests | | `llx_mokodolisign_signer` | `#__mokowaas_crm_esign_signers` | Signer records + tokens | | `llx_mokodolisign_event` | `#__mokowaas_crm_esign_events` | Audit trail | ### Users & Permissions | Dolibarr Table | MokoWaaS Target | Notes | |----------------|-----------------|-------| | `llx_user` | Joomla users | Map to existing or create new | | `llx_usergroup` | Joomla user groups | Group assignments | ## Constraints - **One-time only** — The import can only be run once. After execution, a flag file or DB record prevents re-running. - **Pre-CRM data** — Must be executed before any manual CRM data entry. If CRM tables are not empty, the tool refuses to run. - **Validation step** — Show a preview/summary of what will be imported before committing (record counts per table, warnings for unmappable data). - **Rollback** — If import fails partway through, roll back all changes (transaction-based). - **Logging** — Full import log stored for audit (what was imported, what was skipped, any errors). ## UI Location - `com_mokowaas` admin → CRM section → "Import from Dolibarr" (only visible when CRM tables are empty) - Wizard-style: Connection → Scan → Preview → Import → Complete - Hidden/removed after successful import
jmiller changed title from Dolibarr to MokoWaaS CRM one-time migration import tool to Dolibarr to MokoSuite CRM one-time migration import tool 2026-06-07 15:15:24 +00:00
Sign in to join this conversation.
No labels
Priority Medium
Type Feature
Status
Priority
Type
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuite#196