From 9f7ccf208bc6fa65ace884b136cd4ee6ce8a5fde Mon Sep 17 00:00:00 2001 From: Brisa Date: Tue, 30 Jun 2026 14:58:28 -0300 Subject: [PATCH] asistente virtual --- ayuda.php | 792 ++++++++++++++++++++++++++++++++++++++++++++++ consultar_bot.php | 109 +++++++ 2 files changed, 901 insertions(+) create mode 100644 ayuda.php create mode 100644 consultar_bot.php diff --git a/ayuda.php b/ayuda.php new file mode 100644 index 0000000..cc16112 --- /dev/null +++ b/ayuda.php @@ -0,0 +1,792 @@ + '0343 423-1400', // Valores por defecto por las dudas + 'pago' => 'efectivo y transferencia bancaria' +]; + +// 2. OBTENER LAS PREGUNTAS CLAVE PARA LOS BOTONES DE LA VISTA PREVIA +$preguntas_bot = []; +$res_preguntas = $conexion->query("SELECT pregunta, keywords FROM bot_preguntas ORDER BY id ASC LIMIT 4"); +if ($res_preguntas) { + while($row = $res_preguntas->fetch_assoc()) { + $preguntas_bot[] = $row; + } +} +?> + + + + + + Ayuda - La Pecosa + + + + + + +
+

Centro de Ayuda

+

Todo lo que necesitás saber para hacer tu pedido en La Pecosa.

+
+ +
+
+ + + + +
+
+ +
+ + + Volver al inicio + + + +
+ +
+

¿Cómo hacer un pedido?

+

Seguí estos pasos para completar tu compra sin inconvenientes.

+
+ +
+ +
+
1
+
+

Iniciá sesión

+

Para poder realizar un pedido necesitás tener una cuenta. Si todavía no te registraste, hacé clic en Login en el menú superior y completá tus datos.

+
+
+ +
+
2
+
+

Explorá el catálogo

+

Usá el menú Categorías para filtrar por tipo de producto: Rotisería, Carnes, Bebidas, Almacén y más. Los productos sin stock aparecen deshabilitados automáticamente.

+
+
+ +
+
3
+
+

Agregá productos al carrito

+

Hacé clic en "Agregar" en cada producto que quieras. El contador de pedido en la barra inferior se actualiza en tiempo real con la cantidad y el total acumulado.

+
+
+ +
+
4
+
+

Revisá tu carrito y confirmá

+

Ingresá a tu carrito haciendo clic en PEDIDO (barra roja inferior). Desde ahí podés modificar cantidades, eliminar productos y confirmar la compra.

+ +
+
Ejemplo de pedido
+
    +
  1. Seleccionás 1x Milanesa napolitana y 2x Empanadas de carne.
  2. +
  3. El total se calcula automáticamente en el carrito.
  4. +
  5. Presionás "Confirmar pedido".
  6. +
  7. El sistema verifica que el local esté en horario de atención y que haya stock disponible.
  8. +
  9. Tu pedido queda registrado con estado Pendiente y recibís una confirmación por mensaje vía Whatsapp.
  10. +
+
+
+
+ +
+
5
+
+

Seguí el estado de tu pedido

+

Una vez confirmado, el local procesa tu pedido. Los estados posibles son:

+
+ Pendiente + En preparación + Listo para retirar + Cancelado +
+
+
+ +
+ +
+ +
+ Horarios de atención: Lunes a Sábado de 08:30 a 13:30 y de 17:30 a 21:00 · Domingos de 09:00 a 13:00. Los pedidos solo se pueden realizar dentro de este horario. +
+
+ +
+ + +
+ +
+

Gestión de tu cuenta

+

Todo lo que podés hacer desde tu perfil de usuario.

+
+ +
+ +
+
+
+

Crear una cuenta

+

Hacé clic en Login en el menú superior y luego en "Registrate gratis". Completá tu nombre, email y contraseña. Una vez registrado, podés empezar a pedir de inmediato.

+
+
+ +
+
+
+

