Я недавно читал об этой же проблеме в MagentoCommerce. Эта ветка поможет вам наверняка: http://www.magentocommerce.com/boards/viewthread/74229/. Я собираюсь опубликовать решение здесь с некоторыми небольшими модификациями, потому что эта ветка предлагает вам создавать базовые моды, чего вы никогда не должны делать.
Решение состоит из двух частей.
Во-первых,
Копировать \app\code\core\Mage\Catalog\Model\Product\Visibility.php
в \app\code\local\Mage\Catalog\Model\Product\Visibility.php
Редактировать \app\code\local\Mage\Catalog\Model\Product\Visibility.php
.
Найти:
public function getVisibleInSiteIds()
{
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH);
}
и измените его на:
public function getVisibleInSiteIds()
{
return array(self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_NOT_VISIBLE);
}
Далее, откройте app/design/frontend/YOUR_PACKAGE/YOUR_THEME/template/product/view.phtml
Найти это:
$_helper = $this->helper('catalog/output');
$_product = $this->getProduct();
Вставьте этот код после него:
//redirect to parent product if a child product
$parentId = $_product->loadParentProductIds()->getData('parent_product_ids');
if(isset($parentId[0]))
{
$parent = Mage::getModel('catalog/product')->load($parentId[0]);
echo "<script>window. location='".$parent->getProductUrl()."';</script>";
}