Mostrar productos en páginas de contenido (CMS) en Prestashop

No recuerdo si en el pasado hicimos una reseña en el blog de un módulo del usuario Vekia de la comunidad de Prestashop que permite mostrar en una página CMS (página de contenidos) que hemos creado en la pestaña Preferencias -> CMS (en 1.7 Diseño -> Paginas) los productos que tenemos disponibles en la tienda. Un módulo muy útil que nos puede servir entre otras cuestiones para crear un landing page con varios productos.

El módulo es gratuito, y compatible con Prestashop 1.6 / 1.7

La instalación del módulo, se realiza desde la pestaña Módulos -> Módulos, como suele ser habitual.

Una vez instalado, simplemente accedemos a la pestaña Diseño -> Páginas para modificar o crear un contenido y para mostrar (añadir) un producto concreto escribimos la siguiente etiqueta:

{product:idProducto}
Ficha del producto en contenidos en Prestashop 1.7
Ficha del producto en contenidos en Prestashop 1.7

Donde hemos indicamos “idProducto“, indicamos el ID del producto que queremos que se vea en la página de contenidos.

Sí tras añadir la etiqueta, nos vamos a ver la página en nuestra tienda, visualizaremos el producto:

Visualización del producto en una página de contenidos (cms)
Visualización del producto en una página de contenidos (cms)

El módulo se puede descargar desde la siguiente dirección:

  • https://mypresta.eu/modules/front-office-features/products-on-cms-pages.html
  • Enlaces de emergencia por si en algún momento falla la web de Vekia. (PS 1.6 / PS 1.7), recordar siempre descargarlo desde la web de Vekia, ya que es donde se mantendrá siempre actualizado para las diferentes versiones/variantes de Prestashop

He actualizado a PHP 7.1 y mi tienda Prestashop 1.6 me reporta errores

Si no estáis trabajando con las ultimas variante en actualizaciones de Prestashop de la versión 1.6 de Prestashop, es posible que os hayáis encontrado con algunos reporte de errores debido a la versión 7.1 de PHP

Notice: Array to string conversion in /…/classes/Hook.php…

Si estáis trabajando con Prestashop 1.6.1.11 o con anteriores variantes de Prestashop 1.6  y no con Prestashop 1.6.1.12 (porque esta versión ya lo lleva integrado los dos cambios que  se proponen en este artículo.)

En github: https://github.com/PrestaShop/PrestaShop/pull/7392 tenemos propuesto los siguientes cambios:

Fichero:

classes/Hook.php

Sobre la línea (465)

Cambiamos este código:


$output = '';

if ($array_return) {
$output = array();
} else {
$output = '';
}

También, nos recomiendan cambiar el fichero:

classes/helper/HelperOptions.php

(Sobre la línea 105)

Cambiar esto:


