Mittlere Spalte

Anpassungen und Erweiterungen für die mittlere Spalte der Produktansicht.

Keine Tabs für Upselling, Weitere Eigenschaften usw.

catalog.xml

Unter <default> <reference name="content">

Tabs auskommentieren

<!-- block type="catalog/product_view_tabs" name="product.info.tabs" as="info_tabs" template="catalog/product/view/tabs.phtml" >
  <action method="addTab" translate="title" module="catalog"><alias>description</alias><title>Product Description</title><block>catalog/product_view_description</block><template>catalog/product/view/description.phtml</template></action>
  <action method="addTab" translate="title" module="catalog"><alias>upsell_products</alias><title>We Also Recommend</title><block>catalog/product_list_upsell</block><template>catalog/product/list/upsell.phtml</template></action>
  <action method="addTab" translate="title" module="catalog"><alias>additional</alias><title>Additional Information</title><block>catalog/product_view_attributes</block><template>catalog/product/view/attributes.phtml</template></action>
</block -->

 Dafür folgendes rein nach <block type="catalog/product_view" name="product.info.addtocart"

<block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml">
  <action method="setColumnCount"><columns>4</columns></action>
  <action method="setItemLimit"><type>upsell</type><limit>4</limit></action>
</block>

<block type="catalog/product_view_additional" name="product.info.additional" as="product_additional_data" />
<block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml">
  <action method="addToParentGroup"><group>detailed_info</group></action>
</block>

<block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml">
  <action method="addToParentGroup"><group>detailed_info</group></action>
</block>

page.xml

Das Javascript auskommentieren:

<default translate="label" module="page">
  <label>All Pages</label>
  <block type="page/html" name="root" output="toHtml" template="page/2columns-left.phtml">
    <block type="page/html_head" name="head" as="head">
       ...
       <!--action method="addJs"><script>varien/menu.js</script></action-->

catalog/product/view.phtml

Da die Tabs nun weg sind, muss man die Inhalte anders ausgeben, sonst fehlen sie ganz. Dazu folgendes ersetzen:

 <div class="product-collateral">
        <?php echo $this->getChildHtml('info_tabs') ?>
        <?php echo $this->getChildHtml('product_additional_data') ?>
    </div>

mit

<div class="product-collateral">
  <?php //echo $this->getChildHtml('info_tabs') ?>
  <?php //echo $this->getChildHtml('product_additional_data') ?>

  <?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?>
    <div class="box-collateral <?php echo "box-{$alias}"?>">
      <?php if ($title = $this->getChildData($alias, 'title')):?>
        <h2><?php echo $this->escapeHtml($title); ?></h2>
      <?php endif;?>
      <?php echo $html; ?>
    </div>
  <?php endforeach;?>
  <?php echo $this->getChildHtml('upsell_products') ?>
  <?php echo $this->getChildHtml('product_additional_data') ?>
</div>

catalog/product/view.phtml

Folgendes

<div class="product-collateral">
  <?php echo $this->getChildHtml('info_tabs') ?>
  <?php echo $this->getChildHtml('product_additional_data') ?>
</div>

ersetzen mit

<div class="product-collateral">
  <?php //echo $this->getChildHtml('info_tabs') ?>
  <?php //echo $this->getChildHtml('product_additional_data') ?>

   <?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?>
    <div class="box-collateral <?php echo "box-{$alias}"?>">
      <?php if ($title = $this->getChildData($alias, 'title')):?>
      <h2><?php echo $this->escapeHtml($title); ?></h2>
      <?php endif;?>
      <?php echo $html; ?>
    </div>
  <?php endforeach;?>
  <?php echo $this->getChildHtml('upsell_products') ?>
  <?php echo $this->getChildHtml('product_additional_data') ?>
 
</div>
 

Weiteren Ansichten ausblenden wenn nur ein Bild

catalog/product/view/media.phtml

Wenn nur ein Bild existiert will ich nicht die weiteren Ansichten haben wo dann doch nur ein Bild zu sehen ist. Also den ganzen folgenden Block:

 <div class="more-views">
    ...
</div>

in ein if statement:

<?php
// rsys not for single picture
$count = count($this->getGalleryImages());
if($count >1) {    ?>
  <div class="more-views">
    ...
  </div>
<?php } ?>

Stückzahl anzeigen

catalog/product/view/type/default.phtml

Um nicht nur Lieferbar anzuzeigen sonder die vorhandene Stückzahl (Lagerbestand):

<?php if ($_product->isAvailable()): ?>
  <p class="availability in-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('In stock') ?></span></p>

ersetzen mit

<?php if ($_product->isAvailable()): ?>
  <p class="availability in-stock">
    <?php echo $this->__('Availability:') ?> <span><?php echo $this->__('In stock') ?></span>
        <span class="">(<?= (int) Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()?> <?=$this->__('Stück auf Lager')?>)</span>
  </p>

 

Lieferzeit anzeigen wenn Ausverkauft

catalog/product/view/type/default.phtml

Statt Ausverkauft anzuzeigen soll der Inhalt eines selbstdefinierten Attibuts (delivery_time) angezeigt werden falls befüllt.

Ersetzen von:

<p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>

mit:

<p class="availability out-of-stock">
  <? if($_product->getData('delivery_time')) { ?>
    <?=$this->__('Lieferzeit:')?><span> <?=$_product->getData('delivery_time')?></span>
  <? } else { ?>
    <?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span>
  <? } ?>   
</p>

catalog/product/view/type/grouped.phtml

Auch hier

<p class="availability out-of-stock"><?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span></p>

ersetzen mit:

<p class="availability out-of-stock">
  <? if($_product->getData('delivery_time')) { ?>
    <?=$this->__('Lieferzeit:')?><span> <?=$_product->getData('delivery_time')?></span>
  <? } else { ?>
    <?php echo $this->__('Availability:') ?> <span><?php echo $this->__('Out of stock') ?></span>
  <? } ?>   
</p>   

Kommt an 2 Stellen vor und muss an beiden ersetzt werden.

Siehe auch Listenansicht

BasePrice anzeigen

catalog/product/view/type/default.phtml

Am Ende anfügen:

<div class="baseprice-box">
  <span class="baseprice-label-<?php echo $_product->getId() ?>"><?php echo Mage::helper('baseprice')->getBasePriceInfos($_product); ?></span>
</div>

catalog/product/view/type/grouped.phtml

Nach folgendem Code (Zeile 69)

<?php echo $this->getTierPriceHtml($_item) ?>

folgendes einfügen:

<div class="baseprice-box">
  <span class="baseprice-label-<?php echo $_product->getId() ?>"><?php echo Mage::helper('baseprice')->getBasePriceInfos($_item); ?></span>
</div>

catalog/product/price.phtml

Am Ende anfügen:

<!-- rsys -->
<?php   $_basepriceHelper  = $this->helper('baseprice');
if($baseprice =$_basepriceHelper->getBasePriceLabel($_product, true, $_showPrice)): ?>
    <span class="baseprice">(<?php echo $baseprice?>)</span>
<?php endif; ?>

Um den BasePrice nicht automatisch anzuzeigen  siehe hier