- El botón, en la ficha de producto y en el carrito
- El formulario de solicitud
- La lista y la ficha del presupuesto
- La propuesta y los totales
- El área del cliente, «Mis presupuestos»
- Después de la aceptación, en el carrito
- Los correos
- Ajustes, seguridad y datos
- ¿Hace falta una cuenta de cliente para solicitar un presupuesto?
- ¿Cómo se envía una propuesta a un cliente?
- ¿Qué ocurre cuando el cliente acepta?
- ¿Cuánto tiempo es válida una propuesta?
- ¿Qué ocurre si el cliente modifica su carrito después de aceptar?
- ¿Los precios negociados se aplican a pedidos posteriores?
- ¿Puedo enviar un PDF, crear un presupuesto en el back office o responder a una contraoferta?
- ¿Se pueden negociar los gastos de envío?
- ¿Por qué aparece un descuento de catálogo junto al precio negociado en el carrito?
- ¿Qué versiones de PrestaShop, temas y funcionamiento en multitienda están soportados?
Presupuestos B2B en PrestaShop: de la solicitud al carrito al precio negociado
Un cliente profesional no siempre compra al precio que aparece en la ficha. Pide presupuesto para unas pocas unidades y luego para una cantidad mucho mayor, y espera un precio acorde con el volumen. Cuando la solicitud llega por correo o por teléfono, el precio negociado se pierde en una bandeja de entrada, el pedido se vuelve a introducir a mano y el cliente acaba comprando, a veces, al precio de catálogo.
Presupuestos B2B instala ese recorrido en su tienda PrestaShop: el cliente solicita un presupuesto desde la ficha de producto o desde su carrito, usted responde con un precio negociado por línea y una fecha de validez, y la aceptación introduce los productos en su carrito a los precios negociados, listos para pedir. Esta guía explica cómo instalarlo, enviar la primera propuesta y seguir cada presupuesto hasta el pedido.
Puntos clave:
- Un botón «Solicitar presupuesto» en la ficha de producto (producto, combinación, cantidad) y en la página del carrito (todas las líneas), para los grupos de clientes que usted elija
- Una propuesta estructurada: precio unitario negociado sin impuestos por línea, fecha de validez, mensaje y totales sin impuestos y con impuestos calculados con las reglas fiscales de la tienda
- Una aceptación que termina en pedido: los productos pasan al carrito del cliente a los precios negociados, mediante los precios específicos nativos de PrestaShop
- Seguimiento completo: cinco estados, historial, lista filtrable, área «Mis presupuestos» y correos en el idioma del cliente
- Un módulo autónomo: sin servicio externo, compatible con PrestaShop 1.7.8, 8.0+ y 9.0+, temas Classic y Hummingbird
Descubrir el módulo y sus planes
Presentación
En una tienda B2B, la negociación forma parte de la venta. Un mayorista, un artesano, un productor o un distribuidor que compra para revender o para una obra quiere un precio para una cantidad concreta, y espera una respuesta clara: cuánto, para cuántas unidades y hasta cuándo.
Sin una herramienta específica, esa conversación vive fuera de la tienda. El comercial responde por correo, el precio no se guarda en ningún sitio, el pedido se crea en el back office con un precio modificado a mano y el cliente no encuentra la propuesta que aceptó. El módulo sustituye ese apaño por un recorrido en tres pasos —solicitud, propuesta, aceptación— con constancia en cada etapa.
Está pensado para tiendas que venden a profesionales y que ya negocian, aunque sea de vez en cuando: mayoristas, fabricantes, artesanos, distribuidores, proveedores de material o de consumibles. Para seguir un presupuesto hace falta una cuenta de cliente; las solicitudes de visitantes sin cuenta no están cubiertas.
El botón «Solicitar presupuesto» en la ficha de producto, con la combinación y la cantidad elegidas
Lo que ve el cliente
En la ficha de producto, el botón «Solicitar presupuesto» se coloca bajo «Añadir al carrito» y recoge la combinación y la cantidad seleccionadas. En la página del carrito, un botón equivalente convierte todas las líneas en una sola solicitud. El formulario muestra los productos, el precio de catálogo sin impuestos y la cantidad; el cliente puede ajustar la cantidad, indicar su empresa, su NIF-IVA y un mensaje, y enviar la solicitud.
Funcionalidades
El botón, en la ficha de producto y en el carrito
- Ficha de producto: el botón aparece en la zona de compra, bajo «Añadir al carrito». El enlace recoge el producto, la combinación y la cantidad mínima de la página; al hacer clic, el módulo completa la solicitud con los atributos y la cantidad realmente elegidos. El servidor obtiene la combinación a partir de los atributos y nunca acepta un precio enviado por el navegador. Sin JavaScript, el enlace sigue funcionando con la combinación que muestra la página.
- Página del carrito: un botón «Solicitar presupuesto para este carrito» envía todas las líneas como una sola solicitud. Las líneas se leen en el servidor desde el carrito del cliente; dos líneas del mismo producto y la misma combinación se suman. Los regalos de las reglas de carrito y los productos personalizados quedan fuera, y el formulario lo indica. Una solicitud admite como máximo 100 líneas.
- Quién ve el botón: el módulo debe estar activo y la ubicación correspondiente activada. El visitante debe pertenecer a un grupo autorizado: un cliente conectado por cualquiera de sus grupos, un visitante no conectado por el grupo «Visitante». El modo catálogo debe estar desactivado, el producto activo y disponible para pedido, sin personalización obligatoria, y el carrito debe contener al menos un producto que pueda presupuestarse.
- Visitante no conectado: se le envía a la página de acceso y vuelve después al formulario. La versión 1.0.0 exige una cuenta de cliente.
El formulario de solicitud
El formulario recuerda las líneas del presupuesto (imagen, nombre con la combinación, referencia, precio unitario actual sin impuestos, cantidad) y pide:
- la empresa, rellenada con la de la cuenta o la de la primera dirección, opcional, 128 caracteres como máximo;
- el NIF-IVA, rellenado desde la primera dirección que lo tenga, opcional, 32 caracteres como máximo, solo letras, cifras, espacios, puntos y guiones;
- un mensaje opcional de 5.000 caracteres como máximo, sin conservar HTML;
- el consentimiento, obligatorio, con su texto o el texto traducido por defecto.
El envío está protegido por un campo trampa invisible, una duración firmada (mínimo 3 segundos, máximo 2 horas), un límite de 10 solicitudes por cuenta y hora, una comprobación de duplicados en 2 minutos y un token CSRF. En una solicitud desde el carrito, las cantidades vienen del carrito y un enlace permite modificarlo antes. En una solicitud desde una ficha de producto, la cantidad se ajusta entre 1 y 999.999, sin bajar de la cantidad mínima del producto o de la combinación.
Tras el envío, el presupuesto recibe una referencia única (la letra Q seguida de ocho caracteres), el cliente recibe un acuse de recibo, su equipo una notificación y el cliente vuelve a su presupuesto con el mensaje «Su solicitud de presupuesto Q7XBLS6TC se ha enviado. Le responderemos por correo electrónico.» Los errores aparecen sobre el formulario y los campos conservan lo escrito.
La lista y la ficha del presupuesto
Presupuestos B2B > Presupuestos lista las solicitudes de la tienda con la referencia, el cliente, la empresa, la fecha de la solicitud, el estado, el total sin impuestos de la propuesta, la fecha de validez y el número de líneas. Cada columna se ordena; los filtros cubren el estado, el cliente, la empresa, un intervalo de fechas y una búsqueda por referencia. La lista muestra 50 presupuestos por página y ofrece Ver y Eliminar, también sobre una selección. Un empleado solo ve los presupuestos de las tiendas de su contexto.
La ficha del presupuesto reúne:
- la cabecera: referencia, estado, fecha de la solicitud, fecha de envío de la propuesta, fecha de respuesta, origen, idioma y tienda;
- el cliente: nombre con enlace a su ficha, correo, empresa, NIF-IVA y fecha del consentimiento;
- el mensaje del cliente, con sus saltos de línea;
- las líneas: producto con enlace, referencia, cantidad, precio de catálogo unitario sin impuestos en el momento de la solicitud, precio unitario negociado sin impuestos, tipo de impuesto y total sin impuestos de la línea;
- los totales sin impuestos, impuestos y con impuestos, recalculados en directo durante la escritura y con el botón Recalcular, que también funciona sin JavaScript;
- la fecha de validez, rellenada con la validez por defecto;
- el mensaje al cliente;
- el carrito y, una vez realizado el pedido, su referencia con un enlace;
- el historial de cambios de estado.
Los campos de precio solo se pueden modificar cuando el estado lo permite: Nuevo, Propuesta enviada o Expirado. En un presupuesto aceptado o rechazado, la ficha es de solo lectura.
Un precio negociado por línea, con los totales sin y con impuestos calculados como en el carrito
La propuesta y los totales
Usted introduce el precio unitario negociado sin impuestos de cada línea, la fecha de validez y un mensaje para el cliente. El precio admite coma o punto como separador decimal; debe ser cero o positivo, no superar 1.000.000.000 y no ser inferior al impuesto ecológico (ecotasa) de la línea. La fecha de validez se sitúa entre hoy y tres años. El mensaje admite 5.000 caracteres como máximo.
Los totales siguen las reglas de PrestaShop: el tipo de impuesto procede del grupo de reglas fiscales del producto y de la primera dirección del cliente, o del país por defecto de la tienda. El redondeo utiliza el tipo y el modo configurados en la tienda, con la precisión de la moneda del presupuesto. Una nota bajo los totales recuerda que el importe con impuestos depende de la dirección del cliente y que el importe final se calcula en el pedido. Mientras los campos no sean válidos, no se envía nada.
El envío pasa el estado a Propuesta enviada y lanza el correo al cliente. Mientras el cliente no responda, puede enviar una propuesta actualizada con nuevos precios o una nueva fecha: el historial conserva cada versión. Un presupuesto expirado admite una nueva propuesta con una fecha nueva.
El área del cliente, «Mis presupuestos»
El cliente encuentra sus solicitudes en Mis presupuestos, accesible desde su cuenta. Abre un presupuesto, lee la propuesta y:
- acepta: los productos y cantidades del presupuesto se añaden a su carrito con el precio negociado de cada línea, fijado como precio específico nativo vinculado a ese carrito y a ese cliente, y se le redirige al pedido;
- rechaza, con un motivo opcional de 1.000 caracteres como máximo; el estado pasa a Rechazado y su equipo recibe una notificación.
Antes de aceptar, el módulo comprueba que cada producto siga existiendo, esté activo y disponible para pedido, que la combinación pertenezca al producto, que la cantidad alcance el mínimo y que haya existencias suficientes, salvo que se permitan pedidos sin existencias. Si un producto falla, no se añade nada, el presupuesto vuelve a «Propuesta enviada» y el cliente lee el nombre del producto afectado.
La aceptación no vacía el carrito: los artículos que ya estaban permanecen, y una línea del mismo producto y combinación se sube a la cantidad del presupuesto si tiene menos, nunca se baja. El carrito adopta la moneda del presupuesto. Los precios negociados son válidos hasta el final de la fecha de validez, o 24 horas después de la aceptación si esa fecha es posterior, para que un cliente que acepta tarde por la noche todavía pueda pagar. Dos clics simultáneos crean un solo carrito; el segundo se envía al carrito con un mensaje.
El cliente lee la propuesta y la acepta desde su cuenta
Después de la aceptación, en el carrito
El cliente todavía puede añadir otros productos a precio de catálogo, retirar una línea, bajar una cantidad o subirla. Una cantidad inferior a la del presupuesto vuelve al precio de catálogo; por encima, se mantiene el precio unitario negociado. Los vales de la tienda se aplican como en un pedido creado en el back office. Los precios negociados solo valen para ese carrito: un pedido nuevo, incluido desde el historial de pedidos, vuelve a los precios de catálogo.
Un presupuesto aceptado pero aún no pedido ofrece Volver a poner los productos en mi carrito al cliente que ha perdido su carrito: se retiran los precios específicos anteriores y los productos se añaden al carrito actual a los precios negociados, si la propuesta sigue vigente. Una vez realizado el pedido, la ficha del presupuesto muestra su referencia con un enlace.
Tras la aceptación, los productos están en el carrito a los precios negociados, listos para pedir
Los correos
Tres correos acompañan al presupuesto, en el idioma del cliente:
- Acuse de recibo — al guardar la solicitud: referencia, líneas y enlace al presupuesto. Nunca reproduce el mensaje ni la empresa escritos por el remitente.
- Propuesta — al enviarla o actualizarla: líneas con los precios negociados, totales sin y con impuestos, fecha de validez, su mensaje y un enlace para aceptar o rechazar.
- Notificación al equipo — a los destinatarios configurados, o a la dirección de la tienda si la lista está vacía: nueva solicitud, aceptación o rechazo, con los datos del cliente y el detalle.
Se usa el idioma del cliente cuando existe la plantilla; si no, se utiliza la plantilla en inglés. La notificación al equipo sale en el idioma por defecto de la tienda. Un correo que no se puede enviar queda registrado y nunca cancela el presupuesto.
Ajustes, seguridad y datos
Los Ajustes del módulo permiten:
- activar o desactivar las solicitudes de presupuesto;
- elegir los grupos de clientes autorizados;
- mostrar u ocultar el botón en la ficha de producto y en la página del carrito;
- fijar la validez por defecto de una propuesta, 30 días al instalar, entre 1 y 365 días;
- introducir hasta 10 direcciones de notificación, separadas por comas; una lista vacía usa la dirección de la tienda;
- personalizar, en cada idioma de la tienda, el texto del botón (60 caracteres), el texto en la parte superior del formulario (1.000 caracteres) y el texto del consentimiento (500 caracteres); un campo vacío usa el texto traducido por defecto;
- elegir si se eliminan los presupuestos al desinstalar, desactivado por defecto;
- consultar un diagnóstico: versiones de PrestaShop y PHP, tipo de tema, modo catálogo, disponibilidad de precios específicos, método de envío de correos y número de presupuestos por estado.
En seguridad, cada presupuesto se comprueba por propietario y por tienda, cada acción lleva un token, no se acepta ningún precio desde el navegador y las páginas del módulo no se indexan ni se almacenan en caché. En datos, los presupuestos se conservan al desinstalar salvo que elija eliminarlos; se eliminan con la cuenta del cliente, también mediante las herramientas RGPD de PrestaShop. En multitienda, cada tienda tiene sus presupuestos y sus ajustes.
Instalación
- Descargue el archivo del módulo desde su cuenta de cliente WePresta.
- En el back office, abra Módulos > Gestor de módulos y pulse Subir un módulo.
- Seleccione el archivo ZIP; PrestaShop instala el módulo.
- Pulse Configurar y active su licencia; después abra el módulo desde el menú WePresta > Presupuestos B2B en PrestaShop 9, o Módulos > Presupuestos B2B en PrestaShop 1.7.8 y 8.
La instalación crea tres tablas (presupuestos, líneas, historial) y la entrada de menú. Si una tabla no se puede crear, la instalación se cancela: no queda un módulo a medio instalar.
Configuración y primer presupuesto
- En Ajustes, active las solicitudes, elija los grupos autorizados y las ubicaciones del botón, fije la validez por defecto y los destinatarios de las notificaciones, y adapte los textos de la tienda en cada idioma.
- Revise el Diagnóstico: versiones, tema, modo catálogo, precios específicos y método de envío de correos. Si los correos están desactivados en la tienda, los presupuestos funcionan pero no sale ninguna notificación.
- Del lado del cliente, conéctese con una cuenta de un grupo autorizado, abra un producto o el carrito y pulse Solicitar presupuesto. Compruebe la cantidad (modificable desde la ficha de producto, retomada del carrito con un enlace para cambiarla), la empresa, el NIF-IVA y el mensaje, marque el consentimiento y envíe.
- En Presupuestos B2B > Presupuestos, filtre por el estado Nuevo y abra la solicitud. Introduzca el precio unitario negociado sin impuestos de cada línea, la fecha de validez y su mensaje, pulse Recalcular para comprobar los totales y luego Enviar la propuesta.
- El cliente recibe el correo, abre Mis presupuestos y acepta. Los productos pasan a su carrito a los precios negociados; realiza el pedido con los transportistas y los medios de pago de la tienda.
- En el back office, el presupuesto pasa a Aceptado; el carrito y luego la referencia del pedido aparecen en la ficha, y el historial guarda cada etapa. Un rechazo añade allí el motivo indicado por el cliente.
En multitienda, elija la tienda en la parte superior de la página antes de configurar el módulo o abrir un presupuesto: cada tienda tiene sus solicitudes, sus textos y sus ajustes.
Casos de uso
Tarifa por volumen para un mayorista. Un revendedor pide precio para una gran cantidad. Usted responde con un precio unitario negociado, una fecha de validez y sus condiciones de entrega en el mensaje. El cliente acepta desde su cuenta y pide de inmediato, sin otro intercambio de correos.
Un pedido para una obra o un organismo público. Un artesano prepara un carrito con varias referencias y solicita un único presupuesto para todo el carrito. Usted ajusta cada línea según las cantidades y los descuentos acordados. El cliente acepta y encuentra todos los productos en su carrito.
Una propuesta que renovar. Un cliente vuelve después de la fecha de validez. El presupuesto ha pasado a Expirado; usted envía una nueva propuesta con precios y fecha nuevos, y el historial conserva la primera versión.
Un cliente que ha perdido su carrito. Aceptó la propuesta pero no pidió, y después vació el carrito o cambió de dispositivo. El botón Volver a poner los productos en mi carrito restaura los productos a los precios negociados mientras la propuesta siga vigente.
Un equipo comercial con permisos distintos. Un empleado en solo lectura consulta los presupuestos, un comercial con permiso de modificación envía las propuestas y la eliminación queda reservada a los perfiles autorizados.
Requisitos y límites
- PrestaShop 1.7.8, 8.0+ y 9.0+, PHP 7.4 o superior.
- Temas Classic y Hummingbird; el botón y el área del cliente se adaptan al tema.
- Interfaz y correos en español, francés, inglés, italiano y polaco; los textos de la tienda se introducen en cada idioma de la tienda.
- Se necesita una cuenta de cliente para solicitar un presupuesto y responderlo.
- El modo catálogo debe estar desactivado: sin carrito, ningún presupuesto puede completarse.
- Sin servicio externo: los correos salen con PrestaShop y el pago utiliza los medios ya instalados en la tienda.
- Multitienda: presupuestos y ajustes por tienda.
Lo que la versión 1.0.0 no hace:
- no hay presupuesto para un visitante sin cuenta ni enlace seguro por correo;
- no hay PDF, pedido firmado ni archivos adjuntos;
- no hay contraoferta ni mensajería: el cliente acepta o rechaza la propuesta;
- no hay presupuesto creado por el comerciante, ni adición o retirada de líneas en la propuesta;
- no se ocultan los precios ni se sustituye el botón «Añadir al carrito»;
- no se negocian los gastos de envío: la entrega sigue a los transportistas de la tienda;
- no hay recordatorios automáticos ni expiración programada: la expiración se comprueba al abrir el presupuesto y al aceptarlo;
- no hay exportación CSV, precios por grupo de clientes, pago aplazado ni validación en varios niveles.
Preguntas frecuentes
¿Hace falta una cuenta de cliente para solicitar un presupuesto?
Sí. El botón se muestra según los grupos autorizados; un visitante no conectado es invitado a conectarse o a crear una cuenta y vuelve después al formulario. Los presupuestos para visitantes sin cuenta, enviados mediante un enlace seguro, no forman parte de la versión 1.0.0.
¿Cómo se envía una propuesta a un cliente?
Abra el presupuesto en Presupuestos B2B > Presupuestos, introduzca el precio unitario negociado sin impuestos de cada línea, la fecha de validez y su mensaje, compruebe los totales con Recalcular y pulse Enviar la propuesta. El cliente recibe un correo en su idioma con un enlace al presupuesto, y el estado pasa a Propuesta enviada.
¿Qué ocurre cuando el cliente acepta?
Los productos y cantidades del presupuesto se añaden a su carrito con el precio negociado de cada línea, fijado como precio específico nativo vinculado a ese carrito y a ese cliente. Los artículos que ya estaban en el carrito permanecen. El cliente es redirigido al pedido y paga con los medios de la tienda; después, la ficha del presupuesto muestra la referencia del pedido.
¿Cuánto tiempo es válida una propuesta?
La fecha de validez se elige en cada presupuesto; viene rellenada con la validez por defecto, 30 días al instalar. La propuesta es válida hasta el final de esa fecha. La expiración se comprueba al abrir el presupuesto y cuando el cliente intenta aceptar: no hace falta ninguna tarea programada.
¿Qué ocurre si el cliente modifica su carrito después de aceptar?
Puede retirar una línea, bajar una cantidad o añadir otros productos. Una cantidad inferior a la del presupuesto vuelve al precio de catálogo; los demás productos conservan su precio habitual. El precio negociado solo se aplica a ese carrito y expira con la propuesta.
¿Los precios negociados se aplican a pedidos posteriores?
No. Están vinculados al carrito creado en la aceptación y al cliente. Un pedido nuevo, incluido desde el historial de pedidos, vuelve a los precios de catálogo.
¿Puedo enviar un PDF, crear un presupuesto en el back office o responder a una contraoferta?
No, estas funciones no forman parte de la versión 1.0.0. El módulo cubre la solicitud, la propuesta, la aceptación o el rechazo y el pedido. No genera PDF, no acepta archivos adjuntos y no permite al comerciante crear un presupuesto ni modificar las líneas.
¿Se pueden negociar los gastos de envío?
No. La entrega sigue a los transportistas y las tarifas de la tienda; el presupuesto cubre el precio de los productos. Tampoco se incluyen los precios por grupo de clientes ni el pago aplazado.
¿Por qué aparece un descuento de catálogo junto al precio negociado en el carrito?
Cuando un producto también tiene un descuento de catálogo, PrestaShop muestra su etiqueta de descuento en la línea del carrito, porque lee los precios de catálogo sin conocer el presupuesto. El importe facturado sigue siendo el precio negociado del presupuesto, y las líneas del pedido llevan ese precio.
¿Qué versiones de PrestaShop, temas y funcionamiento en multitienda están soportados?
El módulo funciona en PrestaShop 1.7.8, 8.0+ y 9.0+, con PHP 7.4 mínimo, en los temas Classic y Hummingbird. En multitienda, cada tienda tiene sus presupuestos y sus ajustes. Sin licencia activa, los clientes siguen solicitando presupuestos y respondiendo a las propuestas ya enviadas; la administración de presupuestos espera la activación.
Soporte
Para cualquier ayuda, contacte con nosotros desde su cuenta de cliente WePresta o por correo a mail@wepresta.shop, según la opción de soporte de su plan.
Antes de escribir, prepare:
- las versiones de PrestaShop y PHP;
- el tema utilizado;
- la referencia del presupuesto afectado;
- la dirección de la página y una captura del problema.
Historial de versiones
Versión 1.0.0
- Solicite un presupuesto desde la ficha de producto, con la combinación y la cantidad, o desde el carrito con todas sus líneas.
- Indique la empresa, el NIF-IVA y un mensaje, con consentimiento, control antispam y token de seguridad.
- Encuentre cada solicitud en una lista filtrable por estado, cliente, empresa, fecha y referencia.
- Envíe un precio unitario negociado sin impuestos por línea, una fecha de validez y un mensaje al cliente.
- Compruebe los totales sin impuestos, impuestos y con impuestos calculados con las reglas fiscales de la tienda antes del envío.
- Deje que el cliente acepte o rechace la propuesta desde su cuenta, en «Mis presupuestos».
- Llene su carrito a los precios negociados en la aceptación, con los precios específicos nativos de PrestaShop.
- Siga cada presupuesto mediante un estado, un historial y las referencias del carrito y del pedido.
- Reciba una notificación por cada nueva solicitud, aceptación o rechazo, y un correo al cliente en su idioma.
- Configure los grupos autorizados, las ubicaciones del botón, la validez por defecto, los destinatarios y los textos en cada idioma.
- Trabaje en multitienda, con presupuestos y ajustes por tienda.
- Instale el módulo en PrestaShop 1.7.8, 8.0+ y 9.0+ con PHP 7.4 mínimo.