Подтвердить что ты не робот

Как получить изображение продукта в Magento?

Я запускаю версию 1.3.2.1, но на моем клиентском сервере у них был Magento 1.3.0 поэтому мой предыдущий код для отображения изображений для моей локальной копии,

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

не работает при установке клиента.

Глядя на результаты, возвращенные их Magento, версия 1.3.0 фактически возвращает URL-адрес, хотя он указывает на папку с носителями скинов.

Есть ли способ получить абсолютный путь изображения для изображения?
Или мне нужно внести изменения в другое место, которое сообщит Magento, что медиа-каталог должен находиться в корне?

4b9b3361

Ответ 1

echo $_product->getImageUrl();

Этот метод класса Product должен сделать трюк для вас.

Ответ 2

Вы можете попробовать заменить $this-> на Mage:: в некоторых случаях. Вам нужно преобразовать в строку.

В моем случае я использую расширение DirectResize (прямая ссылка), поэтому мой код выглядит следующим образом:

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

Параметры отношения (третий параметр):

  • не пропорционально. Изображение будет изменено в соответствии с значениями ширины и высоты.
  • пропорционально, в зависимости от значения ширины 2
  • пропорционально, исходя из значения высоты 3
  • пропорциональный для нового изображения может вписываться в значения Ширина и Высота. 4
  • пропорциональны. Новое изображение будет охватывать область с значениями ширины и высоты.

Обновление: другая информация и версии здесь


Обычным способом без плагина будет:

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

Вы можете заменить "изображение" на "small_image" или "thumbnail".

Ответ 3

Мне недавно тоже нужно было сделать это... вот как я добрался до него:

$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();

Надеюсь, что вам поможет!

Ответ 4

Вот как я нашел загрузку всех данных изображения для всех продуктов в коллекции. На данный момент я не уверен, зачем ему нужно переключиться с Mage:: getModel на Mage:: helper и перезагрузить продукт, но это нужно сделать. Я переделал этот код из мыльного пузыря magento, поэтому я уверен, что он правильный.

У меня он настроен на загрузку продуктов с кодом поставщика, равным "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);
    }

}

Ответ 5

Сначала вам нужно проверить, что базовое, маленькое и уменьшенное изображение выбрано в администраторе Magento.

admin- > catalog- > управлять продуктом- > product- > image

Затем выберите роли изображения (базовые, маленькие, миниатюры) enter image description here

Затем вы вызываете изображение с помощью

echo $this- > helper ('catalog/image') → init ($ _ product, 'small_image') → изменить размер (163, 100);

Надеюсь, это поможет вам.

Ответ 6

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

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

// Now let 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 access all of it data

  // Let get the Product Name

  $product_name = $full_product->getName();

  // Let get the Product URL path

  $product_url = $full_product->getProductUrl();

  // Let get the Product Image URL

  $product_image_url = $full_product->getImageUrl();

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

 echo $product_name;

  echo $product_image_url;


}

Ответ 7

<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>

Ответ 8

Если у вас есть объект сбора данных, например:

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

Теперь вы можете получить продукт sku с помощью $_product->getSku(), если вы не можете получить путь к изображению с помощью

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

Ответ 9

Вам нужно установить тип изображения: small_image или image

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

Ответ 10

$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 

Ответ 11

получить изображения продукта в magento с помощью идентификатора продукта

    $product_id = $_POST['product_id'];
    $storeId    = Mage::app()->getStore()->getId();
    $loadpro    = Mage::getModel('catalog/product')->load($product_id);

    $mediaApi      =  Mage::getModel("catalog/product_attribute_media_api");
    $mediaApiItems = $mediaApi->items($loadpro->getId());
    foreach ($mediaApiItems as $item) {
            //for getting existing Images
            echo $item['file'];
            }

Ответ 12

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

это даст вам URL-адрес изображения, даже если изображение размещено на CDN.