Jump to content
  • 1
willyadda

Cómo redireccionar articulo desactivado a su categoría?

Question

Hola a todos,

 

Llevo tiempo leyendo por "San Google" y no doy con la solución.

 

Tenemos una tienda en prestashop y cada día vamos variando el stock de los productos. Estos productos a veces pueden no tener stock durante varias semanas e incluso meses. Hasta la fecha estoy desactivando los productos que no tienen stock y volviéndolos a activar cada vez que tienen. Poco a poco iba redireccionando (302) producto por producto a algún producto similar, pero la tienda ha ido creciendo y tenemos miles de artículos, esta labor es muy dura.

La idea es que cuando el posible cliente pinche en el enlace del producto desde los buscadores si el producto esta desactivado llevarle a la pagina que contiene la categoría asociado a ese producto y le muestre los productos que si están activados.

 

Pero como os comento por más que busco no encuentro la solución.

Alguna idea? mil gracias!

 

Saludos

Edited by willyadda

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Es mejor que lo hagas editando el controlador

controllers\front\ProductController.php

Alli en la funcion

public function init()

Tienes esto

switch ($this->product->redirect_type)
					{
						case '301':
							header('HTTP/1.1 301 Moved Permanently');
							header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
							exit;
						break;
						case '302':
							header('HTTP/1.1 302 Moved Temporarily');
							header('Cache-Control: no-cache');
							header('Location: '.$this->context->link->getProductLink($this->product->id_product_redirected));
							exit;
						break;
						case '404':
						default:
							header('HTTP/1.1 404 Not Found');
							header('Status: 404 Not Found');
							$this->errors[] = Tools::displayError('This product is no longer available.');
						break;
					}

Cambialo por esto para que te rediriga a la categoria por defecto del producto

	switch ($this->product->redirect_type)
					{
						case '301':
							header('HTTP/1.1 301 Moved Permanently');
							header("Location: ".$this->context->link->getCategoryLink($this->product->id_category_default));
							exit;
						break;
						case '302':
							header('HTTP/1.1 302 Moved Temporarily');
							header('Cache-Control: no-cache');
							header("Location: ".$this->context->link->getCategoryLink($this->product->id_category_default));
							exit;
						break;
						case '404':
						default:
							header('HTTP/1.1 404 Not Found');
							header('Status: 404 Not Found');
							$this->errors[] = Tools::displayError('This product is no longer available.');
						break;
					}

Share this post


Link to post
Share on other sites
  • 0

Muchísimas gracias Antonio

 

Funciona perfectamente. Es una solución un poco drástica pero tener que ir redireccionanado producto por producto era una labor descomunal.

 

Otra solución hubiera sido no mostrar en el front de las categorías y el home los productos que no tienen stock, pero probando las soluciones que encontré por el foro, a la hora de mostrar los productos se descuadraban y en la vista cuadricula dejaba huecos de productos en blanco. Seguramente es porque la función que le envié el total de productos no coincide con los productos que se muestran pero no conseguí modificar eso.

 

Lo dicho muchas gracias y saludos

 

Saludos

Edited by willyadda

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More