FrancodesystemsFrancodesystems
EcommerceIntegración a medida

Cómo conectar Holded con PrestaShop

PrestaShop ↔ Holded sin depender del módulo oficial de pago.

Por Juan Cantón Rodríguez · Actualizado el

Solicitar esta integración
HoldedHolded
↔
PrestaShop

Tiempo de implantación · 7-12 días laborables

Diagnóstico

El problema

El módulo oficial PrestaShop-Holded es de pago, tiene funcionalidad limitada y se rompe con cada actualización mayor de PrestaShop. Para tiendas medianas y grandes acaba siendo un pasivo: pagas mensualidad y aun así tienes que reconciliar a mano los pedidos con descuentos por línea o devoluciones parciales. Los módulos gratuitos de la comunidad están abandonados o sólo cubren el caso base. Y si tienes multi-tienda en un solo PrestaShop, casi ningún módulo lo soporta limpio.

Propuesta

La solución

Sincronización vía API de pedidos, clientes y productos entre tu PrestaShop y Holded. Sin depender de módulos de pago, sin atarte a versiones específicas de PS, y sin tocar el código del front. El servicio corre fuera de PrestaShop, así que las actualizaciones de PS o de tu tema no rompen nada. Soporta multi-tienda, multi-idioma y multi-divisa de fábrica.

Scope

Qué automatizamos

  • Pedido PS → factura Holded con serie y forma de pago correctas
  • Cliente PS → contacto Holded con NIF validado
  • Catálogo y stock bidireccional (PS ↔ Holded) con resolución por timestamp
  • Devoluciones PS → facturas rectificativas Holded (parciales o totales)
  • Multi-tienda PrestaShop → series de facturación separadas en un único Holded
  • Multi-idioma: descripciones traducidas sincronizadas
  • Reglas de precios y descuentos por línea con su impacto fiscal correcto
  • Pedidos con Click & Collect / Store Pickup marcados con la tienda física
Para quién encaja

Casos de uso típicos

Perfiles en los que la integración Holded ↔ PrestaShop suele encajar y qué cambia con ella. Son ejemplos ilustrativos, no clientes concretos.

Ejemplo 01

Tienda PrestaShop con módulo oficial roto tras update

Antes: Tras actualizar PS, el módulo de Holded dejó de generar facturas y el equipo perdió 3 semanas migrando a mano.

Después: Servicio externo que no depende de la versión de PS. Las actualizaciones de PrestaShop ya no afectan a la facturación.

Ejemplo 02

Multi-tienda PS (3 dominios, 1 admin)

Antes: Las tres tiendas facturaban con la misma serie en Holded, mezclando reporting y dificultando análisis por canal.

Después: Cada shop_id mapeado a su serie y matriz de IVA. Reporting limpio por tienda en Holded sin recalcular nada.

Ejemplo 03

Tienda PS con devoluciones complejas (moda)

Antes: Devoluciones parciales de talla/color generaban líneas mal contabilizadas y el stock no se reajustaba correctamente.

Después: Cada refund parcial dispara rectificativa por línea exacta y ajuste de stock por SKU específico.

Antes / Después

Qué cambia exactamente

El día a día sin la integración y con ella, lado a lado.

✕

Sin la integración

  • Módulo oficial de pago que se rompe con cada update PS
  • Multi-tienda mezclando reporting en una sola serie
  • Devoluciones parciales reconciliadas a mano
  • Cero soporte para reglas de precio complejas
✓

Con la integración

  • Servicio externo: las actualizaciones de PS no afectan
  • Cada shop_id con su propia serie y matriz fiscal
  • Rectificativas automáticas por línea exacta
  • Reglas de precio reflejadas con su impacto fiscal correcto
Arquitectura

Cómo lo construimos

Conectamos vía el Webservice de PrestaShop (sin instalar módulos en PS) y la API REST de Holded. El servicio corre en Node sobre tu infra o la nuestra, idempotente y con cola persistida. Los cambios se sincronizan en lotes cada N minutos o en tiempo real según el evento. Para multi-tienda, mapeamos cada shop_id de PS a su serie correspondiente en Holded con su matriz fiscal específica. Todo el código está versionado en git, así que cualquier cambio de mapeo es auditable.

flow.ts
webhook prestashop.event
→ queue.enqueue(jobId)
→ worker.handle() // idempotente
→ holded.api.call() // retries con backoff
→ log.emit({ status: 'ok' })
Opciones

¿Qué conectores hay para Holded y PrestaShop?

Todas las opciones que existen, no solo la nuestra. Si tu caso lo resuelve un módulo de 50 €, cógelo: te lo decimos aquí antes de que nos escribas.

