Magento: построение URL-адреса продукта

#magento

#magento

Вопрос:

Мне удалось получить такие атрибуты, как имя, URL-адрес изображения, описание из магазина magento. Однако получение URL-адреса продукта является утомительным. Любая помощь?? Спасибо.

 include_once 'app/Mage.php';
umask(0);
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToSelect('*');
$products->load(); 
    $baseUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);

    foreach ($products as $id => $product):
   $output .= '
   <product>
   <name><![CDATA['. $product['name'] .']]></name>
   <description><![CDATA['. $product['description'] .']]></description>
   <url>'. $product['url_key'] .'</url>
   <image>'. $baseUrl ."media/catalog/product". $product['image'] .'</image>';
   </product>
  

Ответ №1:

URL-адрес продукта — это просто:

 $product->getProductUrl()
  

На самом деле, будет лучше, если вы будете использовать методы получения и установки вместо доступа к массиву для объектов Magento, потому что это позволяет другим разработчикам предоставлять переопределения обычным способом. Поэтому, $product['description'] пожалуйста, используйте $product->getDescription() вместо. Это позволит избежать проблем в будущем.

Комментарии:

1. спасибо clockwisegeek. Он выводит URL, но добавляет к нему имя моего файла. например. Я сохранил свой код как magento.php и getProductUrl() выдает мне dcommerce.com/magento.php/catalog/product/view/id/18/s /… . Как мне получить точный URL-адрес без учета моего magento.php файл?

2. Для этого вам нужно включить перезапись URL-адреса в System> Configuration> Web> Search Engines Optimization

Ответ №2:

Вместо самостоятельного вычисления базового URL-адреса вы можете просто использовать:

 '<image'>.Mage::helper('catalog/image')->init($product).'</image>'
  

В помощник встроена __toString() функция, которая автоматически создает URL-адрес при использовании в виде строки. Он также позаботится о водяных знаках, изменении размера, обрезке и всех других вещах, которые вы обычно видите в действии, но принимаете как должное.

Комментарии:

1. Спасибо. Я говорил о URL-адресах продукта. (точные ссылки на продукты)