Request for quote (RFQ)
El módulo RFQ reemplaza “Añadir al carrito” por “Solicitar precio”. Los clientes envían solicitudes de presupuesto en lugar de comprar directamente. Útil para tiendas B2B y productos con precios individuales.
Configuración
Section titled “Configuración”Vaya a WooCommerce > Ajustes > Polski PRO > Solicitud de presupuesto y active el módulo.
Ajustes básicos
Section titled “Ajustes básicos”| Ajuste | Opción de base de datos | Valor predeterminado | Descripción |
|---|---|---|---|
| Activar módulo | polski_quote | No | Activa la funcionalidad de solicitud de presupuesto |
| Texto del botón | polski_quote_button_text | ”Zapytaj o cenę” | Texto mostrado en el botón |
| Mostrar en listados | polski_quote_show_on_loops | No | Muestra el botón de solicitud en las páginas de archivo y categoría |
| Requerir inicio de sesión | polski_quote_require_login | No | Requiere iniciar sesión antes de enviar una solicitud |
| Consentimiento de procesamiento | polski_quote_consent | Sí | Añade una casilla de consentimiento RGPD al formulario |
Campos del formulario
Section titled “Campos del formulario”El formulario de solicitud de presupuesto contiene de forma predeterminada:
- Nombre y apellidos - obligatorio
- Dirección de correo electrónico - obligatorio, validación de formato
- Teléfono - opcional
- Cantidad - obligatorio, validación numérica
- Mensaje - opcional, área de texto
- Consentimiento RGPD - casilla de verificación, obligatorio si está activado
Comportamiento en el frontend
Section titled “Comportamiento en el frontend”Reemplazo del botón
Section titled “Reemplazo del botón”Tras activar el módulo, el botón “Añadir al carrito” se reemplaza por el botón de solicitud de presupuesto. Esto se aplica a:
- Página de producto individual
- Páginas de archivo y categoría (si la opción
polski_quote_show_on_loopsestá activada) - Widgets y shortcodes de producto
Shortcode
Section titled “Shortcode”El botón de solicitud de presupuesto puede colocarse en cualquier lugar mediante el shortcode:
[polski_quote_button product_id="123" text="Zapytaj o cenę" class="custom-class"]Parámetros:
| Parámetro | Obligatorio | Descripción |
|---|---|---|
product_id | No | ID del producto (por defecto, el producto actual) |
text | No | Texto del botón |
class | No | Clases CSS adicionales |
Envío del formulario (AJAX)
Section titled “Envío del formulario (AJAX)”El formulario se envía de forma asíncrona (AJAX) sin recargar la página. Tras el envío, el cliente ve un mensaje de confirmación con el número de solicitud.
/** * Filtruje dane zapytania ofertowego przed zapisem. * * @param array $quote_data Dane zapytania * @param int $product_id ID produktu * @param \WP_User $user Obiekt zalogowanego użytkownika lub pusty */apply_filters('polski_pro/quote/before_save', array $quote_data, int $product_id, $user): array;Ejemplo - añadir un campo personalizado:
add_filter('polski_pro/quote/before_save', function (array $quote_data, int $product_id, $user): array { $quote_data['meta']['company_nip'] = sanitize_text_field($_POST['company_nip'] ?? ''); return $quote_data;}, 10, 3);Registro de consentimientos
Section titled “Registro de consentimientos”Cada solicitud de presupuesto guarda información sobre el consentimiento:
- Marca de tiempo del consentimiento otorgado
- Dirección IP del cliente (con hash SHA-256)
- Contenido del consentimiento en el momento de otorgarlo
- Versión del formulario
Estos datos se almacenan en la tabla {prefix}_polski_quote_consents y pueden exportarse para fines de auditoría RGPD.
/** * Akcja wywoływana po zapisaniu zgody. * * @param int $quote_id ID zapytania ofertowego * @param array $consent Dane zgody * @param string $ip_hash Zahashowany adres IP */do_action('polski_pro/quote/consent_logged', int $quote_id, array $consent, string $ip_hash);Panel de administración
Section titled “Panel de administración”Lista de solicitudes
Section titled “Lista de solicitudes”Las solicitudes de presupuesto están disponibles en el menú WooCommerce > Solicitudes de presupuesto. La lista contiene:
- Número de solicitud
- Datos del cliente (nombre, correo electrónico, teléfono)
- Producto y cantidad
- Estado (nueva, en curso, respondida, cerrada)
- Fecha de envío
Estados de las solicitudes
Section titled “Estados de las solicitudes”| Estado | Descripción |
|---|---|
new | Solicitud nueva, sin procesar |
in_progress | Presupuesto en preparación |
replied | Presupuesto enviado al cliente |
accepted | El cliente aceptó el presupuesto |
rejected | El cliente rechazó el presupuesto |
closed | Solicitud cerrada |
Responder a una solicitud
Section titled “Responder a una solicitud”Desde el panel, el administrador puede:
- Revisar los detalles de la solicitud
- Añadir una nota interna
- Establecer el precio presupuestado
- Enviar una respuesta por correo electrónico al cliente
- Convertir la solicitud en un pedido de WooCommerce
Notificaciones por correo electrónico
Section titled “Notificaciones por correo electrónico”El módulo registra las siguientes plantillas de correo electrónico en WooCommerce:
| Correo electrónico | Destinatario | Desencadenante |
|---|---|---|
| Nueva solicitud de presupuesto | Administrador | El cliente envía una solicitud |
| Confirmación de solicitud | Cliente | Envío de la solicitud |
| Respuesta al presupuesto | Cliente | El administrador envía un presupuesto |
| Cambio de estado de la solicitud | Cliente | Cambio de estado de la solicitud |
Las plantillas de correo electrónico pueden sobrescribirse en el tema, en el directorio woocommerce/emails/:
polski-pro-quote-new.phppolski-pro-quote-confirmation.phppolski-pro-quote-reply.phppolski-pro-quote-status.php
Filtro del formulario
Section titled “Filtro del formulario”/** * Filtruje pola formularza zapytania ofertowego. * * @param array $fields Tablica pól formularza * @param int $product_id ID produktu */apply_filters('polski_pro/quote/form_fields', array $fields, int $product_id): array;Ejemplo - añadir un campo de NIF:
add_filter('polski_pro/quote/form_fields', function (array $fields, int $product_id): array { $fields['company_nip'] = [ 'type' => 'text', 'label' => 'NIP firmy', 'required' => false, 'priority' => 35, ]; return $fields;}, 10, 2);Acción tras el envío
Section titled “Acción tras el envío”/** * Akcja wywoływana po zapisaniu zapytania ofertowego. * * @param int $quote_id ID zapytania * @param array $quote_data Dane zapytania */do_action('polski_pro/quote/submitted', int $quote_id, array $quote_data);Ejemplo - envío a un CRM:
add_action('polski_pro/quote/submitted', function (int $quote_id, array $quote_data): void { $crm_api = new MyCrmApi(); $crm_api->create_lead([ 'name' => $quote_data['name'], 'email' => $quote_data['email'], 'product' => $quote_data['product_name'], 'qty' => $quote_data['quantity'], ]);}, 10, 2);Resolución de problemas
Section titled “Resolución de problemas”El botón “Añadir al carrito” sigue mostrándose
Compruebe si la opción polski_quote está activada. Vacíe la caché de los plugins de caché (WP Super Cache, W3 Total Cache, LiteSpeed Cache).
El formulario no se envía (error de AJAX)
Revise la consola del navegador en busca de errores de JavaScript. Asegúrese de que el script polski-pro-quote.js esté cargado. Los conflictos con otros plugins pueden bloquear AJAX - desactive los demás plugins para identificar el conflicto.
Los correos electrónicos no se envían Compruebe la configuración de correo electrónico en WooCommerce > Ajustes > Correos electrónicos. Asegúrese de que las plantillas de Polski PRO estén activadas.
Próximos pasos
Section titled “Próximos pasos”- Informar de problemas: GitHub Issues
- Integración con el modo catálogo: Modo catálogo B2B