Ответ 1
echo $_product->getImageUrl();
Этот метод класса Product должен сделать трюк для вас.
Я запускаю версию 1.3.2.1, но на моем клиентском сервере у них был Magento 1.3.0 поэтому мой предыдущий код для отображения изображений для моей локальной копии,
echo $this->helper('catalog/image')->init($_product)->resize(163, 100);
не работает при установке клиента.
Глядя на результаты, возвращенные их Magento, версия 1.3.0 фактически возвращает URL-адрес, хотя он указывает на папку с носителями скинов.
Есть ли способ получить абсолютный путь изображения для изображения?
Или мне нужно внести изменения в другое место, которое сообщит Magento, что медиа-каталог должен находиться в корне?
echo $_product->getImageUrl();
Этот метод класса Product должен сделать трюк для вас.
Вы можете попробовать заменить $this->
на Mage::
в некоторых случаях. Вам нужно преобразовать в строку.
В моем случае я использую расширение DirectResize (прямая ссылка), поэтому мой код выглядит следующим образом:
(string)Mage::helper('catalog/image')->init($_product, 'image')->directResize(150,150,3)
Параметры отношения (третий параметр):
Обновление: другая информация и версии здесь
Обычным способом без плагина будет:
(string)Mage::helper('catalog/image')->init($_product, 'image')->resize(150)
Вы можете заменить "изображение" на "small_image" или "thumbnail".
Мне недавно тоже нужно было сделать это... вот как я добрался до него:
$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();
Надеюсь, что вам поможет!
Вот как я нашел загрузку всех данных изображения для всех продуктов в коллекции. На данный момент я не уверен, зачем ему нужно переключиться с 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);
}
}
Сначала вам нужно проверить, что базовое, маленькое и уменьшенное изображение выбрано в администраторе Magento.
admin- > catalog- > управлять продуктом- > product- > image
Затем выберите роли изображения (базовые, маленькие, миниатюры)
Затем вы вызываете изображение с помощью
echo $this- > helper ('catalog/image') → init ($ _ product, 'small_image') → изменить размер (163, 100);
Надеюсь, это поможет вам.
// 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;
}
<img src='.$this->helper('catalog/image')->init($product, 'small_image')->resize(225, 225).' width=\'225\' height=\'225\'/>
Если у вас есть объект сбора данных, например:
$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();
Вам нужно установить тип изображения: small_image или image
echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(163, 100);
$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
получить изображения продукта в 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'];
}
(string)Mage::helper('catalog/image')->init($product, 'image');
это даст вам URL-адрес изображения, даже если изображение размещено на CDN.