Cookies que usa Prestashop.

Seguimos con la serie de artículos listando las cookies que usan los gestores de contenidos o servicios más famosos. Hoy vamos a centrarnos en el CMS para tiendas online Prestashop.

Hay muy poca información sobre las cookies que usa por defecto Prestashop. Por no decir nada. Pero hemos podido recopilar lo siguiente (actualizaremos si hay cambios o nueva información).

Nota: vamos a hablar sólo de las cookies de Prestashop. Cada tienda online tienen servicios y plugins diferentes que añaden sus cookies propies. En este caso, es todavía más importante que realicéis una auditoría de cookies a vuestra web para añadir todas las que estáis usando.

Cookies que usa Prestashop.

  • PrestaShop-XXXXXXXXXX– Cookie que usa Prestashop para guardar información y mantener abierta la sesión del usuario. Permite guardar información como moneda, idioma, identificador del cliente…
    Necesaria. De sesión: duración 1 mes.
  • sf_redirect : Cookie que se usa para redirigir la sesión del usuarios. No necesaria. De sesión.

La primera cookie se crea con este código y, como véis, está cifrada en md5 y depende de cada tienda.

$this->_name = 'PrestaShop-'.md5(($this->_standalone ? '' : _PS_VERSION_).$name.$this->_domain);

Insertar un quiz (cuestionario) en Contact Form 7 para reducir el spam en WordPress.

Ya os hemos hablado en otros artículos sobre las maneras de evitar el spam en el plugin de formularios de WordPress Contact Form 7. Y que realmente la mejor manera es insertar varias protecciones por capas para llegar a un equilibrio entre seguridad y usabilidad, intentado evitar lo máximo posible los falsos positivos.

Uno de los métodos que mencionamos en el artículo eran los Quizzes, o cuestionario. Son una manera de intentar identificar a los robots con preguntas que sólo un humano sabría razonar. La idea es que se interprete algo leído, y se saque una conclusión como respuesta. Evidentemente con la IA la eficacia de esto se reduciría…pero muchos de los robots spam no son todavía tan listos.

Preguntas típicas (puedes inventarte las tuyas propias serían):

  • ¿De qué color es la leche?
  • ¿Cuantas patas tiene un caballo?
  • ¿Cuál es la capital de Francia?
  • ¿Que se obtiene al mezclar amarillo y rojo?
  • ¿Cuánto es doscientos menos tres?


Lo bueno del Quiz es que es fácil de implementar, poco intrusivo (menos que el reCaptcha V2) y bastante eficaz.
Por ejemplo una buena combinación sería un Honeypot y un Quiz en el formulario.

Recordad que este método del quiz se puede implementar fácilmente en cualquier formulario con un poco de programación básica.

Cómo insertar un quiz en un formulario de Contact Form 7.

Sólo tienes que insertar el siguiente código en tu formulario:


En el formato

También puedes poner varias preguntas para que las cambie aleatoriamente:

[quiz preguntasaleatorias "¿De qué color es la leche?|Blanca"
                        "¿Cual es la capital de Francia?|Paris"
                        "¿Cuánto es cien menos uno?|99"]

Si pinchais en el botón cuestionario en el formulario os sale un generador que os permite generar el código de manera sencilla

Más información aquí.

Borrar pedidos y clientes en Prestashop con módulos gratuitos.

Lo primero es decir que borrar pedidos de una tienda en curso no es muy lícito (y puede que ilegal). Pero en ocasiones tenemos que borrar pedidos de prueba, o pedidos de una página en desarrollo. Así que puede ser necesario.
Hoy os dejamos dos maneras.

Módulo PrestaShop Cleaner en Prestashop 1.7

Desde hace tiempo existe este módulo útil y peligroso, gratuito y desarrollado por Prestashop: Prestashop Cleaner. Seguramente por el peligro que tienen, si no se sabe manejar, Prestashop lo ha escondido un poco más.

Para instalarlo ve a Módulos->Catálogo de Módulos y busca Cleaner.

