Sto ottenendo una raccolta di prodotti di una determinata categoria su una pagina in alcuni diversi siti Magento. Il mio codice per ottenere la raccolta è:
$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;
Il mio problema è che su uno dei siti Magento su cui stiamo eseguendo il ProductUrl()
recupero è un URL simile http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/
e non più simile http://www.site.com/shopcat/product-url-key.html
. Ma su tutti gli altri siti appare come lo vogliamo.
Qualcuno sa perché potrebbe essere così? Grazie! Ho provato getUrlPath()
anche a usare ma questo non ha restituito nulla. So che posso aggirare questo facendo qualcosa di simile <?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>
ma quel metodo sembra un po 'inefficiente!
EDIT 21/03/14: sto ancora riscontrando questo problema. Mi sono reso conto che getProductUrl()
recupera l'URL desiderato su alcuni file modello del sito ma non su altri. Ad esempio, sto caricando una raccolta sulla homepage e mi sta dando gli URL che desidero. Ma getProductUrl()
non mi sta dando gli URL che voglio con lo stesso codice in una vista di categoria.