Skip to content

Releases: slemos/woo2odoo

v1.6.1 — la cancelación ahora sí ocurre

Choose a tag to compare

@slemos slemos released this 16 Sep 21:53

Corrige que el sale.order no llegaba a cancelarse y que el éxito se determinaba por valores de retorno poco fiables. Detectado probando 1.6.0 contra producción.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nk5phMZTJJ4taV9G8wWHh7

v1.6.0 — cancelación propagada a Odoo

Choose a tag to compare

@slemos slemos released this 16 Sep 21:48

Propaga la cancelación de un pedido WooCommerce a Odoo: cancela el sale.order y, de forma conservadora, solo los hijos en borrador. Una boleta ya contabilizada nunca se cancela automáticamente.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Nk5phMZTJJ4taV9G8wWHh7

v1.5.1 — Fix compatibilidad HPOS (WC 10.7+)

Choose a tag to compare

@slemos slemos released this 06 Jul 19:31

Patch de compatibilidad para WooCommerce 10.7+, que deshabilita sync-on-read por defecto con HPOS activo.

Fixed

  • HPOS: get_post_meta()wc_get_order()->get_meta() en create_invoice_for_so(). Con sync-on-read deshabilitado, leer _billing_invoice_type vía get_post_meta() podía retornar un valor stale o vacío si el dato fue escrito vía WC CRUD (que almacena en wc_orders_meta, no en wp_postmeta). La lectura ahora va directo al layer HPOS. Afecta a todos los pedidos en los que el tipo de documento (Boleta/Factura) se determina al crear la factura en Odoo.

Changed

  • Eliminada función create_invoice() (código muerto confirmado — sin callers en el codebase; funcionalidad equivalente existe en create_invoice_for_so() desde v1.4.0).

Changelog completo: CHANGELOG.md

v1.5.0 — BACS payment sync + errores Odoo en notas de pedido

Choose a tag to compare

@slemos slemos released this 06 Jul 18:50

Desplegado en producción (ARM) via wp plugin install --force.

Added

  • Sincronización de pago BACS a Odoo: cuando un pedido BACS pasa a processing, se crea el pago en Odoo confirmando el SO si está en borrador y se vincula la factura emitida.
  • Errores de sync superficiados como notas de pedido WC: los errores de Odoo quedan registrados como notas internas del pedido con el mensaje específico (antes fallaban silenciosamente).
  • Nota cuando la factura se sincroniza pero el método de pago es desconocido: visibilidad para métodos de pago no mapeados.
  • Suite PHPUnit portable (wp-env): tests de integración corren localmente sin credenciales de producción. CI GitHub Actions integrado.

Fixed

  • El pago BACS no se creaba si el SO estaba en borrador al momento del processing — ahora se confirma el SO primero.
  • get_customer_data(): el error de cliente se asignaba después del guard de email, ocultando el error real en los logs.
  • process_order_action(): eliminada nota de error genérica que duplicaba mensajes.

Changelog completo: CHANGELOG.md

v1.4.0 — Tab "Estado Odoo", sync en background y backfill

Choose a tag to compare

@slemos slemos released this 06 Jul 00:35
dfdf388

Primer GitHub Release del plugin (inicio del workflow SemVer + Releases). Desplegado en producción (ARM).

Added

  • Tab "Estado Odoo" en la configuración: tabla de pedidos con su meta de sync (Pedido, Monto, Sale Order, Boleta, Pago, Estado) con enlaces directos a Odoo, filtros con contadores y paginación. Lee solo meta (no consulta Odoo al renderizar). Excluye reembolsos.
  • Sincronización por fila (AJAX, actualiza la fila sin recargar) para reintentos puntuales.
  • Selección + sync en background: checkboxes + "seleccionar todos" y botón "Sincronizar seleccionados" que encola cada pedido en Action Scheduler (grupo woo2odoo) y responde al instante. La cola procesa en background sin bloquear ni límites de timeout.
  • Aviso global en el admin cuando hay pedidos con error de sync: conteo + enlace directo al tab filtrado. Descartable 12 h por usuario.
  • Comando wp woo2odoo backfill: vincula pedidos antiguos a su Sale Order + Boleta ya existentes en Odoo (búsqueda por origin) marcándolos synced sin crear pago — para pedidos conciliados manualmente. Flags --before, --wc-status, --limit, --dry-run, --missing-invoice.

Contexto (fixes previos incluidos, 1.3.1–1.3.3)

  • Caché de search_read() ahora opt-in (resuelve el bug crítico de Sale Orders fantasma servidas desde Redis).
  • Pre-flight de cantidades <= 0 + captura de \Throwable (evita SO huérfanas por DivisionByZeroError).
  • format_rut() preserva el dígito verificador K.
  • Errores reales de Odoo propagados al meta/nota del pedido (antes "Customer data unavailable" genérico).
  • Guard de sync vincula SO/boleta/pago existentes en vez de bloquear.

Changelog completo: CHANGELOG.md