Seguro que os pasado un monton de veces que no sabeis cuantos productos teneis sin imagen, lo he resuelto de una forma rapida y no la más correcta pero funcional.
Conocimientos Minimos:
1.- Saber que es un ftp.
2.- Copia de Seguridad de los ficheros
Por ahora no lo hecho con override seguro que lo hare en otro momento, pero por ahora se queda así.
Lo primero os conectais por ftp a vuestro Prestashop :
Carpeta:
controllers/admin/AdminTrackingController.php
Primero de nada copia de seguridad del fichero y lo siguiente os vais hacia el final del fichero antes del ultimo parentesis y copias este codigo:
public function getCustomListProductosSinImagenes() { $this->table = 'product'; $this->className = 'Product'; $this->lang = true; $this->identifier = 'id_product'; $this->_orderBy = 'id_product'; $this->_orderWay = 'DESC'; $this->_filter = 'AND product_shop.`active` = 0'; $this->list_no_filter = true; $this->tpl_list_vars = array('sub_title' => $this->l('Productos Sin Imagenes:')); $this->show_toolbar = false; $this->_list_index = 'index.php?controller=AdminProducts'; $this->_list_token = Tools::getAdminTokenLite('AdminProducts'); $this->addRowAction('edit'); $this->addRowAction('delete'); $this->fields_list = array( 'id_product' => array('title' => $this->l('ID'), 'width' => 50), 'reference' => array('title' => $this->l('Reference'), 'width' => 150), 'name' => array('title' => $this->l('Name'), 'filter_key' => 'b!name') ); $this->clearFilters(); $this->_filter = 'AND a.id_product not IN ( SELECT id_product FROM `'._DB_PREFIX_.'image` )'; $this->_join = Shop::addSqlAssociation('product', 'a'); return $this->renderList(); }
Ahora os vais Catalogo -> monitoreo y tacha hacia el final os saldra algo nuevo, para mi es comodisimo cuando tienes muchisimo producto.
Probado en versión 1.5.*
OJO cuidado con la copia de seguridad, no me hago responsable.
Muy bueno!!! Y si quiero que aparezca también por status? Los que tengo activados?
A partir de la 1.6 ya viene para producos desactivados, en caso de ser inferior este es el codigo:
public function getCustomListProductsEnabled()
{
$this->table = ‘product’;
$this->list_id = ‘disabled_products’;
$this->className = ‘Product’;
$this->lang = true;
$this->identifier = ‘id_product’;
$this->_orderBy = ‘id_product’;
$this->_orderWay = ‘DESC’;
/*ACTIVADOS*/
$this->_filter = ‘AND product_shop.`active` = 0’;
/*DESACTIVADOS
$this->_filter = ‘AND product_shop.`active` = 0’;
*/
$this->show_toolbar = false;
$this->_list_index = ‘index.php?controller=AdminProducts’;
$this->_list_token = Tools::getAdminTokenLite(‘AdminProducts’);
$this->addRowAction(‘edit’);
$this->addRowAction(‘delete’);
$this->fields_list = array(
‘id_product’ => array(‘title’ => $this->l(‘ID’), ‘class’ => ‘fixed-width-xs’, ‘align’ => ‘center’),
‘reference’ => array(‘title’ => $this->l(‘Reference’)),
‘name’ => array(‘title’ => $this->l(‘Name’), ‘filter_key’ => ‘b!name’)
);
$this->clearFilters();
$this->_join = Shop::addSqlAssociation(‘product’, ‘a’);
$this->toolbar_title = $this->l(‘List of disabled products:’);
return $this->renderList();
}
Depende de lo que queramos comentaremos o descomentaremos la linea de activados o desactivados.
Muchas gracias Alberto eres un crack!!!
Funciona pero me salen los productos activados con y sin foto, pero lo que yo necesito es ver solo los productos activados sin foto, para que no se me escape ninguno 😀
Nada, por mas que cambio el codigo no consigo ver los activados sin foto para ir mas rápido
Tienes que indicarles que los active = 1 es el codigo de abajo
public function getCustomListProductosSinImagenes()
{
$this->table = ‘product’;
$this->className = ‘Product’;
$this->lang = true;
$this->identifier = ‘id_product’;
$this->_orderBy = ‘id_product’;
$this->_orderWay = ‘DESC’;
$this->_filter = ‘AND product_shop.`active` = 1’;
$this->list_no_filter = true;
$this->tpl_list_vars = array(‘sub_title’ => $this->l(‘Productos Sin Imagenes:’));
$this->show_toolbar = false;
$this->_list_index = ‘index.php?controller=AdminProducts’;
$this->_list_token = Tools::getAdminTokenLite(‘AdminProducts’);
$this->addRowAction(‘edit’);
$this->addRowAction(‘delete’);
$this->fields_list = array(
‘id_product’ => array(‘title’ => $this->l(‘ID’), ‘width’ => 50),
‘reference’ => array(‘title’ => $this->l(‘Reference’), ‘width’ => 150),
‘name’ => array(‘title’ => $this->l(‘Name’), ‘filter_key’ => ‘b!name’)
);
$this->clearFilters();
$this->_filter = ‘AND a.id_product not IN (
SELECT id_product
FROM `’._DB_PREFIX_.’image`
)’;
$this->_join = Shop::addSqlAssociation(‘product’, ‘a’);
return $this->renderList();
}
Con ese código se ven los activados y los desactivados sin foto, aunque ponga el 1
Probado en 1.6.1.2 y sin problema ninguno
public function getCustomListProductsEnabled()
{
$this->table = ‘product’;
$this->list_id = ‘enabled_products’;
$this->className = ‘Product’;
$this->lang = true;
$this->identifier = ‘id_product’;
$this->_orderBy = ‘id_product’;
$this->_orderWay = ‘DESC’;
$this->_filter = ‘AND product_shop.`active` = 1’;
$this->show_toolbar = false;
$this->_list_index = ‘index.php?controller=AdminProducts’;
$this->_list_token = Tools::getAdminTokenLite(‘AdminProducts’);
$this->addRowAction(‘edit’);
$this->addRowAction(‘delete’);
$this->fields_list = array(
‘id_product’ => array(‘title’ => $this->l(‘ID’), ‘class’ => ‘fixed-width-xs’, ‘align’ => ‘center’),
‘reference’ => array(‘title’ => $this->l(‘Reference’)),
‘name’ => array(‘title’ => $this->l(‘Name’), ‘filter_key’ => ‘b!name’)
);
$this->clearFilters();
$this->_filter = ‘AND a.id_product not IN (
SELECT id_product
FROM `’._DB_PREFIX_.’image`
)’;
$this->_join = Shop::addSqlAssociation(‘product’, ‘a’);
$this->toolbar_title = $this->l(‘List of activos products sin Imagenes:’);
return $this->renderList();
}
Si no eres capaz tenemos horas de servicio en el que te podemos arreglar lo que te pasa contratando 1 hora desde aqui:
http://tienda.informax.es/es/servicios-de-programacion/47-programacion-a-medida-para-prestashop.html
Probado en 1.6.1.2 pero me sigue saliendo los mismo productos, activados y desactivados sin foto. Intentaré concentrarme en el código.
Muy buen hack, todavía en los días de hoy lo necesito. Ahora
una pergunta, imaginando que después en la parte de Monitorización, me
aparece 10000 productos sin imagen y que necesito eliminarlos, cómo puedo
eliminar de forma masiva por el ID o la sección de productos sin imágenes en Monitorización? No tiene opción de seleccionar en bulto, y como son muchos productos este consejo me ayudaba. Gracias, continuación de buen contenido.