Una extranet B2B a medida es el área privada donde tus clientes de empresa compran con su tarifa negociada, repiten pedidos, consultan stock y plazos reales y descargan albaranes y facturas. Resuelve lo que un ecommerce estándar no modela: precio por contrato y aprobación interna. La hacemos en el desarrollo de aplicaciones de negocio.
Sin ella, cada pedido pasa por una persona: el cliente pide precio, comercial consulta el ERP y alguien teclea. Multiplícalo por cien clientes semanales y tienes un equipo contestando lo que la máquina contesta sola.
Al terminar sabrás si tu caso se resuelve con un ecommerce extendido o pide desarrollo propio. El lado de compras está en el portal donde operan tus proveedores.
Qué es una extranet B2B a medida
Es una aplicación web privada, con usuarios identificados por empresa, donde catálogo, precio, stock y plazos salen de las condiciones comerciales de ese cliente. No hay escaparate ni precio único: lo que ve cada quien sale de su contrato y su volumen.
Por qué un ecommerce estándar se queda corto
Las plataformas de ecommerce nacen para un comprador anónimo con precio público. El B2B rompe ese modelo: el precio va por cliente, el comprador no decide solo y se paga a plazo contra una cuenta de crédito.
Con extensiones de listas de precios se puede forzar y para catálogos pequeños aguanta. El problema llega cuando el precio depende de un contrato con vigencia, de escalados por volumen acumulado y de promociones que no se aplican sobre un artículo ya descontado.
Tarifas, descuentos y condiciones por cliente
La jerarquía de precio es el corazón de la extranet y se escribe antes de programar: precio de contrato, tarifa del cliente, escalado por volumen de la línea, promoción vigente y tarifa base. Lo importante no es el orden exacto, sino que esté decidido y lo aplique igual el ERP al facturar.
Si el portal calcula un precio y el ERP factura otro, el cliente lo ve en la primera factura. La condición comercial vive en el ERP, y eso lo describe la sincronización entre ERP y CRM y su reparto de autoridad.
Stock, plazos y pedidos recurrentes
Mostrar stock en B2B no es mostrar un número: hay reserva de otros pedidos, almacén preferente y fecha de la próxima partida. Un cliente de empresa prefiere una fecha concreta a un "disponible" que llega tarde, y ese cálculo lo cubre la gestión de stock con varios almacenes.
La repetición es donde se paga sola: repetir el pedido anterior, listas guardadas y pedidos programados.
Usuarios, roles y límites de gasto dentro del cliente
- Comprador: ve catálogo y tarifa, monta el pedido y lo envía bajo su tope.
- Comprador con tope: por encima de su importe el pedido espera aprobación.
- Aprobador: valida los pedidos de su centro, sin modificar las líneas.
- Administración: no compra, accede a albaranes, facturas y estado de cuenta.
- Responsable de cuenta: administra los usuarios de su empresa y sus topes.
Se parece a la cadena de validación de una compra interna, con una diferencia: la aprobación ocurre dentro del cliente y tú recibes el pedido ya aprobado.
Cuándo Basta un Ecommerce con Extensiones y Cuándo Hace Falta Desarrollo
- Basta con extensiones: pocas listas de precios, descuento plano, un almacén, un usuario por cliente y catálogo estable sin vigencias.
- Hace falta desarrollo: precio por contrato con fechas, escalados por volumen acumulado, varios almacenes con reserva, aprobación dentro del cliente, estado de cuenta contra el ERP o intercambio EDI con las centrales de tus clientes.
- Señal de aviso: si tres extensiones de pago sostienen la lógica de precio, ya pagas un desarrollo sin su control.
La decisión de fondo está en cuándo conviene software a medida frente a una herramienta SaaS.
El Real Decreto 238/2026 obliga al destinatario a comunicar al emisor la aceptación o rechazo de la factura y su pago efectivo completo en cuatro días hábiles, según el reglamento de factura electrónica B2B publicado en el BOE. Una extranet que ya muestra el estado de cada documento le da sitio.
CodeZone Pro Tip: resuelve el precio en una sola función con el orden de prioridad explícito, para que el portal y cualquier informe den el mismo importe que acabará en la factura.
-- Fuente unica del precio. Devuelve importe y motivo para soporte.
CREATE OR REPLACE FUNCTION precio_cliente(
p_cliente bigint, p_articulo bigint, p_cantidad numeric, p_fecha date
) RETURNS TABLE (precio numeric, origen text)
LANGUAGE plpgsql STABLE AS $$
BEGIN
-- Prioridad 1: precio pactado en contrato vigente a la fecha.
RETURN QUERY
SELECT c.precio, 'contrato'::text FROM contrato_precio c
WHERE c.cliente_id = p_cliente AND c.articulo_id = p_articulo
AND p_fecha BETWEEN c.desde AND COALESCE(c.hasta, 'infinity'::date)
LIMIT 1;
IF FOUND THEN RETURN; END IF;
-- Prioridad 2: tarifa asignada al cliente en su ficha.
RETURN QUERY
SELECT t.precio, 'tarifa'::text FROM tarifa_linea t
JOIN cliente cl ON cl.tarifa_id = t.tarifa_id
WHERE cl.id = p_cliente AND t.articulo_id = p_articulo
LIMIT 1;
IF FOUND THEN RETURN; END IF;
-- Prioridad 3: escalado. El tramo mas alto que cubra la cantidad.
RETURN QUERY
SELECT e.precio, 'volumen'::text FROM escalado e
WHERE e.articulo_id = p_articulo AND p_cantidad >= e.cantidad_minima
ORDER BY e.cantidad_minima DESC LIMIT 1;
IF FOUND THEN RETURN; END IF;
-- Prioridad 4: promocion vigente, nunca sobre un precio ya descontado.
RETURN QUERY
SELECT p.precio, 'promocion'::text FROM promocion p
WHERE p.articulo_id = p_articulo
AND p_fecha BETWEEN p.desde AND COALESCE(p.hasta, 'infinity'::date)
ORDER BY p.precio ASC LIMIT 1;
IF FOUND THEN RETURN; END IF;
RETURN QUERY SELECT a.precio_base, 'base'::text
FROM articulo a WHERE a.id = p_articulo;
END;
$$;Centralizarlo convierte el precio en un dato y no en una opinión: si comercial, el portal y el informe de márgenes llaman a la misma función, cambiar la política es editar una pieza.
Lo que Pasa Cuando el Portal y el ERP No Dan el Mismo Precio
El riesgo de una extranet B2B no es técnico, es comercial: un portal que enseña un precio y una factura que trae otro genera reclamaciones, abonos y una conversación incómoda con tu mejor cliente.
Monta primero la consulta, sin compra, y valida la jerarquía antes de que un error llegue a un pedido. El fondo lo tratan la conexión de sistemas empresariales en Madrid y la capa intermedia que no obliga a cambiar el ERP, y lo mismo desde el cliente final está en el portal de clientes privado con su control de acceso.
Escribe tu jerarquía de precio en una hoja: si no cabe en media página, tienes desarrollo a medida, y el coste está en cuánto cuesta una aplicación web a medida.
Si tus clientes de empresa siguen pidiendo por teléfono, vemos qué parte se puede abrir ya.