Magento: как получить миниатюру?
Я загрузил скрипт для создания потока данных CSV своих продуктов, и я также хотел бы добавить URL-адрес миниатюры. Код уже имеет следующее для URL изображения продукта:
$product_data['ImageURL']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getImage();
Поэтому я попытался настроить это так:
$product_data['ThumbnailURL']=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'catalog/product'.$product->getThumbnail();
Который отображает точно такой же URL-адрес изображения (не большой палец). Как бы я это исправить?
Я сделал var_dump($product);
и результат был:
["image"]=> string(18) "/f/i/file_2_18.png" ["small_image"]=> string(18) "/f/i/file_2_18.png" ["thumbnail"]=> string(18) "/f/i/file_2_18.png"
Мне также нужно получить подкатегорию для продукта, но я не знаю, как это назвать. Как я могу увидеть, какие переменные возможны? Например $product->getPrice
или же $product->getName
?
2 ответа
Недавно мне тоже нужно было это сделать... вот как я дошел до этого:
$_product->getMediaGalleryImages()->getItemByColumnValue('label', 'LABEL_NAME')->getUrl();
Или другой пример
Для этой цели вам следует использовать модель конфигурации носителя для каталога.
<?php
//your code ...
echo Mage::getModel('catalog/product_media_config')
->getMediaUrl( $product->getImage() ); //getSmallImage(), getThumbnail()
Редактировать После вашего комментария.
Обновить ответ
Смотрите ниже URL
Сделать все изображения магазина базовыми, маленькими и миниатюрными изображениями в Magento?
Попытайся
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');
foreach ($products as $product) {
if (!$product->hasImage()) continue;
if (!$product->hasSmallImage()) $product->setSmallImage($product->getImage());
if (!$product->hasThumbnail()) $product->setThumbnail($product->getImage());
$product->save();
}
Надеюсь, что это поможет вам!
Если вы хотите увидеть, к каким данным вы можете получить доступ, вы можете попробовать это:
<?php var_dump(array_keys($product->getData())); ?>
Затем вы можете использовать два метода для получения этих данных:
<?php $product->getAttributeName() // Use CamcelCase ?>
или же
<?php $product->getData('attribute_name') // underscores ?>