Un caso para recorrer el botón paso a paso
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Librería Faro es una tienda inventada que vende en Shopify y lleva los pedidos en Odoo con este módulo. Un cliente pide que le devuelvan el importe de un pedido entero y Ana, de administración, abre ese pedido de venta en Odoo. Lo que sigue es lo que el módulo hace en cada punto, según su código de Odoo 20.
Primero: ¿aparece el botón?
El botón Reembolsar en Shopify está en la vista del pedido de venta y se oculta cuando el campo Ref. de pedido de Shopify está vacío. Con los valores por defecto ese campo está vacío, así que en un pedido sin enlace con Shopify no vas a ver el botón. Ese campo e Instancia de Shopify (Shopify Instance) están en la ficha del pedido, en el grupo Shopify; son de solo lectura y se ocultan mientras la referencia esté vacía. La misma condición de vista vale para Odoo 17, 18, 19 y 20.

Segundo: la confirmación
Al pulsar el botón, Odoo pregunta ¿Crear un reembolso completo de este pedido en Shopify? (Create a full refund of this order in Shopify?). Si aceptas, Odoo ejecuta la acción del botón.
Tercero: lo que comprueba, en este orden
- Permisos. Lo primero que hace la acción es comprobar que tu usuario tiene acceso de Shopify Operator o Manager. Si no lo tiene, se detiene con
You need Shopify Operator (or Manager) access to push changes to Shopify.El comentario del código explica el motivo: un usuario con acceso normal a Ventas, sin ningún rol de Shopify, podría de otro modo lanzar una llamada real a Shopify con las credenciales de la tienda. Por eso la comprobación vive en la propia acción y no depende de que el botón se vea. - Enlace con Shopify. Para cada pedido, la acción exige que tenga rellenas la referencia de Shopify y la instancia. Si falta alguna, se detiene con
El pedido de venta … no está vinculado a un pedido de Shopify.(Sale order … is not linked to a Shopify order.), con el nombre del pedido en lugar de los puntos suspensivos. Como el botón solo se ve con la referencia rellena, si lo pulsas desde la ficha y sale este aviso, mira en el grupoShopifysiInstancia de Shopifytiene valor.
Cuando un aviso detiene la acción, el proceso termina ahí y no llega a pedir el reembolso de ese pedido.
Cuarto: qué pide a Shopify
Si el pedido pasa esas comprobaciones, su instancia de Shopify recibe la orden de crear el reembolso. Según el código:
- Líneas. Se reembolsan todas las líneas importadas: las que no son de sección ni de nota, no son de envío y traen identificador de línea de Shopify. La cantidad es la de la línea, redondeada a número entero.
- Envío. Las líneas de envío quedan fuera y la petición no pide reembolsar los gastos de envío.
- Nota. Salvo que se indique otra, la nota que viaja a Shopify es
Refunded from Odoo. - Aviso al cliente y saldo de tienda. Se toman de las opciones de la instancia: avisar al cliente del reembolso y reembolsar como saldo de tienda en lugar de al medio de pago original.
- Moneda. El módulo pregunta a Shopify por el reembolso sugerido y, si Shopify devuelve una moneda, la incluye en la petición.
- Reintentos. La petición lleva una clave que describe exactamente ese reembolso (pedido, líneas, cantidades, envío y método). Si se repite, por una respuesta perdida o un segundo clic impaciente, lleva la misma clave y Shopify reembolsa una sola vez, según el comentario del código.
Si Ana no tiene el rol
Si Ana ve el aviso de permisos, el reembolso no se ha pedido. Necesita que quien administra Odoo le dé acceso de Shopify Operator (o Manager), tal como dice el propio mensaje, y volver a pulsar el botón.

Qué aprender del caso
- El botón no está para cualquier pedido: depende de
Ref. de pedido de Shopify, y esa referencia no se rellena a mano porque el campo es de solo lectura. - Tus permisos y el enlace del pedido (referencia e instancia) se comprueban antes de hablar con Shopify, y si falla alguno la acción se detiene.
- El reembolso que pide es completo respecto a las líneas importadas, sin las líneas de envío ni gastos de envío.
- El aviso al cliente y el reembolso como saldo de tienda no se eligen al pulsar: salen de las opciones de la instancia.
- Un reintento idéntico no duplica el reembolso en Shopify, por la clave que lleva la petición.
Antes de probarlo en tu Odoo
El botón está en las ramas de Odoo 17, 18, 19 y 20, que son las versiones publicadas del módulo en Odoo Apps; el código que he descrito es el de Odoo 20. Con Odoo en castellano se llama Reembolsar en Shopify; en otros idiomas el rótulo cambia, como muestra el esquema.

El módulo es de pago único por versión de Odoo y necesita la suscripción a FlexigoTech Cloud, plan Conector: 49 €/mes o 490 €/año, sin IVA. La conexión pasa por FlexigoTech Cloud, que guarda cifradas las credenciales, vigila la sincronización y avisa por correo si falla. Todo está en la ficha de Odoo Apps y en la página del módulo.
Si tu duda va por otro lado de los pedidos, mira el mensaje sobre datos de Shopify para crear el pedido de venta. Y si estás implantando Odoo con Shopify y quieres revisar permisos, instancias o un flujo de devoluciones a medida, FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida.
Preguntas rápidas
¿Por qué no veo el botón en un pedido?
Porque el botón se oculta cuando Ref. de pedido de Shopify está vacío, y con los valores por defecto lo está.
¿Pide confirmación?
Sí: ¿Crear un reembolso completo de este pedido en Shopify?.
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/sale_order_views.xml
- Código del módulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/sale_order.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
