Module UltimateMarketPlace ES

Módulo UltimateMarketPlace

Presentación

El módulo UltimateMarketPlace es una extensión para Dolibarr ERP/CRM publicada por Atoo-Net.

Proporciona todo lo necesario para publicar un marketplace en línea de un solo vendedor: una plantilla de sitio web lista para usar (catálogo de productos, carrito, proceso de pedido, cuentas de cliente, zona de descargas), utilizable con el módulo Sitio web de Dolibarr, para vender sus propios productos y servicios directamente en línea.

Se trata de un fork simplificado del módulo Dolibarr «Marketplace» (utilizado para dolistore.com), del que se ha retirado todo lo específico de la asociación Dolibarr, así como el circuito multivendedor / envío y revisión de módulos por desarrolladores externos.

Propiedad Valor
Autor Philippe Grand — Atoo-Net
Versión 24.0.1
Licencia GNU GPL v3+
Dolibarr mínimo v24.0
PHP mínimo v8.2

¿Por qué utilizar UltimateMarketPlace?

UltimateMarketPlace convierte su instalación de Dolibarr en una tienda en línea autónoma, sin depender de un CMS o de una plataforma de comercio electrónico externa (PrestaShop, WooCommerce…). El catálogo, los pedidos, las facturas y los clientes permanecen de forma nativa en Dolibarr.

Casos de uso

Venta de productos físicos o digitales

Publique su catálogo de productos o servicios directamente desde las fichas de producto de Dolibarr: basta con colocarlos bajo la categoría raíz de la tienda. Los archivos adjuntos al producto pueden entregarse al cliente en su zona de descargas tras el pago.

Suscripciones y licencias de duración limitada

Con la duración de validez de los productos y los niveles de precio de Dolibarr («Multiprecios»), venda un mismo producto con varias duraciones de suscripción: los enlaces de descarga caducan automáticamente al final del periodo comprado.

Precios preferentes para sus mejores clientes

Los descuentos por categoría asocian una categoría de clientes con una categoría de productos: el precio con descuento se muestra automáticamente en cuanto el cliente inicia sesión, sin código que introducir.

Campañas comerciales y códigos promocionales

Cree códigos de descuento (porcentaje o importe fijo), limitados en el tiempo o en número de usos, cada uno reservado a un producto concreto, para dinamizar sus ventas en línea.

Pago en línea

Conecte el proceso de compra a los módulos de pago en línea ya configurados en Dolibarr (Stripe, PayPal…), bien con una redirección clásica a las páginas públicas de pago, bien integrado en un marco de la tienda.

Posicionamiento y seguimiento de audiencia

URLs simplificadas, sitemap.xml, robots.txt y llms.txt generados automáticamente, marcado Schema.org, verificación de Google Search Console e integración de Matomo Analytics para seguir las visitas sin depender de Google Analytics.

Instalación

Requisitos:

  • Dolibarr 24.0 o superior y PHP 8.2 o superior;
  • las páginas de la tienda contienen código PHP dinámico: antes de activar el módulo, añada la línea $dolibarr_website_allow_custom_php = '1'; en htdocs/conf/conf.php (valor 2 si las funciones de sistema de PHP exec, passthru, shell_exec, system, popen y proc_open no están desactivadas en php.ini). Sin esta línea, Dolibarr se niega a importar la plantilla del sitio y la tienda queda vacía;
  • los módulos de Dolibarr Terceros, Productos, Servicios, Categorías, Pedidos, Facturas, Bancos, E-Mailings y Sitio web son necesarios: se activan automáticamente con el módulo.
  1. Descargue el módulo desde DoliStore o clone el repositorio Git en htdocs/custom/ultimatemarketplace
  2. Vaya a Inicio → Configuración → Módulos/Aplicaciones
  3. Localice Ultimate Market Place en la familia Sitios Web y otras aplicaciones frontales
  4. Active el módulo con el botón de la columna Activado
 
Activación del módulo UltimateMarketPlace

Al activarse, el módulo realiza automáticamente varias acciones:

  • Activación de la gestión multilingüe (MAIN_MULTILANGS), ya que las fichas de producto pueden traducirse
  • Creación de una categoría raíz de productos y de una categoría de terceros «prospecto/cliente» si aún no hay ninguna configurada
  • Registro de la plantilla PDF de factura propia del módulo
  • Creación (o reactivación) de un sitio web dedicado en el que se importa la plantilla de sitio suministrada con el módulo

Actualización: tras sustituir los archivos, desactive y vuelva a activar el módulo (sus ajustes se conservan). Para poner las páginas del sitio en consonancia con la nueva versión, utilice después el botón Restablecer la plantilla del sitio (véase Modo mantenimiento).

El módulo no declara ningún permiso propio: las páginas de administración están reservadas a los administradores de Dolibarr, y las páginas de la tienda utilizan su propia sesión de cliente.

Dominio y host virtual

La tienda debe servirse desde su propio dominio (por ejemplo https://shop.example.com), mediante un host virtual del servidor web (Apache, Nginx…). La dirección de vista previa de Dolibarr, …/public/website/index.php?website=…, solo sirve para pruebas: sin dominio, la tienda no funciona por completo.

  • El carrito y las descargas llaman a /_service_page_ajax.php y /_service_download.php en la raíz del dominio. Sin host virtual, estas llamadas terminan en un error 404 y el carrito deja de actualizarse.
  • En vista previa, Dolibarr imprime un comentario HTML antes de la página. Si output_buffering está desactivado en PHP, la sesión del comprador no se inicia («sesión caducada» al conectarse).
  • El sitemap.xml y el robots.txt se construyen a partir del host virtual definido en el sitio: si está vacío, no se generan, y los enlaces de baja de los e-mailings apuntan a Dolibarr en lugar de a la tienda.

Puesta en marcha:

  1. Cree un host virtual cuya raíz (DocumentRoot) sea el directorio del sitio: <documents>/website/<ref> (<documents>/<entidad>/website/<ref> para una entidad distinta de la primera). <documents> es el directorio de documentos de Dolibarr, y <ref> la referencia del sitio creado en la activación (ultimatemarketplace por defecto, vea el parámetro «Sitio web a utilizar para el marketplace»).
  2. PHP debe estar activo en él. El usuario del servidor web debe poder leer los archivos de Dolibarr (htdocs) y escribir en <documents>/website y <documents>/medias; si se utiliza open_basedir, debe incluir estos directorios. Autorice los enlaces simbólicos en el directorio del sitio: su carpeta medias es un enlace a <documents>/medias.
  3. Active HTTPS en este dominio: las pasarelas de pago lo exigen.
  4. En Dolibarr, menú Sitios web, abra Editar propiedades y escriba el dominio completo, https:// incluido, en el campo Host virtual o nombre de dominio.

Ejemplo para Apache, a adaptar (rutas de un paquete Debian o Ubuntu):

<VirtualHost *:443>
    ServerName shop.example.com
    DocumentRoot "/var/lib/dolibarr/documents/website/ultimatemarketplace"

    <Directory "/var/lib/dolibarr/documents/website/ultimatemarketplace">
        AllowOverride FileInfo Options
        Options -Indexes -MultiViews +FollowSymLinks -ExecCGI
        Require all granted
    </Directory>
    <Directory "/var/lib/dolibarr/documents/medias">
        Options -Indexes -MultiViews -FollowSymLinks -ExecCGI
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/shop.example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/shop.example.com/privkey.pem
</VirtualHost>

Configuración

El módulo se configura en Inicio → Configuración → Módulos/Aplicaciones → Ultimate Market Place, repartido en varias pestañas: Configuraciones, Configuración de pagos, Códigos promocionales, Descuentos por categoría, Seguridad, Configuración del servidor API (solo se muestra si el módulo API REST está activado), Matomo Analytics, Carrusel, Guía del usuario y Acerca de.

Antes de abrir el sitio al público, recorra las pestañas en este orden: Configuraciones (secciones Miscelánea, Productos, Terceros, Sitio web y Plantillas Email), Configuración de pagos, Seguridad, y después desactive el modo mantenimiento.

Configuraciones

 
Pestaña Configuraciones de la configuración del módulo

Miscelánea

Parámetro Constante Descripción
Nombre del marketplace ULTIMATEMARKETPLACE_NAME Nombre de la tienda: título de la página de inicio, título del llms.txt, nombre del remitente en la factura PDF
Descripción del marketplace / Palabras clave del marketplace ULTIMATEMARKETPLACE_DESCRIPTION / _KEYWORDS Metadescripción y palabras clave de la página de inicio, traducibles por idioma
Email del marketplace ULTIMATEMARKETPLACE_EMAIL Email de contacto público mostrado en el sitio
Modo mantenimiento ULTIMATEMARKETPLACE_MAINTENANCE_MODE Cierra la tienda al público y bloquea las ventas
Bloquear nuevos registros ULTIMATEMARKETPLACE_BLOCK_REGISTRATION Cierra la creación de nuevas cuentas de cliente
Direcciones IP autorizadas a omitir el modo mantenimiento y el bloqueo de registros ULTIMATEMARKETPLACE_MAINTENANCE_MODE_ALLOWED_IPS Lista blanca de direcciones IP (por ejemplo la de la oficina)
Duración de la caché del bloque lateral ULTIMATEMARKETPLACE_SIDEBAR_CACHE_ENABLED / _SIDEBAR_CACHE_DURATION Caché del bloque lateral en minutos (5 por defecto), con un botón para vaciar la caché del sitio

Productos

Parámetro Constante Descripción
Categoría raíz de los productos a vender en el marketplace ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID Los productos/servicios de esta categoría y de sus subcategorías forman el catálogo (obligatorio)
Categoría destacada en el bloque central de la página de inicio ULTIMATEMARKETPLACE_ROOT_CATEGORY_ID_BIS Opcional, la categoría raíz en su defecto
Categoría para el widget «Versión» ULTIMATEMARKETPLACE_VERSIONS_CATEGORY_ID Productos con números de versión (software descargable)
Categoría para el widget «Promociones» ULTIMATEMARKETPLACE_SPECIAL_CATEGORY_ID Productos mostrados con una insignia de promoción
Precio mínimo del producto ULTIMATEMARKETPLACE_MIN_PRODUCT_PRICE Los productos de pago más baratos quedan excluidos del catálogo
Antigüedad máxima (en días) para que un producto sea visible en la sección «Nuevos productos» ULTIMATEMARKETPLACE_DELAY_FOR_NEW 30 días por defecto
Categoría para forzar el estado «Nuevo producto» ULTIMATEMARKETPLACE_NEW_CATEGORY_ID / _NEW_CATEGORY_MAX_AGE Fuerza la insignia «Nuevo»; una tarea programada diaria retira de ella los productos tras el plazo indicado
Activar la duración de validez del producto ULTIMATEMARKETPLACE_ENABLE_PRODUCT_VALIDITY_DURATION Fechas de inicio y fin de validez en las líneas de pedido, que controlan la caducidad de las descargas; duraciones por nivel de precio si los «Multiprecios» están activados

Terceros

Parámetro Constante Descripción
Categoría para todos los prospectos o clientes creados desde el sitio del marketplace ULTIMATEMARKETPLACE_PROSPECTCUSTOMER_ID Categoría asignada a cada tercero creado por el formulario de registro
Activar direcciones múltiples ULTIMATEMARKETPLACE_ENABLE_MULTI_ADDRESS Sección «Mis direcciones» de la cuenta de cliente (direcciones de facturación y de envío)
Convertir el prospecto en cliente en su primer pago ULTIMATEMARKETPLACE_CONVERT_PROSPECT_TO_CUSTOMER_ON_FIRST_PAYMENT El prospecto pasa a ser cliente en cuanto se paga su primera factura

Sitio web

Parámetro Constante Descripción
URL del logotipo del marketplace ULTIMATEMARKETPLACE_URL_FOR_LOGO Logotipo de la cabecera del sitio; en su defecto el de la empresa, y después un logotipo suministrado con el módulo
URL de la imagen de bienvenida / Ocultar la imagen de bienvenida ULTIMATEMARKETPLACE_WELCOME_IMAGE_URL / _WELCOME_IMAGE_HIDE Banner de la página de inicio
Color principal del tema / Color secundario del tema ULTIMATEMARKETPLACE_THEME_COLOR / _SECONDARY_COLOR Colores del tema (#a45931 y #333333 por defecto)
Activar URLs simplificadas ULTIMATEMARKETPLACE_FRIENDLY_URLS URLs del tipo /es/123-nombre-del-producto.html
Token de verificación de Google Search Console ULTIMATEMARKETPLACE_GOOGLE_SITE_VERIFICATION Etiqueta meta de verificación
Descripción para llms.txt ULTIMATEMARKETPLACE_LLMS_DESCRIPTION Frase de presentación del sitio en el llms.txt
Usuario con permisos para realizar operaciones en el sitio web ULTIMATEMARKETPLACE_USER_MANAGE_WEBSITE Usuario técnico utilizado por la tienda (creación de terceros, de pedidos…)
Sitio web a utilizar para el marketplace ULTIMATEMARKETPLACE_WEBSITE_ID Sitio web de Dolibarr gestionado por el módulo, definido en la activación
Eliminar siempre el pedido provisional al cerrar sesión ULTIMATEMARKETPLACE_DELETE_ORDER_ON_LOGOUT Vacía el carrito en curso cuando el cliente cierra la sesión
Mostrar un aviso de consentimiento de cookies ULTIMATEMARKETPLACE_ENABLE_COOKIE_BANNER Banner de consentimiento en el sitio

Importante: si cambia el sitio web asociado (ULTIMATEMARKETPLACE_WEBSITE_ID), los usuarios, terceros y pedidos ya creados siguen vinculados al sitio anterior y no se migran automáticamente.

Plantillas Email

Tres listas desplegables permiten elegir, entre las plantillas de email de Dolibarr (Configuración → Emails → Plantillas), la del email de bienvenida enviado al crear la cuenta (ULTIMATEMARKETPLACE_WELCOME_EMAIL_TEMPLATE), la del email «Contraseña olvidada» (ULTIMATEMARKETPLACE_FORGOT_PASSWORD_EMAIL_TEMPLATE) y la de la confirmación de pedido del comprador (ULTIMATEMARKETPLACE_BUYER_ORDER_CONFIRMATION_TEMPLATE).

Configuración de pagos

 
Pestaña Configuración de pagos
Parámetro Constante Descripción
Bloquear las ventas en el marketplace ULTIMATEMARKETPLACE_BLOCK_SALES El catálogo sigue siendo consultable pero los pedidos quedan desactivados; forzado mientras el modo mantenimiento está activo
Cerrar automáticamente los pedidos tras un pago exitoso ULTIMATEMARKETPLACE_CLOSE_ORDER_AFTER_PAYMENT Cierra el pedido de Dolibarr una vez confirmado el pago
Seleccionar el método de pago a utilizar ULTIMATEMARKETPLACE_MAIN_PAYMENT_METHOD Módulo de pago en línea de Dolibarr utilizado al validar el pedido
Incluir las páginas de pago proporcionadas por Dolibarr dentro de un marco (frame) de la tienda marketplace (usuarios avanzados) ULTIMATEMARKETPLACE_PAYMENT_IN_FRAME Pago mostrado en un marco bajo el dominio de la tienda

Son posibles dos modos de integración del pago:

  • Página separada (por defecto): sin configuración particular, el cliente es redirigido a las páginas públicas de pago de su Dolibarr. Inconveniente: el dominio del back-office es visible para el cliente.
  • Marco (usuarios avanzados, Stripe y Stancer): la página de pago se llama a través de una URL de la propia tienda. Se necesita una regla de proxy inverso en el servidor web de la tienda; se muestra un ejemplo de configuración en la página una vez activada la opción.

Códigos promocionales

 
Pestaña Códigos promocionales

Cada código promocional está vinculado a un producto concreto y tiene un tipo de descuento (porcentaje o importe fijo), un valor, unas fechas de validez y un número máximo de usos opcionales, así como un indicador activo/inactivo. El comprador introduce el código en el carrito: solo se acepta si está activo, dentro de sus fechas de validez, por debajo de su límite de uso y si el producto en cuestión está en el carrito. El contador de usos solo se incrementa al validar el pedido.

Descuentos por categoría

 
Pestaña Descuentos por categoría

Un descuento por categoría asocia una categoría de clientes con una categoría de productos y un porcentaje de descuento. Para un cliente conectado que pertenece a esta categoría, el precio con descuento se muestra directamente en la ficha del producto y en el carrito, sin código que introducir. Si se aplican varias reglas, prevalece el porcentaje más alto.

Seguridad

 
Pestaña Seguridad
Parámetro Constante Descripción
Proveedor de captcha ULTIMATEMARKETPLACE_CAPTCHA_PROVIDER Ninguno, Google reCAPTCHA o Cloudflare Turnstile, con sus claves de sitio y claves secretas
Activar esta protección ULTIMATEMARKETPLACE_LOGIN_PROTECTION_ENABLED Limitación de los intentos de inicio de sesión en la tienda
Número de fallos antes del bloqueo / Duración antes de desbloquear (minutos) ULTIMATEMARKETPLACE_LOGIN_MAX_ATTEMPTS / _LOGIN_BLOCK_DURATION 5 fallos y 15 minutos por defecto
Direcciones IP autorizadas a omitir esta protección ULTIMATEMARKETPLACE_LOGIN_BYPASS_IPS Lista blanca (pruebas automatizadas, red de confianza)

El captcha y la protección de inicio de sesión están desactivados por defecto: configúrelos antes de abrir el registro al público.

Configuración del servidor API

Esta pestaña solo aparece si el módulo API REST de Dolibarr está activado. Contiene la Clave pública de API (ULTIMATEMARKETPLACE_PUBLIC_API_KEY, con un botón para generarla), que se pasa como parámetro apikey a los dos puntos de acceso públicos de solo lectura añadidos por el módulo: /api/index.php/ultimatemarketplace/categories y /api/index.php/ultimatemarketplace/products.

Matomo Analytics

 
Pestaña Matomo Analytics
Constante Descripción
ULTIMATEMARKETPLACE_ENABLE_MATOMO Activa Matomo en el sitio: el código de seguimiento se inserta en cada página
ULTIMATEMARKETPLACE_MATOMO_SITE_KEY Identificador de sitio de Matomo
ULTIMATEMARKETPLACE_MATOMO_SERVER_URL URL completa del servidor Matomo
ULTIMATEMARKETPLACE_MATOMO_AUTH_TOKEN Token de autenticación opcional, necesario para mostrar las estadísticas de Matomo en Dolibarr

Carrusel

 
Pestaña Carrusel

Ajustes del carrusel de la página de inicio: tipo de transición (ninguna, fundido, deslizamiento), velocidad en milisegundos, pausa al pasar el ratón y repetición en bucle. Cada diapositiva tiene una imagen, un enlace opcional y un título; el orden se cambia arrastrando y soltando, y las imágenes se eligen o se suben mediante un selector de imágenes.

Guía del usuario

 
Pestaña Guía del usuario

La pestaña Guía del usuario muestra, en el idioma del usuario, una guía completa de la configuración y la explotación del módulo, solo en texto: las capturas de pantalla están en esta página.

Uso

Tienda en línea

 
Página de inicio de la tienda

El sitio generado por el módulo utiliza el logotipo y los colores definidos en la configuración y ofrece:

  1. un catálogo organizado por categorías, con las insignias «Nuevo» y «Promociones» y un carrusel en la página de inicio;
  2. una ficha de producto con el precio (descuento por categoría ya aplicado) y, para los productos con niveles de precio, la elección de la duración;
  3. un carrito, conservado en sesión hasta la validación, con la introducción de un código promocional;
  4. un proceso de pedido conectado al módulo de pago en línea elegido;
  5. una zona de cliente: datos personales, «Mis direcciones», historial de pedidos y zona de descargas.
 
Ficha de producto de la tienda

La validación del carrito crea un pedido estándar de Dolibarr; el pago genera una factura estándar de Dolibarr.

Archivos entregados al cliente

La pestaña Archivos de la tienda de la ficha del producto indica, para cada archivo adjunto, si se muestra en la ficha pública del producto. Un archivo marcado como «Archivo principal» o «Visible por el cliente» puede ser descargado por el cliente una vez pagado su pedido; se muestra un aviso si ningún archivo del producto lo está. Si la duración de validez de los productos está activada, el enlace de descarga caduca al final del periodo comprado; de lo contrario, no caduca nunca.

Menú UltimateMarketPlace

 
Estadísticas del marketplace

El menú principal Mercado da acceso a:

  • Estadísticas: estadísticas de facturas, estadísticas de clientes, estadísticas de productos, lista de ventas y, si Matomo está configurado, estadísticas de Matomo;
  • Productos sin etiqueta: productos del catálogo sin palabras clave, para controlar la calidad del catálogo;
  • Carritos y Facturas: listas estándar de pedidos y facturas de Dolibarr, filtradas en las que proceden de la tienda.

Modo mantenimiento y restablecimiento de la plantilla

El modo mantenimiento cierra el sitio al público (salvo para las direcciones IP autorizadas) y bloquea las ventas. Mientras está activo, la pestaña Configuraciones ofrece dos botones:

  • Generar sitemap.xml: regenera inmediatamente sitemap.xml;
  • Restablecer la plantilla del sitio: vuelve a importar la plantilla de sitio del módulo en el sitio existente, sobrescribiendo las modificaciones hechas a mano en el editor de páginas. Debe utilizarse tras una actualización del módulo.

Recuerde desactivar el modo mantenimiento una vez hechas las comprobaciones: no se desactiva por sí solo.

Posicionamiento

robots.txt, sitemap.xml y llms.txt se regeneran automáticamente al activar el módulo, al abrir la pestaña Configuraciones y tras un restablecimiento de la plantilla. Una vez activadas las URLs simplificadas, las antiguas URLs siguen siendo válidas durante la transición.

Novedades de la versión 24.0.1

  • Documentación: la guía de usuario y esta página explican cómo servir la tienda en su propio dominio, mediante un host virtual cuya raíz es el directorio del sitio (véase Dominio y host virtual). El código del módulo no cambia.

Novedades de la versión 24.0.0

Compatibilidad

  • Dolibarr 24 y PHP 8.2 como mínimo: el módulo requiere ahora Dolibarr 24.0.0 y PHP 8.2; está probado hasta PHP 8.5. La comprobación de actualizaciones lee versionmodules/ultimatemarketplace/v24/ultimatemarketplace.txt.
  • Numeración alineada con Dolibarr: tras la 1.0.8, el módulo pasa directamente a la 24.0.0, como los demás módulos de Atoo-Net.

Traducciones

  • El bloque del carrito de la tienda mostraba claves sin traducir (quantity, total, shipping, FreeShipping): ahora carga las traducciones del módulo. Restablezca la plantilla del sitio para aprovecharlo.
  • Añadidas las etiquetas que faltaban en las páginas de la tienda (referencias, IVA, artículos, alta y baja de direcciones, controles del formulario de registro…) y en los mensajes de administración, en los cinco idiomas.
  • Traducción al francés, alemán, español e italiano de las etiquetas que solo existían en inglés.

Documentación y distribución

  • Guía del usuario: sección de requisitos y compatibilidad; la guía en inglés pasa a ser GUIDE_UTILISATEUR-EN.md.
  • Página wiki reescrita a partir de las pantallas actuales, con capturas de pantalla en los cinco idiomas.
  • Script de construcción del paquete DoliStore e integración continua (instalación de dependencias y control de sintaxis con PHP 8.4 y 8.5).

Versiones anteriores

El detalle de las versiones 1.0.0 a 1.0.8 (códigos promocionales, descuentos por categoría, carrusel, protección de inicio de sesión, URLs simplificadas, llms.txt, guía del usuario…) figura en el archivo ChangeLog.md incluido con el módulo.

FAQ