Ahí verás que puedes instalar este módulo. Si no aquí tienes un sitio de descarga: https://github.com/PrestaShop/pscleaner
El módulo consta de 4 secciones, y una advertencia clara:
Ten mucho cuidado con esta herramienta – ¡No hay vuelta atrás!
Nota: haced una copia de la base de datos antes de usarla para tener un plan B.

  • Catálogo. Si le das a Si aquí, y a Eliminar Catálogo, borras completamente el catálogo de Prestashop. Cuidado, sólo para poner empezar una tienda desde cero.
  • Pedidos y Clientes: Si le das a Si y a Eliminar Pedidos y Clientes, borraras todos los clientes y pedidos de tu tienda (y pones los ID de cada uno otra vez a cero). Pero sin poder seleccionar, es todo o nada. Así que sólo para una limpieza total.
  • Limitaciones de la Integridad Funcional. Nos comprueba si todo va ok. Si tienes errores raros es algo que puedes probar. Aunque es muy básico.
  • Limpieza de la base de datos. Una limpieza que no viene mal hacer de vez en cuando. Aunque es básica.

Como veis el problema de este módulo es que es muy «drástico». Se carga todo o nada. Pero gratis, rápido y hace lo que promete.

Módulo Delete Orders Free de MyPresta.

Hemos hablado bastante de los módulos de MyPresta, porque crea muchos módulos gratuitos y útiles. Hoy os dejamos uno más: Delete Orders Free.
Una vez instalado este módulo, verás que en la secciónd e Pedidos de Prestashop aparece una nueva sección llamada Borrar Pedidos. Ahí podréis poner el ID del pedido en cuestión (lo tienes que coger antes de la sección pedidos) y darle a borrar.

Obviamente lo bueno de este módulo es que te deja borrar pedidos específicos.

Esperamos que con estos módulos podáis controlar los datos y pedidos que borráis de vuestras tiendas en Prestashop.

Truco en CSS: cambia texto por otro o ocúltalo.

Si tenéis conocimientos de CSS, seguramente ya sabréis cómo ocultar texto por CSS. Tenéis tres maneras:

  1. Le ponéis a la etiqueta (id o clase) del texto un display:none
  2. Cambiais el color de texto a color:transparent o al color del fondo.
  3. Ponéis el texto con visibility: hidden.

La primera hace desaparecer lo que quites, tanto para robots como para usuarios. El problema es que muchas veces hace desaparecer también el contenedor (por ejemplo la altura de línea). Y puede que no queramos, por ejemplo para el truco de hoy.
Las dos últimas tienen un problema desde el punto de vista SEO. Los usuarios van a leerlo, porque básicamente lo estamos ocultando. Pero los robots ignorarán el CSS y puede ver ese texto. Así que puede indexarse y hasta aparecer en Google. Así que tienes que tener cuidado con qué texto ocultas y debe ser una última solución cuando todo lo demás falla (es mejor quitarlo por programación).

Cómo cambiar texto por otro en CSS.

Usando el proceso anterior, os vamos a mostrar un truco para cambiar un texto de una web por otro.
Por las razones anteriores de los robots, este debe ser el último recurso. Antes debemos probar cambiarlo por código (Html5, php, Javascript, Php…). Pero si no podemos, siempre nos queda esta opción.

Para cambiar texto por CSS:

  • primero tenemos que poner un visibility:hidden en el id del texto que queremos cambiar. Esto hará que no se vea, pero la «línea» seguirá ahí. Por ejemplo:

    #loquequieroocultar {visibility: hidden;}
  • Después cogemos la etiqueta y añadimos un ::after, incluyendo contenido en ese after y forzando que tenga visibilidad (porque si no coge la del padre). Además, lo moveremos a la izquierda con un float:left y podemos colocar con el padding-left adecuado. Por ejemplo

    #loquequieroocultar { content:"Frase que quiero poner";
    visibility: hidden;
    float:left;}

Con esto veréis que tenemos el text que necesitábamos.
En este vídeo enseñamos el proceso.

Prestashop 1.7. Slider no se muestra en la versión móvil

Hoy tenemos una de esas tonterías que te pueden hacer perder el tiempo dando vueltas y vueltas, cuando la solución es muy sencilla. Esperemos que ahorre tiempo a la gente.

Si has desarrollado una web en Prestashop 1.7, y usado el tema Classic, el que viene por defecto (aunque sea con un tema hijo) te habrás dado cuenta de un problema con el slider (carrusel para poner fotos en la portada) en la versión móvil.
En PC funciona, no da ningún problema, pero en móvil no aparece.
Y no hay opción visible en la configuración para activar esto.

