## Visión general

La integración **Shopify** localiza a un cliente por el correo o teléfono del contacto y muestra sus
pedidos dentro de la conversación. La consulta se realiza bajo demanda: ConversaLabs no conserva el
registro del cliente ni la respuesta de pedidos de Shopify.

Esta conexión es distinta de una **fuente de Catálogo y Comercio**. Utilízala para consultar pedidos
durante la atención; usa una fuente de comercio para sincronizar catálogo, eventos, tarjetas y
automatizaciones.

## Requisitos previos

- El operador debe configurar `SHOPIFY_CLIENT_ID`, `SHOPIFY_CLIENT_SECRET` y el origen HTTPS público
  de ConversaLabs. En desarrollo, HTTP solo se acepta en direcciones de loopback.
- El operador debe registrar el retorno OAuth configurado y el endpoint verificado de los webhooks
  de privacidad de Shopify en la configuración de la aplicación antes de habilitar la función para las cuentas.
- La función **Integración Shopify** debe estar habilitada para la cuenta.
- Debes ser **Administrador** o tener el permiso nativo **Gestionar integraciones**.
- Necesitas acceso administrativo y el dominio permanente `tu-tienda.myshopify.com`; no uses el
  dominio personalizado del escaparate.

## Paso a paso

1. Abre **Configuración → Integraciones → Shopify**.
2. Selecciona **Conectar tienda** o **Reconectar tienda**.
3. Introduce solo `tu-tienda.myshopify.com`, sin `https://`, ruta, parámetros ni puerto.
4. En Shopify, comprueba la tienda y los permisos y autoriza desde el mismo navegador.
5. De vuelta en ConversaLabs, abre una conversación cuyo contacto tenga correo o teléfono y despliega
   **Pedidos de Shopify**.

La reconexión sustituye de forma segura la credencial y permite actualizar permisos o cambiar de
tienda. Cada intento caduca en unos diez minutos, está vinculado al navegador que lo inició y solo
puede completarse una vez. Si lo cancelas, caduca o abres el retorno en otro navegador, empieza de
nuevo desde la página de integración.

## Configuración y opciones

- La aplicación solicita únicamente `read_customers` y `read_orders`.
- El correo/teléfono se envía a la búsqueda de Shopify; la interfaz recibe solo ID, fecha, importe,
  moneda, estados financiero/de preparación y el enlace administrativo.
- Por defecto, la API de Shopify ofrece los pedidos de los últimos **60 días**. Un historial mayor
  necesita aprobación independiente y no se solicita aquí.
- El token permanece en el servidor y nunca se devuelve al navegador, Swagger ni MCP.
- Los webhooks obligatorios de privacidad se validan con HMAC. Los datos son transitorios, por lo que
  las solicitudes de cliente confirman que no existe una copia local que borrar. `shop/redact`
  elimina la conexión guardada de esa tienda.

## Casos de uso

- Consultar importe, fecha y estado del pedido sin salir de la conversación.
- Abrir el pedido correcto en el administrador de Shopify para gestionar cambios, entregas o reembolsos.
- Reconectar la misma tienda después de modificar sus permisos.
- Sustituir la tienda vinculada a la cuenta sin crear credenciales duplicadas.

## Consejos, límites y buenas prácticas

En la página de Shopify, selecciona **Desconectar** y confirma. La eliminación sigue disponible si la
función se deshabilita para que ninguna credencial antigua quede atrapada. Revoca también la
aplicación en el administrador de Shopify cuando termines de usarla definitivamente.

Usa siempre el dominio permanente `.myshopify.com`, completa cada intento en el navegador que lo
inició y revisa periódicamente quién tiene el permiso **Gestionar integraciones**.

## Solución de problemas

- **Dominio no válido**: copia el dominio `.myshopify.com` en **Configuración → Dominios** de Shopify.
- **Integración deshabilitada**: pide al operador que active la función en esta cuenta.
- **Error de retorno**: usa el mismo navegador, comprueba el reloj y comienza otra vez; no reutilices
  un enlace antiguo.
- **Sin pedidos**: confirma que el contacto usa el mismo correo o teléfono y recuerda el límite
  predeterminado de 60 días.
- **Permisos modificados**: usa **Reconectar tienda** y autoriza de nuevo.
- **Fallo temporal**: pulsa **Intentar de nuevo**. El error no muestra datos internos ni credenciales.

## Ver también

- [Integraciones: proveedores, credenciales, OAuth, webhooks y API](/hc/ajuda/articles/administration-integracoes-es)
- [Ciclo de vida de comercio electrónico](/hc/ajuda/articles/catalog-commerce-commerce-lifecycle-es)
- [Roles personalizados y gobernanza](/hc/ajuda/articles/administration-custom-roles-governanca-rbac-es)