Prestashop get the product default image from the product name?

NewUser picture NewUser · Mar 11, 2014 · Viewed 9.2k times · Source

In Prestashop I want to know by which pattern prestashop shows the product default image? I mean lets say I have a mysql query for prestashop like this

SELECT ps_product.id_product,ps_product.id_category_default,description_short,ps_product_lang.name FROM ps_product_lang,ps_product WHERE ps_product_lang.id_lang=1 AND ps_product.id_product=ps_product_lang.id_product

Now here I will get the product id, product category, description, and name. Now according to prestashop default products and database I have for the product iPod Nano the database fields are like

id_product  id_category_default
  1               3       

Now if I want to get the product image I will use

img/p/id_product/id_category_default/id_product.id_category_default

This will make the img src like

img/p/1/3/13.jpg

Now when I used that I got the image for Belkin Leather Folio for iPod

but with the same condition I got the exact image for ipod shuffle. So can someone kindly tell me how to get the exact default image for the product name? Any help and suggestions will be really appreciable.

Answer

yenshirak picture yenshirak · Mar 11, 2014

You can use this query to get the image id of the cover image (image displayed in category view) for a product:

SELECT id_image FROM ps_image WHERE cover = 1 AND id_product = $idProduct

Then you can generate the image path with the following code:

$imgPath = 'img/p/';
for ($i = 0; $i < strlen($idImage); $i++) {
  $imgPath .= $idImage[$i] . '/';
}
$imgPath .= $idImage . '.jpg';

If you want to get the image id of the default thumbnail displayed in the product view then you can use this query:

SELECT id_image FROM ps_image WHERE position = 1 AND id_product = $idProduct