Digital Revolution: configuración y ayuda
Inicio rápido
- Sube e instala el ZIP de Digital Revolution y abre "Sell" > Productos digitales > "Settings" > Configuración.
- Comprueba Integridad y Claves de firma; resuelve los errores y exporta una copia cifrada de las claves.
- Revisa "Enable Module", "Default Support Period", Máximo de dominios predeterminado y los límites de descarga de demos.
- Crea un producto en "Catalog" > Productos, selecciona Producto de la tienda y revisa Nombre del módulo, Versión y los campos de compatibilidad.
- Sube un ZIP de origen limpio en "Catalog" > Versiones, configura Versión, Establecer como última y Activo, y comprueba Preparación del módulo.
- Haz un pedido controlado, confirma su estado pagado elegible e inspecciona la licencia del cliente en "Licensing" > Licencias.
- Accede como ese cliente, descarga desde la tarjeta /licenses y verifica instalación, activación y actualizaciones en una tienda de prueba.
Requiere PrestaShop 1.7.0 o posterior y PHP 7.1 o posterior.
Manual de configuración
Instalar y comprobar el servicio de licencias
Sube e instala el ZIP de Digital Revolution en Módulos > "Module Manager". Abre "Sell" > Productos digitales > "Settings" > Configuración.
Selecciona la tienda prevista. Comprueba Integridad y resuelve los avisos de actualización de base de datos antes de usar operaciones de licencias. El módulo añade las áreas "Catalog", "Licensing", Soporte, "Analytics" y "Settings" bajo Productos digitales.
Comprueba el panel Claves de firma antes de publicar una descarga. La instalación intenta aprovisionar las claves de firma, pero los fallos quedan visibles. Hasta que las claves sean utilizables, no se pueden activar licencias, descargar módulos protegidos ni producir las respuestas firmadas que necesita la API de licencias.
Usa un producto y un pedido de prueba antes de añadir el resto del catálogo. Los procesos PHP/CLI necesitan acceso a fuentes subidas, versiones preparadas y almacenamiento temporal de compilación. El empaquetado ZIP requiere ZipArchive; las operaciones criptográficas requieren las funciones usadas por los servicios de firma y cifrado.
Configurar los ajustes generales
Abre "Settings" > Configuración > General.
| Ajuste | Predeterminado | Qué configuras |
|---|---|---|
| "Enable Module" | Activado | Activa las comprobaciones compatibles del servicio de licencias. No es un interruptor universal que elimine todos los hooks de la tienda o derechos emitidos. |
| Límite de tasa API | 100 solicitudes |
Máximo en la ventana aplicable del límite API. Las acciones individuales pueden tener límites adicionales. |
| Ventana de límite de velocidad | 3600 segundos |
Ventana del límite general. |
| "Default Support Period" | 3 meses |
Soporte incluido predeterminado. Revisa Período de soporte del producto antes de venderlo. |
| Máximo de dominios predeterminado | 1 |
Número predeterminado de dominios permitidos. |
| "Default Trial Period" | 7 días |
Duración predeterminada de prueba. |
| "Allow Domain Changes" | Activado | Permite los procesos compatibles de cambio de dominio. Siguen aplicándose las comprobaciones de propiedad y vinculación. |
| Dominios dev libres | Activado | Aplica la política compatible de plazas para dominios de desarrollo. No valida todas las solicitudes de activación localhost/IP. |
| "Allow Platform Domain" | Desactivado | Excepción de prueba para registrar el propio mypresta.rocks. Déjala desactivada en producción. |
| "Grace Period" | 7 días |
Intervalo de gracia configurado para la validación. El derecho correspondiente y el runtime del cliente siguen determinando el comportamiento. |
| Descargas con marca de agua | Activado | Las descargas protegidas incluyen metadatos de auditoría y marca de agua independientemente de este ajuste. No se añaden marcas de agua visibles a los PDF ni a las imágenes. |
| "Internal Patterns (skip recording)" | @mypresta.rocks,*.dev.mypresta.rocks |
Patrones de correo/dominio separados por comas para informes internos de demos. |
| "Internal / Admin IPs (skip recording)" | Vacío | IP exactas, rangos CIDR IPv4 o prefijos para informes internos y comprobaciones compatibles de solicitudes de confianza. |
| "Support Email" | Vacío | Dirección en los mensajes de restricción. Vacío usa el correo de la tienda. |
| "Emergency CAPTCHA for One-Click Downloads" | Desactivado | Exige un CAPTCHA ya configurado para descargas de nuevas concesiones durante abusos. |
| "Download Terms Version" | 2026-10-15 |
Cambia cuando cambien las condiciones de descarga enlazadas. |
| "Download Privacy Version" | 2026-10-15 |
Cambia cuando cambie la política de privacidad enlazada. |
| "Enable Demo Download Rate Limit" | Activado | Limita las adquisiciones públicas de demos de productos de pago. |
| "Demo Downloads per 48 Hours" | 5 |
Límite por visitante en la ventana corta. |
| "Demo Downloads per Month" | 10 |
Límite mensual por visitante. |
| "Lazy-load Product Changelog Tab" | Activado | Muestra inicialmente el resumen de la última versión y carga el historial completo al abrirlo. |
Ejemplos de patrones y direcciones internos:
@yourcompany.com,*.dev.example.com,staging.example.com
127.0.0.1
192.168.1.0/24
10.0.
Un correo o dominio introducido solo clasifica los informes. No autoriza a omitir cuotas de descarga, límites ni bloqueos. La comprobación de solicitudes internas de confianza usa una IP interna configurada.
Los interruptores de notificaciones por correo de demos para administradores y clientes no están disponibles en la configuración.
Configurar y respaldar las claves de firma
En Claves de firma, comprueba estado, ID de clave, huella y dirección del emisor. Los nuevos paquetes confían en el emisor y la identidad pública de firma de esta tienda.
Para una tienda nueva sin claves, usa "Set up signing keys". Exporta una copia cifrada con una contraseña y guárdala fuera de la tienda. "Download public key" proporciona la clave pública de firma de respuestas cuando está lista. "Import backup" restaura una identidad existente; las importaciones desde el navegador se limitan a 4 MB.
Si _MPR_DIGITAL_SIGNING_KEY_DIR_ está configurado, el operador del servidor gestiona las claves en esa carpeta. El panel muestra "Use the keys in the operator folder" cuando corresponde. Restaura la carpeta y los archivos configurados si ese backend deja de estar disponible.
Si la tienda ya ha emitido paquetes, restaura su copia de claves antes de considerar sustituirlas. Sustituirlas crea una nueva identidad; los módulos ya entregados pueden dejar de confiar en ella hasta que los clientes vuelvan a descargar. Revoca una clave anterior solo si quieres rechazar lo que firmó. El formulario exige confirmación explícita para sustitución y revocación.
El mismo servicio está disponible desde la raíz de la tienda, usando la identidad del servidor web:
php modules/mprdigitalrevolution/scripts/signing_keys.php status
La utilidad también permite configuración, exportación/importación cifrada, sustitución y revocación. Lee la contraseña de copia de MPR_SIGNING_BACKUP_PASSWORD. Usa sus argumentos documentados en vez de imprimir claves privadas o editar filas de claves manualmente.
Crear el primer producto digital
Abre "Catalog" > Productos y añade un producto. Vincúlalo a un producto normal de PrestaShop mediante Producto de la tienda. El producto nativo vinculado proporciona el contexto comercial de la tienda.
| Campo o área | Comportamiento inicial | Configuración |
|---|---|---|
| Subir ZIP | Vacío | Sube un archivo fuente completo y limpio para inspección y creación de versiones. |
| Producto de la tienda | Sin producto hasta seleccionarlo | Vincula el producto PrestaShop previsto. |
| Tipo | Selecciona el tipo real | Usa el tipo compatible que corresponda al paquete fuente. |
| Nombre del módulo | Vacío o extraído | Para entregar módulos debe coincidir con la identidad de la carpeta/archivo principal del módulo. |
| Rama | stable |
Identificador interno de rama. |
| Versión | Vacío o extraído | Versión actual del paquete. |
| PS mín., PS máx., PHP mínimo | Metadatos del producto/archivo | Introduce la compatibilidad del producto entregado, no la de Digital Revolution. |
| Período de soporte | Valor alternativo del formulario nuevo: 3 meses |
Soporte incluido para este producto. |
| Dominios máx. | Valor alternativo del formulario nuevo: 1 |
Predeterminado para nuevas licencias. |
| Documentación | Vacío | URL de documentación. |
| URL de la demo | Vacío | Destino de demo pertinente. |
| URL del repositorio | Vacío | Referencia al repositorio fuente cuando se usa. |
| Pedible | Activado | Permite pedidos solo tras comprobar versión y precios. |
| "Indexable (SEO)" | Desactivado | Activa deliberadamente la elegibilidad SEO pública cuando el contenido localizado esté listo. |
| Prueba activada | Desactivado | Activa el acceso de prueba compatible. |
| Días de prueba | 7 |
Duración de prueba. |
| Pruebas máx. por cliente | 1 |
Límite de pruebas. |
| Demo activada | Activado | Activa el proceso demo compatible. |
| Días de demo | 30 |
Duración de demo descargable. |
| Vitrina | Activado | Permite mostrar el escaparate público cuando sea elegible. |
| Imagen de Showcase | Vacío | URL de imagen pública. |
| Activo | Activado | Estado de activación del producto. |
Usa "Localized Roadmap Content" para los campos traducidos Nombre para mostrar, Slug SEO, Notas de la rama, Descripción de Showcase, Imagen de Showcase, Características de Showcase, Etiquetas de Showcase y Nota de no pedido. Los campos traducidos vacíos no crean por sí solos una página pública localizada completa.
Para un lanzamiento previsto, rellena Lanzamiento esperado y elige Notificar al publicar según corresponda. El área Suscriptores muestra visitantes interesados. Estos campos no sustituyen la subida de una versión activa.
"Minimum Protection Generation", "Blocked Build IDs" y "Legacy Protection Compatibility Until" son controles de operador para aceptar clientes/paquetes. Revisa las generaciones de clientes desplegadas antes de cambiarlos; no hacen falta para la primera configuración ordinaria de un producto.
El editor también contiene Versiones, Precios de licencia, Precios de soporte, Servicios y Variantes. Configura las opciones y precios reales que ofrecerás y comprueba su selección en la tienda y metadatos de pago. No supongas que un nombre de producto o ejemplo JSON antiguo configura esas opciones automáticamente.
Las descargas gratuitas requieren la elegibilidad correspondiente y un producto vinculado de precio cero. El formulario de producto no tiene un interruptor separado para esa elegibilidad. Tras establecer el precio, comprueba todo el proceso de adquisición gratuita.
Subir y verificar versiones
Abre "Catalog" > Versiones o el área Versiones del producto.
| Campo | Configuración |
|---|---|
| Producto digital | Selecciona el producto digital vinculado. |
| Versión | Introduce la versión del lanzamiento. |
| ZIP de origen | Sube el paquete fuente completo. |
| Versión PHP mín. | Establece el requisito del paquete; una versión nueva puede heredar el valor de la última. |
| Registro de cambios | Introduce notas de versión. |
| Establecer como última | Activa para la versión actual prevista. El proceso de subida del producto lo activa por defecto. |
| Activo | Activa para ofrecer la versión. El proceso de nueva versión desde el producto lo activa por defecto. |
Usa paquetes fuente limpios. Si el módulo carga vendor/autoload.php, incluye sus dependencias de producción y autoloader. El empaquetador valida rutas del archivo, raíz del módulo y archivo principal, y prepara la versión. No uses como fuente un ZIP protegido ya personalizado de un cliente.
Una fila de versión no demuestra que la entrega esté lista. Ejecuta las comprobaciones disponibles de Preparación del módulo y realiza una descarga controlada real. El paquete protegido se certifica en el servidor antes de servirse; una certificación fallida impide la entrega e informa de un error.
Los paquetes actuales pueden contener datos de licencia cifrados, .mpr_license.json, un .mpr_wm local al módulo, código de integridad de emisor/runtime y un comentario de archivo MPR:<watermark ID>. Los detalles dependen del modo de entrega. Un JSON auxiliar mínimo antiguo no es una plantilla para nuevas versiones.
Verificar pedidos pagados y activación de primera instalación
Haz un pedido de prueba del producto vinculado. Los hooks de validación y estado de pedido asignan y concilian derechos. Una licencia pendiente no equivale a acceso pagado activo. Confirma que el pedido alcance un estado pagado/logable elegible e inspecciona "Licensing" > Licencias.
Accede como cliente de prueba y abre /licenses usando el enlace localizado generado por la tienda. Inspecciona la tarjeta de licencia y descarga la versión autorizada.
La primera descarga de pago desde una tarjeta de licencia puede ser un paquete firmado que aún no está vinculado al dominio de una tienda. La activación durante la instalación lo vincula a la tienda. Las actualizaciones de una activación existente usan la tienda ya vinculada a la licencia.
Para una demo ya instalada, usa Activar en el cliente, accede al portal emisor y confirma la licencia. Poseer la clave por sí solo no basta para crear una vinculación mediante acciones retiradas de registro de tienda/asignación automática.
Comprueba estado de activación, tienda vinculada, propiedad de licencia y comprobación de actualizaciones del módulo instalado. Revisa "Licensing" > Dominios e "Installs". Usa las acciones compatibles de transferencia/cambio de dominio del portal; no edites directamente las filas de vinculación.
La ruta de descarga pagada con token es:
/release-download/{token}
Evita el directorio físico download/ de PrestaShop. El token de solicitud pagada dura por defecto 30 minutos y se consume al canjearlo. Un servicio separado de tokens de artefactos preparados usa un TTL de 300 segundos. Son etapas de token distintas. Obtén un enlace nuevo del portal cuando caduque o ya se haya usado.
Los registros de descarga relacionan producto, versión, cliente, IP, vinculación, hashes e identidad de marca de agua cuando están disponibles.
Establecer soporte, servicios y packs
Validez de licencia y cobertura de soporte son independientes. Con soporte activo, el servicio puede elegir la última versión activa. Con soporte caducado, elige una publicada dentro del periodo de soporte autorizado. Una licencia perpetua válida no concede automáticamente todas las versiones nuevas. La cobertura de servicios y packs puede imponer su propio límite de versiones.
Usa Precios de soporte y la integración de pago compatible para ampliaciones o soporte recurrente. Comprueba el contrato y las opciones de soporte reales.
En Configuración > Servicios, "Demo Orchestrator Admin Token" empieza vacío. Obténlo de la administración del orquestador de demos configurado. No se genera en este formulario. Una demo alojada requiere el orquestador externo además del indicador del producto.
Los valores predeterminados de las notas de servicio son:
| Ajuste | Predeterminado |
|---|---|
| "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" | Activado |
| "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. |
Las notas pueden usar {module_name}, {service_name} y {service_type}. Comprueba el indicador de visibilidad para el cliente al actualizar un pedido de servicio. El módulo ofrece pedidos de servicio, contratos e integración de tickets; inspecciona Soporte y las páginas correspondientes de licencias/administración del cliente seleccionado.
Para un pack de catálogo, activa Paquete, elige Composición del paquete, Incorporaciones posteriores y, si procede, Meses para incorporaciones. Un pack nuevo usa por defecto composición por lista e incorporaciones para siempre. Guárdalo como no disponible para pedidos, edita y guarda ID de productos incluidos en el paquete antes de activar ventas. Verifica los derechos de los productos incluidos con un pedido de prueba.
Comprobar demos, páginas públicas y contenido de la tienda
Los productos vinculados pueden añadir opciones de licencia, soporte, servicio y demo mediante hooks de producto. El historial de cambios puede aparecer con las integraciones compatibles de pestañas de producto. Comprueba los hooks displayProductAdditionalInfo, pestañas y contenido extra de tu tema.
Las rutas públicas incluyen /roadmap, /roadmap/{slug}, /demos, /demo/{slug} y los procesos /live-demo cuando están activos. /demos/{slug} se conserva como ruta antigua de presentación de demos y redirige mediante el catálogo actual; no trates cada URL antigua como una página autónoma distinta.
Prueba por separado adquisición de demos, descarga con un clic, aceptación de condiciones/privacidad, cuotas y activación inicial. Una concesión demo/gratuita no se convierte en licencia pagada solo porque el cliente acceda después. Comprueba concesión y propiedad correctas en Descargas de demo y el espacio del cliente.
El hook de sitemap comprueba la clave compartida de bajo nivel INCLUDE_IN_SITEMAP, inicializada a 1. Ponerla a 0 suprime la salida sitemap del módulo. No es un ajuste visible de Configuración, y la visibilidad/indexabilidad pública sigue dependiendo de cada contenido y ruta.
El CSS del tema puede usar selectores existentes como .mpr-digital-variants, .mpr-demo-link, .mpr-btn-demo, .mpr-btn-demo-download, .mpr-license-selection y .mprdigital-changelog-tab. Inspecciona el marcado actual antes de añadir overrides.
Ejecutar mantenimiento programado y retención
La instalación registra tareas programadas compartidas de analítica, licencias pagadas pendientes, incorporaciones a packs, reversiones de derechos, activación/asignación de soporte, compilaciones abandonadas y limpieza de auditoría de demos. Configura el ejecutor con el comando/token real generado por el módulo instalado. Comprueba activación y resultados correctos; crear un producto no ejecuta por sí mismo todas las conciliaciones en segundo plano.
En Configuración, "Retention" > "Apply retention now" procesa lotes acotados, hasta 50 filas modificadas por conjunto de datos y pasada. Repite mientras el resultado indique "Repeat". Revisa los registros pendientes de pagos, mensajes de acceso y finalización antes de considerar completada la limpieza histórica. Los registros de errores PHP y backends externos de tickets quedan fuera del servicio.
Los formularios de clasificación histórica piden los ID revisados y la referencia de cierre de cada registro. Usa el registro de cierre real, no una fecha de última edición supuesta.
Resolver problemas y desinstalar
Si fallan la activación o descargas protegidas, inspecciona primero Claves de firma, la URL mostrada del emisor e Integridad. Después comprueba preparación de la versión, certificación del paquete, propiedad y estado pagado del pedido. Un periodo de soporte caducado puede excluir legítimamente una versión posterior.
Si una URL de descarga devuelve 403, confirma que usas el enlace generado release-download en vez de /download/. Si ha caducado o se ha consumido, genera otro desde la tarjeta de licencia. Si una compilación está ocupada, usa el proceso compatible de reintento de esa solicitud en lugar de crear nuevas descargas repetidamente.
Si no aparecen opciones de producto, comprueba Producto de la tienda, Activo, Pedible, estado de versión, precios/variantes y hooks del tema. Si falta contenido público, comprueba campos localizados e "Indexable (SEO)". Si fallan demos, comprueba integración del orquestador, token, cuotas y protocolo de paquete disponible.
Usa "Analytics" > Descargas, "API Logs", Demostraciones en vivo, Popularidad del producto y Preparación del módulo para revisar cada área. Para soporte recurrente, revisa también la integración de pago y suscripción, los webhooks fallidos y el conciliador programado.
Antes de desinstalar, respalda base de datos, archivos fuente/versiones, claves de firma y registros necesarios. Las claves de firma se conservan durante la desinstalación. Guarda su copia cifrada y los archivos gestionados por el operador. La desinstalación elimina menús, tareas y esquema ordinario del módulo; la limpieza de paquetes compartidos depende de otros usuarios instalados. Puede interrumpir el servicio de licencias/actualizaciones de paquetes ya entregados. Planifica la continuidad de su emisor antes de retirar este servicio de la tienda.
Compatibilidad
Requiere PrestaShop 1.7.0 o posterior y PHP 7.1 o posterior.
Preguntas
1
¿Necesito una cuenta de Stripe para vender productos digitales con este módulo?
Problemas conocidos
38
El cliente puede acceder al enlace de descarga después de cancelarse el pedido
Los enlaces de descarga siguen activos incluso después de que el pedido se cancele o reembolse. La validez del enlace solo comprueba la fecha de caducidad, no el estado del pedido.
Nota de resolución
Se añadió la validación del estado del pedido al controlador de descargas.
Compatibilidad PHP de los paquetes entregados
Descargas ZIP del portal
Opciones de soporte en móviles
Inicio de sesión en la tienda con dos factores
Inicio de sesión en una tienda existente
Ventana de confirmación de compra
Soporte incluido por defecto
Precios base y configurados
Recuperación del soporte por suscripción
Compatibilidad con PHP 7.1
Diálogos de tienda sin respuesta
Actualización del panel de tiendas guardadas
Gestión de tiendas sin respuesta
Correo introducido en la confirmación
Inicios simultáneos de descargas
Conservación de datos de producto traducidos
Mensajes de rechazo de instalación
Instalación nativa de paquetes
Contenido completo del carrito
Soporte incluido y activación
Suscripción a avisos de lanzamiento
Descargas de versiones bloqueadas
Cabecera de tienda obsoleta
Gestores de contraseñas en el formulario de tienda
Productos previos al lanzamiento sin fecha
Añadir tienda terminaba sin información
Instalación nueva
Enlaces a demos desactivadas
Selección de versión de demo
Refuerzo de la seguridad
Carga de módulos en PHP 7.4
Descargas de demos
Archivos localizados del portal
Pedidos solo de suscripciones
Carritos mixtos con soporte
Precios de opciones con impuestos
Totales de productos configurados
Solicitudes de funcionalidades
32
Implementado
Descarga de demos con marca de agua y caducidad
Ampliaciones de soporte mediante el proceso de compra habitual
Suscripciones de soporte renovables
Compra de ampliaciones de soporte
Portal de suscripciones para clientes
Cobertura de soporte compartida
Asignación flexible de suscripciones
Varias licencias compradas
Descargas de módulos gratuitos
Pestañas de cambios del producto
Demos en vivo
Demostraciones de paquetes
Informes de popularidad de productos
Enlaces de licencia en correos de pedidos
Gestión de tiendas para clientes
Descargas y configuración de tienda guiadas
Configuración de tienda con inicio de sesión
Descargas para instancias de prueba
Paquetes de módulos gratuitos sin restricciones
Páginas de producto antes del lanzamiento
Opciones de compra en el portal
Activación de licencias en el portal
Paso de prueba a licencia de pago
Catálogo digital localizado
Tickets de soporte integrados
Detalles de compatibilidad del producto
Descargas de prueba con vinculación automática
Periodo de prueba desde la instalación
Reordenación de tiendas guardadas
Configuración compartida de acceso social
Fechas de lanzamiento de productos
Descargas más pequeñas para clientes
Registro de cambios
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
Versiones anteriores
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