Solución.

La solución es sencilla. Aunque no obvia, y no entiendo por qué no lo han metido en la configuración.

Tienes que pinchar en el desplegable al lado del módulo (donde se activa y desactiva) y veréis que hay una opción llamada «Enable Mobile«.
Hay que pinchar ahí.

Es decir, el módulo viene desactivado por defecto en móviles y hay que activarlo.


Elegir donde no queremos que aparezcan anuncios automáticos de Google Adsense.

Desde que escribimos el artículo sobre cómo excluir páginas de nuestros anuncios automáticos de Google Adsense, nos han hecho muchas veces la misma pregunta. ¿Cómo puedo escoger dónde no quiero que aparezcan los anuncios?

Porque los anuncios automáticos están muy bien, pero en muchas ocasiones son muy intrusivos, se ponen automáticamente en posiciones que no queremos. Y esto, en la portada de nuestra web da MUY mala imagen.
Por eso muchos de los lectores querían eliminar la portada del sitio, pero con el truco anterior no es posible (porque eliminas la raíz).

Hasta ahora no era posible, la única solución era eliminar los anuncios «In page» que se incrustaban en la página. Pero claro, perdemos posibles medios de ingreso.
Pero Google parece que se ha espabilado (ha tardado) y acabamos de ver que han puesto (recientemente) una herramienta para solucionarlo.

Cómo eliminar posiciones donde no queremos que aparezcan los anuncios automáticos de Adsense.

Entrando en Adsense, en los anuncios que queremos modificar, ahora Google muestra una previsualización de nuestra web, con los sitios que detecta tiene para poner anuncios.

Ahora podemos eliminar estas posiciones que son molestas, y así no nos aparecen las que más intrusivas sean.
En la previsualización podemos poner cualquier url, por si los anuncios molestos aparecen en otro sitio que no es la portada.

Algo muy útil para los que usamos Adsense, lo hemos probado y funciona.
Espero que os resuelva la duda a todos los que teníais el mismo problema.

Aquí os dejamos el vídeo explicándolo.

Plugins para detectar Adblockers en WordPress.

Muchos usuarios tienen puesto, en sus navegadores, extensiones que bloquean los anuncios. Los famosos adblockers. Es muy entendible en un Internet donde intentan venderte de todo y, a veces, uno acaba cansado de tanto «bombardeo» de productos.

PERO, está la versión de nosotros, los creadores de contenido. Dedicamos tiempo y recursos a escribir contenido que, en muchas ocasiones es útil para los lectores. Y los anuncios son nuestra parte principal de financiación en este área.

¿Cómo compaginar, entonces, el crear contenido, y recibir una compensación por ello, con el derecho de los usuarios a poder ver dicho contenido sin anuncios?

Ante este problema de los adblockers los creadores tienen varias opciones y todas pasan por detectar si el usuario está usando un adblocker.
Una vez detectado, el creador puede optar por:

  • No ofrecer contenido a los usuarios que tengan estas extensiones (redirigiendo al usuario o ocultando el contenido).
  • Avisar al usuario constantemente que está bloqueando una fuente de ingresos para el creador.
  • Mi preferida: avisar una vez al usuario que está bloqueando una fuente de ingresos importante y pedirle que ponga la página en la lista blanca del adblocker.
    Recomiendo algo como «Hemos detectado que estás usando un adblocker. Los anuncios son un importante método de ingresos para nosotros. Te solicitamos que nos apoyes y añadas en la lista blanca de tu adblocker. Intentamos ser lo menos intrusivos posibles.«

Hoy os enseñamos cómo podéis detectar adblockers en WordPress.
En otros artículos os enseñaremos varios scripts para cualquier sistema, y maneras en las que se hace esta detección.

Nota: alguno de los plugins hace tiempo que no se actualizan. Puede ser poruqe funcionen, o porque el proyecto esté abandonado. Probadlos, y si no siempre podéis usar los scripts del siguiente artículo.

Plugins para detectar adblockers en WordPress.