Iniciar sesión

+

Ingresá tu email y contraseña en la pantalla de login. Si no la recordás, usá la opción "¿Olvidaste tu contraseña?" para recibir un código de verificación en tu correo.

+
+
+ +
+
+
+

Recuperar contraseña

+

Si olvidaste tu clave, el sistema te envía un código de 6 dígitos a tu email. Tenés 15 minutos para ingresarlo antes de que expire. Seguí los 3 pasos que aparecen en pantalla.

+ +
+
Pasos para recuperar tu contraseña
+
    +
  1. Ingresás tu email registrado y presionás "Enviar código".
  2. +
  3. Revisás tu casilla y escribís el código de 6 dígitos recibido.
  4. +
  5. Escribís tu nueva contraseña dos veces y confirmás el cambio.
  6. +
+
+
+
+ +
+
+
+

Cerrar sesión

+

Hacé clic en SALIR en el menú superior. Tu carrito se vaciará al cerrar la sesión, así que asegurate de confirmar tu pedido antes.

+
+
+ +
+
+ + +
+ +
+

Asistente virtual de La Pecosa

+

El asistente virtual está disponible en la esquina inferior derecha de la página principal. Te responde al instante las consultas más comunes.

+
+ +
+
+
+
+

¿Para qué sirve?

+

El bot responde preguntas frecuentes sobre horarios, métodos de pago, novedades, promociones y ubicación sin que necesites esperar atención del local. Para pedidos o consultas específicas, pedí el número y vas a poder llamar al local. En caso de consultas fuera de lugar, se permiten hasta tres intentos y luego se restringe por 10 minutos el chat.

+
+
+
+
+
+

¿Cómo se usa?

+

Hacé clic en el botón rojo que aparece en la esquina inferior derecha. Luego escribí tu consulta o seleccioná una de las palabras clave para obtener una respuesta inmediata.

+
+
+
+ +

Vista previa del asistente virtual

+ +
+ +
+ 🍎 La Pecosa Asistente Virtual + +
+ + +
+
+
¡Hola! Soy el asistente de La Pecosa 🍎 ¿En qué puedo ayudarte?
+
+ +
+ ¿Aceptan tarjeta? +
+ +
+
Aceptamos . Al retirar tu pedido podés coordinar el método de pago con el local.
+
+
+ + + +
+
+ + +
+ +
+

Preguntas frecuentes

+

Las dudas más comunes de nuestros clientes, respondidas.

