Virtual Products Management Pro - Herunterladbare Dateien je Kombination mit Versionen und GitHub-Sync
PrestaShop 9 behandelt Virtuelles Produkt und Produkt mit Kombinationen als sich gegenseitig ausschließende Typen — ein Produkt, das in mehreren Editionen oder Lizenzstufen verkauft wird, kann daher normalerweise keine Datei pro Variante führen. Dieses Modul verwaltet herunterladbare Dateien unabhängig von dieser Einschränkung und gibt jeder Kombination ihre eigene Datei, Versionsnummer und ihr eigenes Änderungsprotokoll. Verwalten Sie den gesamten Katalog auf einer Seite, statt Produkte einzeln zu öffnen, verknüpfen Sie eine Kombination mit einem GitHub-Repository und holen Sie Datei, Version und Änderungsprotokoll mit einer Schaltfläche, und informieren Sie frühere Käufer per E-Mail, sobald eine neue Version erscheint. Für PrestaShop 1.7 – 9.
Das PrestaShop-9-Problem, für das es dieses Modul gibt
In PrestaShop 9 sind "Virtuelles Produkt" und "Produkt mit Kombinationen" sich gegenseitig ausschließende Produkttypen. Das ist unproblematisch, bis Sie Software, E-Books, Samples oder Lizenzen in mehr als einer Variante verkaufen — Standard und Pro, Einzelplatz und Team, Windows und macOS — denn sobald Sie Kombinationen brauchen, ist das eingebaute Dateifeld für virtuelle Produkte verschwunden.
Dieses Modul verwaltet herunterladbare Dateien vollständig außerhalb des Systems für virtuelle Produkte von PrestaShop. Legen Sie das Produkt als Produkt mit Kombinationen an, definieren Sie die Varianten und laden Sie zu jeder eine Datei hoch. Jede Kombination erhält ihre eigene Datei, ihre eigene Versionsnummer und ihr eigenes Änderungsprotokoll.
Eine Seite statt ein Produkt nach dem anderen
Die Dateien des gesamten Katalogs liegen auf einem einzigen Bildschirm. Produkt aufklappen, Kombinationen sehen, Datei hochladen oder ersetzen, Version setzen, Änderungsprotokoll schreiben. Sieben Zähler am oberen Rand zeigen Ihnen auf einen Blick, wo Sie stehen — Virtuelle Dateien, Produkte, Kombinationsdateien, Einfache Dateien, Fehlende Dateien, Downloads gesamt und Kunden — sodass ein Produkt, dessen Datei nie hochgeladen wurde, dort in Rot auffällt, statt von einem Kunden entdeckt zu werden.
Jede Datei führt außerdem ihr eigenes Download-Limit, ihre Gültigkeit in Tagen und ihr eigenes Ablaufdatum, sodass eine Lizenz zeitlich begrenzt statt unbefristet übergeben werden kann. Jedes herunterladbare Format funktioniert: ZIP, PDF, MP3, FLAC, EPUB oder was auch immer Sie verkaufen.
Kombination mit GitHub verknüpfen und das Hochladen sein lassen
Jede Kombination arbeitet in einem von zwei Modi: Datei hochladen oder GitHub-Repository. Stellen Sie auf GitHub um, geben Sie ein owner/repo und optional einen Branch oder Tag an — und eine einzige Schaltfläche Von GitHub abrufen / synchronisieren holt Datei, Version und Änderungsprotokoll gemeinsam: Sie packt das Release, liest die Version aus und übernimmt die letzten Commit-Betreffzeilen serverseitig, statt lediglich ein Feld in Ihrem Browser zu füllen.
Private Repositories werden über ein Personal Access Token unterstützt. Legen Sie einmal ein Standard-GitHub Personal Access Token für den ganzen Shop fest und überschreiben Sie es pro Produkt, wenn ein anderes Repository andere Zugangsdaten benötigt.
Eine Tabelle Recent Sync Log (Protokoll der letzten Synchronisierungen) hält fest, was pro Durchlauf tatsächlich passiert ist — Produkt, Kombination, Status, Meldung und Datum — inklusive des Übergangs alte → neue Version oder ausdrücklich "no version change", wenn ein Durchlauf nichts gefunden hat. Darüber steht ein Zeitstempel Last automatic run (letzter automatischer Durchlauf), sodass Sie auf einen Blick erkennen, ob die geplante Synchronisierung wirklich gelaufen ist oder überhaupt noch nie stattgefunden hat. Diese beiden Bezeichnungen sind im Template fest auf Englisch hinterlegt und erscheinen daher auch in einem deutschen Backoffice in englischer Sprache.
Eine ehrliche Einschränkung: Die stündliche Synchronisierung setzt auf das Cron-Aufgabensystem von PrestaShop auf, das von einem echten externen Cron-Job auf Ihrem Server ausgelöst werden muss. Solange das nicht eingerichtet ist, erledigt die Schaltfläche Von GitHub abrufen / synchronisieren dieselbe Arbeit auf Abruf — und die Zeile Last automatic run meldet weiterhin never, was genau der Grund ist, sie überhaupt anzuzeigen.
Sagen Sie Ihren Kunden, dass es ein Update gibt
Jede Kombination hat ihre eigene Schaltfläche Kunden benachrichtigen, die den Kunden, die dieses Produkt gekauft haben, eine E-Mail über die neue Version schickt. Bei allem, was als Lizenz oder Werkzeug verkauft wird, entscheidet diese eine Schaltfläche darüber, ob ein Kunde aktualisiert oder vergisst, dass er das Produkt besitzt.
Kunden erhalten einen richtigen Download-Bereich
Käufer sehen ihre Dateien in ihrem Kundenkonto und auf der Bestelldetailseite, jeweils mit der Version, auf die sie Anspruch haben. Es ist die gewohnte PrestaShop-Kontoumgebung, erweitert um Dateien je Kombination, die der Standard nicht abbilden kann.
Was Version 1.5.x behoben hat
Version 1.5.2 hat eine Reihe echter Fehler behoben, die man kennen sollte — es sind genau die, die sich monatelang verstecken.
Das Feld Änderungsprotokoll konnte von der Synchronisierung nie aktualisiert werden. Beide Synchronisierungspfade ließen changelog in ihrer UPDATE-Anweisung aus, sodass das Feld, sobald der Datensatz einer Kombination existierte, auf dem letzten manuell eingetippten Stand einfror — und keiner der Pfade holte serverseitig überhaupt Änderungsprotokoll-Inhalte von GitHub. Die Synchronisierung liest jetzt selbst die letzten Commit-Betreffzeilen der aufgelösten Ref aus und speichert sie im selben Vorgang, sowohl auf dem manuellen als auch auf dem automatischen Pfad.
Der manuelle und der automatische Synchronisierungspfad waren auseinandergelaufen. Der manuelle Endpunkt hatte die GitHub-Aufrufe, die Zip-Verarbeitung und die Versionsermittlung eigenständig nachgebaut, sodass eine Korrektur an einer Stelle stillschweigend nicht für die andere galt. Der manuelle Pfad delegiert jetzt an die gemeinsame Synchronisierungsklasse — nimmt Repository und Ref aber weiterhin aus dem Formular, das Sie gerade vor sich haben, damit ausprobieren vor dem Speichern weiter funktioniert.
Die stündliche Synchronisierung protokollierte immer "success" ohne jedes Detail, selbst wenn sich nichts geändert hatte — was das Protokoll unbrauchbar machte, um einen ruhigen Durchlauf von einem stillen Fehlschlag zu unterscheiden. Und bei Neuinstallationen wurde der Cron-Hook nie registriert — das tat nur der Selbstheilungs-Block der Konfigurationsseite, sodass die stündliche Synchronisierung erst laufen konnte, wenn ein Administrator diese Seite zufällig öffnete. Die Installation registriert ihn jetzt direkt.
Eines sollten Sie einplanen
Da das Produkt in PrestaShop nicht als Virtuell gekennzeichnet ist, greift weiterhin die normale Versandkostenberechnung. Damit für diese Produkte keine Versandkosten anfallen, ordnen Sie sie einem Transportunternehmen mit einer Kostenlos-Regel für den Versand zu. Das ist ein einmaliger Einrichtungsschritt, und die Konfigurationsseite des Moduls weist ausdrücklich darauf hin, statt Sie das an einer echten Bestellung herausfinden zu lassen.
Kompatibilität
PrestaShop 1.7, 8 und 9, in acht Sprachen: Deutsch, Englisch, Französisch, Italienisch, Niederländisch, Polnisch, Spanisch und Türkisch. Multistore-fähig. Beim Deinstallieren werden die Daten des Moduls und die von ihm verwalteten virtuellen Dateien entfernt, worauf die Deinstallations-Bestätigung unmissverständlich hinweist — sichern Sie also vorher eine Kopie, wenn Sie eine Neuinstallation planen.
Häufig gestellte Fragen
Warum brauche ich das unter PrestaShop 9?
Weil PS 9 Virtuelles Produkt und Produkt mit Kombinationen gegenseitig ausschließt. Wenn Sie ein herunterladbares Produkt in mehreren Editionen oder Stufen verkaufen, kann der Standard jeder Variante keine eigene Datei geben. Dieses Modul kann es.
Kann jede Kombination eine andere Datei und Version haben?
Ja — ihre eigene Datei, ihre eigene Versionsnummer und ihr eigenes Änderungsprotokoll. Genau darum geht es in diesem Modul.
Wie funktioniert die GitHub-Synchronisierung?
Stellen Sie eine Kombination auf den Modus GitHub-Repository, geben Sie ein owner/repo sowie optional einen Branch oder Tag an und drücken Sie Von GitHub abrufen / synchronisieren — damit werden Datei, Version und Änderungsprotokoll in einem Zug geholt. Private Repositories funktionieren über ein Personal Access Token, das einmal als Shop-Standard gesetzt und pro Produkt überschrieben werden kann. Die stündliche automatische Synchronisierung benötigt zusätzlich den Cron-Aufgabenplaner von PrestaShop, angetrieben von einem echten Cron-Job auf Ihrem Server.
Erfahren meine Kunden, wenn ich ein Update ausliefere?
Ja, wenn Sie bei der Kombination auf Kunden benachrichtigen drücken — damit erhalten die Kunden, die dieses Produkt gekauft haben, eine E-Mail.
Werden für diese Produkte Versandkosten berechnet?
Das kann passieren, weil PrestaShop sie nicht als virtuell ansieht. Ordnen Sie sie einem Transportunternehmen mit einer Kostenlos-Regel für den Versand zu, und die Gebühr verschwindet.
Welche Dateitypen werden unterstützt?
ZIP, PDF, MP3, FLAC, EPUB und jedes andere herunterladbare Format.
Wie erkenne ich ein Produkt, dessen Datei fehlt?
Zu den Zählern am oberen Seitenrand gehört der Wert Fehlende Dateien, sodass eine Lücke dort auffällt und nicht erst in einer Kundenbeschwerde.
Was passiert beim Deinstallieren?
Die Daten des Moduls und die von ihm verwalteten virtuellen Dateien werden gelöscht — die Bestätigung sagt das auch so. Bewahren Sie eine Kopie von allem auf, was Sie noch einmal brauchen.
-
KompatibilitätPrestashop 1.6
Prestashop 1.7
Prestashop 8
Prestashop 9 -
Verfügbare ModulübersetzungenDeutsch
Englisch
Französisch
Italienisch
Niederländisch
Polnisch
Portugiesisch
Spanisch
Türkisch
MEG Venture
4 other products in the same category
| Version | 1.5.2 |
|---|---|
| Zuletzt aktualisiert | 2026-07-30 |
| Änderungsprotokoll | - [2026-07-30] Add missing translation keys for virtual product combination module in Turkish - [2026-07-27] Fix GitHub sync never persisting changelog updates (v1.5.2) - [2026-07-24] Add translations for Virtual Products Management Pro module in Dutch, Polish, and Turkish - [2026-07-23] fix: correct upgrade function name for version 1.4.12 to prevent upgrade failures - [2026-07-23] Fix protected-property access when loading the sync class in syncall.php - [2026-07-23] Fix "Class VirtualProductCombinationGithubSync not found" in syncall.php - [2026-07-23] Fix Sync All Now hitting admin dispatcher instead of front controller - [2026-07-23] Fix boolean passed as log message in syncall.php - [2026-07-23] Fix SQL syntax error: duplicate LIMIT 1 in notification queries - [2026-07-23] Fix root cause: version extraction bailed out before opening the zip - [2026-07-23] Fix literal backslash-n in version-change confirm dialog - [2026-07-23] Add composer.json and ultra-permissive fallback for version extraction - [2026-07-23] Add dual-method brute-force version extraction as fallback - [2026-07-23] Improve version extraction with comprehensive PHP parsing - [2026-07-23] Improve version extraction regex to handle more module formats - [2026-07-23] Fix version change detection and add manual sync trigger button - [2026-07-23] Add version detection and auto-send notifications for GitHub sync - [2026-07-23] Implement automatic GitHub synchronization feature with logging - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add authentic translations for FR, DE, PL, NL, TR, IT, ES - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-22] feat: Repackage GitHub zipball for PrestaShop compatibility - [2026-07-22] feat: Add GitHub integration for virtual product combinations - [2026-07-07] v1.4.17: Block native virtual files on product page - [2026-07-07] Fix virtual product notice on creation and ProductDownload save error - [2026-07-06] Batch-load GitHub URLs and PATs for products from admin panel configuration |
• [2026-07-07] Fix virtual product notice on creation and ProductDownload save error
• [2026-07-06] Batch-load GitHub URLs and PATs for products from admin panel configuration
• [2026-07-04] Add GitHub URL and PAT handling in product data retrieval and save methods
• [2026-07-04] Enhance language handling in product data retrieval and save methods, adding GitHub URL persistence and improving data accuracy in admin UI
• [2026-06-29] Improve SQL query in getVirtualData to filter out orphaned combination rows, ensuring accurate data in admin UI
• [2026-06-29] Enhance logging in getVirtualData success callback to include matched product count for improved debugging
• [2026-06-29] Add logging to getVirtualData success callback for improved debugging
• [2026-06-29] Refactor getVirtualData method to query product download data directly, ensuring fresh results and improved data accuracy
• [2026-06-29] Enhance save method to return fresh data immediately after saving, improving user experience and data accuracy
• [2026-06-29] Update response handling in getVirtualData and save methods for improved JSON output and error visibility
• [2026-06-29] Enhance save method response by including database error details and verification data for improved debugging and transparency
• [2026-06-29] Add cache: false to AJAX request for improved data freshness
• [2026-06-29] Improve save method response handling and logging for better error visibility
• [2026-06-29] Remove limit from changelog version query to retrieve all entries for accurate version comparison
• [2026-06-29] Improve error handling in save method and update AJAX response to JSON format
• [2026-06-29] Enhance KPI metrics in admin panel by adding total files, products covered, combination files, simple files, missing files, total downloads, and customers with downloads.
• [2026-06-26] Add conditions to filter active product downloads in getProductDownloads method
• [2026-06-26] Increase the number of commits fetched from GitHub API from 5 to 30
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] order detail page fix
• [2026-06-24] My Downloads page link is fixed
• [2026-06-24] Order detail page download link display problem is solved
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-29] Enhance logging in getVirtualData success callback to include matched product count for improved debugging
• [2026-06-29] Add logging to getVirtualData success callback for improved debugging
• [2026-06-29] Refactor getVirtualData method to query product download data directly, ensuring fresh results and improved data accuracy
• [2026-06-29] Enhance save method to return fresh data immediately after saving, improving user experience and data accuracy
• [2026-06-29] Update response handling in getVirtualData and save methods for improved JSON output and error visibility
• [2026-06-29] Enhance save method response by including database error details and verification data for improved debugging and transparency
• [2026-06-29] Add cache: false to AJAX request for improved data freshness
• [2026-06-29] Improve save method response handling and logging for better error visibility
• [2026-06-29] Remove limit from changelog version query to retrieve all entries for accurate version comparison
• [2026-06-29] Improve error handling in save method and update AJAX response to JSON format
• [2026-06-29] Enhance KPI metrics in admin panel by adding total files, products covered, combination files, simple files, missing files, total downloads, and customers with downloads.
• [2026-06-26] Add conditions to filter active product downloads in getProductDownloads method
• [2026-06-26] Increase the number of commits fetched from GitHub API from 5 to 30
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] order detail page fix
• [2026-06-24] My Downloads page link is fixed
• [2026-06-24] Order detail page download link display problem is solved
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] .
• [2026-06-24] feat: Ensure download hashes are generated for orders before payment confirmation
• [2026-06-24] feat: Implement download hash generation for existing orders and enhance "My Downloads" functionality
• [2026-06-24] feat: Update alignment styles for "My Downloads" link in account page
• [2026-06-24] feat: Update "My Downloads" link styling and improve account page block description
• [2026-06-24] feat: Update ecotax calculations to support PrestaShop 9 compatibility and enhance "My Downloads" link styling
Kommentare (6)
Ihre Bewertung der Rezension kann nicht gesendet werden
Kommentar melden
Meldung gesendet
Ihre Meldung kann nicht gesendet werden