# Alta de la tienda de un cliente

Todas las tiendas las sirve el mismo proceso (`pm2 Novasis-Store`, puerto 7500). La
tienda decide de qué cliente es cada pedido **por el dominio** con que entra el
navegador (`src/lib/storeHost.ts`):

- Si el dominio termina en el `ROOT_DOMAIN` del `.env` de la tienda (por ejemplo
  `kety.novasis.com` con `ROOT_DOMAIN=novasis.com`), toma la primera parte (`kety`) y
  la busca como **subdominio**.
- Si no, toma el dominio entero (`comercial-kety.factupy.es`) y lo busca como
  **dominio propio**.

Si ninguno coincide con la configuración del cliente, la tienda no encuentra al
comercio. Ese es el error más común del alta.

## Pasos

1. **Panel → Ecommerce → Configuración.** Cargá el subdominio y, si el cliente usa un
   dominio que no cuelga del `ROOT_DOMAIN`, el **Dominio propio** completo. Guardá:
   estos campos rigen al guardar, sin publicar. El aviso «Los links que compartas
   apuntan a…» muestra la dirección que va a usar el cliente.
2. **DNS.** Un registro A (o CNAME) del dominio hacia el servidor
   (test: 143.198.100.72). Si el dominio es del cliente, lo carga él en su proveedor.
3. **Servidor.** Con el DNS ya propagado:

   ```bash
   cd /var/www/html/novasis-ecommerce-store
   sudo deploy/alta-tienda.sh comercial-kety.factupy.es --dry   # revisar
   sudo deploy/alta-tienda.sh comercial-kety.factupy.es --email ops@novasispy.com
   ```

   El script verifica el DNS y que la tienda responda, crea el virtual host de Apache
   (proxy al 7500 con `ProxyPreserveHost`), recarga Apache y pide el certificado con
   certbot (renovación automática). Es idempotente: si algo ya existe, no lo toca.
4. **Publicar** la tienda desde el panel y abrir `https://<dominio>`.

## Problemas frecuentes

| Síntoma | Causa |
|---|---|
| La tienda muestra el diseño de ejemplo o «Estamos preparando la tienda» | El dominio no coincide con el subdominio ni con el dominio propio cargados, o la tienda no está publicada / está pausada. |
| certbot falla con «DNS problem» | El DNS todavía no apunta al servidor. Esperar la propagación y volver a correr el script. |
| Publicar tarda hasta 60 s en verse | Faltan `STOREFRONT_REVALIDATE_URL` / `REVALIDATE_SECRET` en el backend o `REVALIDATE_SECRET` en la tienda. |
