Ich erhalte eine Produktsammlung einer bestimmten Kategorie auf einer Seite in einigen verschiedenen Magento-Sites. Mein Code zum Abrufen der Sammlung lautet:
$category = new Mage_Catalog_Model_Category();
$category->load($id);
$collection = $category->getProductCollection();
$collection->addAttributeToSelect('*');
$collection->addAttributeToFilter('status', 1);
$collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" )));
$collection->getSelect()->limit(12);
foreach ($collection as $shopProduct) :
echo $shopProduct->getProductUrl();
endforeach;
Mein Problem ist, dass auf einer der Magento-Sites, die wir ausführen, der ProductUrl()
Abruf eine URL wie http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/
und nicht mehr wie ist http://www.site.com/shopcat/product-url-key.html
. Aber auf allen anderen Seiten sieht es so aus, wie wir es wollen.
Weiß jemand, warum das sein könnte? Vielen Dank! Ich habe es auch versucht, getUrlPath()
aber das hat nichts zurückgegeben. Ich weiß, dass ich das umgehen kann, indem ich so etwas mache, <?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>
aber diese Methode scheint ein bisschen ineffizient zu sein!
EDIT 21/03/14: Ich habe immer noch dieses Problem. Ich habe festgestellt, dass getProductUrl()
die gewünschte URL für einige Vorlagendateien der Site abgerufen wird, für andere jedoch nicht. Zum Beispiel lade ich eine Sammlung auf der Homepage und bekomme die gewünschten URLs. getProductUrl()
Gibt mir aber nicht die URLs, die ich mit dem gleichen Code in einer Kategorieansicht haben möchte.