[Aporte] Detectar productos sin imágenes en Prestashop 1.6

catoku

Amante de Prestashop
Estaba buscando la forma de detectar productos que teóricamente tienen una imagen, pero que luego no se ve en la tienda.

He encontrado este aporte:

http://blog.belvg.com/how-to-find-products-with-broken-images-in-prestashop.html

Que consiste en lo siguiente:

Crear un fichero con este contenido:

Insertar CODE, HTML o PHP:
<?php
/*prepare list of broken images*/
require(dirname(__FILE__).'/config/config.inc.php'); //  you might need to change the path to the file 'config.inc.php' if you are not in the root folder
$id_lang = 1; //getting links for one language. This is enough to identify empty images
$i = 0;
$limit = 100;
$filename = 'broken_urls.txt';
file_put_contents($filename, '', LOCK_EX); //remove old content
//file_put_contents($filename, '', FILE_APPEND | LOCK_EX); //append content
do {
    $images = Db::getInstance()->executeS('
        select *
        from `'._DB_PREFIX_.'image` i
        limit ' . (int)($i++ * $limit) . ', ' . (int)$limit . '
    '); //receiving the stack of images

    foreach ($images as $image) {
        $imgObj = new Image($image['id_image'], $id_lang);
        $image_path = _PS_PROD_IMG_DIR_ . $imgObj->getImgPath() . '.' . $imgObj->image_format;
        if (!file_exists($image_path)) { //verifying, whether the file with the image exists
            $productObj = new Product($image['id_product'], NULL, $id_lang); //creating a product object for link generation

            print_r($image['id_product'] . ' => ' . Context::getContext()->link->getImageLink($productObj->link_rewrite, $image['id_image']) . chr(10)); //die;
            file_put_contents($filename, $image['id_product'] . ' => ' . Context::getContext()->link->getImageLink($productObj->link_rewrite, $image['id_image']) . chr(10), FILE_APPEND | LOCK_EX);
        }
    }
} while(count($images));
Guardalo con el nombre que quiera, por ejemplo:


Insertar CODE, HTML o PHP:
belvg.php
He subido el fichero al raiz de la web, y luego he ejecutado el fichero accediendo al mismo fichero desde el navegador:

Insertar CODE, HTML o PHP:
tutienda.com/belvg.php
Y al ejecutarlo, en el mismo directorio me ha creado una fichero llamado:

broken_urls.txt
con la información.

* Importante leer los comentarios del código que ha puesto belvg , ya que dependiendo de una cosa u otra, a que modificar el código.
 
Arriba