¿Sirve WooCommerce para B2B?
Muchas tiendas WooCommerce en España nacieron para el consumidor final y con el tiempo han ido sumando venta a empresas: clientes con tarifa propia, pago por transferencia a 30 días, un descuento colgado de un rol de usuario. Llega un momento en que alguien pregunta si hay que pasarse a Shopify Plus o a Adobe Commerce. A menudo no hace falta, siempre que WooCommerce reciba las piezas B2B que le faltan.
Soy Mariusz Szatkowski y desarrollo para WordPress desde 2006. Este trabajo lo hago yo: leo el código, configuro precios e integraciones y pruebo todo en staging. No tengo equipo ni subcontratas, así que el código que recibes lo he escrito yo. Si cambia el aspecto de la tienda, tú aportas el diseño y los wireframes y yo los implemento.
La venta a varios países de la UE con la ventanilla única OSS la trato en la revisión de WooCommerce frente a la normativa de la UE.
Cómo configurar precios B2B por cliente en WooCommerce
De serie, WooCommerce tiene precio normal y precio rebajado. Las tarifas por grupo, los descuentos por cantidad y los precios pactados hay que añadirlos. El camino depende de cuántas tarifas tienes de verdad.
| Situación | Basta un plugin | Hace falta código propio |
|---|---|---|
| Hasta tres grupos de clientes con descuento fijo | sí | no |
| Precios pactados distintos para cada cliente | no | sí |
| Descuentos por cantidad combinados con grupos y divisas | pocas veces | casi siempre |
| Precios leídos en directo del ERP | no | sí |
| Catálogo que solo ve un cliente | en parte | sí |
Los precios por cliente los guardo en una tabla propia, alimentada desde el ERP e indexada por cliente y artículo. Miles de precios en wp_postmeta ralentizan cualquier consulta de producto.
Solicitud de presupuesto en lugar de precio en el carrito
En la venta al por mayor, algunos artículos no tienen precio hasta que alguien lo calcula: cantidades por palé, fabricación a medida, portes. Para eso uso mi propio plugin, Quotlet de plogins.com. Añade un botón para incluir el producto en una solicitud, oculta precios, deja que los visitantes sin cuenta armen una lista y te envía la solicitud por correo. La versión gratuita está en el directorio de WordPress.org. Para descuentos por cantidad existe Tiers, de la misma familia.
Ocultar precios no saca las fichas de producto del buscador. Descripción, datos técnicos y fichas siguen visibles para Google, y el precio solo lo ve el cliente de empresa con sesión iniciada.
Integrar WooCommerce con Holded, Sage 50 y a3ERP
En las empresas de distribución españolas me encuentro sobre todo con Holded, Sage 50 y a3ERP. Cada uno expone los datos a su manera, así que primero compruebo qué API tiene tu instalación y qué permite.
Lo que suelo sincronizar:
- existencias, al momento o cada cierto intervalo,
- datos de cliente: NIF, direcciones de entrega, condiciones de pago, límite de crédito,
- pedidos con número de documento y estado de entrega,
- números de factura asignados por el ERP.
Las llamadas al ERP no van dentro del checkout. Cada pedido entra en una cola de Action Scheduler, la misma biblioteca con la que WooCommerce entrega los webhooks y WooCommerce Subscriptions cobra las renovaciones. Si el ERP está parado por mantenimiento, las tareas esperan y se ejecutan después. Cada tarea fallida queda en el registro con su error, así sabes qué pedido hay que revisar.
La factura la emite tu ERP o tu programa de facturación, no WooCommerce. Mi parte es que le llegue el pedido completo: NIF del comprador, dirección, líneas, tipos de IVA y forma de pago. Los NIF-IVA de clientes de otros países de la UE los compruebo en VIES al crear la cuenta.
Pedidos B2B recurrentes con WooCommerce Subscriptions
En la distribución, una suscripción suele ser el reparto mensual de consumibles o una licencia anual, más que un acceso premium. WooCommerce Subscriptions tiene dos modos de renovación. En el automático, la pasarela cobra sola y, si el pago falla, el sistema lo reintenta según unas reglas: por defecto, cinco intentos a lo largo de una semana. En el manual, el cliente recibe un pedido de renovación y paga con cualquier método activo en la tienda, transferencia incluida.
Los clientes que pagan por transferencia a 30 días quedan fuera de los reintentos automáticos. Para ellos configuro recordatorios y estados de forma que una renovación pendiente llegue a tu departamento de administración y la suscripción no caduque el primer día de retraso.
Aprobación de pedidos y límites de crédito
Ninguna de las dos cosas viene en WooCommerce. Si las necesitas, las desarrollo:
- aprobación de pedidos: un comprador llena el carrito, el pedido recibe un estado propio y espera a que alguien con permiso lo apruebe o lo rechace desde un enlace en el correo o desde el escritorio,
- límite de crédito: la cuenta muestra el crédito disponible, la tienda bloquea los pedidos que lo superan y la cifra se actualiza desde el ERP cuando se contabiliza un cobro,
- centros de coste: cada pedido puede asignarse a una delegación o a un proyecto.
¿Qué aporta HPOS a una tienda B2B?
HPOS (High-Performance Order Storage) saca los pedidos de wp_posts y wp_postmeta y los guarda en cuatro tablas propias: wc_orders, wc_order_addresses, wc_order_operational_data y wc_orders_meta. Desde WooCommerce 8.2, publicado en octubre de 2023, es el valor por defecto en las instalaciones nuevas. Las tiendas más antiguas a menudo siguen guardando los pedidos en la tabla de entradas, junto a productos y páginas.
Antes del cambio reviso cada plugin y todo el código propio. El código compatible carga los pedidos con wc_get_order(), cambia los metadatos a través del objeto pedido y guarda con save(), y el plugin declara su compatibilidad con FeaturesUtil::declare_compatibility. Las consultas directas a wp_postmeta las reescribo. Después activo el modo de compatibilidad, en el que WooCommerce mantiene sincronizadas las tablas antiguas y las nuevas, y solo dejo HPOS como fuente principal cuando ambas coinciden.
¿Basta optimizar la base de datos en vez de migrar?
Antes de pagar una migración conviene mirar la base de datos. En tiendas B2B suelo encontrar:
- una tabla
wp_optionsllena de filas de carga automática que dejaron plugins eliminados hace años, - metadatos de pedidos de extensiones que ya no existen,
- consultas de plugins y del tema que se ejecutan una vez por variación,
- pedidos que siguen en
wp_postmetaporque nadie activó HPOS.
Cambiar de plataforma tiene sentido cuando necesitas un marketplace con muchos vendedores, cuando el fabricante de tu ERP solo ofrece un conector certificado para otra plataforma o cuando una prueba de carga sobre una copia de la tienda demuestra que WooCommerce no aguanta con un servidor razonable. En ese caso dejo por escrito cuánto cuesta migrar los datos y qué pasa con tus URL.
Pruebas y entrega
Cada cambio lo pruebo en staging con una copia de los datos sin información personal:
- la compra para cada grupo de clientes, es decir, que cada cliente vea su precio y sus condiciones,
- un pedido justo en el límite de un descuento por cantidad,
- qué hace la tienda cuando el ERP no responde,
- pagos en modo de pruebas de la pasarela, por ejemplo Redsys o Stripe.
El código vive en un repositorio Git privado. Con cada cambio recibes una nota por escrito de qué ha cambiado y cómo comprobarlo. Trabajo por correo y con documentos, así las decisiones quedan registradas. Antes de acceder a una tienda con datos de clientes firmamos un contrato de encargo de tratamiento según el artículo 28 del RGPD. Facturo como empresa polaca con NIF-IVA europeo PL7393037445, con inversión del sujeto pasivo, y el contrato se rige por la ley polaca.
Servicios relacionados
- Desarrollador WooCommerce: desarrollo continuo en tu tienda.
- SEO, GEO y AEO para WordPress: cómo aparece tu tienda en buscadores y en respuestas de IA.
Describe tu tienda y lo que quieres cambiar en el formulario de contacto. Te responderé con preguntas sobre el alcance y después con un presupuesto y sus supuestos.




