El caso: un pedido de Mirakl que no tiene pedido de venta
Ejemplo Caso ilustrativo: la empresa y sus datos son inventados para explicar el flujo.
Muebles Ribera es una tienda inventada que vende en un marketplace Mirakl y trabaja con Odoo y Mirakl Connector. La responsable de pedidos abre Mirakl › Operaciones › Pedidos (Mirakl › Operations › Orders) y encuentra un pedido de Mirakl con el campo Pedido de venta (Sale Order) vacío. El conector lo había retenido: el botón está pensado para pedidos que el vendedor borró, que ya salieron o que son anteriores a la fecha de inicio. Ella decide que ese pedido sí debe existir como pedido de venta en Odoo y pulsa Crear pedido de venta. Se abre el pedido de venta, que sigue como presupuesto, y es ella quien lo confirma.


El camino automático y la casilla que lo acompaña
La rutina que usa el botón no se llama solo al pulsarlo. El módulo amplía el botón estándar de validar de los albaranes: cuando se cumplen unas comprobaciones propias del módulo y el albarán es de un pedido de venta que viene de Mirakl, la validación llama a esa misma rutina, pero sin la orden de saltarse la comprobación de retención. Si esa llamada falla, el módulo anota un aviso en el registro y continúa con el resto de su rutina de contactos de entrega.
La casilla que decide ese camino es Confirmar venta automáticamente (Auto Confirm Sale), en la ficha de Instancias de Mirakl (Mirakl Instances), pestaña Pedidos y devoluciones (Orders and Returns), grupo Política de sincronización (Sync Policy). Viene desactivada por defecto y su ayuda dice: Confirmar automáticamente los pedidos de venta importados tras la sincronización.
El botón queda como excepción, para el pedido que el conector retuvo. Ese pedido de venta se queda como presupuesto y lo confirma el vendedor.
Cuándo aparece el botón
En la ficha de Pedidos de Mirakl (Mirakl Orders) el botón Crear pedido de venta se oculta en dos casos: cuando el campo Pedido de venta ya tiene valor o cuando el campo Estado (State) indica que el pedido está cancelado. Con los valores por defecto se ve. El botón está en las cuatro ramas publicadas, Odoo 17, 18, 19 y 20.
Pedido de venta también sale en la lista de Pedidos de Mirakl, solo en lectura. No lo rellenas tú: lo escribe la rutina de crear o actualizar, a la que se llega desde este botón y desde la validación del albarán que se ha descrito.
El módulo trae traducciones del botón. Así se llama según el idioma de tu Odoo:
| Idioma de Odoo | Texto del botón |
|---|---|
| Castellano | Crear pedido de venta |
| Alemán | Verkaufsauftrag erstellen |
| Francés | Créer la commande de vente |
| Italiano | Crea ordine di vendita |
| Portugués | Criar encomenda de venda |

Paso a paso: qué hace al pulsarlo en Odoo 20
- Entras en la ficha del pedido de Mirakl desde
Mirakl › Operaciones › Pedidos. El botón se ve si el pedido no tiene pedido de venta y no está cancelado. - Pulsas
Crear pedido de venta. Si el pedido ya tuviera pedido de venta, el botón lo salta sin tocar nada. - Si no lo tiene, quita la marca de retención del pedido y deja anotado que el pedido de venta se creó a mano.
- Llama a la rutina de crear o actualizar con la orden de saltarse la comprobación de retención. Esa comprobación, cuando no se salta, puede frenar la creación y anotar el motivo en el pedido.
- La rutina busca antes un pedido de venta con el mismo identificador de pedido de Mirakl en la misma instancia. Si lo encuentra, lo reutiliza y le escribe los datos en lugar de crear otro.
- Si no lo encuentra, prepara las líneas y los datos de cabecera del nuevo pedido de venta, que queda como presupuesto.
- Al terminar, abre la ficha del pedido de venta.
La retención existe por una razón que cuenta el propio módulo en un comentario: antes, al sincronizar de nuevo se recreaba un pedido de venta que el vendedor había borrado, y la primera importación convertía en entregas nuevas pedidos ya enviados a mano, de modo que la mercancía salía dos veces. Pulsar el botón es saltarse esa protección para ese pedido, así que conviene mirar antes si el pedido ya salió.
Qué datos prepara el código para el pedido de venta
Entre otros, estos:
- el cliente y el contacto de entrega (un pedido de venta ya confirmado conserva su cliente y, si la dirección del comprador no cambia, su contacto de entrega), y como dirección de facturación el propio cliente;
- la compañía de la instancia y la moneda del pedido de Mirakl;
- como referencia del cliente, el nombre del pedido de Mirakl;
- la instancia, el identificador del pedido de Mirakl, su estado y el momento de la última sincronización;
- la etiqueta del método de envío que eligió el comprador;
- el teléfono y la persona de contacto del comprador, cuando el pedido de venta tiene esos campos;
- la fecha del pedido, si el pedido de Mirakl la tiene, y el equipo de ventas y el almacén de la instancia, si los tiene configurados.
Cuando todavía no existe pedido de venta, el código prepara además las líneas del pedido.
Si algo no sale como esperas
- No ves el botón: mira el campo
Pedido de venta(si tiene valor, ya hay uno enlazado) y el campoEstado(si el pedido está cancelado, se oculta). - Pulsas y no se abre ninguna ficha: el pedido de venta solo se abre si el pedido de Mirakl lo tiene enlazado tras la llamada. Comprueba el campo
Pedido de venta. - Fallo al validar un albarán: en ese camino el error de la rutina se captura y se anota como aviso en el registro.
Si dudas de que la instancia esté bien conectada, revisa antes qué hace el botón Test Connection.
Cómo te ayuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 y 20 y desarrolla conectores e integraciones a medida. Mirakl Connector está publicado en Odoo Apps para esas cuatro versiones: tienes su ficha y la página del módulo.
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_mirakl_connector 20.0 (aa05e537): views/mirakl_order_views.xml
- Código del módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_order.py
- Código del módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/stock_picking.py
- Código del módulo: flexigobe_mirakl_connector 20.0 (aa05e537): models/mirakl_instance.py
- apps.odoo.com/apps/modules/20.0/flexigobe_mirakl_connector
- flexigotech.com/en/services.html
