La integración con WooCommerce permite conectar tu tienda online con BikeCRM para sincronizar productos, clientes y pedidos de forma automática. Gestiona todo desde un solo lugar y mantén tu inventario actualizado en ambas plataformas.
WooCommerce es una funcionalidad PLUS y la activa el equipo comercial de BikeCRM al contratar el plan (o como excepción manual). Si tu negocio aún no la tiene activa, contacta con soporte. El resto de la configuración la haces tú desde la app.
Abre la página de configuración
En el menú lateral, dentro de la sección Tienda, encontrarás la entrada WooCommerce. Si tu negocio no tiene aún WooCommerce activado, verás una insignia PLUS y un mensaje explicando cómo activarlo.
URL y credenciales de la tienda
Rellena los campos del formulario:
URL de la tienda — la URL completa de tu WooCommerce (por ejemplo, https://mitienda.com/).
Usuario WordPress — tu nombre de usuario de WordPress.
Application password — sigue las instrucciones de generación más abajo; no es tu contraseña de WordPress.
Webhook secret — puedes dejarlo vacío: si no pones nada, BikeCRM genera uno y se lo pone él mismo a los webhooks de tu tienda. Solo necesitas escribir aquí un valor si prefieres elegirlo tú (junto al campo tienes un botón ✨ que genera uno fuerte en tu navegador). El valor solo viaja a BikeCRM cuando pulses Guardar.
Más abajo en la misma página encontrarás las opciones de IVA y facturación (paso 5) y un editor JSON para configuración avanzada. Rellena primero los campos de conexión y pulsa Guardar. Puedes acceder directamente a la página en https://bikecrm.app/integrations/woocommerce.
Los webhooks se configuran solos
Los webhooks son los avisos que WooCommerce envía a BikeCRM cuando algo cambia en la
tienda (una venta, un cambio de precio). Ya no tienes que crearlos a mano: cuando
pulsas Probar conexión y el test sale verde, BikeCRM crea en tu tienda los cuatro
que necesita — Producto actualizado, Producto eliminado, Pedido creado y
Pedido actualizado — activos, con la URL correcta y firmados con un secreto que
genera él mismo.
Debajo del resultado del test verás el resumen: Avisos en tiempo real configurados
(n/n). El total depende de lo que tengas activado en Qué se sincroniza: con todo
activado son 4/4, y si por ejemplo desactivas los pedidos, el total baja porque
BikeCRM ya no pide a la tienda los avisos de pedidos. Lo importante es que los dos
números coincidan.
Si quieres verlos, están en tu panel de WooCommerce, en Ajustes > Avanzado >
Webhooks. Cada uno tiene su propio Log de entrega, útil si algo falla: ahí ves
el código que devolvió BikeCRM (401 = el secreto no coincide, 404 = la URL no
corresponde a tu negocio, 5xx = BikeCRM está caído).
Configura IVA y facturación
En la misma página, activa según corresponda:
Los precios en WooCommerce incluyen IVA — habitual en tiendas B2C en España.
Generar facturas desde BikeCRM para los pedidos online — si quieres que cada pedido WooCommerce genere automáticamente una factura formal en BikeCRM (con su numeración, VeriFactu, etc).
Enviar facturas por email automáticamente al cliente — si además quieres que la factura llegue al comprador automáticamente.
Sincronización inicial
Al final de la página tienes tres botones: Sincronizar productos, Sincronizar clientes, Sincronizar pedidos. Lánzalos una vez para hacer la importación inicial. A partir de ahí los webhooks mantendrán todo al día.
Lánzalos en este orden (los pedidos referencian productos y clientes; importarlos primero crea registros con datos provisionales que después tienen que reconciliarse):
Sincronizar productos — segundos para tiendas pequeñas, minutos para catálogos grandes con muchas variaciones. El botón se queda desactivado mientras se procesa; cuando vuelve a estar activo, ha terminado.
Sincronizar clientes — suele ser rápido salvo que tengas miles de clientes registrados.
Sincronizar pedidos — importa los pedidos históricos no cancelados/borrador. Si ves errores, revisa el apartado de solución de problemas más abajo, no es necesario contactar con soporte.
Antes de dar la integración por terminada, haz estas comprobaciones — son lo que cazaría el 90 % de los problemas de configuración:
Conteo de productos coincide
Después de la sincronización inicial, abre la lista de productos en BikeCRM y compara el conteo con el de WooCommerce. Si tu tienda tiene productos variables, recuerda que cada variación cuenta como un producto en BikeCRM (una camiseta con 4 tallas → 4 productos), así que el número en BikeCRM puede ser mayor.
El precio cambia en tiempo real
En WooCommerce, cambia el precio de un producto cualquiera y guárdalo. En menos de 30 segundos debería actualizarse en BikeCRM. Si no se actualiza, vuelve a pulsar Probar conexión (reconfigura los webhooks) y revisa el log de entrega del webhook Producto actualizado en WooCommerce.
Crea un pedido de prueba en WooCommerce
En tu tienda online (o desde el panel de WooCommerce > Pedidos > Añadir nuevo), crea un pedido con un producto barato. Márcalo como pagado. En menos de 30 segundos:
El pedido aparece en BikeCRM con el icono WOO en la lista de pedidos.
El cliente queda asociado correctamente (búscalo en clientes por su email).
El total del pedido coincide exactamente con el de WooCommerce (incluyendo envío y cargos extra).
El stock del producto bajó en ambos lados una sola vez (no doble descuento).
Si activaste facturación gestionada por BikeCRM
El pedido pagado debería tener una factura asociada con la siguiente numeración de tu serie principal. Si tienes VeriFactu activado, comprueba que la factura está sellada y que aparece una nota interna en el pedido de WooCommerce avisando del sellado.
Devolución parcial (opcional pero recomendado)
Desde el pedido en WooCommerce, emite una devolución parcial de una línea. En BikeCRM aparecerá un nuevo pedido de tipo abono (qty negativa), un pago negativo y, si había factura, una factura rectificativa serie 10. Si esto funciona, la integración está completamente operativa.
En la página de configuración, la sección Qué se sincroniza decide qué comparten
BikeCRM y tu tienda. Por defecto todo está activado en ambos sentidos, que es lo que
quiere la mayoría de tiendas.
Ajuste
Opciones
Para qué sirve
Catálogo de productos
En ambos sentidos · Solo WooCommerce → BikeCRM · Solo BikeCRM → WooCommerce · No sincronizar
Nombre, precio, descripción e imágenes
Mantener el stock al día en WooCommerce
Sí / No
Las unidades disponibles
Importar los pedidos de WooCommerce
Sí / No
Las ventas de la tienda online
Importar los clientes de WooCommerce
Sí / No
La importación masiva de clientes
Algunas combinaciones útiles:
La tienda manda en las fichas, BikeCRM en el stock. Pon el catálogo en Solo
WooCommerce → BikeCRM y deja activado Mantener el stock al día. Tu equipo de tienda
online sigue escribiendo los textos y eligiendo las fotos, y BikeCRM nunca se los toca;
pero las unidades que vendes en el mostrador, las que gastas en reparaciones y las que
recibes de proveedor siguen bajando y subiendo en la web.
BikeCRM manda en todo. Déjalo En ambos sentidos: es lo normal si das de alta los
productos en BikeCRM.
Solo quiero que entren los pedidos. Pon el catálogo en No sincronizar y desactiva
el stock. Las ventas de la web seguirán entrando en BikeCRM para facturarlas.
Un producto simple de WooCommerce se corresponde con un producto en BikeCRM. Se sincronizan nombre, precios (venta y recomendado), stock, SKU, descripción e imagen.
Un producto variable (por ejemplo, una camiseta con tallas S, M, L) se descompone en BikeCRM:
Se crea un producto padre con el nombre del producto
Cada variación se convierte en un producto individual (ej: “Camiseta - Talla M”)
Cada variación tiene su propio stock, precio y SKU
Cuando modificas un producto en BikeCRM, los cambios se envían automáticamente a WooCommerce:
Precio de venta y precio recomendado (PVP)
Stock (se actualiza con cada venta, compra o ajuste)
Nombre y SKU
Estado: publicado o en borrador, controlado desde el selector WooCommerce de la ficha del producto
En la ficha de cada producto encontrarás el selector WooCommerce con tres opciones:
A la venta en la tienda online — el producto está publicado y a la venta en tu WooCommerce
En la tienda online como borrador (no a la venta) — el producto existe en la tienda pero como borrador: los clientes no lo ven, pero el stock y el precio se siguen sincronizando. Ideal para dejar de vender online sin dejar de venderlo en la tienda física. Si más adelante lo vuelves a poner a la venta, se reutiliza el mismo producto de WooCommerce (sin duplicados)
No sincronizado con la tienda online — el producto no existe en WooCommerce ni se sincroniza
En la lista de productos (Tienda → Productos) tienes además un filtro WooCommerce para ver solo los productos a la venta online, los que están en borrador o los no sincronizados.
BikeCRM es el dueño del stock. El stock físico de tu tienda/taller es la fuente de verdad, y el flujo es siempre en una dirección:
BikeCRM → WooCommerce: cada venta en el TPV, compra a proveedor o ajuste de inventario actualiza el stock en tu tienda online automáticamente
Las ventas online descuentan stock en BikeCRM a través del pedido (el pedido de WooCommerce se importa como venta y descuenta el stock, que a su vez se reenvía a la tienda)
La primera vez que un producto se importa desde WooCommerce, BikeCRM adopta el stock que tenga la tienda (todavía no hay verdad local)
Lo que no ocurre (a propósito):
Los avisos de producto de WooCommerce nunca sobrescriben el stock de un producto ya sincronizado. Antes, un aviso “atrasado” (generado antes de una venta en el TPV) podía devolver al stock una unidad ya vendida — el stock “subía solo” 1 unidad
Editar el stock a mano en el administrador de WooCommerce no se importa a BikeCRM (y quedará sobrescrito por el siguiente cambio de stock en BikeCRM). Haz los ajustes de stock siempre desde BikeCRM: quedan registrados en los movimientos de stock y se reflejan en la tienda
Si tienes WooCommerce y Shopify conectados a la vez, una venta en una de las tiendas descuenta el stock en BikeCRM y lo envía a la otra, para que no vendas dos veces la misma unidad. BikeCRM nunca devuelve el stock a la tienda donde se hizo la venta (esa ya lo ha descontado por su cuenta).
Cliente: se busca o crea automáticamente. Prioridad: ID de WooCommerce → email → teléfono. Si se encuentra por email o teléfono, BikeCRM guarda el ID de WooCommerce en tu ficha de cliente para que futuros pedidos se vinculen al instante.
Productos: cada línea del pedido se vincula al producto correspondiente en BikeCRM.
Envío: el coste de envío entra como una línea adicional etiquetada Envío (<nombre del método>) — por ejemplo, Envío (Flat Rate) — con su IVA correspondiente, de forma que el total de BikeCRM cuadra exactamente con el de WooCommerce.
Cargos extra: cualquier fee definido en WooCommerce (servicio, recargo de pago, etc.) entra también como línea adicional con su nombre original.
IVA por línea: se extrae el tipo de IVA real de cada línea desde los datos fiscales del pedido (no se asume el IVA por defecto del negocio).
Recargo de equivalencia: si el cliente está marcado como sujeto a RE, se aplica automáticamente el recargo correcto (5,2 % / 1,4 % / 0,5 %) a cada línea.
Estado de WooCommerce: se conserva tal cual (ej: completed, processing, o estados personalizados como fedex-delivered).
Método de pago: se registra el método utilizado en la tienda online.
Pago: si el pedido está pagado, se crea automáticamente el registro de pago con la fecha original.
Cuando se emite una devolución en WooCommerce, BikeCRM la importa automáticamente:
Se crea un pago negativo sobre el pedido original con el importe devuelto, de forma que el estado de pago refleja lo que ya se ha reembolsado.
El stock se restaura en BikeCRM (no se reenvía a WooCommerce, ya que WC gestiona su propio stock).
Si el pedido tenía factura, BikeCRM emite también la correspondiente factura rectificativa (abono). Ver Facturas rectificativas para el detalle del flujo y la numeración.
Se admiten devoluciones parciales y múltiples sobre un mismo pedido; cada una guarda el ID de la devolución de WooCommerce como clave de idempotencia para que los reenvíos del webhook no dupliquen.
Modificaciones del pedido tras la primera sincronización
Si modificas un pedido en WooCommerce después de que se haya sincronizado:
Cambio de estado (ej: processing → completed): se actualiza el campo de estado en BikeCRM, sin más cambios.
Edición de líneas en un pedido sin facturar: BikeCRM rehace las líneas en su sitio, manteniendo el mismo identificador de pedido.
Edición de líneas en un pedido ya facturado: BikeCRM emite automáticamente una factura rectificativa y crea un pedido nuevo con el contenido actualizado y su propia factura (ver Facturas rectificativas para el detalle). El pedido original queda marcado con el estado interno superseded-by-<id> apuntando al nuevo, para trazabilidad.
Esta sección describe el comportamiento específico de la facturación en pedidos que llegan desde WooCommerce. Para las reglas generales (modos de generación, numeración de series, VeriFactu, inmutabilidad, envío por email, etc.), consulta la página completa de Sistema de facturación.
Activa la opción Generar facturas desde BikeCRM para los pedidos online en la página de configuración de WooCommerce. A partir de ese momento:
Cada pedido pagado en WooCommerce genera una factura formal en BikeCRM, con la misma numeración que el resto de tus facturas (ver numeración).
Si tienes VeriFactu activado, la factura se firma y se incluye en la cadena de hashes, igual que una factura de TPV o de hoja de servicio.
La factura aparece junto al resto en Facturas y se puede imprimir, descargar o reenviar desde allí.
Para evitar conflictos, desactiva cualquier plugin de WooCommerce que también emita facturas: BikeCRM te avisa automáticamente si detecta uno instalado (ver Evitar doble facturación).
Deja la opción Generar facturas desde BikeCRM para los pedidos online desactivada. BikeCRM importa el pedido pero no genera ninguna factura para él:
El pedido aparece en Tickets de compra con su método de pago y estado de pago, pero sin número de factura.
La facturación legal recae en tu plugin de WooCommerce.
Tus facturas de tienda física (TPV, hojas de servicio) siguen funcionando con normalidad en BikeCRM — no se ven afectadas.
Este modo tiene sentido si llevas años con un flujo de facturación en WooCommerce y no quieres migrar, o si usas un plugin con integraciones específicas que BikeCRM aún no cubre.
Cuando BikeCRM gestiona la facturación, la factura se genera automáticamente al cumplirse estas tres condiciones:
El pedido llega desde WooCommerce (vía webhook o sincronización masiva).
El pedido está pagado (WooCommerce ha marcado date_paid). BikeCRM crea el registro de pago a la vez.
El modo de facturación de tu negocio está en automático o semiautomático (ver Modos de generación).
Si el pedido llega sin pagar (pending, on-hold), BikeCRM lo importa como ticket de compra pero no emite factura todavía. En cuanto WooCommerce marque el pedido como pagado y envíe el siguiente webhook, BikeCRM emitirá la factura.
Cuando haga falta rectificar una factura emitida para un pedido WooCommerce, BikeCRM lo hace automáticamente — el hecho que la dispare en WooCommerce genera la rectificativa correspondiente.
Hecho en WooCommerce
Reacción en BikeCRM
Devolución parcial de un pedido (refund)
Crea un abono con las líneas devueltas (qty negativa) vinculado a la factura original, serie 10, datos legales copiados. También registra el pago negativo y restaura el stock.
Devolución total
Mismo flujo pero cubriendo todas las líneas del pedido.
Varias devoluciones sobre el mismo pedido
Cada una genera su propio abono (se admiten múltiples rectificativas sobre una misma factura cuando el origen es WooCommerce). El ID de la devolución se guarda en el abono como clave de idempotencia — los reenvíos del webhook no la duplican.
Edición de líneas o totales del pedido ya facturado
Abono completo del pedido original + creación de un pedido nuevo con el contenido actualizado y su propia factura. El pedido antiguo queda marcado con estado interno indicando sustitución.
Cambio de estado a cancelled / refunded / failed
Si hay un refund en el webhook, se procesa como devolución (filas arriba). Si no, BikeCRM conserva el estado de WC en el pedido pero no emite abono automático — tendrás que emitirlo a mano desde la factura si procede.
Si además activas Enviar facturas por email automáticamente al cliente, la factura recién emitida se envía al email del comprador tal como aparece en los datos de facturación de WooCommerce. Ver Envío automático para los detalles.
Hay escenarios conocidos que siguen requiriendo intervención manual. Conviene tenerlos presentes:
Pedidos pendientes o fallidos: no generan factura ni movimiento (por diseño — no son ventas aún).
Modificación del importe o cliente de una factura emitida: no es posible. Si necesitas corregirla, emite una rectificativa desde BikeCRM (o edita el pedido en WooCommerce y deja que el flujo automático la cree por ti).
Migración de facturas históricas desde un plugin de WooCommerce a BikeCRM: la importación recrea los pedidos pero no rescata las facturas antiguas que emitió el plugin. Esas quedan fuera de la numeración de BikeCRM y fuera de la cadena de VeriFactu.
WooCommerce puede mostrar precios con IVA incluido o sin él. BikeCRM internamente trabaja con precios sin IVA y necesita saber cómo están configurados tus precios:
En la mayoría de los casos no hace falta configurar nada aquí. BikeCRM lee el tipo de IVA real de cada línea directamente desde los datos fiscales (tax_lines.rate_percent) que envía WooCommerce, así que un pedido con líneas al 21 %, 10 % y 4 % se importa correctamente sin configuración adicional.
El JSON woocommerce_config solo se usa como fallback cuando WooCommerce no incluye el porcentaje de IVA en los datos del pedido (configuraciones inusuales). Puedes editarlo en el campo del mismo nombre dentro de la página de configuración de WooCommerce:
{
"tax_rates": {
"1": 0.21,
"2": 0.10,
"3": 0.04
},
"default_vat": 0.21
}
Donde las claves ("1", "2", "3") son los IDs de los tipos impositivos en WooCommerce y default_vat es el tipo a aplicar cuando ninguno de los otros mecanismos resuelva.
Una vez configurados los webhooks, WooCommerce notifica a BikeCRM en cuanto algo cambia. Lo que ocurre en cada notificación depende del tipo:
Producto actualizado / eliminado — el producto se sincroniza inmediatamente en BikeCRM (precios, stock, nombre, estado de publicación).
Pedido creado — primera sincronización: crea el pedido completo en BikeCRM con todas sus líneas, envío, cargos, IVA por línea, pago y (opcional) factura.
Pedido actualizado — actualiza el estado del pedido, importa cualquier devolución nueva (ver sección de devoluciones más arriba) y, si las líneas o el total han cambiado en WooCommerce, rehace o sustituye el pedido en BikeCRM según corresponda.
Cuando pulsas el botón 🛜 Probar conexión en la página de configuración de WooCommerce, BikeCRM hace una llamada de prueba al API de tu tienda. Estos son los mensajes que pueden aparecer:
Mensaje
Qué significa
Cómo solucionarlo
✅ Conectado a …
Todo bien, sigue con la configuración
—
❌ Faltan datos
No has rellenado URL, usuario o application password
Vuelve al paso 3 y completa los tres campos
❌ La URL debe empezar por http:// o https://
El campo URL no tiene un esquema válido
Usa la URL completa de tu tienda, por ejemplo https://mitienda.com/
❌ No se pudo contactar con la tienda
DNS / red / certificado SSL inválido / tienda en localhost o tras un firewall
Comprueba que la URL es correcta y que la tienda es accesible desde internet (revisa los Prerequisitos al inicio)
❌ La tienda tardó demasiado en responder
Tu WordPress respondió pero tardó más de 15 segundos
Tu hosting puede estar saturado o un plugin pesado bloquea las peticiones REST
❌ Usuario o application password incorrectos
WordPress devolvió 401 Unauthorized
Genera una nueva application password (paso 3); recuerda que no es tu contraseña de WordPress y que el usuario debe tener rol Shop Manager o superior
❌ La URL responde pero no parece tener WooCommerce instalado
La tienda existe pero no tiene WooCommerce activo o el API REST está deshabilitado
Comprueba que WooCommerce está instalado y activo, y que el API REST no está bloqueado por un plugin de seguridad
❌ Error inesperado al contactar con la tienda
Cualquier otra respuesta no-200
Revisa el detalle del error en el mensaje; suele ser un plugin de seguridad bloqueando
En WooCommerce, ve a Ajustes > Avanzado > Webhooks. Comprueba que los webhooks están en estado Activo (no desactivado ni pausado).
Comprueba las credenciales
Asegúrate de que el usuario y la contraseña de aplicación son correctos y tienen permisos de lectura/escritura.
Revisa el estado del producto
Solo se sincronizan productos con estado Publicado en WooCommerce. Los borradores y productos privados no se importan.
Lanza una sincronización masiva
Si los webhooks han fallado, abre la página WooCommerce del menú lateral y pulsa Sincronizar productos para reimportar todo. No necesitas contactar con soporte.
Un producto aparece en WooCommerce pero no en BikeCRM
Al mover un producto a la papelera de WooCommerce, BikeCRM desactiva su sincronización automáticamente (mediante el webhook de producto eliminado): el producto pasa a “No sincronizado”, deja de enviarse stock y precio a la tienda, y en la lista de productos aparece con la marca de eliminado en WooCommerce. En BikeCRM lo puedes seguir vendiendo con normalidad.
Si restauras el producto desde la papelera de WooCommerce, BikeCRM lo vuelve a vincular automáticamente (por SKU) y la sincronización se reanuda
Si vacías la papelera (borrado definitivo), el producto queda desvinculado; para volver a venderlo online, cámbialo a “A la venta en la tienda online” y se creará de nuevo en la tienda
Un producto eliminado en WooCommerce sigue apareciendo