Saltar al contenido
este gráfico
Por ejemplo / e.g. 05

SAP Woo Suite: SAP Business One y WooCommerce, en un plugin

Un plugin de WordPress para conectar WooCommerce con SAP Business One, con una versión gratuita en el directorio oficial de WordPress.

Cliente
Replanta
Año
2025
Qué hice
plugin
Con
WordPress, WooCommerce, SAP Business One, PHP
Web
replanta.net/conector-sap-woocommerce
Captura de https://replanta.net/conector-sap-woocommerce/

Cada pedido que entra en la tienda tiene que estar en SAP, y cada precio que cambia en SAP tiene que verse en la web. Lo normal es hacerlo a mano, con exportaciones, o con un middleware que se rompe en cada actualización. Me cansé de verlo y lo convertí en un plugin.

Lo que hice

Todo: diseño, desarrollo, documentación y soporte de SAP Woo Suite. Habla directamente con la Service Layer de SAP Business One, sin nada en medio: pedidos, clientes, stock y precios, con un panel para ver qué se ha enviado, qué ha fallado y por qué.

Va por la versión 2.22, es compatible con HPOS, tiene 14 puntos de extensión para los casos raros de cada cliente y también recoge los pedidos de TikTok Shop, Amazon y Miravia. La versión ligera y gratuita, Replanta Connector, está en el directorio oficial de WordPress, y la documentación en replantadev.github.io/sapwoo.

La historia

Aquí comento cómo desarrollé una solución completa de sincronización entre WooCommerce y SAP Business One con gestión regional avanzada

Todo Empezó con una Necesidad Real

Cuando mi cliente me pidió "algo para conectar la tienda con SAP", pensé que sería un proyecto sencillo. Error. Lo que parecía una simple transferencia de datos se convirtió en uno de los desarrollos más complejos y gratificantes de mi carrera como programador.

El problema real surgió cuando descubrí que necesitaban vender en diferentes países con normativas fiscales completamente distintas. No era solo "pasar un pedido a SAP", sino gestionar automáticamente clientes específicos por región, aplicar tarifas diferentes según el destino, y manejar el IVA de forma inteligente dependiendo de si era una venta nacional, una exportación a Canarias, o una operación intracomunitaria a Portugal.

Ahí me di cuenta de que los plugins existentes en el mercado eran demasiado básicos. Necesitaba crear algo desde cero que realmente entendiera la complejidad del negocio internacional.

¿Por Qué el Service Layer Cambió Todo?

La primera decisión técnica crucial fue apostar por el Service Layer de SAP Business One en lugar de las APIs más antiguas. Esta decisión marcó la diferencia entre tener un plugin más del montón y crear una solución profesional.

Lo que el Service Layer me permitió hacer:

  • Conexiones RESTful modernas: Nada de protocolos obsoletos, todo con HTTP/HTTPS estándar
  • Autenticación por sesiones: Sistema seguro que maneja automáticamente tokens y renovaciones
  • Respuestas JSON estructuradas: Datos limpios y fáciles de procesar
  • Compatibilidad garantizada con las versiones futuras de SAP

Pero lo más importante: me permitió crear un sistema que no solo envía datos, sino que conversa con SAP. El plugin puede crear direcciones de envío automáticamente, validar stock en tiempo real, y manejar errores de forma inteligente.

// Ejemplo real de como gestiono la conexión
$client = new SAPWC_API_Client($connection_url);
$login = $client->login($user, $password, $database, $ssl);
if ($login['success']) {
// Ahora puedo hacer cualquier operación: crear pedidos,
// consultar stock, gestionar clientes...
$result = $client->post('Orders', $payload);
}

El Panel de Sincronización: Donde la Magia Ocurre

Una de las partes de las que más orgulloso estoy es el panel de sincronización. No es solo una página de configuración más; es el centro de control donde se define cómo se comporta toda la integración.

Configuración Regional Inteligente

Aquí es donde puedes definir qué cliente SAP usar para cada región, qué tarifa aplicar, y cómo manejar los impuestos. Todo visual, todo intuitivo:

  • Clientes por región: Configuras un cliente SAP diferente para península, Canarias, Portugal... cada uno con su configuración fiscal específica
  • Tarifas independientes: Cada región puede tener su propia lista de precios SAP
  • Gestión de IVA: Checkboxes simples para decidir si incluir IVA o marcarlo como exento según la legislación

Sincronización de Stock en Tiempo Real

El panel permite configurar qué almacenes de SAP sincronizar con WooCommerce. Seleccionas los almacenes, defines la frecuencia, y el plugin se encarga de mantener el stock actualizado automáticamente.

Modo B2B vs Ecommerce

Una funcionalidad que me enorgullece especialmente: el plugin puede trabajar en dos modos completamente diferentes:

  • Modo Ecommerce: Usa clientes genéricos de SAP y gestiona las direcciones automáticamente
  • Modo B2B: Cada usuario de WordPress tiene su código de cliente específico en SAP

Las Funcionalidades que Marcan la Diferencia

Gestión Automática de Direcciones

Cuando llega un pedido nuevo, el plugin no solo lo envía a SAP. Automáticamente:

  1. Crea una nueva dirección de envío en el cliente SAP correspondiente
  2. Le asigna un ID único: WEB-{número_pedido}
  3. Incluye ese ID en los comentarios del pedido para trazabilidad total

Esto significa que en SAP tienes un historial completo de todas las direcciones de envío de tus clientes web.

Detección Regional Automática

El sistema es lo suficientemente inteligente para detectar automáticamente la región del cliente basándose en su código postal y país. Una vez detectada la región, aplica automáticamente:

  • El cliente SAP correcto
  • La tarifa de precios apropiada
  • La configuración fiscal correspondiente

Sistema de Logs Detallado

Cada transacción queda registrada con un nivel de detalle que permite rastrear cualquier problema:

[REGIONAL_DEBUG] Pedido: 7108 | Región: Portugal | Cliente: Cliente_PT | Tarifa: 5
[BUILD_ITEMS_VAT] SKU: 12345 | Tarifa: 5 | Incluir IVA: SÍ
[BP PATCH] Dirección WEB-7108 añadida correctamente

Manejo de Promociones Complejas

Una de las funcionalidades más complejas que desarrollé es el soporte para promociones tipo "4+2" (compra 4 y llévate 6). El plugin:

  • Detecta automáticamente cuando un producto es promocional
  • Separa las unidades pagadas de las regaladas
  • Crea líneas diferentes en SAP para cada tipo
  • Aplica el código de producto correcto para productos sin cargo

Los Retos Técnicos que me Hicieron Crecer

Gestión de Errores Inteligente

Una cosa es enviar datos a SAP cuando todo funciona bien. Otra muy distinta es manejar errores de forma elegante. Desarrollé un sistema de reintentos automáticos que:

  • Detecta errores temporales vs errores permanentes
  • Reintenta automáticamente tras fallos de conexión
  • Almacena pedidos fallidos para revisión manual
  • Envía notificaciones cuando algo necesita atención humana

Sincronización Sin Duplicados

Un problema típico en las integraciones es enviar el mismo pedido varias veces. Mi solución incluye:

  • Sistema de marcas que evita duplicados
  • Validación de estados antes del envío
  • Recuperación automática tras interrupciones

Actualizaciones Automáticas

Integré un sistema de actualizaciones automáticas desde GitHub que permite desplegar nuevas versiones sin intervención manual. Esto es crucial para mantener todos los sitios actualizados con las últimas mejoras y correcciones.

El Panel de Control: Visibilidad Total

Desarrollé un panel de administración que da visibilidad completa sobre el estado de la integración:

Estado en Tiempo Real

En la admin bar de WordPress se muestra constantemente:

  • Estado de la conexión con SAP (verde/rojo)
  • Última sincronización realizada
  • Próxima ejecución automática programada
  • Acceso rápido para forzar una sincronización manual

Gestión de Pedidos Fallidos

Una página dedicada donde se pueden revisar y reenviar manualmente los pedidos que no se procesaron automáticamente, con información detallada sobre el motivo del fallo.

Tabla de Últimos Pedidos

Una vista consolidada que muestra los últimos pedidos enviados a SAP, permitiendo verificar rápidamente que todo está funcionando correctamente.

Lo que Aprendí en el Proceso

Este proyecto me enseñó que desarrollar una integración real va mucho más allá de conocer APIs. Necesitas entender:

  • Procesos de negocio: Cómo funciona realmente una empresa day-to-day
  • Legislación fiscal: Diferencias entre IVA nacional, exenciones, e IVA intracomunitario
  • Gestión de errores: Qué puede fallar y cómo recuperarse elegantemente
  • Experiencia de usuario: Hacer que algo complejo se sienta simple

Pero lo más valioso fue entender que una buena integración debe ser invisible para el usuario final. Si funciona bien, nadie se da cuenta de que está ahí. Solo cuando falla te das cuenta de lo importante que es.

El Resultado: Más que un Plugin

Después de más de 80 versiones iterativas y meses de refinamiento, SAP Woo Sync se ha convertido en una solución integral que gestiona automáticamente:

  • Sincronización bidireccional de pedidos y stock
  • Gestión automática de clientes por región
  • Aplicación inteligente de tarifas y configuraciones fiscales
  • Manejo de promociones complejas
  • Trazabilidad completa de direcciones de envío
  • Sistema robusto de recuperación ante errores

El código fuente está disponible en GitHub, y aunque es un proyecto comercial, me enorgullece mantener una arquitectura limpia y documentada que otros desarrolladores puedan entender y extender.

Reflexión Final

SAP Woo Sync representa todo lo que me gusta del desarrollo de software: resolver problemas reales de forma elegante. No es el plugin más flashy del mercado, pero hace su trabajo de forma silenciosa y eficiente, permitiendo que los negocios crezcan sin preocuparse por la sincronización entre sus sistemas.

Cada línea de código fue escrita pensando en que alguien, en algún lugar, podría depender de que funcionara correctamente. Esa responsabilidad es lo que convierte la programación en algo más que escribir código: es crear herramientas que mejoran la vida de las personas.

Para más información:

sap woocommerce integrador
SAP BUSINESS ONE WOOCOMMERCE PLUGIN
Panel de control: pedidos, facturación y estado de la sincronización.
Panel de control: pedidos, facturación y estado de la sincronización.
Pedidos sincronizados con SAP Business One.
Pedidos sincronizados con SAP Business One.
Stock y precios, de SAP a la tienda.
Stock y precios, de SAP a la tienda.
Configuración del plugin.
Configuración del plugin.
Registros y diagnóstico de cada sincronización.
Registros y diagnóstico de cada sincronización.

Por ejemplo, tú.

Cuéntame en dos líneas qué tienes en la cabeza. Te contesto yo, en persona, en menos de un día laborable.

Escríbeme info@estegrafico.com

Cuéntame tu proyecto