Cómo obtener todas las imágenes de un producto en particular

8

Cómo obtener todas las imágenes de un producto en particular usando este código, puedo obtener solo una imagen del producto en particular. .

Por favor ayuda, soy nuevo en esto.

<?php 
// Get products in category
require_once('../app/Mage.php');//Path to Magento umask(0);

if(isset($_GET["categoryId"])){
  $categoryId=$_GET["categoryId"];
    $proxy = new SoapClient('http://www.prashant.com/index.php/api/v2_soap/?wsdl'); // TODO : change url
    $sessionId = $proxy->login('prash', 'prashant123@'); // TODO : change login and pwd if necessary

    $products= $proxy->catalogCategoryAssignedProducts($sessionId,$categoryId);


    $itemDetails=array();
    Mage::app(); 

  foreach ($products as $item) { 

    $product2 = Mage::getModel('catalog/product')->load($item->product_id);
    $productMediaConfig = Mage::getModel('catalog/product_media_config');
    $baseImageUrl = $productMediaConfig->getMediaUrl($product2->getImage());
    $price2=0;
    $price2=$product2->getFinalPrice();
    if($price2==0){
    $price2=$product2->getPrice();
    }



    $desc=$product2->getDescription();
           if($desc==""){
            $desc="blank";
           }
           $baseImageUrl = $productMediaConfig->getMediaUrl($product2->getImage());
           if($baseImageUrl=="http://www.prashant.com/media/catalog/product/"){
            $baseImageUrl="http://www.prashant.com/customApi/icon.png";
           }

           //"desc"=>$desc,

           $statusp=$product2->getStatus();
    $statusen= Mage_Catalog_Model_Product_Status::STATUS_ENABLED;


    if($statusp==$statusen){
         $itemDetails[]=array(
      "productId"=>$item->product_id,
      "name"=>$product2->getName(),
      "price"=>$product2->getPrice(),
      "spprice"=>$price2,
      "desc"=>$desc,
      "imageurl"=>$baseImageUrl,
      );
    }


  }
  //return array of products
  //echo "<pre>";
  //print_r($itemDetails);
  //echo "</pre>";
  echo json_encode($itemDetails);
  exit();
}else{
  echo "error";
  exit();
}
?>
Prashant Das
fuente

Respuestas:

8

Use el siguiente código para aprovechar todas las imágenes de un producto en particular.

$product = Mage::getModel('catalog/product')->load(2);
$base = $product->getImage();
$thumb = $product->getThumbnail();
$small = $product->getSmallImage();

foreach ($product->getMediaGalleryImages() as $image) 
{ //will load all gallery images in loop
    //print_r($image);
      $file_name = $image->getFile();
}
Abhinav Singh
fuente
4

Puede obtener todas las imágenes de los productos siguiendo el script, incluidas las imágenes que están excluidas:

$product->getMediaGalleryImages('images')

$product should be an instance of Mage_Catalog_Model_Product
sandip
fuente
3

A continuación, la variable le devuelve una matriz de todas las imágenes de medios con respecto a esa identificación del producto.

 $images = Mage::getModel('catalog/product')->load($item->product_id)->getMediaGalleryImages();
Ram Pratap Singh Gour
fuente
2
$result = $client->catalogProductAttributeMediaList($session, $_productId);
echo "<pre>"; print_r($result);
Pradeep Sanku
fuente
2
<?php foreach ($product->getMediaGalleryImages() as $image) :?>

<img src="<?php echo Mage::helper('catalog/image')->init($product, 'image', $image->getFile())->resize(100, 100); ?>" alt="<?php echo $product->getName()?>" />

<?php endforeach; ?>
Vinod Kumar
fuente
1

La función getImage () solo puede proporcionarle la imagen base de un producto.

Si desea obtener todas las imágenes del producto, debe llamar a la galería multimedia .

Si tiene un objeto de producto completo , puede reproducir imágenes usando el siguiente código:

$mediaGallery = $product->getMediaGalleryImages();
    /* get Image one by  using loop*/
    foreach ($product2->getMediaGalleryImages() as $image) {
        echo ($image->getUrl());
    $productMediaConfig->getMediaUrl($image->getUrl());
    } 

después $desc=$product2->getDescription();.

Tenga en cuenta que: como usted tienefull load the product model by product2 = Mage::getModel('catalog/product')->load($item->product_id);

Luego, usa la imagen multimedia getMediaGalleryImages() fácilmente.

Si tiene una colección, use una forma más rápida de cargar imágenes de medios en una colección de productos para obtener imágenes de medios

Amit Bera
fuente
1

Prueba este:

$product = Mage::getModel('catalog/product')->load(3);//product id 3

    foreach ($product->getMediaGalleryImages() as $image) {
                         echo $image->getUrl();
    }  
PЯINCƏ
fuente