Ok, here’s what I’ve learned about displaying custom product attributes in templates.
a) This explanation does not deal with organizing your changes into a custom theme, ie, the changes described are to the Mage default theme. You should really make such changes to a custom theme and how to do that can be understood by watching the Mage screencasts or reading other forum posts.
b) We do not cover the creation of attributes, attribute sets or the association of attributes with products: how to do that can be understood by watching the Mage screencasts or reading other forum posts.
1) For performance reasons, Mage does not preload all product attributes, only the ones generally needed: before you can display a custom attribute in a template you MAY have to tell Mage to load the attribute via the appropriate XML layout file. (In one case I had to tell Mage to load the attribute and in another case I did not; and I don’t yet understand why there was a difference - perhaps the type of the attribute matters.) For example, to display an attribute in the catalog page of a SIMPLE product (using template ‘simple.phtml’), you must edit the following file: magento/app/design/frontend/default/default/layout/catalog.xml and in EVERY area where simple.phtml used you must insert an add attribute action into the effective <block> tag body. Here, “package_name” and “free_prodct” are two of my custom attributes, e.g.,
<block type="catalog/product_view_type_simple" name="product.info.simple" as="product_type_data" template="catalog/product/view/type/simple.phtml">
2) Now, edit your simple.phtml template as found in magento/app/design/frontend/default/default/template/catalog/product/view/type and all you need to do is add the following to access and display the custom attribute: <?=$_product->getPackageName();?>
Now then, my original failure at this task was because I did not insert addAttribute actions for my custom attributes into catalog.xml. My second failure was not to recognize that the CONFIGURABLE PRODUCT I was experimenting with did not have the attribute I thought it did: its ASSOCIATED PRODUCTS have the attribute and the Configurable Product has the associations, not the actual attribute.
This all said, the feature more or less works as Moshe described it to. However, I have one of my 2 attributes (package_name) in two DIFFERENT attribute sets and I have two different products created one derived from each attribute set: oddly enough I can only get at the attribute value as described in step 2) for one of the two products, not the other. I must be missing something or there could be a bug at play here. Lastly, no matter what I have tried thus far, I cannot get at ANY of the custom attribute values from the catalog list displayed by the ‘Search Results’. So, I have some more detective work to do, unless Moshe and company have some help to add.