Módulo botón contacta con un experto
Pon cara a tu tienda: un widget de atención con teléfono, WhatsApp, email y horario, una página de equipo y una ficha pública por cada profesional, todo publicado como datos estructurados para que Google sepa quién responde detrás del catálogo.
PrestaShop 8.0 a 9.x.
Confianza
Antes de comprar, quiere preguntar a alguien.
Y en tu tienda no hay nadie a la vista. Bloque Experto pone a tu equipo delante del cliente cuando duda, y delante de Google cuando decide a quién creer.
/ Un widget que invita a preguntar
Un bloque con los avatares de tu equipo abre un panel lateral con teléfono, WhatsApp, email y horario. Un punto verde o gris dice si ahora hay alguien. El mensaje de WhatsApp puede llevar ya el nombre y el enlace del producto que el cliente está mirando.
/ Una página de equipo y una ficha por experto
Das de alta a las personas en Catálogo › Expertos con su cargo, biografía, especialidades, formación, certificaciones, número de colegiado y redes. El módulo publica la página de equipo en /quienes-somos y una ficha para cada uno, con slug configurable, URL canónica, hreflang y entrada en el sitemap.
/ Datos estructurados que Google entiende
Todo sale como un único @graph JSON-LD por página: la tienda como Organization con su punto de contacto y horario, la página de equipo como AboutPage, cada experto como Person dentro de un ProfilePage con sus especialidades, credenciales, formación y la tienda para la que trabaja, y la miga de pan en ambas.
Y cualquier otro módulo, un blog o unas opiniones, puede firmar su contenido con el experto mediante el hook displayRkrExpertByline.
Dónde merece la pena: en catálogos donde la compra depende del criterio de alguien, como parafarmacia, óptica, nutrición o repuestos técnicos. Hoy el módulo trae sus textos solo en español y no es multitienda.
Compatible con PrestaShop 8.0 a 9.x · PHP 7.4 o superior
Desarrollado y mantenido por REKIRE
v2.1.0
Revisión completa del módulo con el foco puesto en los datos estructurados, que son la razón de ser de la parte E-E-A-T y estaban a medias.
Datos estructurados (reescritos)
- Todo el JSON-LD se genera ahora en PHP (
classes/RkrSchema.php) y sale como un único@graphpor página, en vez de escribirse a mano en cada plantilla. - Identidad estable con
@id. La misma persona en la página de equipo, en su ficha y en un byline es ahora una sola entidad para Google. Antes eran tresPersondistintas sin identificador, y ninguna acumulaba la señal de las otras. - Se acabó la
Organizationanónima en cada página. El sidebar declaraba unOrganizationsinnameniurlen todas las URLs de la tienda, que competía con la del tema. Ahora emite la ficha completa de la tienda, con el@idcompartido, y solo donde toca: nueva opción Dónde declarar la ficha de la tienda (portada y contacto por defecto). knowsAbout: las especialidades, que se pedían en el back-office y solo se pintaban como etiquetas, se publican como la propiedad de experiencia.worksFor: cada experto queda enlazado con la tienda.hoursAvailable: el horario de atención que ya guardaba el módulo se publica comoOpeningHoursSpecificationdentro delContactPoint.- Ficha de experto como
ProfilePageconmainEntity→Person, que es la forma documentada por Google para las páginas de perfil. BreadcrumbListen la página de equipo y en las fichas, con miga de pan real (Inicio › Equipo › Experto).hasCredentialcorregido: el número de colegiado va enidentifierconcredentialCategory: license, en lugar de un nombre con una categoría inventada. Las certificaciones se separan por comas y cada una es una credencial.alumniOfya no convierte la frase entera de formación en el nombre de una universidad. EscribeTítulo | Instituciónpara declararla; sin la barra, solo se publica el título.- Los valores de texto se limpian de etiquetas y entidades HTML antes de serializarse, y el JSON se escapa con
JSON_HEX_TAGpara que una biografía con un</script>no pueda romper la página. - Se han quitado los microdatos (
itemscope/itemprop) de la ficha de experto: describían a la misma persona que el JSON-LD, con menos propiedades.
SEO
- Las páginas de equipo y de experto se añaden al sitemap (
gSitemapAppendUrls). - URL canónica en ambas páginas.
hreflangcorrecto: cada idioma usa su propio slug, en vez de repetir el del idioma actual apuntando a una ficha inexistente.- Un experto inexistente o desactivado devuelve un 404 real en su URL, en lugar de una redirección 302 a la página de error.
- Los enlaces a redes del experto llevan
rel="me"en vez denofollow: son la prueba de identidad que respalda elsameAs.
Seguridad
- Subida de imágenes. Los tres formularios que suben avatares tomaban la extensión del nombre enviado por el navegador y movían el fichero a
views/img/, que se sirve por web. Ahora se valida extensión, tipo real de imagen y tamaño (4 MB), el nombre lo genera el módulo y los SVG con contenido ejecutable se rechazan. - Los colores de la configuración se validan como hexadecimal al guardarlos y al pintarlos; antes se inyectaban tal cual dentro de una etiqueta
<style>. - Escapado de las variables que faltaban en las plantillas del front.
- Los nombres de fichero leídos de base de datos se comprueban antes de construir una URL con ellos.
Corregido
- Turnos partidos y horarios que cruzan la medianoche.
09:00 - 14:00, 16:00 - 20:00solo reconocía el primer tramo y22:00 - 02:00daba cerrado siempre. La lógica vive ahora enclasses/RkrSchedule.phpy la comparten el punto verde y el JSON-LD. - Slugs duplicados. Dos expertos con el mismo nombre compartían slug y la segunda ficha era inalcanzable. Ahora se numeran, y la actualización arregla los que ya estuvieran duplicados.
- Dos posiciones a la vez. Con el bloque activo en la ficha y en el pie, el segundo tooltip no funcionaba: los
idestaban repetidos. - La desinstalación borraba 46 de las 74 claves de configuración; las de las páginas de equipo y experto, el botón extra y el horario sobrevivían y reaparecían al reinstalar.
- La desinstalación ya no borra las imágenes subidas: PrestaShop desinstala e instala para resetear un módulo, y eso vaciaba las fichas sin avisar.
- El esquema ya no se altera desde
getContent(). Las columnas se crean enupgrade/upgrade-2.1.0.php, yupgrade-2.0.2.phpes idempotente. - Duplicar un departamento con idiomas sin traducir ya no lanza avisos de PHP 8.
- Los datos de demostración descargan los avatares con timeout de 5 s: en una tienda sin salida a internet el panel se quedaba colgado un minuto por experto.
Rendimiento
- El producto, la categoría y el departamento de la página se resuelven una vez por petición. Los tres hooks repetían la misma carga de
Producty la misma consulta de departamento. - Los
SELECT e., el.de los listados de expertos enumeran ahora sus columnas. - Nuevo índice sobre
(slug, id_lang), la columna por la que entra cada petición a una ficha de experto. - El CSS del byline se ha movido a
views/css/eeat.css: estaba en una etiqueta<style>dentro del hook y se repetía por cada firma pintada.
Añadido
- Pestaña SEO y datos estructurados en la configuración.
- Campo Orden en cada experto, para curar el orden de la página de equipo.
- Opción para ocultar el widget durante el proceso de pago (activada por defecto).
config.xml,LICENSE.md,README.mdeindex.phpen todas las carpetas: el módulo pasa la auditoría de publicación sin fallos.
Pendiente conocido
- El módulo no trae catálogos de traducción y sus cadenas fuente están en español: en una tienda en otro idioma el panel y el front se ven en español.
- No es multitienda: las tablas no llevan
id_shopy la configuración se lee sin contexto de tienda.
4 otros productos de la misma categoría
También podría interesarte
Preguntas y respuestas
Todavía nadie ha preguntado nada sobre este producto.