Clientes
Todas las cuentas de tu sitio en una lista: quién se registró, quién verificó, quién está bloqueado, y el interruptor que impide iniciar sesión.
Un cliente es un miembro del sitio visto desde el panel: un registro de un modelo con cuentas activadas, identificado por su identidad (normalmente un correo). No hay una tabla de clientes aparte. Si tu workspace tiene dos modelos de cuentas -por ejemplo members y wholesale- el área Clientes lista ambos, con una pestaña por modelo.
El área está junto a Comercio y Equipo en la navegación del panel. Aparece en cuanto al menos un modelo tiene cuentas activadas; antes te remite a Modelos.
La lista
Busca por identidad, filtra por estado y por empresa cuando el modelo la declara. Cada fila muestra el campo de visualización del registro (o la identidad si está vacío), el modelo, el estado, el último inicio de sesión, la fecha de alta y, con orders:view, el número de pedidos vivos y lo que el cliente ha gastado, por moneda. El gasto nunca se suma entre monedas.
active: puede iniciar sesión.pending: registrado, correo aún sin verificar. Solo existe si el modelo exige verificación.suspended: inicio de sesión rechazado, todas las sesiones terminadas.
Un bloqueo tras demasiados intentos fallidos no es un estado: la fila muestra bloqueado hasta y caduca por sí solo.
Haz clic en una cabecera de columna para ordenar: identidad, estado, último inicio de sesión, alta, pedidos. El orden va en la barra de direcciones, así que una vista ordenada se puede guardar o compartir. Ordenar por pedidos requiere orders:view.
Añadir cliente crea un registro de cuenta desde el panel, en el modelo de la pestaña actual o en el que elijas, para dejar a alguien preparado antes de que visite el sitio. Exportar CSV escribe todos los clientes que coinciden con la búsqueda, los filtros y el orden actuales, no solo la página, con las columnas de pedidos cuando puedes ver pedidos. Las celdas que empiezan por un carácter de fórmula se escapan para que el archivo se abra sin riesgo en una hoja de cálculo.
Marca filas para suspender o reactivar en bloque, hasta 100 a la vez. Los clientes en los que el cambio no es posible (aún sin verificar, ya en el estado destino) se omiten y se cuentan; el resto pasa.
La página de detalle
La tarjeta de la cuenta, una tarjeta Historial de pedidos (pedidos vivos, gasto por moneda, último pedido; requiere orders:view) y tres pestañas: Perfil (los campos del registro, solo lectura, con las relaciones mostradas como la etiqueta del registro relacionado; Editar abre el mismo diálogo de registro que Modelos), Pedidos y Carritos de este cliente. El perfil es el registro, así que editarlo requiere models:edit; las dos pestañas requieren orders:view y carts:view.
Suspender y reactivar
Suspender bloquea el inicio de sesión e invalida todos los tokens de acceso y de refresco del cliente: la siguiente petición con un token antiguo se rechaza. Los pedidos, los carritos y el propio registro se conservan. Una cuenta pending no se puede suspender: verificarla se convertiría, si no, en una forma de activarla.
Reactivar deja que el cliente vuelva a iniciar sesión y limpia cualquier bloqueo. Ambas acciones se rechazan si la cuenta ya está en el estado destino, así que un agente que reintenta una llamada no puede cambiarla dos veces.
Restablecer contraseña, verificación y desbloqueo
La tarjeta de la cuenta ofrece la acción que corresponde al estado. Enviar restablecimiento manda a un cliente activo un enlace para fijar una contraseña nueva; vale una hora. Reenviar verificación manda a un cliente pending un enlace nuevo y anula el anterior. Desbloquear solo aparece mientras hay un bloqueo en curso: limpia el contador de intentos fallidos y el límite de inicios de sesión, y el cliente puede volver a intentarlo de inmediato. Un cliente suspendido no tiene ninguna de ellas; reactívalo primero.
Los dos correos salen por la configuración de correo del workspace y necesitan la URL pública del sitio, porque el enlace apunta a tu sitio. Si el enlace se emitió pero el servidor de correo rechazó el mensaje, el panel lo dice en vez de fingir. Cada cliente recibe como máximo cinco de estos correos por hora, para que un formulario atascado no inunde una bandeja. Un restablecimiento se rechaza en un modelo sin inicio de sesión por contraseña.
Pedidos e invitados
Un pedido de un miembro con sesión iniciada queda vinculado a ese miembro. Un pedido de invitado se vincula después, cuando el invitado se registra y verifica el mismo correo: "mis pedidos" se rellena retroactivamente. Desde el detalle del pedido también puedes vincular o desvincular un cliente a mano. La lista de Pedidos busca por la identidad del cliente y por el nombre de empresa congelado en el pedido, y se puede acotar a una empresa.
Empresas (B2B)
En la pestaña Capacidades del modelo de cuentas indicas un campo de empresa (una relación con tu modelo de empresas) y un campo de rol en la empresa (un select como buyer / approver). La lista de Clientes gana entonces una columna y un filtro Empresa, los pedidos y carritos se listan por empresa, y un pedido congela el nombre de la empresa en el checkout para que un cambio de nombre posterior no reescriba el historial. Nada de la empresa se expone en la API pública. Un visitante tampoco puede elegir empresa al registrarse: register rechaza un payload que fije el campo de empresa o de rol en la empresa, así que solo el admin (o un agente mediante update_record) coloca a un cliente en una empresa.
Permisos
customers:view: ver el área, la lista y el detalle, exportar el CSV. Por defecto en el rol Viewer.customers:manage: suspender y reactivar (uno a uno o en bloque), añadir cliente, enviar restablecimiento, reenviar verificación, desbloquear. Por defecto en el rol Editor.orders:view: las columnas de pedidos, el orden por pedidos y la tarjeta de historial.
Vincular un cliente a un pedido modifica el pedido, así que requiere orders:manage.
Desde MCP y Spotlight
La misma superficie está disponible para agentes: list_customers (modelo, estado, búsqueda, empresa, paginación), get_customer (resumen más los datos del registro), suspend_customer y unsuspend_customer, send_customer_password_reset, resend_customer_verification y unlock_customer. Cada cliente que lee un agente lleva orderStats (pedidos vivos, gasto por moneda, último pedido) o null cuando el token no puede ver pedidos. No hay herramienta en bloque a propósito: un agente confirma un cliente cada vez. get_model devuelve la configuración auth del modelo y update_model fija los campos de empresa. list_orders y get_order devuelven customerId, companyId y companyName (null en pedidos de invitado), y list_orders acepta un filtro companyId y una búsqueda por el nombre de empresa congelado, así que los pedidos de una empresa llegan a un agente por el mismo camino. Consulta el catálogo de herramientas.
Siguientes pasos
- Autenticación de miembros: el flujo de registro e inicio de sesión que implementa tu sitio.
- Comercio: pedidos, carritos y checkout.
- Miembros y roles: quién del equipo recibe qué permiso.