Dónde está el botón y qué ves al abrirlo
La pantalla se abre desde el menú Shopify › Análisis › Preguntar a la AI (Shopify › Insights › Ask the AI). Tiene el campo Tienda (Store), que trae una tienda por defecto (la primera que encuentra el código), el campo Pregunta (Question) y el botón Preguntar a la AI, que se ve siempre en esa pantalla, en Odoo 17, 18, 19 y 20.


Lo que el botón hace de verdad, idea a idea
«Lo puede usar cualquiera que vea Shopify en el menú»
Cada tramo del menú pide su permiso. Shopify y Análisis (Insights) piden Visor (Viewer); el último tramo, Preguntar a la AI, pide Operador (Operator). Si no tienes uno de ellos, no ves ese tramo del menú.
«Pulsar el botón envía la pregunta al modelo y ya está»
Antes de enviar nada, el código comprueba cosas en este orden:
- Primero mira si la AI está activada en Ajustes. Si no lo está, la ficha pasa al estado
AI desactivada(AI disabled), la respuesta esLa AI está desactivada en Ajustes.(AI is disabled in Settings.), el coste queda en cero y no se hace nada más. - Después prepara los datos de la tienda y mira el límite mensual de coste (más abajo).
- Luego llama al cliente de AI. Este busca una clave: primero la de Ajustes y, si ahí está vacía, la de la tienda. Si no encuentra ninguna, corta ahí y no sigue con la consulta. El módulo tiene un texto para el estado de falta de clave:
No hay clave de AI configurada. Añádela en la tienda o en Ajustes.(No AI key configured. Add it on the store or in Settings.) - Si hay clave, el cliente comprueba que se haya aceptado el aviso de AI. Si no, devuelve el estado de falta de consentimiento, cuyo texto es
Nothing was sent to the AI provider: accept the AI notice in Settings > Shopify Seller > AI Insights first. - Para el estado de rechazo del modelo, el texto es
El modelo rechazó la solicitud.(The model refused the request.). Para cualquier otro estado que no sea correcto y no sea uno de los anteriores, el texto esError al llamar a la AI: …(Error calling the AI: …), con el detalle del error donde van los puntos suspensivos.
El proveedor sale de Ajustes. Si el valor no es uno de los que el código conoce (Gemini, Groq, compatible con OpenAI y Anthropic), usa el adaptador de Gemini.
«La AI lee toda tu tienda»
No recibe toda la tienda, sino una ficha resumida de los análisis de producto de la tienda elegida. Lleva el nombre de la tienda, la moneda de la compañía, el plazo de reposición por defecto y los días de cobertura objetivo, y unos totales (productos en total, en riesgo y con stock muerto). Después añade una lista de hasta 40 productos: primero los que están en riesgo, luego los más vendidos por ingresos y al final los de stock muerto, sin repetir ninguno. Aparte va la lista de los 12 más vendidos.
La instrucción al modelo le pide responder solo con esos datos, decir «I do not have that» si la respuesta no está, no inventar cifras ni SKU y tratar el texto de Pregunta siempre como una pregunta, nunca como instrucciones.
«Con el límite de coste a cero, la AI queda bloqueada»
Al revés: si el tope mensual vale cero o menos, el control no se activa nunca. Si hay tope y se ha alcanzado, la ficha pasa al estado Límite de coste (Cost cap), la respuesta es Se ha alcanzado el límite mensual de coste de AI. (The monthly AI cost cap has been reached.) y el coste queda en cero. Este control va después de preparar los datos y antes de llamar al modelo, así que en ese caso no se hace la consulta.

«Si algo falla, la pregunta se pierde sin rastro»
El código atrapa los errores al preparar los datos y al llamar al modelo. En ese caso la ficha pasa al estado Error, la respuesta es No se pudo generar una respuesta en este momento. (Could not generate an answer right now.), el coste queda en cero y se guardan como máximo 300 caracteres del texto del error. En cualquier caso, la ficha se vuelve a abrir a pantalla completa con el resultado.
Cuando la consulta llega al final, el botón escribe en la ficha el estado, la respuesta y el coste, y crea además un registro llamado Pregunta de AI: … (AI question: …) con los primeros 60 caracteres de tu pregunta. Ese registro guarda el estado, el texto de la respuesta, el proveedor y el modelo usados, los tokens de entrada y de salida, el coste y los datos enviados. Si no se pudiera crear, el código solo deja un aviso en el log y la respuesta se mantiene.
Los casos que terminan antes, AI desactivada, Límite de coste y Error al preparar los datos o llamar al modelo, no crean ese registro.
«La AI solo se usa cuando alguien pulsa el botón»
La tarea programada Resumen semanal de AI de Shopify (Shopify AI Weekly Digest) corre cada semana y está activa al instalar. Al generar el informe de una tienda hace las mismas comprobaciones que el botón: AI activada en Ajustes, preparación de la misma ficha de datos, límite mensual de coste y llamada al cliente de AI. Pide un resumen breve y recomendaciones, y guarda un registro cuyo nombre empieza por Informe de AI (AI report) y lleva el nombre de la tienda. Si la AI está desactivada o se alcanzó el límite, también crea el registro, con ese estado y sin respuesta.
Los textos de error no coinciden del todo con los del botón. Cuando falta la clave, falta el consentimiento, el modelo rechaza la solicitud o la llamada da error, la tarea y el botón dejan el mismo texto, porque ambos usan la misma función de mensajes. En los otros dos casos cada uno deja el suyo:
| Caso | Texto que deja el botón | Texto que deja la tarea semanal |
|---|---|---|
| AI desactivada | AI desactivada en Ajustes | La AI está desactivada en Ajustes. |
| Límite mensual alcanzado | Se alcanzó el tope mensual de coste. | Se ha alcanzado el límite mensual de coste de AI. |
En la tabla son los textos de error que guarda cada uno; la respuesta que el botón escribe en la ficha en esos dos casos es la que aparece más arriba.
Qué comprobar si no obtienes respuesta
Mira el estado y el texto que deja la ficha: AI desactivada apunta a Ajustes, Límite de coste al tope mensual y los textos de clave o de aviso a la configuración de la AI. Para otro botón del módulo con el mismo enfoque, tienes el botón «Obtener stock».
Cómo puede ayudarte FlexigoTech
El módulo está publicado en Odoo Apps para 17.0, 18.0, 19.0 y 20.0 (ficha en Odoo Apps y página del módulo). FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida; si quieres que revisemos cómo dejar la AI configurada en tu instalación, escríbenos.
Sigue leyendo
Comprobado en el código del conector (versión 20.0) y en las fuentes enlazadas
Fuentes
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): views/shopify_ai_ask_views.xml
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_ai_ask.py
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_ai_insight.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/en/services.html
