Как правильно получать адрес товарной страницы - рабочий пример

[16 июля 2019 г.]    Российская сборка Magento 2.52.2
Magento 2: модули и услуги
magereport.com: составление перечня необходимых для установки заплаток SUPEE
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

11.04.2011 01:55

Часто наблюдаю, как у начинающих разработчиков магазинов на Magento в самостоятельно разработанных ими блоках (классический случай - товары-новинки) адреса товарных страниц получаются во внутреннем системном формате Magento:

http://example.com/catalog/product/view/id/119/s/coalesce-shirt/category/34/



Что нужно сделать, чтобы получить правильные дружественные поисковым системам адреса?

http://example.com/oalesce-functioning-on-impatience-t-shirt.html



Для этого не забывайте при извлечении из базы данных набора товаров вызывать метод
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::addUrlRewrite()



Например:

$products =
    Mage
        ::getResourceModel ('catalog/product_collection')
            ->addAttributeToSelect('*')
            ->addStoreFilter()
            ->addUrlRewrite()
;
/** @var Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $products */


foreach ($products as $product) {
    /** @var Mage_Catalog_Model_Product $product */

    Mage
        ::log (
            sprintf (
                "Дружественный поисковым системам адрес товара: %s"
                ,
                $product->getProductUrl ()
            )
            
        )
    ;
}


#2 Александр Миронов
  • отпизжен с форума, причина в профиле
  • Группа: Заблокирован
  • Сообщений: 258
  • Регистрация: 12.12.2010

19.04.2011 17:22

Объясните поподробнее куда прописать текст выше и вместо чего, не понятно еще вот это:
sprintf (
"Дружественный поисковым системам адрес товара: %s"
,
$product->getProductUrl ()

Не в каждом товаре же писать урл, у меня товары в новинки добавляются из админки,
как можно сделать так чтобы урл брался такой как стоит сейчас, чтобы не было дублей товара( это не очень любят поисковики)

#3 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8995
  • Регистрация: 20.02.2010

19.04.2011 17:26

С нулевыми знаниями в PHP эффективней будет обратиться к программисту.

#4 Александр Миронов
  • отпизжен с форума, причина в профиле
  • Группа: Заблокирован
  • Сообщений: 258
  • Регистрация: 12.12.2010

19.04.2011 17:42

согласен=эфективней и быстрее, но с моими возможностями лучше оставить все как есть.

Поделиться темой: