カタログ内のいくつかの単純な製品をグループ化された製品に組み合わせています。現在の単純な製品ページから新しいグループ化された製品ページへの 301 リダイレクトを作成する必要があります。
これが私が持っているものの例です:
- 製品 a、b、および c は、それぞれ独自の URL を持つ同様の単純な製品です。
- グループ化された製品 z には、a、b、および c が関連付けられています。
- a、b、および c の可視性は、「個別に可視でない」に変更されます。
- 製品 c の古いリンクにアクセスすると、「404 Not Found」エラーが発生します。
ステップ 4 で、グループ化された製品の URL を含む「301 Moved Permanently」が表示されるようにします。URL 書き換えリストのエントリを手動で変更できることはわかっていますが、より自動化された方法を探しています。
誰かが私を正しい方向に向けるのを手伝ってくれますか?
アップデート:
ファイル app/code/local/Mage/Catalog/controllers/ProductController.php を次のように更新しました。
protected function _initProduct()
{
$categoryId = (int) $this->getRequest()->getParam('category', false);
$productId = (int) $this->getRequest()->getParam('id');
$params = new Varien_Object();
$params->setCategoryId($categoryId);
$parentIds = Mage::getModel('catalog/product_type_grouped')->getParentIdsByChild($productId);
if(isset($parentIds[0])){
$parent = Mage::getModel('catalog/product')->load($parentIds[0]);
die($parent->getProductUrl());
}
return Mage::helper('catalog/product')->initProduct($productId, $this, $params);
}
単純な製品ページのビューを殺すことを期待していますが、そうではありません. 非表示に設定されている製品に対して、製品コントローラが呼び出されていないようです。あれは正しいですか?
更新 2:
「ローカル」バージョンではなく「コア」ファイルを変更すると、これは機能します。それがなぜなのかについてのアイデアはありますか?