商品コレクションで商品のURLを取得するのに行き詰まっています。設定された注目の製品の製品コレクションを取得するためのこのコードがあります。
$_productCollection = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->getCollection();
$_productCollection->addAttributeToFilter('feat_enabled', 1);
$_productCollection->setVisibility(array(2,3,4));
$_productCollection->addUrlRewrite();
$_productCollection->groupByAttribute('entity_id');
$_productCollection->load();
foreach($_productCollection as $_product){
$_product->load($_product->getId());
if($_product->getIsSalable()){
$_name = ltrim(rtrim($_product->getName()));
$_url = $_product->getProductUrl();
}
}
ここで私が間違っているのは、各ループで$ _urlがエコーされない場合、返されるURLが不足していることです。カテゴリ名とサブカタログ名はありません。正しいURLは次のとおりです。
index.php / category / subcategory / itemname.html
しかし、現在それは戻るだけです
index.php/itemname.html
URL以外の正しいデータを返します。アイテムをカテゴリとサブカテゴリに割り当てたかどうかを管理者に再確認しました。割り当てたことを確認しました。
Upon further research, I have found the code below that is very close to what i need.
$_categories = $_product->getCategoryIds();
$_category = Mage::getModel('catalog/category')->load($_categories[0]);
$_url = Mage::getUrl($_category->getUrlPath()).basename($_product->getProductUrl());
ここでの問題は、$_url値が次のようになったことです
index.php / category / subcategory.html / itemname.html
サブカテゴリ名には.htmlが含まれています。URLに.htmlは必要ないので、クリックするとアイテムが正しいページにリダイレクトされます。
これを修正するアイデアはありますか?