Os dejamos algunos de los más usados.

  • Ad Blocker Notify Lite. Uno de los plugins más usados. Tiene muchas opciones de presentación (efectos, CSS etc), varias opciones para evitar que le detecten los adblockers y cuando sale el mensaje. Muy completo y actualizado. El que usamos nosotros en clientes.
  • Simple Adblock Notice: Sólo te permite mostrar un mensaje, personalizar cuándo quieres mostrarlo y si quieres que puedan ver la web o no.
  • Adblocking Detector: Te permite usar shortcodes que puedes usar para mostrar mensajes en vez del artículo, o como widgets para mostrar avisos. Hace un año que no se actualiza (en el momento que escribimos el artículo).
  • Adback Solution to adblock. Muestra un mensaje en el pie para desactivar el adblocker y también te permite mostrar un anuncio ahí. Lleva poco tiempo

Etiqueta de «No Disponible» en la imagen de productos en Prestashop 1.7 plantilla Classic.

Prestashop 1.7 está cambiando mucho. Poco tienen que ver el 1.7 que salió (a todas luces casi una beta) con el 1.7.6 de ahora. Aún así, y por todos los cambios, nosotros estamos configurando en los clientes la plantilla Classic que viene con Prestashop (y es la que están renovando).

En esta plantilla, en estos momentos, no se puede poner fácilmente un cartel de «No Disponible» en los productos que están fuera de stock (en la descripción si, pero no en la imagen). Parece que están haciendo avances en personalizar las «banderas» (flags) que podemos poner al listado de productos, pero todavía no se puede. Así que toca personalizar código y os enseñamos cómo (nosotros siempre creamos tema hijo, así que estas modificaciones son más fáciles).

Cómo poner la etiqueta de No Disponible en los productos de Prestashop.

Tenemos dos sitios en los que poner la personalización. Uno para que aparezca en el producto individual (al abrirlo) y otro en los listados (en las miniaturas de portada, categorías etc).

Etiqueta de No Disponible dentro del producto individual.

Para que salga la etiqueta «No Disponible» en la imagen del producto al abrir el producto, tenemos que editar el fichero product.tpl en la ruta /httpdocs/themes/nombredetutema/templates/catalog/produc.tpl 
Si tienes un tema hijo, crea esos directorios y copia el fichero del padre aquí. Así puedes editar sin problemas.

Tenemos que añadir lo siguiente:

{if $product->quantity == 0 AND $quantity == 0}
    <li class="product-flag rojo">
        {l s="NOT AVAILABLE" d="Shop.Theme.Catalog"}
    
    {/if}

Justo después de class=»product-flags» y antes de {foreach from=$product.flags item=flag}

Con esto, comprobará la cantidad antes de poner el resto de «carteles» y, si es cero, pondrá la de sin stock.

Etiqueta de No Disponible dentro de los listados de productos.

Para que aparezca el cartel de No Disponible en la foto miniatura de los listados de productos como en la portada o en las categorías, tenemos que hacer la misma modificación en otro fichero.

En este caso la ruta es : /httpdocs/themes/tutema/templates/catalog/_partials/miniatures/product.tpl

La modificación de código es la misma que en el caso anterior y la posición la misma (antes que empiece a cargar el resto de carteles).

Con esto ya tendréis el cartel que necesitabais en todas las vistas de productos (si falta alguna lo añadiremos aquí).

Cookies que usa WooCommerce.

Seguimos con nuestra serie de artículos sobre cookies en los CMS o plugins más conocidos. En este caso toca WooCommerce, el plugin más usado en WordPress para crear tiendas online.

Afortunadamente WooCommerce (al contrario que los servicios de Google) si que tiene información detallada sobre sus cookies que podéis ver aquí.
Os los resumimos.

Cookies de WooCommerce en el Front-End de la web (portada).

Nota: no se almacena información personal en estas cookies.

  • woocommerce_cart_hash : Coookie que ayuda a detectar y guardar cambios en el carrito. Sesión.
  • woocommerce_items_in_cart: Coookie que ayuda a detectar y guardar cambios en el carrito. Sesión.
  • woocommerce_recently_viewed : Para que funcione el widget de «visto recientemente». Sesión.
  • store_notice[notice id]: Para que los usuarios puedan descartar el aviso de tienda. Sesión.
  • wp_woocommerce_session_: Añade un código único a cada cliente para poder identificar su carrito en la base de datos. Persistente. Duración: 2 días.

