Строя дополнение к интернет-магазину Magento, я натолкнулся на пару проблем. Стремясь создать максимально быстрый код, я не смог понять две вещи.
Мой (соответствующий) код следующий:
$rc = Mage::getResourceSingleton('catalog/product');
$productName = $rc->getAttributeRawValue($productId, 'name', Mage::app()->getStore());
$productPrice = $rc->getAttributeRawValue($productId, 'price', Mage::app()->getStore());
$productImage = $rc->getAttributeRawValue($productId, 'image', Mage::app()->getStore());
$productUrl = $rc->getAttributeRawValue($productId, 'url_key', Mage::app()->getStore());
Две вещи, которые я не могу понять:
1) Как мне получить URL продукта? url_key
не всегда дает правильный URL, так как не все интернет-магазины используют канонические URL или имеют категорию в URL.
2) Как я могу получить изображение товара с заданной шириной / высотой вместо полного изображения? ->resize()
Функция не работает в этом случае я Recon (поскольку она возвращает URL). Вдобавок к этому, можно получить Base Image
, Small Image
и по Thumbnail
отдельности?
Моя главная цель - сохранить код как можно быстрее. У меня есть только идентификатор продукта, так как я перебираю дочерние элементы продукта. Я не хочу использовать, ->load()
так как это занимает больше времени загрузки.
источник
small_image
. Кажется, что маленькие изображения все изменяются, и это не выбирает измененный вариант. Есть идеи, как это решить? И у вас также есть решение для URL продукта?источник
Попробуйте приведенный ниже код, чтобы получить URL изображения:
ИЛИ
ИЛИ
источник
Вы не можете обойтись без переменной $ products / $ product:
Для продукта URL:
// вы не можете остановить этот метод, добавив ___store к URL, даже установив _store_to_url в false
** // Вы не можете остановить этот метод добавления ___store к URL, даже установив _store_to_url ложного // примечания - в разделе «использование _ignore_category» ниже для спорнога ошибки с использованием этого параметров **
Для изображения продукта:
Если вы хотите использовать URL изображения в теге,
источник
$product->getUrlPath();
, получивurl_key
. Так что это возможно без$product
переменной. Это заставляет меня полагать, что получение изображения продукта и его изменение размера также должно быть возможным без загрузки всего продукта. (так что бесполезноMage::getModel('catalog/product')->load($productId);
)Я хочу добавить 1 строку кода к комментарию mpaepper, который, на мой взгляд, является отличным решением в конкретном сценарии. Я использовал его в цикле на странице, где у меня не было объекта продукта для загрузки изображения через модель продукта.
Если вы не хотите загружать изображение с объектом продукта, вы можете использовать подход mpaepper exlpains. Не забудьте сохранить созданное вручную изображение при использовании этого решения. Когда вы сохраняете объект изображения, он создает файл кэша, как это делают обычные изображения Magento.
Таким образом, полный код должен быть:
источник
Получить доступ к изображению товара можно следующими способами:
Чтобы изменить размер изображения, вы можете добавить это:
Чтобы получить URL продукта:
Здесь $ _products - это сам продукт, а не идентификатор продукта;
источник
$_products
переменной, так как это потребует от меня полной загрузки продукта. И загрузка всех продуктов, через которые я делаю цикл, создаст время загрузки в секундах, что слишком много.