# Estado de pedidos y devoluciones

> Deja que tu agente responda «¿dónde está mi pedido?» con los datos de tu tienda Shopify o WooCommerce y acepte peticiones de devolución y de cambio: configuración, cómo se verifica a los visitantes, qué ve el agente, límites y avisos.

Con una conexión de pedidos, tu agente puede consultar el pedido de un visitante en tu tienda Shopify o WooCommerce y decirle su estado, qué contenía, su importe total y, si el pedido lo tiene, su número de seguimiento. Con **Returns and exchanges** (devoluciones y cambios) activado, también puede recoger una petición de devolución o de cambio y pasártela. El agente solo lee pedidos. Nunca cambia nada en tu tienda.

> Un visitante solo ve un pedido cuando da su número de pedido y la dirección de correo con la que se hizo. Preguntar con un correo equivocado obtiene la misma respuesta que preguntar por un pedido que no existe. Consulta [Cómo se verifica a los visitantes](#como-se-verifica-a-los-visitantes).

## Antes de empezar

Abre tu agente y ve a la pestaña **Actions** (acciones). La tarjeta **Orders** está debajo de **Booking**. En **Store**, elige **Shopify** o **WooCommerce**.

### Shopify con la app de intoCHAT

Escribe la dirección `.myshopify.com` de tu tienda en **Store address**, haz clic en **Install on Shopify** y aprueba la app en Shopify. intoCHAT solo pide acceso de lectura a los pedidos y mantiene la conexión al día por sí mismo. Consulta [Instalar la app de Shopify](/es/docs/shopify#instalar-la-app-de-shopify) para saber a qué puede acceder la app y cómo desinstalarla. El botón solo aparece cuando la app de intoCHAT para Shopify está disponible en tu sitio de intoCHAT; hasta entonces, usa una app personalizada.

### Shopify con una app personalizada

1. En **Store address**, escribe la dirección `.myshopify.com` permanente de tu tienda, por ejemplo `my-store.myshopify.com`. Úsala aunque tus clientes conozcan tu tienda por su propio dominio. La encontrarás en la administración de Shopify, en **Settings**, **Domains**.
2. Haz clic en **Use a custom app instead**.
3. En el Dev Dashboard de Shopify, para la organización a la que pertenece esta tienda, crea una app con el permiso (scope) de la Admin API `read_orders`. Añade también `read_all_orders` si los visitantes deben encontrar pedidos de hace más de 60 días; Shopify concede ese permiso previa solicitud.
4. Publica una versión de la app con estos permisos e instálala en tu tienda.
5. Copia el **client ID** y el **client secret** de la app en **Client ID** y **Client secret**, y haz clic en **Test and connect**.

intoCHAT cambia el client ID y el secreto por un token de acceso que dura 24 horas, lo guarda cifrado y obtiene uno nuevo por sí mismo antes de que caduque. Shopify solo emite estos tokens para una tienda de la misma organización que la app; para cualquier otra tienda, la tarjeta lo indica.

### WooCommerce

1. En **Store address**, escribe la dirección `https://` de tu web de WordPress, por ejemplo `https://shop.example.com`. Las direcciones con `http://` sin cifrar se rechazan, porque tus claves viajarían sin cifrar. También se rechazan las direcciones de una red privada o interna.
2. En WordPress, abre **WooCommerce**, **Settings**, **Advanced**, **REST API** y haz clic en **Add key**. Elige un usuario que pueda gestionar pedidos, pon **Permissions** en **Read** y haz clic en **Generate API key**.
3. Copia la **consumer key** y el **consumer secret** en la tarjeta y haz clic en **Test and connect**.

### Qué comprueba la conexión

**Test and connect** pide a tu tienda su nombre y el ID de un pedido reciente. No se muestra ningún dato de clientes. Si la tienda se niega, la tarjeta indica el motivo, por ejemplo que no se aceptaron las credenciales, que a la app le falta el permiso `read_orders` o que la dirección no tiene la API REST de WooCommerce. Puedes comprobar credenciales hasta 10 veces en 10 minutos.

En Shopify, también comprueba que Shopify devuelve la dirección de correo de los pedidos. Shopify oculta los correos de los clientes a las apps que no tienen acceso a los datos protegidos de clientes. Cuando Shopify rechaza el campo del correo, no se podría verificar nunca a ningún visitante, así que la tarjeta se niega a conectar y dice: «Shopify didn't return customer emails: grant protected customer data access (email) to the app.» Cuando tu último pedido simplemente llega sin correo, la tarjeta conecta la tienda pero te avisa: o ese pedido no tiene correo, o Shopify oculta los correos sin decirlo. Los pedidos sin un correo legible nunca se muestran a los visitantes.

El client secret, la consumer key y el consumer secret se guardan cifrados y no se vuelven a mostrar. La tarjeta solo muestra los cuatro últimos caracteres del client ID o de la consumer key.

## Gestionar la conexión

Una vez conectada, la tarjeta muestra la tienda, su dirección y cómo está conectada.

- El interruptor **On** / **Off** de la cabecera de la tarjeta detiene las consultas de pedidos sin desconectar.
- **Returns and exchanges** permite que el agente recoja peticiones de devolución y de cambio. Al principio está desactivado. Consulta [Devoluciones y cambios](#devoluciones-y-cambios).
- **Test connection** hace la misma comprobación que al conectar, con las credenciales guardadas.
- **Replace credentials** vuelve a conectar con credenciales nuevas. Si la tarjeta dice que las credenciales guardadas ya no se pueden leer, el botón se llama **Reconnect**.
- **Disconnect** detiene las consultas y las peticiones de devolución y borra las credenciales guardadas. Las peticiones de devolución ya hechas siguen en la lista **Returns** de la pestaña **Leads**.

Con una app de Shopify sin el permiso `read_all_orders`, la tarjeta indica que solo se pueden encontrar los pedidos de los últimos 60 días.

## Cómo se verifica a los visitantes

El agente solo consulta un pedido con un número de pedido y una dirección de correo, y solo lo muestra cuando el correo es aquel con el que se hizo el pedido. El correo se compara sin distinguir mayúsculas de minúsculas y sin tener en cuenta los espacios de alrededor.

- **Visitantes que tu web ha identificado.** Con la [verificación de identidad](/es/docs/identity-verification), cuando tu página pasa el correo del visitante, se usa ese correo y el agente no pide ninguno. Un correo que el visitante escriba en el chat se ignora, así que un visitante identificado no puede consultar el pedido de otra persona escribiendo su correo.
- **Todos los demás.** El agente pide el número de pedido y la dirección de correo. Los dos tienen que coincidir con el pedido.

Cuando el correo no coincide, el agente obtiene exactamente la misma respuesta que para un número de pedido que no existe: ningún pedido coincide con este número de pedido y esta dirección de correo. Pide al visitante que revise los dos datos, sin decir cuál es incorrecto. Así nadie puede averiguar qué números de pedido existen.

La verificación de identidad solo firma el ID de usuario del visitante. El correo que lo acompaña es el que pasa tu página. Por eso no es una prueba más sólida que un correo que escribe el visitante, y los [límites de consultas fallidas](#limites-de-consultas-fallidas) se aplican igual.

## Qué ve el agente

De un pedido, el agente solo recibe:

- el número y la fecha del pedido,
- el estado del pago y el estado del envío, y si el pedido se canceló,
- el título, la variante y la cantidad de cada artículo,
- el transportista, el número de seguimiento y el enlace de seguimiento de cada envío,
- el importe total y su moneda.

Nunca recibe direcciones, teléfonos, datos de pago, notas del cliente, la dirección de correo ni ningún otro pedido del mismo cliente. La mayoría de estos datos intoCHAT ni siquiera los pide a tu tienda, y lo que recibe el agente se construye solo con la lista de arriba.

En «Why this answer» de la conversación, una consulta de pedido aparece como **Order lookup** con el número de pedido si tuvo éxito, y sin él si no. No se guarda ningún otro dato del pedido con ella.

## Límites de consultas fallidas

Una consulta falla cuando el número y el correo no coinciden con ningún pedido. Tras 5 consultas fallidas en una conversación, o 20 desde una misma dirección IP en el agente, en una hora, el agente deja de consultar pedidos y pide al visitante que contacte contigo directamente. Las consultas que encuentran el pedido no cuentan, como tampoco las que fallaron porque no se pudo contactar con tu tienda.

## Devoluciones y cambios

Con **Returns and exchanges** activado, un visitante puede pedir al agente devolver o cambiar artículos de un pedido. El agente pregunta qué artículos, cuántos, si quiere una devolución o un cambio, y por qué. Después vuelve a comprobar el pedido exactamente igual que en una consulta, con los mismos límites, y comprueba que cada artículo está en el pedido y que las cantidades no superan las pedidas. Cuando un producto se pidió en varias variantes, el visitante tiene que decir cuál.

La petición queda registrada y el agente le dice al visitante que se ha recibido y que te pondrás en contacto. El agente nunca promete que una petición se aprobará, ni un reembolso, una sustitución o una etiqueta de devolución. No cambia nada en tu tienda: gestionas la devolución allí como siempre.

Cada conversación puede enviar una petición por pedido. Si el visitante vuelve a pedirlo para el mismo pedido, el agente le dice que la primera petición ya se envió, y no se registra ni se envía nada nuevo.

### Dónde aparecen las peticiones

- **Returns**, en la pestaña **Leads**, lista todas las peticiones, de la más reciente a la más antigua: la fecha, el pedido, el correo, devolución o cambio, los artículos, el motivo y el estado. **Mark handled** marca una petición como resuelta (los miembros del equipo necesitan el rol Editor o superior); la flecha lo deshace. **Export CSV** descarga todas las peticiones. El icono de chat abre la conversación.
- **Correo**: las personas que reciben los [avisos de leads](/es/docs/lead-alerts-and-export#avisos-por-correo-de-leads-nuevos) reciben un correo por cada petición nueva, mientras los avisos de leads estén activados. Al responderlo, se escribe al cliente en la dirección de correo del pedido.
- **Webhook**: el evento `return.requested`. Consulta [Webhooks](/es/docs/webhooks#datos-de-return-requested).
- **Slack**: **Return request** en los [avisos en Slack](/es/docs/lead-alerts-and-export#avisos-en-slack).

## Registro de accesos

intoCHAT registra cada vez que se consultan datos de pedidos, sin correos ni contenido de los pedidos, y conserva el registro 90 días. Abre **Recent order lookups** en la tarjeta **Orders** para ver las 25 últimas entradas, o haz clic en **Export CSV** para descargarlas todas. Todo tu equipo puede verlo.

Cada entrada muestra la hora, la acción (una consulta de pedido, una petición de devolución o una prueba de conexión cuando pruebas o conectas la tienda), el número de pedido y el resultado, y quién: **Visitor**, o el nombre de la persona de tu cuenta que probó o conectó la tienda. Para un pedido que no se encontró, la entrada muestra el número que dio el visitante, y el resultado indica el motivo: **Not found** (ningún pedido con ese número), **Email didn't match** o **Order has no readable email** (el pedido no tiene correo, o tu tienda lo oculta). El visitante recibe la misma respuesta en los tres casos. Una consulta que nunca llegó a tu tienda, como una que aún espera el correo del visitante, no se registra.

Las entradas de más de 90 días se borran cada día. Cuando se desinstala la app de Shopify, o Shopify pide a intoCHAT que borre los datos de un cliente o de una tienda, también se borran las entradas correspondientes.

## Cuándo ofrece el agente los pedidos

El agente consulta un pedido cuando un visitante pregunta dónde está, por su estado, la entrega o el seguimiento, o qué contenía. Nunca se ofrece en un chat temporal: allí, el agente le pide al visitante que salga del chat temporal y vuelva a preguntar. Las consultas en el **Playground** son consultas reales en tu tienda y cuentan para los límites.

## Límites

- El agente solo lee pedidos. No puede cancelar, cambiar ni reembolsar un pedido, ni crear una etiqueta de devolución.
- Shopify: solo con el permiso `read_orders`, no se encuentran los pedidos de hace más de 60 días. Añade `read_all_orders` a la app para los pedidos más antiguos.
- WooCommerce no guarda números de seguimiento por sí mismo. El agente solo los ve cuando tu tienda usa la extensión WooCommerce Shipment Tracking, o un plugin que guarda el seguimiento de la misma forma. Si no, puede indicar el estado, los artículos y el importe total del pedido.
- Números de pedido de WooCommerce: intoCHAT busca primero el pedido con ese ID. Si tu tienda da a los pedidos sus propios números mediante un plugin, busca el número y solo usa una coincidencia exacta; que la búsqueda encuentre los números del plugin depende del plugin.
- Una tienda por agente.

## Siguientes pasos

- Identifica a tus visitantes: [Verificación de identidad](/es/docs/identity-verification).
- Recibe las peticiones de devolución en tus propias herramientas: [Webhooks](/es/docs/webhooks).
- Deja que los visitantes reserven citas en el chat: [Reservas con Cal.com o Calendly](/es/docs/booking).