if ($field['type'] == 'texarea' || $field['type'] == 'textareaLang') {

por


if ($field['type'] == 'textarea' || $field['type'] == 'textareaLang') {

En realidad, estos cambios ya están implementados en la última variante de la 1.6 de Prestashop a día de hoy, pero para aquellas personas que estén usando por ejemplo la 1.6.1.10 no están implementados.

Lo dicho, intentar siempre tener vuestra versión (variante) de Prestashop actualizada, es decir si estáis usando la 1.6, estar siempre actualizados a la ultima variante de Prestashop 1.6, y si estáis usando la versión 1.7 de Prestashop, estar siempre actualizados a la última variante de la Prestashop 1.7

Enlace de github, donde se trata este problema: https://github.com/PrestaShop/PrestaShop/pull/7392

Limitar número de productos en el carrito en Prestashop

Traducción de la guía realizada por el usuario Nemo de la Comunidad de Prestashop

Limitar números de productos en el carrito en Prestashop 1.6
Limitar número de productos en el carrito en Prestashop 1.6

Según nos indica Nemo, el tutorial es para Prestashop 1.6

Imaginemos que queremos que, en el carrito, no puedan existir más de 5 productos en total.

Recordamos que lo mejor es hacer un override de los Clases y Controladores que se vayan a modificar.

En el fichero:

/controllers/front/CartController.php

Dentro de la función:

processChangeProductInCart


Debajo de la línea: (En Prestashop 1.6.1.12, sobre la línea 241)

$cart_products = $this->context->cart->getProducts();

Añadimos la siguiente


$total_cart_produtcs_count=0;

Ahora un poco más abajo, donde tenemos esta línea:


foreach ($cart_products as $cart_product) {

Añadimos:


$total_cart_produtcs_count+=$cart_product['cart_quantity'];

Almacenamos en la variable total_cart_produtcs_count el número total de productos que se van añadiendo al carrito.

Ahora justo antes de este comentario:

// Check product quantity availability

Añadimos:


$max_qty = 5;
		if(Tools::getValue('op', 'up')=='up' && $mode=='add')
		{
			if (count($cart_products) == $max_qty || $total_cart_produtcs_count + $this->qty > $max_qty)
				$this->errors[] = sprintf(Tools::displayError('El limite de productos en el carrito son %s'), $max_qty);
			
		} 

  • En la variable “max_qty” indicamos el límite máximo de productos que se pueden añadir al carrito.
  • En el primero IF se chequea cuando se añade/actualiza productos al carrito.
  • En el segundo IF contamos los productos añadidos al carrito y los comparamos con el límite que hemos establecido
  • Si se cumplen los dos IF, imprimimos el mensaje de que se ha llegado al límite de productos que se pueden añadir al carrito.

Esta traducción, puede contener errores o quedar desactualizada en el momento en el que vayáis a ver este post, revisarla siempre con el tutorial de Nemo:

Imagen de previsualización de YouTube

Unificar anchura de los métodos de pago en el listado en Prestashop

En algunos post del foro, hace varios años fui comentando casos parecidos…

Guía basada en Prestashop 1.6 con la plantilla por defecto.

Llegado un momento, es posible que cuando vayamos a visualizar los métodos de pago, a la hora de elegir cual queremos para completar la compra, veamos que el ancho es diferente en cada uno de los bloques y no queda muy bien estéticamente.

En este ejemplo, tenemos instalado 4 módulos, que son, el Módulos de Contrareembolso, de Transferencia Bancaria, de Contra-Reembolso (Estos vienen por defecto en Prestashop) y el módulo de iupay (versión 2.8.3) descargado de la web de Redsys

Métodos de pago en Prestashop
Métodos de pago en Prestashop

En esta imagen, vemos que la anchura del módulo de “iupay” no es la misma que  la del resto de módulos.

La solución es la siguiente (en este caso).

1º Hacer override del tpl del módulo de esa parte en tu plantilla.

Copiar el fichero:

“/modules/iupay/views/templates/hook/payment.tpl”

En:

/themes/default-bootstrap/modules/iupay/views/templates/hook/” (La estructura de directorios del módulo la tenéis que crear en vuestra plantilla.)

2º Modificar: “/themes/default-bootstrap/modules/iupay/views/templates/hook/payment.tpl”

Cambiar en el fichero la siguiente instrucción:


<div class="col-xs-12 col-md-6">

por


<div class="col-xs-12">

Finalmente quedara de la siguiente forma:

Ancho de los métodos de pago totalmente unificados
Ancho de los métodos de pago totalmente unificados

Esto es solo un Ejemplo, es posible que en vuestro caso sea debido a otro problema, tenéis que fijaros en la estructura de otros módulos, como por ejemplo el de transferencia bancaria:


/themes/default-bootstrap/modules/bankwire/views/templates/hook/payment.tpl

Y adaptar la estructura básica al vuestro.

Asociar imágenes a características en Prestashop

Tenemos un aporte del usuario Reda OULED que permite configurar imágenes a los valores de las características en Prestashop 1.7 (También compatible con Prestashop 1.6)

La instalación de este módulo se hace desde la pestaña Módulos -> Módulos y Servicios, como suele ser habitual.

Configuración del módulo para asociar imágenes a las características en Prestashop 1.7
Configuración del módulo para asociar imágenes a las características en Prestashop 1.7

La única opción de configuración que nos permite el módulo, son simplemente la anchura y altura a la que vamos a visualizar la imagen que vamos asociar al valor de la característica.

¿Cómo se añade una imagen al valor de la característica en Prestashop 1.7?

Vamos a la pestaña Catalogo -> Atributos y Características (Señalamos Características de los Productos)

Accediendo a la gestión de atributos y características en Prestashop 1.7
Accediendo a la gestión de atributos y características en Prestashop 1.7

Ahora señalamos una de las características y editamos un valor de dicha característica.

Editando valor de una característica
Editando valor de una característica
Añadiendo imagen al valor de una característica en Prestashop 1.7
Añadiendo imagen al valor de una característica en Prestashop 1.7

Vemos que ahora aparece un nuevo campo donde podemos subir/asociar la imagen al valor “Elegante” de la característica “Estilos” 

¿Cómo se ve la imagen en la tienda?

Visualización icono de la característica en Prestashop 1.7
Visualización icono de la característica en Prestashop 1.7

El módulo lo podemos descargar desde aquí:

  • https://www.prestashop.com/forums/topic/591769-module-gratuit-image-caract%C3%A9ristique/

Tutorial probado en Prestashop 1.7.0.6 con la versión “1.0.0” del módulo.

¿Exportar categorías por CSV en Prestashop 1.7?

Tenemos un aporte del usuario Daresh de la comunidad de Prestashop que permite exportar las categorías de la tienda.

El título de la entrada es un poco amarillista, porque el módulo por ahora es compatible con Prestashop 1.6, pero os invito a visitar el tema del foro para su compatibilidad con Prestashop 1.7.

Obviando la instalación del módulo no tiene complicación, simplemente lo subimos e instalamos desde la pestaña módulos -> módulos del panel de administración.

Las opciones de configuración que nos ofrece el módulo son:

Exportar categorías en Prestashop
Exportar categorías en Prestashop

Tal como podemos ver en la siguiente captura, simplemente nos ofrece la posibilidad de exportar todas las categorías por idioma (podemos seleccionar) y por tienda (si trabajamos con multitienda, podemos seleccionar tienda).

El módulo según nos indica el autor funciona bien en Prestashop 1.6

El módulo se descarga desde aquí:

  • https://www.prestashop.com/forums/topic/512749-free-module-export-categories-to-csv/
  • Enlace alternativo por si falla el enlace del foro. Intentar siempre descargar el módulo desde el foro.

Mostrando información del proveedor en la ficha del producto en Prestashop 1.6

Es cierto que tenemos módulos disponibles en la Comunidad, que nos pueden servir para mostrar “parte” de la información de los proveedores en la ficha del producto en Prestashop 1.6

Otra opción que nos propone “Nemo” en la que no trabajamos con módulos es la siguiente: (Hemos traducido la guía al idioma de Cervantes)

Crear un override en el directorio:

/override/controllers/front/

con el nombre “ProductController.php” y el siguiente contenido

< ?php
class ProductController extends ProductControllerCore
{
public function initContent()
{
parent::initContent();

if($this->product->id_supplier) {
$id_supplier_address = Address::getAddressIdBySupplierId($this->product->id_supplier);
$supplier_address = new Address($id_supplier_address);
}

if (Validate::isLoadedObject($supplier_address))
{
$this->context->smarty->assign(array(
'supplier_country'=> $supplier_address->country,
'supplier_company'=> $supplier_address->company,
'supplier_address1'=> $supplier_address->address1,
'supplier_postcode'=> $supplier_address->postcode,
'supplier_city'=> $supplier_address->city,
'supplier_phone'=> $supplier_address->phone,
'supplier_state' => State::getNameById($supplier_address->id_state),
'supplier_vat_number'=> $supplier_address->vat_number,
));
}
}
}

El siguiente paso, es ir al fichero: “/themes/tu-plantilla/product.tpl” y añadir el siguiente código: Continúa leyendo Mostrando información del proveedor en la ficha del producto en Prestashop 1.6

Google maps de fondo en el formulario de contacto en Prestashop

Desde la Comunidad, nos traen un módulo que “sitúa” de fondo, el mapa de google maps en el formulario de contacto de Prestashop.

Subimos e instalamos el módulo desde la pestaña Módulos -> Módulos (como es habitual).

Una vez instalado el módulo, vemos que nos ofrece las siguientes opciones de configuración:

Opciones de configuración del módulo
Opciones de configuración del módulo

Para obtener la “API” que nos piden en la primera opción de configuración

API key de Google Maps en Prestashop
API key de Google Maps en Prestashop

Tenemos que ir a:
https://developers.google.com/maps/documentation/javascript/get-api-key

Y pulsamos donde dice Get A KEY

Obtener la clave de la API
Obtener la clave de la API

Continúa leyendo Google maps de fondo en el formulario de contacto en Prestashop

Efecto Navidad para tu tienda en Prestashop 1.6 y 1.7

En el año 2013 comente en el blog:

Un módulo ideal para fechas navideñas que incluía un efecto de decoración en las columnas de la tienda, recuerdo que era para Prestashop 1.5, contando el tiempo que ha pasado, imagino que la compatibilidad será nula, pero dejo enlace por si queréis ojearlo: Ver módulo antiguo

Por suerte, en la comunidad de Prestashop, tenéis disponible un módulo que es compatible tanto con Prestashop 1.6, como con la versión 1.7 de Prestashop.

Expongo unas imágenes, para que veáis

Efecto Navidad Prestashop 1.7

Continúa leyendo Efecto Navidad para tu tienda en Prestashop 1.6 y 1.7

Restringir productos por grupos de clientes en Prestashop

Esta vez nos encontramos un módulo que permite restringir productos por grupos de clientes. De este modo, determinados productos solo serán visibles para determinados clientes.

No hablo de controlar categorías por grupos de clientes en Prestashop (eso si lo permite Prestashop), sino de controlar el acceso a los productos por grupos de clientes.

El módulo es gratuito y compatible con Prestashop 1.6 | (Desarrollador – elmag2107)
Continúa leyendo Restringir productos por grupos de clientes en Prestashop