Protección del feed — Clave secreta y Basic Auth del generador
El módulo utiliza dos mecanismos de protección independientes: una clave secreta que controla quién puede iniciar la generación del feed, y credenciales HTTP Basic Auth que permiten al generador superar una contraseña .htaccess de nivel de servidor en tu sitio.
Disponible desde la v2.4.5
Descripción general
La generación del feed se activa mediante una petición HTTP al front end de tu tienda (/module/facebookproductsfeed/GenerateFeed). Sin ninguna protección, cualquier persona que conozca esa URL podría iniciar una generación en cualquier momento, consumiendo recursos del servidor. La clave secreta evita esto exigiendo un token coincidente en la URL antes de que el módulo realice cualquier acción.
Por otro lado, muchas configuraciones de alojamiento — especialmente los entornos de staging y algunos servidores compartidos — protegen todo el sitio o rutas equivalentes a wp-admin con HTTP Basic Authentication vía .htaccess. Cuando el módulo realiza su llamada cURL interna para continuar un ciclo, esa petición cURL choca contra la misma barrera .htaccess y falla silenciosamente. Las credenciales de Basic Auth del generador indican al módulo qué nombre de usuario y contraseña debe incluir en esas peticiones cURL internas para que puedan atravesarla.
Estas son dos configuraciones independientes que resuelven dos problemas distintos.
La clave secreta
La clave secreta es un token derivado de _COOKIE_KEY_ de tu tienda y del nombre del módulo. Se almacena globalmente (FPF_SECRET_KEY) y debe estar presente como parámetro de URL (fpf_secret_key) para que cualquier solicitud de generación por web pueda ejecutarse.
El controlador del generador lo comprueba al inicio:
?fpf_secret_key=<valor>
Si el valor falta o es incorrecto, el controlador finaliza de inmediato sin producir ninguna salida. La generación por CLI (cron mediante PHP CLI) omite esta comprobación por completo — la clave solo es necesaria para las peticiones web.
El módulo incluye automáticamente la clave secreta en todas las URLs que te muestra: la URL del cron en la pestaña Cron Jobs, la URL de consola en la pestaña Dashboard, y la URL que el generador usa internamente para la continuación de ciclos. No necesitas buscar ni copiar la clave manualmente.
Restablecer la clave secreta
Si sospechas que tu URL de generación ha quedado expuesta o quieres rotar la clave, puedes regenerarla visitando la URL de tu Back Office con fpf_reset_secret=1 añadido al final:
https://yourstore.com/admin/index.php?controller=AdminModules&configure=facebookproductsfeed&fpf_reset_secret=1
El módulo regenera la clave a partir de md5(_COOKIE_KEY_ . 'facebookproductsfeed') y almacena el resultado globalmente. Tras el restablecimiento, cualquier URL de cron que hayas configurado en tu servidor dejará de funcionar — deberás copiar la nueva URL del cron desde la pestaña Cron Jobs y actualizar la entrada de cron en tu servidor.
La clave secreta se almacena como un valor de configuración global de PrestaShop, lo que significa que se aplica a todas las tiendas en una configuración multitienda. Restablecerla invalida las URLs de cron existentes para todas las tiendas al mismo tiempo.
Basic Auth del generador
Esta sección se encuentra en la pestaña Feed Protection (#fieldset_security), bajo el encabezado Basic Auth for generation.
| Campo | Descripción |
|---|---|
| Basic Auth Username | El nombre de usuario HTTP Basic Auth que el módulo envía en las peticiones cURL internas durante la generación de ciclos |
| Basic Auth Password | La contraseña correspondiente. Una vez guardada, el campo muestra un indicador en lugar del valor — la contraseña no vuelve a mostrarse |
Cuando ambos campos están rellenos, cada llamada cURL interna del generador incluye una cabecera Authorization: Basic .... Esto permite que la continuación de ciclos funcione correctamente en servidores que requieren credenciales para acceder al front office.
Para eliminar las credenciales de Basic Auth, vacía el campo Basic Auth Password y guarda. Cuando el campo de contraseña está vacío al guardar, el módulo borra tanto el nombre de usuario como la contraseña.
Estas credenciales son exclusivamente para las peticiones cURL internas del módulo. No están relacionadas con el interruptor ¿Proteger la URL de los feeds? descrito más adelante, que controla el acceso a los archivos XML del feed ya generados.

Protección de la URL del feed (relacionado)
La pestaña Feed Protection también contiene un interruptor independiente ¿Proteger la URL de los feeds? (FPF_SECURITY). Cuando se activa con un nombre de usuario y contraseña, el módulo escribe un archivo .htaccess y .htpasswd en la carpeta feeds/, exigiendo credenciales HTTP Basic Auth para descargar los archivos XML del feed.
Esta es una capa de protección distinta — restringe quién puede leer los archivos del feed ya generados, no quién puede iniciar la generación. Facebook Commerce Manager necesita poder acceder a la URL del feed, por lo que si activas la protección de URL del feed también deberás proporcionar esas credenciales a Facebook al configurar tu catálogo.
| Clave de config | Valor predeterminado | Propósito |
|---|---|---|
FPF_SECURITY | Desactivado | Si la carpeta feeds/ requiere HTTP Basic Auth |
FPF_SECURITY_USER | — | Nombre de usuario para el acceso a los archivos del feed |
FPF_SECURITY_PASS | — | Contraseña para el acceso a los archivos del feed |
FPF_BASIC_AUTH_USERNAME | — | Nombre de usuario para las peticiones cURL internas del módulo |
FPF_BASIC_AUTH_PASSWORD |