I created my own template/skin. Simple products show great but others fail. As far as i know, the following lines in the view.phtml allow me to do this:
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container2', '', true, true) ?>
<?php endif;?>
Those above lines should load the catalog/product/view/type/grouped.phtml, but they don't in my template. As i ugly workarround i tried implementing the following in my view.phtml:
<?php if($_product->isGrouped()) { ?>
<?php $this->setPreconfiguredValue(); ?>
<?php $_associatedProducts = $this->getAssociatedProducts(); ?>
<?php $_hasAssociatedProducts = count($_associatedProducts) > 0; ?>
<table class="data-table grouped-items-table" id="super-product-table">
<col />
<col />
<col width="1" />
<thead>
<tr>
<th><?php echo $this->__('Product Name') ?></th>
<?php if ($this->getCanShowProductPrice($_product)): ?>
<th class="a-right"><?php echo $this->__('Price') ?></th>
<?php endif; ?>
<?php if ($_product->isSaleable()): ?>
<th class="a-center"><?php echo $this->__('Qty') ?></th>
<?php endif; ?>
</tr>
</thead>
<tbody>
<?php if ($_hasAssociatedProducts): ?>
<?php foreach ($_associatedProducts as $_item): ?>
<?php $_finalPriceInclTax = $this->helper('tax')->getPrice($_item, $_item->getFinalPrice(), true) ?>
<tr>
<td><?php echo $this->htmlEscape($_item->getName()) ?></td>
<?php if ($this->getCanShowProductPrice($_product)): ?>
<td class="a-right">
<?php if ($this->getCanShowProductPrice($_item)): ?>
<?php echo $this->getPriceHtml($_item, true) ?>
<?php echo $this->getTierPriceHtml($_item) ?>
<?php endif; ?>
</td>
<?php endif; ?>
<?php if ($_product->isSaleable()): ?>
<td class="a-center">
<?php if ($_item->isSaleable()) : ?>
<input type="text" name="super_group[<?php echo $_item->getId() ?>]" maxlength="12" value="<?php echo $_item->getQty()*1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
<?php else: ?>
<p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>
</td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="<?php if ($_product->isSaleable()): ?>4<?php else : ?>3<?php endif; ?>"><?php echo $this->__('No options of this product are available.') ?></td>
</tr>
<?php endif; ?>
</tbody>
</table>
<script type="text/javascript">decorateTable('super-product-table')</script>
<?php } ?>
Which is the exact same code as the grouped.phtml but this also fails. Can someone set me in the right direction?
Best Answer
Sorry I'm so late to the party, but the issue is likely that you are trying to display the grouped product data with the
product.info
block which by default is an instance ofMage_Catalog_Block_Product_View
:That block & template does not display product-type-specific details directly. Rather, the template echoes the
product_type_data
block:The
product_type_data
alias is a perfect example of why aliases exist in Magento layouts - it allows blocks to exist in layout (requiring a unique name) yet still be assigned as children of other blocks without needing to have a separate template for each combination. Note all of the type-specific handles incatalog.xml
which each specify a type-specific block instance & template, yet all assign these type-specific blocks with theproduct_type_data
alias. In your case, see the grouped product handlePRODUCT_TYPE_grouped
: