Himberjack Himberjack - 4 months ago 29
PHP Question

Magento ->getSku() or getData(’sku’) returns empty string

I have Magento 1.3.2 and I have weird issue:

When I am in

list.phtml
, and I try to fetch the SKU by using
getSku()
or
getData('sku')
I get empty string.
getName()
does work. However, when I do that from other pages, it works well.

I
var_dump
-ed it and no SKU is shown.

What can cause this?

Answer

The other option is to re-load the product object in the list.phtml using the ID of the product you already have. The code reads something a little like:

$sku = Mage::getModel('catalog/product')->load($_product->getId())->getSku();

Note that $_product is what you are getting in your collection already, and note that getSku is case sensitive (as are all Magento attributes getter/setters).

@Prattski's solution is preferable as you don't really want to be messing with loading/manipulating the objects, but it sounds as though your collection is a little messed up. SKU is one of the core fields that exists in the base catalog_product_entity table, so would be unusual not to be loaded.