Multitienda para NexoPOS
El módulo Nexo MultiStore te permite gestionar varias tiendas dentro de una sola instalación de NexoPOS, todo respaldado por una única base de datos compartida. Cada tienda se beneficia de casi todas las funciones disponibles en el modo de tienda única, manteniéndose completamente aislada: garantiza que los datos, las operaciones y las configuraciones no se superpongan entre tiendas.
Instalación
Este es un módulo de NexoPOS y, por lo tanto, debe instalarse desde el panel de control. Una vez instalado, asegúrate de habilitar el módulo.
Panel de control
Una vez que el Módulo MultiStore esté habilitado, el diseño del panel cambiará, mostrando un nuevo panel principal, además de nuevos controles.
Como se mencionó anteriormente, cada tienda tiene sus propios componentes que incluyen:
- Productos,
- Categorías de productos
- Clientes, Grupos de clientes
- Unidad y grupos de unidades
- Proveedores, Adquisiciones
- Configuración,
- Pedidos
- Categoría de gastos y gastos
- Notificaciones
Cómo crear una tienda secundaria
Mientras estás en el panel de control, puedes hacer clic tanto en el pop-up de acceso directo de la tienda como en el menú de tiendas de la barra lateral.
Esto te llevará a la lista de tiendas donde puedes crear, administrar o eliminar tiendas. Haz clic en el botón “+” de la tabla para crear una tienda nueva.
Esto te lleva a una nueva pantalla donde puedes completar la información de la tienda, como:
- Nombre de la tienda
- Estado (al crear el estado, siempre es "building")
- Almacenar imagen
- Descripción
Cuando haces clic en «Guardar», se te redirige a la lista de tiendas y la subtienda se crea en segundo plano cuando «Workers» (o colas) está configurado correctamente. Después de la creación, deberías recibir una notificación que indique que la tienda está lista para usarse.
Accediendo a una tienda
Cuando se abre una tienda, se puede acceder a ella. Para acceder a una tienda, es necesario abrir el desplegable de «Tiendas» haciendo clic en el botón «Tiendas» en la parte superior de cada página (cuando la multitienda está habilitada).
Cuando accedes a una subtienda, parece una sola tienda, ya que se ve y funciona como una sola tienda. Incluso podrías probar la tienda restableciendo esa tienda.
Cómo restringir el acceso a ciertos roles
Los módulos Nexo Multi-Store incluyen nuevos permisos que otorgan la capacidad de crear, actualizar, eliminar y acceder a una tienda. Estos permisos deben utilizarse con el administrador de permisos incluido en NexoPOS.
De forma predeterminada, la cuenta de Master y el Administrador de la tienda tienen acceso a las subtiendas. Para activar ese acceso para otros roles (incluso los roles personalizados), debes permitir explícitamente el acceso.
Compatibilidad con dominios comodín
A partir de la versión 4.6.0, el módulo multitienda admite dominios comodín. Esto significa que puedes crear tantas subdominios como quieras y tener una URL única que apunte a cada subtienda. Luego, cada tienda tendrá una página de inicio de sesión única y podrás restringir el acceso a estas tiendas. Por ejemplo, si tu dominio principal es «mypos.com», puedes tener para los sitios secundarios las siguientes URL:
https://store-a.mypos.comhttps://another-store.mypos.com...
Cada tienda está aislada y, por lo tanto, no comparte los mismos recursos (productos, pedidos, clientes, etc.).
Veamos cómo configurar los dominios comodín.
Aviso: esta función no funciona en localhost. Por lo tanto, se le invita a no seguir estos pasos ni a activar esta función si NexoPOS está alojado localmente. Solo si tiene un dominio válido y puede configurar el DNS de su dominio, podrá utilizar esta función.
Habilitar dominios comodín en NexoPOS
La primera configuración es configurar NexoPOS para que use dominios comodín. Necesitarás agregar esta “clave” al archivo .env.
NS_WILDCARD_ENABLED=trueCopy
Al definir esto, debes asegurarte de que tu APP_URL apunte a tu dominio principal real. Suponiendo que tu dominio principal es «mypos.com», entonces tu «APP_URL» debería ser «https://mypos.com» o «http://mypos.com» (si estás usando SSL o no).
Configuración del DNS para la compatibilidad con comodines
Según tu gerente, necesitarás dirigirte a tu configuración de DNS y crear dominios comodín. En nuestro ejemplo, estamos usando Cloudflare, pero la configuración debería funcionar con cualquier otro proveedor.
Luego iremos al DNS y crearemos un nuevo registro para nuestro dominio.
Configuración de Apache para admitir dominios comodín
Si anteriormente estabas usando un dominio fijo para NexoPOS 4.x, necesitarás editar la configuración de Apache para habilitar el soporte de comodines. Aquí editaremos el archivo de configuración que apunta a nuestra instalación de NexoPOS 4.x.
<VirtualHost *:80> ServerName *.nexopos.com ServerAlias *.nexopos.com DocumentRoot /var/www/html/v4.nexopos.com/public <Directory /var/www/html/v4.nexopos.com/public> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> <FilesMatch \.php$> # 2.4.10+ puede proxy a socket unix SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch></VirtualHost>Copiar
Con esto, cuando creemos una tienda con el slug «store-a», podremos acceder a esa tienda usando «https://store-a.nexopos.com», etc.
No olvides reiniciar Apache cuando termines con tu configuración.
Declarando Tiendas Para el Santuario
Sanctum es una biblioteca que gestiona la autenticación en NexoPOS 4.x. Toda autenticación debe realizarse desde un dominio declarado. Los dominios se declaran (separados con una coma) en la clave «SANCTUM_STATFUL_DOMAINS» del archivo .env. En nuestro ejemplo, así es como se define la clave:
SANCTUM_STATEFUL_DOMAINS=nexopos.comCopy
Pero si hemos creado, por ejemplo, 3 tiendas con diferentes slugs, necesitaremos registrar la dirección en esas tiendas para asegurarnos de que los usuarios puedan iniciar sesión usando esos dominios. Así es como debería verse ahora esta clave si necesitamos guardar estos dominios: store-a, store-b, store-c
SANCTUM_STATEFUL_DOMAINS=nexopos.com, store-a.nexopos.com, store-b.nexopos.com, store-c.nexopos.comCopiar
Cada vez que se crea una tienda (mientras tanto), tendrás que declarar esa nueva tienda en el archivo .env.