Cookies de WooCommerce en el Back-End de la web (administración).

Estas son las cookies que WooCommerce activa en la sección del back-end accesible por /wp-admin

  • woocommerce_snooze_suggestions__[suggestion] : Permite descartar notificaciones del marketplace. Persistente. Duración: 2 días.
  • woocommerce_dismissed_suggestions__[context]: Cuenta las veces que se han descartado las notificaciones del marketplace. Persistente. Duración: 1 mes.
  • tk_ai: Guarda un ID aleatorio generado en el backend para estadísticas. Sesión.

Cookies de los servicios de Google 2. Youtube

Seguimos con los artículos sobre las cookies que instalan los recursos más usados en las páginas web. En concreto los de Google. Hace unos días hablamos de Analytics, hoy toca Youtube.

Youtube Logo

Recordamos cómo usa Google las cookies, y los tipos de cookies que usa.

Destacamos también que, aunque todo este tema está todavía difuso, en desarrollo, con problemas obvios, y sin gente a la que consultar… quiero enlazar este documento sobre cookies de la Comisión Europea, que parece indicar que las cookies de vídeos incrustados están exentos de requerir consentimiento. Se supone que son básicos para la estructura de la web (cosa que parece lógica). Y cito:

«Exemptions on Europa

In line with Article 5(3) of the ePrivacy Directive, consent is not required for technical storage or access of the following cookies:

  • cookies used for the sole purpose of carrying out the transmission of a communication
  • cookies that are strictly necessary in order for the provider of an information society service explicitly required by the user to provide that service

Examples of cookies that generally do NOT require consent:

  • User input cookies, for the duration of a session
  • Authentication cookies, for the duration of a session
  • User-centric security cookies, used to detect authentication abuses and linked to the functionality explicitly requested by the user, for a limited persistent duration
  • Multimedia content player session cookies, such as flash player cookies, for the duration of a session
  • Load balancing session cookies and other technical cookies, for the duration of session
  • User interface customisation cookies, for a browser session or a few hours, when additional information in a prominent location is provided (e.g. “uses cookies” written next to the customisation feature)«

Nota: Youtube no tiene una política propia de cookies y enlaza a la general de Google que hemos comentado más arriba.

Cookies que usa Youtube.

  • PREF: Cookies común en los servicios de Google al iniciar sesión. Guarda preferencias. Persistente. Duración 2 años.
  • NID: Cookie de preferencias común en los servicios de Google. Un navegador envía esta cookie a través de solicitudes a los sitios web de Google. La cookie NID contiene un ID único que Google utiliza para recordar tus preferencias y otra información, como tu idioma preferido (por ejemplo, el español), el número de resultados de búsqueda que quieres que se muestren por página (por ejemplo, 10 o 20) y si quieres que el filtro SafeSearch de Google esté activado o desactivado. Persistente. Duración 6 meses.
  • SID y HSID: Cookies comunes a los servicios de Google. Contienen registros encriptados y firmados de forma digital de la hora de inicio de sesión más reciente y del ID de cuenta de Google de un usuario. La combinación de estas dos cookies les permite bloquear muchos tipos de ataques como, por ejemplo, intentos de robo del contenido de los formularios que rellenas en páginas web. Persistente. Duración 2 años.
  • SSID: Cookies comunes a los servicios de Google. Para guardar configuración y preferencias de usuario. Persistente. Duración 2 años.
  • SIDCC: Cookies comunes a los servicios de Google. Para guardar configuración y preferencias de usuario. Persistente. Duración 3 meses.
  • SAPISID: Cookies creada al usar videos incrustados de Youtube. Persistente. Duración 2 años.
  • LOGIN_INFO: Cookies creada al usar videos incrustados de Youtube. Persistente. Duración 2 años.
  • VISITOR_INFO1_LIVE: Cookies creada al usar videos incrustados de Youtube. Persistente. Duración 6 meses
  • YSC: Cookies creada al usar videos incrustados de Youtube. Sesión.
  • wide: Sesión.
  • endscreen-metadata-editor-gh: Persistente. Duración. 7 días.
  • _ga: relacionado con Analytics, pero a veces añadido por Youtube . Persistente. Duración 2 años.
  • CONSENT: Cookie técnica de reproducción de contenido. Persistente. Duración 20 años.