Digital Revolution: configurazione e aiuto
Avvio rapido
- Carica e installa lo ZIP Digital Revolution, poi apri "Sell" > Prodotti digitali > "Settings" > Configurazione.
- Controlla Integrità e Chiavi di firma; risolvi gli errori di configurazione ed esporta un backup cifrato delle chiavi.
- Esamina "Enable Module", "Default Support Period", Massimo domini predefinito e i limiti di download demo.
- Crea un prodotto in "Catalog" > Prodotti, seleziona Prodotto negozio e controlla Nome modulo, Versione e i campi di compatibilità.
- Carica uno ZIP sorgente pulito in "Catalog" > Versioni, imposta Versione, Imposta come ultima e Attivo, e controlla Prontezza del modulo.
- Effettua un ordine controllato, confermane lo stato pagato idoneo e controlla la licenza cliente in "Licensing" > Licenze.
- Accedi come quel cliente, scarica dalla scheda /licenses e verifica installazione, attivazione e aggiornamenti su un negozio di prova.
Richiede PrestaShop 1.7.0 o successivo e PHP 7.1 o successivo.
Manuale di configurazione
Installare e controllare il servizio licenze
Carica e installa lo ZIP Digital Revolution in Moduli > "Module Manager". Apri "Sell" > Prodotti digitali > "Settings" > Configurazione.
Seleziona il negozio desiderato. Controlla Integrità e risolvi gli avvisi di aggiornamento database prima delle operazioni di licenza. Il modulo aggiunge le aree "Catalog", "Licensing", Assistenza, "Analytics" e "Settings" sotto Prodotti digitali.
Controlla il pannello Chiavi di firma prima di pubblicare un download. L'installazione tenta di predisporre le chiavi di firma, ma gli errori restano visibili. Finché le chiavi non sono utilizzabili, non è possibile attivare licenze, scaricare moduli protetti o produrre le risposte firmate richieste dall'API licenze.
Usa un prodotto e un ordine di prova prima di aggiungere il resto del catalogo. I processi PHP/CLI devono accedere a sorgenti caricati, versioni preparate e spazio temporaneo di compilazione. Il packaging ZIP richiede ZipArchive; la crittografia richiede le funzioni usate dai servizi di firma e cifratura.
Configurare le impostazioni generali
Apri "Settings" > Configurazione > Generale.
| Impostazione | Predefinito | Cosa impostare |
|---|---|---|
| "Enable Module" | Attivo | Attiva i controlli supportati del servizio licenze. Non è un interruttore universale che rimuove ogni hook del negozio o diritto emesso. |
| Limite di frequenza API | 100 richieste |
Massimo nella finestra di limitazione API applicabile. Le singole azioni possono avere limiti aggiuntivi. |
| Finestra limite di frequenza | 3600 secondi |
Finestra del limite generale. |
| "Default Support Period" | 3 mesi |
Assistenza inclusa predefinita. Controlla Periodo di supporto del prodotto prima di venderlo. |
| Massimo domini predefinito | 1 |
Numero predefinito di domini consentiti. |
| "Default Trial Period" | 7 giorni |
Durata di prova predefinita. |
| "Allow Domain Changes" | Attivo | Consente i flussi supportati di cambio dominio. Restano i controlli di proprietà e associazione. |
| Domini dev liberi | Attivo | Applica la politica supportata degli slot per domini di sviluppo. Non rende valida ogni richiesta di attivazione localhost/IP. |
| "Allow Platform Domain" | Disattivo | Eccezione di test per registrare mypresta.rocks stesso. Lasciala disattivata in produzione. |
| "Grace Period" | 7 giorni |
Intervallo di tolleranza configurato per la validazione. Il diritto interessato e il runtime client determinano comunque il comportamento. |
| Download con filigrana | Attivo | I download protetti includono metadati di audit e filigrana indipendentemente da questa impostazione. Non vengono aggiunte filigrane visibili ai PDF o alle immagini. |
| "Internal Patterns (skip recording)" | @mypresta.rocks,*.dev.mypresta.rocks |
Pattern email/domini separati da virgole per i report demo interni. |
| "Internal / Admin IPs (skip recording)" | Vuoto | IP esatti, intervalli CIDR IPv4 o prefissi per report interni e controlli supportati delle richieste attendibili. |
| "Support Email" | Vuoto | Indirizzo nei messaggi di restrizione. Se vuoto, usa l'email del negozio. |
| "Emergency CAPTCHA for One-Click Downloads" | Disattivo | Richiede un CAPTCHA già configurato per download con nuove concessioni in caso di abuso. |
| "Download Terms Version" | 2026-10-15 |
Modifica quando cambiano i termini di download collegati. |
| "Download Privacy Version" | 2026-10-15 |
Modifica quando cambia l'informativa privacy collegata. |
| "Enable Demo Download Rate Limit" | Attivo | Limita le acquisizioni pubbliche di demo di prodotti a pagamento. |
| "Demo Downloads per 48 Hours" | 5 |
Limite per visitatore nella finestra breve. |
| "Demo Downloads per Month" | 10 |
Limite mensile per visitatore. |
| "Lazy-load Product Changelog Tab" | Attivo | Mostra inizialmente il riepilogo dell'ultima versione e carica il changelog completo all'apertura. |
Esempi di pattern e indirizzi interni:
@yourcompany.com,*.dev.example.com,staging.example.com
127.0.0.1
192.168.1.0/24
10.0.
Un'email o un dominio inserito serve solo alla classificazione dei report. Non autorizza a evitare quote download, limiti o blocchi. Il controllo delle richieste interne attendibili usa un IP interno configurato.
Gli interruttori delle notifiche email demo per amministratori e clienti non sono disponibili nella configurazione.
Configurare e salvare le chiavi di firma
In Chiavi di firma, controlla stato, ID chiave, impronta e indirizzo dell'emittente. I nuovi pacchetti si fidano dell'emittente e dell'identità pubblica di firma di questo negozio.
Per un nuovo negozio senza chiavi, usa "Set up signing keys". Esporta un backup cifrato con una password di backup e conservalo fuori dal negozio. "Download public key" fornisce la chiave pubblica per verificare le firme delle risposte quando disponibile. "Import backup" ripristina un'identità esistente; le importazioni browser sono limitate a 4 MB.
Se _MPR_DIGITAL_SIGNING_KEY_DIR_ è configurato, l'operatore del server gestisce le chiavi in quella cartella. Il pannello mostra "Use the keys in the operator folder" quando applicabile. Ripristina cartella e file configurati se quel backend non è più disponibile.
Se il negozio ha già emesso pacchetti, ripristina il backup delle chiavi prima di considerarne la sostituzione. Sostituirle crea una nuova identità; i moduli già consegnati possono smettere di fidarsi finché i clienti non scaricano di nuovo. Revoca una chiave precedente solo se vuoi rifiutare ciò che ha firmato. Il modulo richiede conferma esplicita per sostituzione e revoca.
Lo stesso servizio è disponibile dalla radice del negozio, usando l'identità del server web:
php modules/mprdigitalrevolution/scripts/signing_keys.php status
L'utilità supporta anche configurazione, esportazione/importazione cifrata, sostituzione e revoca. Legge la password del backup da MPR_SIGNING_BACKUP_PASSWORD. Usa gli argomenti documentati anziché stampare chiavi private o modificare manualmente le righe delle chiavi.
Creare il primo prodotto digitale
Apri "Catalog" > Prodotti e aggiungi un prodotto. Collegalo a un normale prodotto PrestaShop tramite Prodotto negozio. Il prodotto nativo collegato fornisce il contesto commerciale del negozio.
| Campo o area | Comportamento iniziale | Configurazione |
|---|---|---|
| Carica ZIP | Vuoto | Carica un archivio sorgente completo e pulito per ispezione e creazione della versione. |
| Prodotto negozio | Nessun prodotto finché non selezionato | Collega il prodotto PrestaShop desiderato. |
| Tipo | Seleziona il tipo reale | Usa il tipo supportato corrispondente al pacchetto sorgente. |
| Nome modulo | Vuoto o estratto | Per consegnare moduli deve corrispondere all'identità della cartella/file principale del modulo. |
| Canale | stable |
Identificativo interno del ramo. |
| Versione | Vuoto o estratto | Versione attuale del pacchetto. |
| PS min., PS max., PHP minimo | Metadati prodotto/archivio | Inserisci la compatibilità del prodotto consegnato, non di Digital Revolution. |
| Periodo di supporto | Valore di ripiego del nuovo form: 3 mesi |
Assistenza inclusa per questo prodotto. |
| Max domini | Valore di ripiego del nuovo form: 1 |
Valore predefinito per nuove licenze. |
| Documentazione | Vuoto | URL documentazione. |
| URL demo | Vuoto | Destinazione demo pertinente. |
| URL del repository | Vuoto | Riferimento al repository sorgente dove usato. |
| Ordinabile | Attivo | Consenti ordini solo dopo aver verificato versione e prezzi. |
| "Indexable (SEO)" | Disattivo | Abilita deliberatamente l'idoneità SEO pubblica quando i contenuti localizzati sono pronti. |
| Prova attivata | Disattivo | Attiva l'accesso di prova supportato. |
| Giorni di prova | 7 |
Durata della prova. |
| Prove max. per cliente | 1 |
Limite del numero di prove. |
| Demo attivata | Attivo | Attiva il flusso demo supportato. |
| Giorni demo | 30 |
Durata della demo scaricabile. |
| Vetrina | Attivo | Consenti la visualizzazione pubblica in vetrina quando idonea. |
| Immagine Showcase | Vuoto | URL immagine pubblica. |
| Attivo | Attivo | Stato di attivazione del prodotto. |
Usa "Localized Roadmap Content" per i campi tradotti Nome visualizzato, Slug SEO, Note del ramo, Descrizione Showcase, Immagine Showcase, Funzionalità Showcase, Tag Showcase e Nota non ordinabile. Contenuti tradotti vuoti non creano da soli una pagina pubblica localizzata completa.
Per un rilascio pianificato, compila Rilascio previsto e scegli Notifica al rilascio secondo necessità. L'area Iscritti mostra i visitatori interessati. Questi campi non sostituiscono il caricamento di una versione attiva.
I campi "Minimum Protection Generation", "Blocked Build IDs" e "Legacy Protection Compatibility Until" sono controlli operatore per l'accettazione di client/pacchetti. Esamina le generazioni client distribuite prima di modificarli; non servono alla prima configurazione ordinaria di un prodotto.
L'editor contiene anche Versioni, Prezzi licenza, Prezzi supporto, Servizi e Varianti. Configura scelte e prezzi effettivi da offrire, poi verifica selezione nel negozio e metadati al checkout. Non presumere che un nome prodotto o un vecchio esempio JSON configuri automaticamente tali scelte.
I download gratuiti richiedono l'idoneità al download gratuito e un prodotto collegato a prezzo zero. Il modulo prodotto non ha un interruttore separato per questa idoneità. Dopo aver impostato il prezzo, verifica l'intero flusso di acquisizione gratuita.
Caricare e verificare le versioni
Apri "Catalog" > Versioni, oppure l'area Versioni del prodotto.
| Campo | Configurazione |
|---|---|
| Prodotto digitale | Seleziona il prodotto digitale collegato. |
| Versione | Inserisci la versione del rilascio. |
| ZIP sorgente | Carica il pacchetto sorgente completo. |
| Versione PHP min. | Imposta il requisito del pacchetto; una nuova versione può ereditare il valore dell'ultima. |
| Registro modifiche | Inserisci le note di rilascio. |
| Imposta come ultima | Attiva per la versione corrente desiderata. Il caricamento dal prodotto lo attiva per impostazione predefinita. |
| Attivo | Attiva per rendere disponibile la versione. Il flusso di nuova versione del prodotto lo attiva per impostazione predefinita. |
Usa pacchetti sorgente puliti. Se il modulo carica vendor/autoload.php, includi dipendenze di produzione e autoloader. Il packager convalida percorsi dell'archivio, radice del modulo e file principale, poi prepara la versione. Non usare come sorgente uno ZIP protetto già personalizzato di un cliente.
Una riga di versione non dimostra la prontezza alla consegna. Esegui i controlli disponibili di Prontezza del modulo e un vero download controllato. Il pacchetto protetto viene certificato lato server prima della consegna; una certificazione fallita impedisce la consegna e segnala un errore.
I pacchetti attuali possono contenere dati licenza cifrati, .mpr_license.json, un .mpr_wm locale al modulo, codice d'integrità emittente/runtime e un commento archivio MPR:<watermark ID>. I dettagli dipendono dalla modalità di consegna. Un vecchio JSON helper minimale non è un modello da copiare nelle nuove versioni.
Verificare ordini pagati e attivazione alla prima installazione
Effettua un ordine di prova per il prodotto collegato. Gli hook di validazione e stato ordine assegnano e riconciliano i diritti. Una licenza in attesa non equivale a un accesso pagato attivo. Conferma che l'ordine raggiunga uno stato pagato/logable idoneo e controlla "Licensing" > Licenze.
Accedi come cliente di prova e apri /licenses tramite il link localizzato generato dal negozio. Controlla la scheda licenza e scarica la versione autorizzata.
Il primo download a pagamento dalla scheda licenza può essere un pacchetto firmato non ancora associato al dominio di un negozio. L'attivazione durante l'installazione lo associa al negozio. Gli aggiornamenti di un'attivazione esistente usano il negozio già associato alla licenza.
Per una demo già installata, usa Attiva nel client, accedi al portale dell'emittente e conferma la licenza. Il solo possesso della chiave non basta a creare una nuova associazione tramite le azioni ritirate di registrazione negozio/assegnazione automatica.
Controlla stato di attivazione, negozio associato, proprietà della licenza e verifica aggiornamenti del modulo installato. Esamina "Licensing" > Domini e "Installs". Usa le azioni supportate di trasferimento/cambio dominio nel portale; non modificare direttamente le righe di associazione.
La route di download pagato con token è:
/release-download/{token}
Evita la directory fisica download/ di PrestaShop. Il token della richiesta pagata dura di default 30 minuti e viene consumato al riscatto. Un servizio separato di token per artefatti preparati usa un TTL di 300 secondi. Sono fasi di token diverse. Ottieni un nuovo link dal portale quando scade o è già stato usato.
I log download collegano prodotto, versione, cliente, IP, dati di associazione, hash e identità della filigrana quando disponibili.
Impostare assistenza, servizi e pacchetti
Validità della licenza e copertura dell'assistenza sono separate. Con assistenza attiva, il servizio può scegliere l'ultima versione attiva. Con assistenza scaduta, sceglie una versione pubblicata nella finestra di assistenza autorizzata. Una licenza perpetua valida non concede automaticamente ogni nuova versione. Servizi e pacchetti possono imporre un proprio limite temporale alle versioni.
Usa Prezzi supporto e l'integrazione checkout supportata per estensioni o assistenza ricorrente. Controlla contratto e scelte di assistenza effettivamente offerti.
In Configurazione > Servizi, "Demo Orchestrator Admin Token" parte vuoto. Ottienilo dall'amministrazione dell'orchestratore demo configurato. Non viene generato da questo formulario. Una demo ospitata richiede l'orchestratore esterno oltre al flag del prodotto.
I valori predefiniti delle note di servizio sono:
| Impostazione | Predefinito |
|---|---|
| "Installation Completed Note" | Professional Setup has been completed. {module_name} was installed/configured and checked on your shop. |
| "Customization Completed Note" | Visual Integration has been completed. {module_name} was adjusted to better match your theme and checked on your shop. |
| "Generic Completed Note" | The service has been completed for {module_name} and checked on your shop. |
| "Show Completion Note to Customer by Default" | Attivo |
| "Customer Instructions Help Text" | Keep preferred installation time, access constraints, theme-matching notes, and other customer instructions here. This is customer-visible and can be updated until follow-up is finalized. |
| "Customer Instructions Placeholder" | Preferred low-traffic time, admin access details, theme notes, or constraints. |
Le note possono usare {module_name}, {service_name} e {service_type}. Controlla il flag di visibilità cliente quando aggiorni un ordine servizio. Il modulo offre ordini servizio, contratti e integrazione ticket; esamina Assistenza e le relative pagine licenze/amministrazione per il cliente selezionato.
Per un pacchetto di catalogo, attiva Pacchetto, scegli Composizione del pacchetto, Aggiunte successive ed eventuali Mesi per le aggiunte. Un nuovo pacchetto usa di default la composizione da elenco e aggiunte per sempre. Salvalo come non ordinabile, poi modifica e salva ID dei prodotti inclusi nel pacchetto prima di attivare le vendite. Verifica i diritti dei prodotti figli con un ordine di prova.
Controllare demo, pagine pubbliche e contenuti del negozio
I prodotti collegati possono aggiungere scelte di licenza, assistenza, servizi e demo tramite hook prodotto. Il changelog può apparire con le integrazioni supportate delle schede prodotto. Controlla gli hook displayProductAdditionalInfo, delle schede e dei contenuti extra del tema.
Le route pubbliche includono /roadmap, /roadmap/{slug}, /demos, /demo/{slug} e i flussi /live-demo dove attivati. /demos/{slug} resta come route legacy della pagina demo e reindirizza tramite il flusso catalogo attuale; non considerare ogni vecchio URL una pagina autonoma separata.
Prova separatamente acquisizione demo, download con un clic, accettazione termini/privacy, quote e attivazione alla prima installazione. Una concessione demo/gratuita non diventa una licenza pagata solo perché il cliente accede in seguito. Controlla concessione e proprietà corrette in Download demo e nello spazio cliente.
L'hook sitemap controlla la chiave condivisa di basso livello INCLUDE_IN_SITEMAP, inizializzata a 1. Impostarla a 0 sopprime l'output sitemap del modulo. Non è un'impostazione visibile di Generale e visibilità/indicizzabilità pubblica dipendono comunque dal singolo contenuto e dalla route.
Il CSS del tema può usare selettori esistenti come .mpr-digital-variants, .mpr-demo-link, .mpr-btn-demo, .mpr-btn-demo-download, .mpr-license-selection e .mprdigital-changelog-tab. Esamina il markup attuale prima di aggiungere override.
Eseguire manutenzione pianificata e conservazione
L'installazione registra attività pianificate condivise per analisi, licenze pagate in attesa, aggiunte ai pacchetti, revoche di diritti, attivazione/assegnazione assistenza, build abbandonate e pulizia audit demo. Configura il runner con il comando/token effettivamente generato dal modulo installato. Controlla attivazione delle attività e risultati riusciti; creare un prodotto non esegue ogni riconciliazione in background.
In Configurazione, "Retention" > "Apply retention now" elabora batch limitati, fino a 50 righe modificate per insieme di dati per passaggio. Ripeti finché il risultato indica "Repeat". Esamina i record irrisolti di pagamento, messaggi di accesso e completamento prima di considerare conclusa la pulizia storica. Log errori PHP e backend ticket esterni non rientrano in questo servizio.
I moduli di classificazione storica chiedono gli ID esaminati e il riferimento di chiusura di ogni record. Usa il record di chiusura reale, non una data di ultima modifica ipotizzata.
Risolvere problemi e disinstallare
Se attivazione o download protetti falliscono, controlla prima Chiavi di firma, URL emittente visualizzato e Integrità. Poi verifica disponibilità della versione, certificazione del pacchetto, proprietà e stato pagato dell'ordine. Una finestra di assistenza scaduta può legittimamente escludere una versione più recente.
Se un URL download restituisce 403, verifica di usare il link generato release-download e non /download/. Se scaduto o consumato, genera un nuovo link dalla scheda licenza. Se una build è occupata, usa il flusso di nuovo tentativo supportato per quella richiesta anziché creare ripetutamente nuovi download.
Se le scelte prodotto non appaiono, controlla Prodotto negozio, Attivo, Ordinabile, stato della versione, prezzi/varianti e hook del tema. Se mancano contenuti pubblici, controlla campi localizzati e "Indexable (SEO)". Se le demo falliscono, controlla integrazione orchestratore, token, quote e protocollo pacchetto disponibile.
Usa "Analytics" > Download, "API Logs", Demo live, Popolarità prodotto e Prontezza del modulo per esaminare ogni area. Per assistenza ricorrente, controlla anche integrazione pagamenti e abbonamenti, webhook falliti e riconciliatore pianificato.
Prima di disinstallare, salva database, archivi sorgente/versioni, chiavi di firma e record necessari. Le chiavi di firma vengono conservate durante la disinstallazione. Conserva il backup cifrato e i file gestiti dall'operatore. La disinstallazione rimuove menu, attività e schema ordinario del modulo; la pulizia dei pacchetti condivisi dipende dagli altri moduli installati che li usano. Può interrompere il servizio licenze/aggiornamenti dei pacchetti già consegnati. Pianifica la continuità del loro emittente prima di rimuovere questo servizio dal negozio.
Compatibilità
Richiede PrestaShop 1.7.0 o successivo e PHP 7.1 o successivo.
Domande
1
Ho bisogno di un account Stripe per vendere prodotti digitali con questo modulo?
Problemi noti
38
Il cliente può accedere al link di download dopo l'annullamento dell'ordine
I link di download restano attivi anche dopo che l'ordine è stato annullato o rimborsato. La validità del link controlla solo la data di scadenza, non lo stato dell'ordine.
Nota sulla risoluzione
Aggiunta la validazione dello stato dell'ordine al controller di download.
Compatibilità PHP dei pacchetti consegnati
Download ZIP dal portale
Scelte di assistenza sui telefoni
Accesso al negozio a due fattori
Accesso a un negozio esistente
Popup di conferma dell’acquisto
Assistenza inclusa predefinita
Prezzi base e configurati
Recupero dell’assistenza in abbonamento
Compatibilità con PHP 7.1
Finestre del negozio inattive
Aggiornamento del pannello dei negozi salvati
Gestione del negozio senza risposta
Email digitata nella conferma
Avvii simultanei dei download
Conservazione dei dati prodotto tradotti
Messaggi di rifiuto dell’installazione
Installazione nativa dei pacchetti
Contenuto completo del carrello
Assistenza inclusa e attivazione
Iscrizione alle notifiche di uscita
Download delle versioni bloccati
Intestazione del negozio obsoleta
Gestori di password nel modulo negozio
Prodotti in anteprima senza data
Aggiunta del negozio conclusa senza riscontro
Nuova installazione
Link alle demo disattivate
Selezione della versione demo
Sicurezza rafforzata
Caricamento dei moduli su PHP 7.4
Download delle demo
File localizzati del portale
Ordini con soli abbonamenti
Carrelli misti con assistenza
Prezzi delle opzioni con gestione delle imposte
Totali dei prodotti configurati
Richieste funzionalità
32
Implementato
Download di demo con filigrana e scadenza
Estensioni di assistenza tramite il checkout standard
Abbonamenti di supporto rinnovabili
Acquisto di estensioni del supporto
Portale clienti per gli abbonamenti
Copertura di supporto condivisa
Assegnazione flessibile degli abbonamenti
Più licenze acquistate
Download dei moduli gratuiti
Schede del registro modifiche dei prodotti
Demo live
Dimostrazioni dei pacchetti
Rapporti sulla popolarità dei prodotti
Link alle licenze nelle email degli ordini
Gestione dei negozi per i clienti
Download e configurazione del negozio guidati
Configurazione del negozio con accesso
Download per istanze di test
Pacchetti di moduli gratuiti senza restrizioni
Pagine prodotto prima del rilascio
Opzioni di acquisto nel portale
Attivazione delle licenze nel portale
Passaggio dalla prova alla licenza a pagamento
Catalogo digitale localizzato
Ticket di supporto integrati
Dettagli di compatibilità del prodotto
Download di prova con associazione automatica
Periodo di prova dall'installazione
Riordinamento dei negozi salvati
Configurazione condivisa dell'accesso social
Date di rilascio dei prodotti
Download più piccoli per i clienti
Registro modifiche
v1.80.02026-08-08
- Live demos: single orchestrator client with clear error states (not configured / unauthorized / unreachable) and transport retries during boot
- Back office: demo orchestrator token is a Services setting; Readiness page shows the orchestrator status
- Fixed: secret settings (Stripe keys, orchestrator token) no longer cleared when saving other settings
- Fixed: demo artifact callback rate limit no longer blocks authenticated orchestrator requests
Versioni precedenti
v1.35.72026-05-27
- AddedLazy-load product changelog tabs
- AddedUpgrade digital portal support inventory
- AddedExpose release history in update API
- AddedReplace file-hash integrity with attestation-token tamper detection
- AddedSubscription assignment UI for portal + subscriptions page
- Addedcomplete FR/DE/ES/IT/PL translations
- ImprovedRefine digital portal license tiles
- ImprovedPolish digital portal license cards
- ImprovedMigrate rate limiter from ps_configuration to ConfigTable
- FixedAccept payment modules in release packager
- FixedRestore fresh install schema
- FixedNofollow trial download links
- FixedMigrate module state to MPR config
v1.0.02026-05-06
- Initialrelease of Digital Revolution
- InitialSell digital products including software, ebooks, and license keys alongside physical items
- InitialLicense key management: generate, assign, and revoke keys from back office
- InitialDomain registration support: collect domain name at checkout and associate with order
- InitialDownload management: expiring download links with configurable access count and IP limits
- InitialCustomer portal: dedicated front-end page for customers to view and re-download their purchases
v1.2.02026-04-20
- AddedFriendly URLs for all portal and ticket navigation
- AddedAdd subscriptions portal page with friendly URL
- AddedFree module download system with dedicated FreeDownload controller
- AddedServer-rendered download button for free modules via displayProductActions hook
- Addedautomatic theme detection for Classic and Hummingbird style compatibility
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
- ImprovedRemove ALL debug logging — 18MB log file was causing slowdown
- ImprovedUse single PS product + SpecificPrice for support extensions
- Improvedadmin list columns with visual badge indicators and multiselect filters
- ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
- FixedPortal CSS/JS 404 on multi-language URLs
- FixedPortal CSS 404 on /fr/ lang prefix + missing subscriptions nav
- FixedRemove MPRDRDEBUG logging from hookActionValidateOrder
- Fixedvarious stability and compatibility improvements (67 fixes total)
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.1.02026-01-26
- AddedPrestaShop 9 and Hummingbird theme compatibility
- Improvedlicense key generator to support custom prefix patterns and checksum validation
- Fixeddomain registration renewal reminder emails not dispatched when PS cron URL omits www
- Addedcustomer portal improvements: download history showing file version and last access date
- Improvedexternal license validation API with per-domain rate limiting and HMAC request signing