Ho trovato questa domanda, chiedendomi lo stesso. E nel caso in cui qualcun altro ne abbia bisogno prima o poi, posterò qui i miei risultati.
Ho trovato due metodi per ottenere l'URL del prodotto senza caricare il prodotto completo. Dato che stavo lavorando su un server lento, avevo bisogno di trovare il metodo di caricamento più veloce.
Il primo metodo:
Il primo get è una raccolta di prodotti basata sull'ID prodotto:
$_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]"
Il secondo metodo:
Il secondo metodo, usando il metodo di Kalpesh Metha, sarebbe questo codice:
Mage::getResourceSingleton('catalog/product')
->getAttributeRawValue($productId, 'url_key', Mage::app()->getStore());
// returns string "product-url-like-this"
Per questo metodo, puoi usare 'url_key'
o 'url_path'
. Non ho scoperto la differenza però.
La differenza tra i metodi:
Il primo metodo richiede un po 'più di tempo (circa il 15% di tempo in più). Il secondo metodo, tuttavia, restituisce solo la parte finale dell'URL. Ciò significa che se il negozio utilizza la categoria nell'URL, non funzionerà, poiché quella parte non viene mostrata. Questo era il caso nel negozio a cui stavo lavorando.