+
+ +
+ +
+ +
+ No, podés explorar el catálogo sin iniciar sesión. Sin embargo, para agregar productos al carrito y confirmar un pedido sí necesitás estar registrado y haber iniciado sesión. +
+
+ +
+ +
+ No. El sistema valida automáticamente que el local esté abierto al momento de confirmar. Si intentás pedir fuera del horario, vas a ver un aviso indicando que el local está cerrado. +
+
+ +
+ +
+ ¡Sí, hacemos envíos a domicilio! Al momento de finalizar tu compra en el carrito, vas a poder seleccionar la opción de entrega a domicilio para recibir tu pedido directamente en tu casa. También mantenemos la opción tradicional de retirar en el local si lo preferís. +
+
+ +
+ +
+ El estado de tu pedido se actualiza desde el local. Podés consultarlo en tus mensajes de Whatsapp o llamar directamente al local para confirmar. +
+
+ +
+ +
+ Significa que ese producto está sin stock en este momento. El botón se reactiva automáticamente cuando el local actualiza el inventario. Podés llamar para consultar disponibilidad. +
+
+ +
+ +
+ Revisá tu carpeta de spam o correo no deseado. Si tampoco está ahí, esperá unos minutos y volvé a solicitarlo. El código tiene una validez de 15 minutos. +
+
+ +
+ +
+ Para cancelar un pedido ya confirmado, comunicate directamente con el local al lo antes posible. +
+
+ +
+
+ +
+ + + + + \ No newline at end of file diff --git a/consultar_bot.php b/consultar_bot.php new file mode 100644 index 0000000..9fd8e15 --- /dev/null +++ b/consultar_bot.php @@ -0,0 +1,109 @@ +query($query); + + $encontrado = false; + + if ($result && $result->num_rows > 0) { + while ($row = $result->fetch_assoc()) { + $keywords = explode(',', $row['keywords']); + + foreach ($keywords as $keyword) { + $keyword_limpia = trim(mb_strtolower($keyword, 'UTF-8')); + + if (!empty($keyword_limpia) && strpos($mensaje_usuario, $keyword_limpia) !== false) { + $respuesta = $row['respuesta']; + $encontrado = true; + + if (in_array($keyword_limpia, ['ubicacion', 'ubicación', 'direccion', 'dirección', 'donde', 'dónde'])) { + $accion = "abrir_mapa"; + } elseif (in_array($keyword_limpia, ['horario', 'horarios'])) { + $accion = "abrir_horarios"; + } elseif (in_array($keyword_limpia, ['novedad', 'novedades'])) { + $accion = "abrir_novedades"; + } elseif (in_array($keyword_limpia, ['telefono', 'teléfono', 'llamar', 'numero', 'número'])) { + $accion = "mostrar_telefonos"; + } elseif ($keyword_limpia === 'contacto') { + $accion = "mostrar_contacto"; + } elseif (in_array($keyword_limpia, ['redes', 'instagram'])) { + $accion = "mostrar_redes"; + } elseif (in_array($keyword_limpia, ['pago', 'pagos', 'transferencia', 'efectivo'])) { + $accion = "mostrar_pagos"; + } elseif (in_array($keyword_limpia, ['promo', 'promos', 'promocion', 'promoción', 'promociones', 'oferta', 'ofertas', 'menu', 'menú'])) { + // ▼ Promos: consulta dinámica a la BD (últimas 24hs) + $accion = "ninguna"; + $res_promos = $conexion->query( + "SELECT mensaje FROM promociones + WHERE fecha_publicacion >= NOW() - INTERVAL 24 HOUR + ORDER BY fecha_publicacion DESC + LIMIT 5" + ); + if ($res_promos && $res_promos->num_rows > 0) { + $lista = []; + while ($p = $res_promos->fetch_assoc()) { + $lista[] = "• " . $p['mensaje']; + } + $respuesta = "📢 ¡Promociones vigentes!
" . implode("
", $lista); + } else { + $respuesta = "Por el momento no hay promociones activas. ¡Volvé a consultar más tarde! 😊"; + } + } + + break 2; + } + } + } + } + + // 2. Si no se encontró coincidencia, armamos la respuesta dinámica desde la BD + if (!$encontrado) { + // Texto base limpio directamente definido sin necesidad de consultar otra tabla + $texto_base = "No entendí tu consulta. Podés preguntarme sobre:"; + + // ▼ CONSULTA DINÁMICA: Traemos todas las categorías cargadas que no estén vacías + $res_cats = $conexion->query("SELECT DISTINCT categoria FROM bot_preguntas WHERE categoria IS NOT NULL AND categoria != '' ORDER BY categoria ASC"); + + if ($res_cats && $res_cats->num_rows > 0) { + $cats_lista = []; + while ($c = $res_cats->fetch_assoc()) { + // Las agregamos formateadas limpiamente con un puntito estético + $cats_lista[] = "• " . htmlspecialchars($c['categoria']); + } + // Unimos todo el array con saltos de línea
+ $respuesta = $texto_base . "
" . implode("
", $cats_lista); + } else { + // Fallback secundario estático por si la tabla llegara a estar completamente vacía + $respuesta = $texto_base . "
• promo
• horarios
• nosotros
• ubicación"; + } + + $accion = "forzar_cierre"; + } +} else { + $respuesta = "Error: No se recibió ninguna consulta."; +} + +// Devolvemos el JSON estructurado +echo json_encode([ + 'respuesta' => $respuesta, + 'accion' => $accion +]); \ No newline at end of file