Ich habe diese Frage gefunden und mich auch gefragt. Und für den Fall, dass jemand anderes dies benötigt, werde ich meine eigenen Erkenntnisse hier veröffentlichen.
Ich habe zwei Methoden gefunden, um die Produkt-URL abzurufen, ohne das gesamte Produkt zu laden. Da ich auf einem langsamen Server arbeitete, musste ich die schnellste Lademethode finden.
Die erste Methode:
Der erste erhält eine Produktkollektion basierend auf der Produkt-ID:
$_item = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('product_url')
->addAttributeToFilter('entity_id', $productId)
->addUrlRewrite()
->load();
foreach($_item as $product){
echo $product->getProductUrl();
}
// returns string "http://www.your-domain.com/[category]/[product_url]"
Die zweite Methode:
Die zweite Methode, die die Methode von Kalpesh Metha verwendet, wäre dieser Code:
Mage::getResourceSingleton('catalog/product')
->getAttributeRawValue($productId, 'url_key', Mage::app()->getStore());
// returns string "product-url-like-this"
Für diese Methode können Sie entweder 'url_key'
oder verwenden'url_path'
. Den Unterschied habe ich allerdings nicht herausgefunden.
Der Unterschied zwischen den Methoden:
Die erste Methode benötigt etwas mehr Zeit (ca. 15% mehr Zeit). Die zweite Methode gibt jedoch nur den letzten Teil der URL zurück. Dies bedeutet, dass, wenn der Shop die Kategorie in der URL verwendet, dies nicht funktioniert, da dieser Teil nicht angezeigt wird. Dies war der Fall in dem Geschäft, an dem ich arbeitete.