Get Product ID and Product Name in Magento
In Magento eCommerce while working with catalog model, There arise the need to fetch product details from product id.
We can get all product details if we have product id.
But sometimes we only have product name, so we need to get product id for getting product details.
I am listing here both the method.
1) Product details from Product ID.
<?php
$model = Mage::getModel('catalog/product') //getting product model
$_product = $model->load($productid); //getting product object for particular product id
echo $_product->getShortDescription(); //product's short description
echo $_product->getDescription(); // product's long description
echo $_product->getName(); //product name
echo $_product->getPrice(); //product's regular Price
echo $_product->getSpecialPrice(); //product's special Price
echo $_product->getProductUrl(); //product url
echo $_product->getImageUrl(); //product's image url
echo $_product->getSmallImageUrl(); //product's small image url
echo $_product->getThumbnailUrl(); //product's thumbnail image url
?>
2) Product ID from Product Name
This is little bit complex. (If anybody has better way please post here)
<?php
$product_name = 'Test Product'; //product name
$model = Mage::getModel('catalog/product') //getting product model
$collection = $model->getCollection(); //products collection
foreach ($collection as $product) //loop for getting products
{
$model->load($product->getId());
$pname = $model->getName();
if(strcmp($pname,$product_name)==0)
{
$id = $product->getId();
}
}
echo 'Required ID->'.$id; //id of product
?>

Interesting post – you’ve done a thorough job
Its easier to go the source:
To find a product named “b1″ use:
SELECT
entity_id
FROM
catalog_product_entity_varchar
JOIN eav_attribute ON catalog_product_entity_varchar.attribute_id = eav_attribute.attribute_id
WHERE
catalog_product_entity_varchar.entity_type_id = 4 AND
eav_attribute.attribute_code = “name” AND
catalog_product_entity_varchar.value = “b1″;
I hope that is readable (there is no comment preview
You write:
$collection = $tmp->getCollection(); //products collection
Where comes $tmp from????