Magento에서 제품의 이미지를 얻는 방법?


5 Answers

어떤 경우에는 $this-> Mage:: 를 대체하려고 할 수 있습니다. 문자열로 변환해야합니다.

내 경우에는 DirectResize 확장 (직접 링크)을 사용 하고 있으므로 내 코드는 다음과 같습니다.

(string)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3)

비율 옵션 (세 번째 매개 변수)은 다음과 같습니다.

  • 비례하지 않습니다. 이미지의 너비 및 높이 값의 크기가 조정됩니다.
  • 비례, 너비 값에 따라 2
  • 비례, 높이 값 3 기준
  • 새 이미지의 비례는 너비 및 높이 값에 맞을 수 있습니다. 4
  • 비례항. 새 이미지는 너비와 높이 값이있는 영역을 포함합니다.

업데이트 : here 다른 정보 및 버전

플러그인이없는 일반적인 방법 은 다음과 같습니다.

(string)Mage::helper('catalog/image')->init($_product, 'image')->resize(150)

'이미지'를 '작은 이미지'또는 '미리보기'로 바꿀 수 있습니다.

Question

버전 1.3.2.1에서 실행 중이지만 클라이언트의 서버에서 Magento 1.3.0을 사용했기 때문에 이전 버전의 코드를 사용하여 로컬 사본,

echo $this->helper('catalog/image')->init($_product)->resize(163, 100);

, 클라이언트 설치시 작동하지 않습니다.

Magento에서 반환 한 결과를 보면 버전 1.3.0이 실제로 스킨의 미디어 폴더를 가리 키지 만 URL을 반환합니다.

이미지의 절대 이미지 경로를 얻을 수있는 방법이 있습니까?
또는 미디어 디렉토리가 루트에 있어야한다고 Magento에게 알려주는 다른 곳에서 변경해야합니까?




$model = Mage::getModel('catalog/product'); //getting product model
$_products = $model->getCollection(); //getting product object for particular product id
foreach($_products as $_product) { ?>
    <a href = '<?php echo $model->load($_product->getData("entity_id"))->getUrl_path(); ?>'> <img src= '<?php echo $model->load($_product->getData("entity_id"))->getImageUrl();  ?>' width="75px" height="75px"/></a>
     <?php echo "<br/>".$model->load($_product->getData("entity_id"))->getPrice()."<br/>". $model->load($_product->getData("entity_id"))->getSpecial_price()."<br/>".$model->load($_product->getData("entity_id"))->getName()?>
<?php 



// Let's load the category Model and grab the product collection of that category

$product_collection = Mage::getModel('catalog/category')->load($categoryId)->getProductCollection();

// Now let's loop through the product collection and print the ID of every product 
foreach($product_collection as $product) {
  // Get the product ID

$product_id = $product->getId();

  // Load the full product model based on the product ID

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

  // Now that we loaded the full product model, let's access all of it's data

  // Let's get the Product Name

  $product_name = $full_product->getName();

  // Let's get the Product URL path

  $product_url = $full_product->getProductUrl();

  // Let's get the Product Image URL

  $product_image_url = $full_product->getImageUrl();

  // Let's print the product information we gathered and continue onto the next one

 echo $product_name;

  echo $product_image_url;


}



다음은 컬렉션의 모든 제품에 대한 모든 이미지 데이터를로드하는 방법입니다. 그 순간 Mage :: getModel에서 Mage :: helper로 전환하여 제품을 다시로드해야하는 이유가 확실하지 않지만 완료되어야합니다. 나는 magento image soap api에서이 코드를 리버스 엔지니어링했습니다. 그래서 나는 그 코드가 정확하다고 확신합니다.

나는 '39'와 동일한 벤더 코드로 제품을로드하도록 설정했지만 모든 속성으로 변경하거나 모든 제품을로드하거나 원하는 컬렉션을로드 할 수 있습니다 (현재있는 제품을 보여주는 phtml 파일의 컬렉션 포함). 화면!)

$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addFieldToFilter(array(
    array('attribute'=>'vendor_code','eq'=>'39'),
));

$collection->addAttributeToSelect('*');

foreach ($collection as $product) {

    $prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null);

    $attributes = $prod->getTypeInstance(true)->getSetAttributes($prod);

    $galleryData = $prod->getData('media_gallery');

    foreach ($galleryData['images'] as &$image) {
        var_dump($image);
    }

}



다음과 같은 제품 컬렉션 객체가있는 경우 :

$collection = Mage::getModel('catalog/product')->getCollection(); 

이제 이미지 경로를 얻을 수 없다면 $_product->getSku() 사용하여 제품 SKU를 얻을 수 있습니다.

echo $this->helper('catalog/image')->init($_product,'small_image')->resize(135);

또는

$_product->getImageUrl();

그런 다음 약간의 코드를 추가 할 수 있습니다.

$productModel = Mage::getModel('catalog/product');
$_prod = $productModel->loadByAttribute('sku', $_product->getSku()); 
$_prod->getImageUrl();



(string)Mage::helper('catalog/image')->init($product, 'image');

이 이미지는 CDN에서 호스팅되는 경우에도 이미지 URL을 제공합니다.




Related



Tags

magento