Virtual Products Management Pro - Downloadbaar bestand per combinatie met versies, changelog en GitHub-sync
PrestaShop 9 behandelt Virtueel product en Product met combinaties als elkaar uitsluitende producttypes — een product dat u in meerdere edities of licentieniveaus verkoopt, kan daardoor normaal geen bestand per variant dragen. Deze module beheert downloadbare bestanden los van die beperking en geeft elke combinatie een eigen bestand, versienummer en wijzigingslogboek. Beheer uw hele catalogus vanaf één pagina in plaats van product na product te openen, koppel een combinatie aan een GitHub-repository en haal bestand, versie en changelog op met één knop, en informeer eerdere kopers per e-mail zodra er een nieuwe versie is. Voor PrestaShop 1.7 – 9.
Het PrestaShop 9-probleem waarvoor dit bestaat
In PrestaShop 9 zijn "Virtueel product" en "Product met combinaties" elkaar uitsluitende producttypes. Dat is geen probleem tot u software, e-books, samples of licenties in meer dan één variant verkoopt — Standard en Pro, single-seat en team, Windows en macOS — want zodra u combinaties nodig heeft, verdwijnt het ingebouwde bestandsveld van het virtuele product.
Deze module beheert downloadbare bestanden volledig buiten het virtuele-productsysteem van PrestaShop. Maak het product aan als Product met combinaties, definieer de varianten en upload een bestand bij elke variant. Elke combinatie krijgt een eigen bestand, een eigen versienummer en een eigen wijzigingslogboek.
Eén pagina in plaats van product na product
De bestanden van uw hele catalogus staan op één scherm. Vouw een product uit, bekijk de combinaties, upload of vervang een bestand, zet de versie, schrijf het wijzigingslogboek. Zeven tellers bovenaan laten in één oogopslag zien waar u staat — Virtuele bestanden, Producten, Combinatiebestanden, Eenvoudige bestanden, Ontbrekende bestanden, Totaal downloads en Klanten — zodat een product waarvan het bestand nooit is geüpload daar in het rood opvalt, in plaats van door een klant te worden ontdekt.
Elk bestand heeft daarnaast een eigen downloadlimiet, geldigheid in dagen en vervaldatum, zodat u een licentie in tijd kunt begrenzen in plaats van hem onbeperkt weg te geven. Elk downloadbaar formaat werkt: ZIP, PDF, MP3, FLAC, EPUB of wat u ook verkoopt.
Koppel een combinatie aan GitHub en stop met uploaden
Elke combinatie werkt in één van twee modi: Bestand uploaden of GitHub-repository. Zet hem op GitHub, geef een owner/repo en eventueel een branch of tag op, en één knop Ophalen / Synchroniseren vanuit GitHub haalt het bestand, de versie en het wijzigingslogboek in één keer op — de release wordt ingepakt, de versie eruit gehaald en de recente commit-titels gelezen aan de serverkant, in plaats van dat er alleen een veld in uw browser wordt ingevuld.
Private repositories worden ondersteund via een Personal Access Token. Stel één keer een standaardtoken voor de hele winkel in en overschrijf dat per product waar een andere repository andere inloggegevens nodig heeft.
Een tabel Recent Sync Log (recent synchronisatielogboek) legt per uitvoering vast wat er werkelijk is gebeurd — product, combinatie, status, bericht en datum — met de overgang van oude naar nieuwe versie, of uitdrukkelijk "no version change" wanneer een run niets vond. Daarboven staat een tijdstempel Last automatic run (laatste automatische uitvoering), zodat u direct ziet of de geplande synchronisatie echt is afgegaan of nog nooit heeft gelopen.
Eén eerlijke kanttekening: de synchronisatie per uur draait op het eigen cron-takensysteem van PrestaShop, dat een echte externe cron op uw server nodig heeft om te worden gestart. Zolang dat niet is ingericht, doet de handmatige knop Ophalen / Synchroniseren hetzelfde werk op aanvraag — en blijft de regel Last automatic run op nooit staan, wat precies de reden is om hem te tonen.
Vertel uw klanten dat er een update is
Elke combinatie heeft een eigen knop Klanten informeren, die de klanten die dat product hebben gekocht per e-mail laat weten dat er een nieuwe versie beschikbaar is. Voor alles wat u als licentie of als tool verkoopt, is die ene knop het verschil tussen een klant die upgradet en een klant die vergeet dat hij het bezit.
Klanten krijgen een volwaardig downloadoverzicht
Kopers zien hun bestanden in hun account en op de detailpagina van hun bestelling, met de versie waarop ze recht hebben. Het is de gewone PrestaShop-accountervaring, uitgebreid naar bestanden per combinatie die de core zelf niet kan weergeven.
Wat versie 1.5.x heeft opgelost
Versie 1.5.2 heeft een aantal echte gebreken verholpen die het waard zijn om te kennen, omdat ze van het soort zijn dat maanden verborgen blijft.
Het changelog-veld kon nooit door de synchronisatie worden bijgewerkt. Beide synchronisatiepaden lieten changelog weg uit hun UPDATE-statement, dus zodra de rij van een combinatie bestond, bleef het veld bevroren op wat er als laatste met de hand was ingetypt — en geen van beide paden haalde changelog-inhoud aan de serverkant op uit GitHub. De synchronisatie haalt nu zelf de recente commit-titels van de gevonden ref op en bewaart die in dezelfde bewerking, zowel op het handmatige als op het automatische pad.
Het handmatige en het automatische synchronisatiepad waren uit elkaar gegroeid. Het handmatige endpoint had de GitHub-aanroepen, de zip-verwerking en het uitlezen van de versie onafhankelijk opnieuw geïmplementeerd, waardoor een fix op het ene pad stilzwijgend niet op het andere terechtkwam. Het handmatige pad delegeert nu naar de gedeelde synchronisatieklasse — en neemt daarbij nog steeds de repo en de ref over uit het formulier dat u voor u heeft, zodat proberen voordat u opslaat blijft werken.
De synchronisatie per uur logde altijd "success" zonder verdere details, ook als er niets was veranderd, waardoor het logboek nutteloos was om een rustige run van een stille storing te onderscheiden. En verse installaties registreerden de cron-hook nooit — alleen het zelfherstelblok van de configuratiepagina deed dat, dus de synchronisatie per uur kon niet afgaan tot een beheerder die pagina toevallig opende. De installatie registreert hem nu direct.
Eén ding om rekening mee te houden
Omdat het product in PrestaShop niet als Virtueel is gemarkeerd, blijft de standaard verzendkostenberekening erop van toepassing. Wijs deze producten toe aan een vervoerder met een regel voor nul kosten / gratis verzending om ze vrij van verzendkosten te houden. Het is een eenmalige instelling, en de configuratiepagina van de module zegt dat ook gewoon, in plaats van u het bij een echte bestelling te laten ontdekken.
Compatibiliteit
PrestaShop 1.7, 8 en 9, in acht talen: Nederlands, Engels, Frans, Duits, Italiaans, Pools, Spaans en Turks. Multistore-bewust. Bij het verwijderen van de module worden de gegevens van de module en de virtuele bestanden die zij beheert verwijderd, wat de bevestiging bij het verwijderen ook onomwonden meldt — maak dus eerst een kopie als u van plan bent opnieuw te installeren.
Veelgestelde vragen
Waarom heb ik dit nodig op PrestaShop 9?
Omdat PS 9 Virtueel product en Product met combinaties elkaar laat uitsluiten. Verkoopt u een downloadbaar product in meerdere edities of niveaus, dan kan de core niet elke variant een eigen bestand geven. Deze module wel.
Kan elke combinatie een ander bestand en een andere versie hebben?
Ja — een eigen bestand, een eigen versienummer en een eigen wijzigingslogboek. Daar is de module voor bedoeld.
Hoe werkt de GitHub-synchronisatie?
Zet een combinatie in de modus GitHub-repository, geef een owner/repo op plus eventueel een branch of tag, en klik op Ophalen / Synchroniseren vanuit GitHub — bestand, versie en changelog komen in één keer binnen. Private repositories werken via een Personal Access Token, één keer als winkelstandaard ingesteld en per product te overschrijven. De automatische synchronisatie per uur heeft daarnaast de cron-takenuitvoerder van PrestaShop nodig, aangedreven door een echte cron op uw server.
Weten mijn klanten het wanneer ik een update uitbreng?
Ja, als u op de combinatie op Klanten informeren klikt — dan gaat er een e-mail naar de klanten die dat product hebben gekocht.
Worden er verzendkosten voor deze producten gerekend?
Dat kan, omdat PrestaShop ze niet als virtueel ziet. Wijs ze toe aan een vervoerder met een regel voor gratis verzending en de kosten verdwijnen.
Welke bestandstypen worden ondersteund?
ZIP, PDF, MP3, FLAC, EPUB en elk ander downloadbaar formaat.
Hoe zie ik van welk product het bestand ontbreekt?
Bij de tellers bovenaan de pagina staat een cijfer Ontbrekende bestanden, zodat een gat daar opvalt en niet in een klacht van een klant.
Wat gebeurt er als ik de module verwijder?
De gegevens van de module en de virtuele bestanden die zij beheert worden verwijderd — de bevestiging zegt dat ook. Bewaar een kopie van alles wat u nog nodig heeft.
-
CompatibiliteitPrestashop 1.6
Prestashop 1.7
Prestashop 8
Prestashop 9 -
Beschikbare Module VertalingenDuits
Engels
Frans
Italiaans
Nederlands
Pools
Portugees
Spaans
Turks
MEG Venture
4 other products in the same category
| Versie | 1.5.2 |
|---|---|
| Laatst bijgewerkt | 2026-07-30 |
| Wijzigingslogboek | - [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
Commentaar (6)
Uw beoordelingswaardering kan niet worden verzonden
Rapporteer reactie
Melding verzonden
Uw opmerking kan niet worden verzonden