Oficial

Módulo oficial de Holded para PrestaShop

Descarga los pedidos válidos como tickets o facturas, sube el catálogo de PrestaShop a Holded y sincroniza stock, en un sentido o en los dos, contra el almacén que le indiques. Requiere PrestaShop 1.7.8 o superior y PHP 7.4.

Dónde se queda corto: Las facturas se crean en borrador, así que alguien tiene que aprobarlas. No devuelve productos de Holded hacia PrestaShop ni sincroniza pedidos en los dos sentidos. Cruza artículos por SKU y contactos por email y luego NIF.

De terceros

Conecta Software (Conecta HUB)

Catálogo completo (referencias, EAN, categorías, marcas, atributos e imágenes), pedidos, tarifas por grupo de cliente y stock multi-almacén, configurable sin programar.

Dónde se queda corto: No publica precio: va por demo comercial.

De terceros

APIcenter

Mapeo de campos configurable en ambos sentidos, para cuando la correspondencia entre tienda y ERP no es la de serie.

A medida

Integración a medida contra la API de Holded

Lo que queda fuera de los anteriores: tarifas por cliente, packs y kits, varios almacenes, TPV físico junto al online, o volumen alto con reintentos idempotentes.

Lo que nadie te cuenta

Qué se rompe al conectar Holded con PrestaShop

Los fallos que aparecen de verdad, casi siempre semanas después de dar la integración por buena.

  1. 01

    Las facturas se quedan en borrador

    El módulo oficial las crea en modo borrador. Si nadie entra a aprobarlas, el mes se cierra a medias y la cifra de ventas de Holded no se parece a la de PrestaShop.

  2. 02

    Manda el SKU, y no avisa cuando falla

    El cruce de artículos va por referencia. Un SKU que no coincide entre tienda y ERP no da error: simplemente deja de mover ese stock, y te enteras semanas después contando cajas.

  3. 03

    Contactos duplicados

    El cliente se busca primero por email y después por NIF. El mismo cliente comprando con dos correos son dos fichas en Holded, y sus facturas quedan repartidas entre las dos.

  4. 04

    Descuadres de céntimos

    Los redondeos de PrestaShop y de Holded no siempre coinciden. Sin la conciliación automática activada aparecen diferencias pequeñas que luego cuesta encontrar en el cierre.

  5. 05

    El conector genérico se queda corto al crecer

    Con tarifas por cliente, packs, varios almacenes o mucho volumen, el módulo estándar deja de dar y toca ir contra la API. Suele descubrirse tarde, ya en producción.

FAQ

Preguntas frecuentes

¿Cómo se conecta Holded con PrestaShop?

Se conecta vía el Webservice nativo de PrestaShop y la API REST de Holded, con un servicio externo que sincroniza pedidos, clientes, productos y stock entre ambos. No hace falta instalar el módulo oficial de pago ni tocar el código de tu tienda: integrar Holded con PrestaShop así evita que cada actualización de PS te rompa la facturación.

¿Funciona con multi-tienda de PrestaShop?

Sí. Cada tienda PS puede ir a una serie de facturación distinta en Holded con su propia matriz de IVA por país. Es la configuración estándar que hacemos para grupos con varias marcas en un mismo PrestaShop.

¿Hay que instalar algún módulo en PrestaShop?

No. Usamos el Webservice nativo de PS y la API REST de Holded desde un servicio externo. Tu PS sigue exactamente igual: ni overrides, ni hooks instalados.

¿Soporta versiones antiguas de PrestaShop?

Sí. Trabajamos con cualquier versión que tenga el Webservice activado (PS 1.6 en adelante). Las versiones más nuevas tienen mejor matrix de eventos pero la integración funciona en ambas.

¿Y los descuentos y cupones?

Cada regla de precio se refleja en la factura con su impacto fiscal calculado. Si el descuento es por línea, va por línea; si es de pedido completo, va como concepto separado con su IVA proporcional.

¿Cuánto tarda en estar funcionando?

Entre 7 y 12 días laborables para tiendas estándar. Multi-tienda o configuraciones complejas pueden añadir 3-5 días.

¿Y si nuestro PrestaShop está muy customizado?

No es problema. Como trabajamos vía Webservice estándar, las personalizaciones del front o el back de PS no nos afectan. Si has añadido campos custom, los mapeamos al modelo de Holded explícitamente.

Francodesystems

¿Hablamos de tu integración con PrestaShop?

Llamada de 30 minutos sin compromiso. Salimos con alcance y precio.