come ottenere tutte le immagini di un determinato prodotto


8

Come ottenere tutte le immagini di un determinato prodotto utilizzando questo codice sono in grado di recuperare solo una singola immagine del prodotto specifico. .

Aiutatemi, sono nuovo a questo.

<?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();
}
?>

Risposte:


8

Utilizzare il seguente codice per usufruire di tutte le immagini di un determinato prodotto.

$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();
}

4

Puoi ottenere tutte le immagini dei prodotti seguendo gli script inclusi quelli esclusi:

$product->getMediaGalleryImages('images')

$product should be an instance of Mage_Catalog_Model_Product

3

La variabile di seguito restituisce la matrice di tutte le immagini multimediali rispetto a tale ID prodotto.

 $images = Mage::getModel('catalog/product')->load($item->product_id)->getMediaGalleryImages();

2
$result = $client->catalogProductAttributeMediaList($session, $_productId);
echo "<pre>"; print_r($result);

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; ?>

1

La funzione getImage () è in grado di darti solo l' immagine di base di un prodotto.

Se vuoi ottenere tutte le immagini del prodotto, dovresti chiamare la galleria multimediale .

Se l' oggetto prodotto completo è quindi possibile media immagini utilizzando il codice seguente:

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

dopo $desc=$product2->getDescription();.

Nota che: come hai fatto tufull load the product model by product2 = Mage::getModel('catalog/product')->load($item->product_id);

Quindi l'immagine multimediale si utilizza getMediaGalleryImages() facilmente.

Se si dispone di una raccolta, utilizzare il modo Più veloce per caricare le immagini multimediali in una raccolta prodotti per ottenere l'immagine multimediale


1

Prova questo:

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

    foreach ($product->getMediaGalleryImages() as $image) {
                         echo $image->getUrl();
    }  
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.