# Produktverwaltung - Dolibarr Modul Kategorie-Baumansicht mit Inline-Editing und Produktverwaltung für [Dolibarr ERP & CRM](https://www.dolibarr.org). ## Features - **Kategorie-Baumansicht** - Hierarchische Darstellung aller Produktkategorien mit Auf-/Zuklappen - **Inline-Editing** - Doppelklick auf Ref, Label oder Beschreibung zum direkten Bearbeiten - **Best EK-Anzeige** - Günstigster Lieferantenpreis mit 3-Zeichen Lieferanten-Badge - **Marge-Berechnung** - Automatische Berechnung des Aufschlags (VK-EK)/EK mit Farbmarkierung - **Kategorie-Management** - Erstellen, Bearbeiten, Löschen von Kategorien mit 20 Farb-Swatches - **Produkte ohne Kategorie** - Eigene Sektion mit visueller Warnung - **Ref-Schema-Hinweis** - Konfigurierbarer Infoblock mit Referenz-Schema - **Status-Anzeige** - Verkaufbar/Beziehbar Icons (nur aktive werden angezeigt) - **Produkt-Dialog** - Schnellbearbeitung von Ref, Label, Beschreibung, VK netto - **Export** - CSV und PDF Export des Produktkatalogs ## Screenshots ``` +----------------------------------------------------------+ | Produktverwaltung - Kategorie-Übersicht [CSV] [PDF] | +----------------------------------------------------------+ | [i] Ref-Schema: KAT-HER-[TYP-]SPEC[-SERIE] | +----------------------------------------------------------+ | [Alle aufklappen] [Alle zuklappen] [+Kat] Suche:[____] | +----------------------------------------------------------+ | v Elektro (148) [edit][+][x] | | v Leitungsschutzschalter (7) | | | St | Ref | Label | EK | VK | | | 🛒 | LSS-HAG-B16-1P | Hager B16 1p | 3.20 SON| 5.40| +----------------------------------------------------------+ | ⚠ Produkte ohne Kategorie (92) | +----------------------------------------------------------+ ``` ## Installation ### Voraussetzungen - Dolibarr ERP & CRM (getestet mit v18+) - PHP 7.4+ - MySQL/MariaDB ### Installation ```bash cd /pfad/zu/dolibarr/custom/ git clone https://git.data-it-solution.de/data/dolibarr.produktverwaltung.git produktverwaltung ``` ### Aktivierung 1. Dolibarr als Admin einloggen 2. Einstellungen > Module > "Produktverwaltung" suchen 3. Modul aktivieren 4. Menüpunkt erscheint unter **Produkte** im Seitenmenü ## Einstellungen Unter **Einstellungen > Module > Produktverwaltung**: | Einstellung | Beschreibung | Standard | |-------------|-------------|----------| | Ref-Schema anzeigen | Info-Block mit Referenz-Schema auf der Hauptseite | Ja | | Kategorien standardmäßig aufklappen | Alle Kategorien beim Seitenaufruf aufgeklappt | Nein | | Schema-Muster | Freier Text/HTML für das Referenz-Schema | KAT-HER-[TYP-]SPEC[-SERIE] | | Beispiele | Beispiel-Referenzen zur Veranschaulichung | - | ## Berechtigungen | Berechtigung | Beschreibung | |-------------|-------------| | Anzeigen | Produktverwaltung anzeigen | | Bearbeiten | Produkte bearbeiten (Ref/Label) | | Löschen | Produkte löschen | | Exportieren | Produktverwaltung exportieren | ## Technische Details ### Modul-ID `500032` ### Dateistruktur ``` produktverwaltung/ ├── admin/ │ └── setup.php # Einstellungen ├── ajax/ │ └── product_actions.php # AJAX-Handler ├── core/ │ └── modules/ │ └── modProduktVerwaltung.class.php # Modul-Descriptor ├── css/ │ └── produktverwaltung.css # Styles ├── js/ │ └── produktverwaltung.js # Frontend-Logik ├── langs/ │ ├── de_DE/produktverwaltung.lang # Deutsch │ └── en_US/produktverwaltung.lang # Englisch ├── lib/ │ └── produktverwaltung.lib.php # Hilfsfunktionen ├── export.php # CSV/PDF Export └── produktverwaltungindex.php # Hauptseite ``` ### AJAX-Endpunkte | Action | Beschreibung | |--------|-------------| | `update_ref` | Produkt-Referenz aktualisieren | | `update_label` | Produkt-Bezeichnung aktualisieren | | `update_description` | Produkt-Beschreibung aktualisieren | | `update_product` | Produkt komplett aktualisieren (Dialog) | | `delete_product` | Produkt löschen | | `add_to_category` | Produkt einer Kategorie zuordnen | | `remove_from_category` | Produkt aus Kategorie entfernen | | `get_categories` | Kategorieliste laden | | `get_product` | Produktdaten laden | | `get_category_data` | Kategorie-Daten laden | | `create_category` | Neue Kategorie erstellen | | `update_category` | Kategorie bearbeiten | | `delete_category` | Kategorie löschen | ### Best EK-Logik Der günstigste Einkaufspreis wird per Subquery aus `llx_product_fournisseur_price` ermittelt: - `MIN(unitprice)` = günstigster Stückpreis - Lieferantenkürzel: `LEFT(COALESCE(NULLIF(name_alias,''), nom), 3)` - Wird als Badge neben dem Preis angezeigt ## Lizenz GPLv3 oder (nach Wahl) eine spätere Version. Siehe [COPYING](COPYING). ## Autor Eduard Wisch - [data IT solution](https://data-it-solution.de)