これは、catalog/product/view.phtmlファイルとカスタム テーマのlayout/local.xmlファイルにいくつかの変更を加えることで簡単に実現できます。
local.xml を変更することから始めましょう。それを開いて、次のコードを入力/コピーして貼り付けます。
<catalog_product_view>
<reference name="content">
<reference name="product.info">
<block type="catalog/product_view" name="product.dress" as="productDress" template="wherever/you/keep/dress.phtml" />
<block type="catalog/product_view" name="product.phone" as="productPhone" template="wherever/you/keep/phone.phtml" />
<block type="catalog/product_view" name="product.gps" as="productGps" template="wherever/you/keep/gps.phtml" />
</reference>
</reference>
</catalog_product_view>
local.xml を変更することで本質的に行っていることは、 product.infoブロック内のcatalog/product/view.phtmlファイルで新しいテンプレートを使用できるようにすることです。ブロック タイプは *catalog/product_view* であるため、 catalog/product/view.phtml内で利用可能なすべての同じ情報とメソッドにアクセスできます。次に、view.phtml に少しのコードを記述して、出力するブロックを決定します。
$_currentCategory = Mage::registry('current_category');
if ($_currentCategory->getId() == id of dress category) {
echo $this->getChildHtml('productDress');
} elseif ($_currentCategory->getId() == id of phone category) {
echo $this->getChildHtml('productPhone');
} elseif ($_currentCategory->getId() == id of gps category) {
echo $this->getChildHtml('productGps');
}
ここで行っているのは、製品の現在のカテゴリを確認し、関連するブロックを出力することだけです。もちろん、「_ __カテゴリの ID」を適切なカテゴリ ID 値に置き換える必要があります。検索したいカテゴリのいずれかの子カテゴリにいる場合、これは機能しません。たとえば、電話 > アクセサリ > 電話充電器製品のような構造の場合、電話充電器製品の最新のカテゴリ (アクセサリ) のみが検索されます。Google と StackOverflow に散らばっている親カテゴリを見つける方法は他にもあります。
それが役立つことを願っています。残念ながら、このコードをテストする手段はありませんが、動作するはずです。幸運を!