2016-11-24 11 views
1

Я пытаюсь получить только название продукта с использованием идентификатора продукта.Как получить название продукта в magento?

Я попытался ниже:

$product = Mage::getModel('catalog/product')->load(PRODUCT_ID); 
$product->getName(); 

Он загружает весь объект ресурса и чем мы можем получить имя с помощью $product->getName(), но мне нужно только одно имя, так что мы можем уменьшить дополнительные накладные расходы.

$product = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('name')->addAttributeToFilter('entity_id', PRODUCT_ID)->load(); 

Он также загружает ресурсный объект.

Есть ли какой-либо простой способ получить имя продукта (для exa. 'Test product') без загрузки ресурсного объекта?

ответ

1

Использование getAttributeRawValue() При этом вы можете получить значение атрибута вашего продукта:

$attribute_value = Mage::getResourceModel('catalog/product')->getAttributeRawValue(PRODUCT_ID, 'attribute_code'); 
0

Нам нужно передать значение магазина, а также получить продукт атрибутов непосредственно из модели ресурсов. Вы можете получить идентификатор магазина, используя этот код: - Mage::app()->getStore().

Таким образом, окончательный запрос будет: -

$attribute_value = Mage::getResourceModel('catalog/product')->getAttributeRawValue(PRODUCT_ID,'attribute_code',Mage::app()->getStore()); 
+0

Хотя этот фрагмент кода может решить вопрос, в том числе объяснение действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. –

+0

Спасибо за ваше предложение. –

1

Попробуйте это, надеюсь, что это работа для вас.

Попробуйте это:

$product = Mage::registry('current_product'); then 
$product->getName(); 
$product->getId(); 

Вы можете попробовать это для продукта:

$id = $this->getRequest()->getParam('id'); 
$current_product=Mage::getModel('catalog/product')->load($id);