# 📋 Price Comparison Tool (PCT) - Beta 0.2 **Professionelle Desktop-Anwendung fĂŒr Preisvergleichsanalysen mit PlentyMarkets-Integration** **Version:** PCT Beta 0.2 **Datum:** Juli 2025 **Entwickler:** Kef619 --- ## 🚀 Überblick Das **Price Comparison Tool (PCT)** ist eine fortschrittliche Desktop-Anwendung fĂŒr E-Commerce-Unternehmen, die ihre Preisdaten effizient verwalten und mit **PlentyMarkets** synchronisieren möchten. Mit seinem umfassenden Plugin-System und der direkten API-Integration bietet es eine vollstĂ€ndige Lösung fĂŒr professionelle Preisanalysen. ### ✹ Hauptfunktionen #### 📊 **Kern-Features** - ✅ **Intelligenter Preisvergleich** mit Fuzzy-Matching-Algorithmus - ✅ **Multi-Format-Support** (CSV, Excel, JSON, PDF) - ✅ **Erweiterbares Plugin-System** mit 6 Standard-Plugins - ✅ **Moderne PyQt5-GUI** mit intuitiver Bedienung - ✅ **Backup- und Versionsverwaltung** fĂŒr sichere Operationen #### 🔌 **PlentyMarkets Integration (Phase 4)** - ✅ **VollstĂ€ndige REST API-Integration** (Version 4.0.0) - ✅ **Bidirektionale Synchronisation** von Preisen und Artikeldaten - ✅ **Automatische Metadaten-Verwaltung** (Hersteller, Kategorien) - ✅ **Zeitgesteuerte Automatisierung** mit Scheduler - ✅ **Performance-Monitoring** und detaillierte Statistiken - ✅ **Webhook-Integration** fĂŒr Echtzeit-Updates #### đŸ›Ąïž **Sicherheit & Datenschutz** - ✅ **DSGVO-konforme Datenverwaltung** - ✅ **Lokale Datenspeicherung** ohne Cloud-AbhĂ€ngigkeit - ✅ **VollstĂ€ndige Datenlöschung** auf Knopfdruck - ✅ **VerschlĂŒsselte Konfiguration** und sichere Token-Verwaltung --- ## 🎯 Zielgruppe **Perfekt geeignet fĂŒr:** - đŸȘ **Online-HĂ€ndler** mit PlentyMarkets-Shop - 📩 **GroßhĂ€ndler** mit komplexen Preisstrukturen - 🔄 **B2B-Unternehmen** mit regelmĂ€ĂŸigen Preisanpassungen - 📊 **Einkaufsabteilungen** fĂŒr Preisanalysen und Marktbeobachtung - ⚡ Automatisierte Preissynchronisation - 📊 Performance-Monitoring und Task-Scheduling - 🔄 Webhook-Integration fĂŒr Echtzeitdaten - 📋 Erweiterte Import/Export-Funktionen - đŸ’Ÿ SQLite-Datenbank-Caching - 🔐 OAuth-Authentifizierung - đŸ›Ąïž Backup-System mit Testlauf-Modus ### **PDF-Import-System** - 📄 Erweiterte PDF-Tabellen-Extraktion - 🎯 Intelligente Tabellenerkennung - 🔧 Optimierte PDF-Verarbeitung ## đŸ—ïž Projektstruktur ``` price-comparison-tool-0.9/ ├── src/ # Hauptquellcode │ ├── main.py # 🚀 Einstiegspunkt der Anwendung │ ├── gui/ # đŸ–„ïž GUI-Komponenten │ │ ├── main_window.py # Hauptfenster │ │ ├── plentymarkets_menu.py # 🆕 Modulare PlentyMarkets-Integration │ │ ├── comparison_view.py # Vergleichsansicht │ │ ├── theme_manager.py # Theme-Management │ │ ├── dialogs.py # Dialog-Komponenten │ │ └── plugin_manager_dialog.py # Plugin-Verwaltung │ ├── models/ # 📊 Datenmodelle │ │ ├── wawi_data.py │ │ └── price_list.py │ ├── utils/ # 🔧 Hilfsfunktionen │ │ ├── csv_handler.py │ │ ├── excel_handler.py │ │ ├── comparison_engine.py │ │ ├── mapping_handler.py │ │ └── chunked_comparison.py │ ├── plugins/ # 🔌 Plugin-System │ │ ├── plugin_manager.py │ │ ├── plugin_manager_helpers.py │ │ └── extensions/ # Plugin-Implementierungen │ │ ├── plentymarkets_api_plugin.py # 🌟 PlentyMarkets API (v4.0.0) │ │ ├── complex_price_list_plugin.py # 📊 Komplexe Preislisten │ │ ├── excel_format_plugin.py # 📈 Excel-Formatierung │ │ ├── fuzzy_text_matcher_plugin.py # 🔍 Fuzzy-Matching │ │ ├── reorganized_export_plugin.py # 📋 Export-Organisation │ │ └── uppercase_keys_plugin.py # 🔑 SchlĂŒssel-Normalisierung │ ├── resources/ # 📁 Ressourcendateien │ └── config.py # ⚙ Konfigurationseinstellungen ├── docs/ # 📚 Dokumentation │ ├── Benutzerhandbuch.md # Umfassende Benutzeranleitung │ ├── PDF-Import-Anleitung.md │ ├── PlentyMarkets-Integration-Dokumentation.md │ └── PlentyMarkets-Code-Documentation.md ├── example_files/ # 📁 Beispieldateien ├── icon/ # 🎹 Anwendungsicons ├── unused_plugins/ # đŸ—‚ïž Archivierte Plugins ├── requirements.txt # ProjektabhĂ€ngigkeiten ├── setup.py # Paketierungsinformationen ├── mappings.json # Benutzerdefinierte Mapping-Konfigurationen └── README.md # Projektdokumentation ``` ## 🔌 Plugin-System Übersicht ### **Aktive Plugins** ✅ | Plugin | Version | Beschreibung | |--------|---------|-------------| | **PlentyMarkets API** | 4.0.0 | 🌐 VollstĂ€ndige REST API-Integration mit Phase 4-Features | | **Complex Price List** | 1.0.0 | 📊 Verarbeitung komplexer Preislisten-Strukturen | | **Excel Format** | 1.0.0 | 📈 Erweiterte Excel-Formatierung mit Farbkodierung | | **Fuzzy Text Matcher** | 1.0.0 | 🔍 Fuzzy-String-Matching fĂŒr bessere Artikelzuordnung | | **Reorganized Export** | 1.0.0 | 📋 Neuorganisation von Export-Strukturen | | **Uppercase Keys** | 1.0.0 | 🔑 Automatische SchlĂŒssel-Normalisierung | ### **PlentyMarkets API Features (Phase 4)** 🚀 - ✅ **OAuth-Authentifizierung** - Sichere API-Verbindung - ✅ **Bidirektionale Synchronisation** - Import & Export - ✅ **Automatisierung** - Task-Scheduling & Webhooks - ✅ **Performance-Monitoring** - EchtzeitĂŒberwachung mit Statistiken - ✅ **SQLite-Caching** - Lokale Datenbank-Integration - ✅ **Modulare Architektur** - Saubere Code-Trennung - ✅ **Erweiterte Filter** - Kategorien, Hersteller, ZeitrĂ€ume - ✅ **Backup-System** - Automatische Sicherungen vor Synchronisation - ✅ **Testlauf-Modus** - Sichere Vorschau vor echten Änderungen - ✅ **Metadaten-Caching** - Intelligente Verwaltung von Systemdaten ### **Archivierte Plugins** đŸ—‚ïž Die folgenden Plugins sind im `unused_plugins/` Ordner verfĂŒgbar: - Experimentelle Features - Alternative Implementierungen - Entwicklungsversionen ## Installation 1. Repository klonen: ``` git clone cd price-comparison-tool ``` 2. Benötigte AbhĂ€ngigkeiten installieren: ``` pip install -r requirements.txt ``` ## Installation und AusfĂŒhrung auf macOS Das Price Comparison Tool lĂ€uft auch unter macOS. So gehst du vor: 1. **Python 3 installieren** - Öffne das Terminal und installiere Python 3 (falls noch nicht vorhanden): ``` brew install python3 ``` - Alternativ: [Python von python.org herunterladen](https://www.python.org/downloads/macos/) 2. **Projekt herunterladen** - Kopiere das Projektverzeichnis auf deinen Mac (z.B. per USB-Stick, Cloud oder Git). 3. **AbhĂ€ngigkeiten installieren** - Wechsle im Terminal ins Projektverzeichnis: ``` cd /Pfad/zum/Projektordner/price-comparison-tool ``` - Installiere die benötigten Pakete: ``` pip3 install -r requirements.txt ``` - Falls Fehler bei PyQt5 auftreten, installiere es ggf. separat: ``` pip3 install pyqt5 ``` 4. **Programm starten** - Starte das Tool mit: ``` python3 src/main.py ``` 5. **Hinweise** - Die grafische OberflĂ€che (PyQt5) funktioniert auch auf macOS. - Dateipfade werden automatisch erkannt ("/" statt "\\"). - Bei Problemen mit der Dateiauswahl (QFileDialog): Stelle sicher, dass du die App nicht als Root startest und alle Zugriffsrechte hast. - Excel- und CSV-Import/Export funktionieren identisch wie unter Windows. **Fazit:** Das Tool ist plattformunabhĂ€ngig und lĂ€uft nach Installation der AbhĂ€ngigkeiten direkt auf macOS. ## Installation und AusfĂŒhrung auf Windows 1. **Python 3 installieren** - Lade Python 3 von https://www.python.org/downloads/windows/ herunter und installiere es. - Achte darauf, dass du die Option "Add Python to PATH" aktivierst. 2. **Projekt herunterladen** - Entpacke das Projektverzeichnis auf deinen PC (z.B. per Download, USB-Stick, Cloud oder Git). 3. **AbhĂ€ngigkeiten installieren** - Öffne die Eingabeaufforderung (cmd) und wechsle ins Projektverzeichnis: ``` cd Pfad\zum\Projektordner\price-comparison-tool ``` - Installiere die benötigten Pakete: ``` pip install -r requirements.txt ``` 4. **Programm starten** - Starte das Tool mit: ``` python src\main.py ``` 5. **Hinweise** - Die grafische OberflĂ€che (PyQt5) funktioniert auch unter Windows. - Excel- und CSV-Import/Export funktionieren identisch wie unter macOS/Linux. --- ## Installation und AusfĂŒhrung auf Linux 1. **Python 3 installieren** - Installiere Python 3 ĂŒber dein Paketmanagement, z.B.: ``` sudo apt update sudo apt install python3 python3-pip ``` 2. **Projekt herunterladen** - Kopiere das Projektverzeichnis auf deinen Linux-PC (z.B. per Download, USB-Stick, Cloud oder Git). 3. **AbhĂ€ngigkeiten installieren** - Wechsle im Terminal ins Projektverzeichnis: ``` cd /Pfad/zum/Projektordner/price-comparison-tool ``` - Installiere die benötigten Pakete: ``` pip3 install -r requirements.txt ``` - Falls Fehler bei PyQt5 auftreten, installiere ggf. zusĂ€tzliche Systempakete: ``` sudo apt install python3-pyqt5 ``` 4. **Programm starten** - Starte das Tool mit: ``` python3 src/main.py ``` 5. **Hinweise** - Die grafische OberflĂ€che (PyQt5) funktioniert auch unter Linux. - Dateipfade werden automatisch erkannt ("/" statt "\\"). - Excel- und CSV-Import/Export funktionieren identisch wie unter Windows/macOS. --- ## Verwendung 1. Anwendung starten: ``` python src/main.py ``` 2. Über die BenutzeroberflĂ€che die WaWi-CSV-Datei und die zu vergleichenden Preislisten laden. 3. Den Anweisungen auf dem Bildschirm folgen, um Vergleiche durchzufĂŒhren und Ergebnisse anzuzeigen. 4. Die Export-Optionen nutzen, um Ergebnisse im gewĂŒnschten Format zu speichern. 5. **PlentyMarkets-Integration:** Über das MenĂŒ "PlentyMarkets" können API-Verbindungen konfiguriert und Synchronisationen durchgefĂŒhrt werden. ## Plugin-System Das Price Comparison Tool beinhaltet ein erweiterbares Plugin-System, das es ermöglicht, neue FunktionalitĂ€ten hinzuzufĂŒgen, ohne den Kerncode zu modifizieren. Plugins können: - Daten vor oder nach Vergleichen transformieren - Neue Export-Formate hinzufĂŒgen - Die GUI mit zusĂ€tzlichen Funktionen erweitern - Export-Dateien formatieren (wie die Excel-Farbformatierung) - API-Integrationen zu externen Systemen bereitstellen ### VerfĂŒgbare Plugins - **PlentyMarkets API Plugin**: VollstĂ€ndige Integration mit PlentyMarkets E-Commerce-System (Phase 4) - Bidirektionale Synchronisation - Automatisierte Tasks und Webhooks - Performance-Monitoring und Caching - **Excel Format Plugin**: FĂŒgt Excel-Exporten farbliche Formatierung hinzu (Preiserhöhungen in Rot, Preissenkungen in GrĂŒn) - **Complex Price List Plugin**: Verarbeitet komplexe Preislisten mit gruppierten Preisen und Artikelvarianten - **Fuzzy Text Matcher Plugin**: Ermöglicht intelligente Textvergleiche mit konfigurierbarer Ähnlichkeitsschwelle - **Reorganized Export Plugin**: Optimiert die Spaltenreihenfolge in Exporten fĂŒr bessere Lesbarkeit - **Uppercase Keys Plugin**: Normalisiert SchlĂŒsselwerte zur konsistenten Groß-/Kleinschreibung ### Erstellen eigener Plugins Um ein eigenes Plugin zu erstellen: 1. Eine neue Python-Datei im Verzeichnis `src/plugins/extensions/` erstellen 2. Von der Basis-Plugin-Klasse in `src/plugins/__init__.py` erben 3. Die erforderlichen abstrakten Methoden implementieren (name, version, description) 4. GewĂŒnschte Hook-Methoden fĂŒr die eigene FunktionalitĂ€t ĂŒberschreiben FĂŒr detaillierte Anleitungen siehe `src/plugins/README.md` und das umfassende `docs/Benutzerhandbuch.md`. ## Export-Optionen Das Tool unterstĂŒtzt mehrere Export-Formate: - **Excel**: Standard-Excel-Format mit optionaler Farbformatierung - **CSV**: Komma-getrennte Werte fĂŒr universelle KompatibilitĂ€t - **JSON**: Strukturiertes JSON-Format fĂŒr maschinelle Verarbeitung oder Webanwendungen ZusĂ€tzliche Export-Formate können ĂŒber das Plugin-System hinzugefĂŒgt werden. ## Dokumentation Eine umfassende Dokumentation finden Sie in: - `docs/Benutzerhandbuch.md` - VollstĂ€ndige Anleitung fĂŒr Endbenutzer - `docs/PlentyMarkets-Integration-Dokumentation.md` - PlentyMarkets-spezifische Dokumentation - `docs/PlentyMarkets-Code-Documentation.md` - Technische API-Dokumentation - `src/plugins/README.md` - Plugin-Entwicklung ## Mitwirken BeitrĂ€ge sind willkommen! Bitte öffnen Sie ein Issue oder reichen Sie einen Pull-Request fĂŒr Verbesserungen oder Fehlerbehebungen ein. ## Lizenz ## Zuletzt aktualisiert 24. Juli 2025