URL категории всегда имеет неправильное хранилище в пути


Как я могу переписать URL категории для определенного магазина в magento?

У меня есть 2 магазина: в США и Великобритании.

Коды магазина: en_gb и en_us.

Если я загружу категорию в коде

$store = Mage::getModel('core/store')->load(3);  // 3 is the uk store
$categoryUrl = Mage::getModel('catalog/category')->load($store->getRootCategoryId())->setStoreId($store->getId());

Возвращаемый URL-адрес всегда содержит код веб-сайта по умолчанию в пути, т.Е., а также никогда не является дружественным к seo URL-адресом. Это category/view URL-адрес

http://mysite/us/catalog/category/view/ukbase/id/3

РЕДАКТИРОВАТЬ:

Установив магазин в скрипте, правильная страна добавляется в url-адрес:

 Mage::app()->setCurrentStore($store);

Зачем это нужно?

Кроме того, он по-прежнему не дает seo-дружественный URL-адрес

Author: Marty Wallace, 2013-09-26

2 answers

Magento использует текущий магазин для создания полного URL-адреса категории, поэтому настройка текущего магазина заставит его использовать правильный базовый URL-адрес.

Вопрос , опубликованный ранее сегодня, может дать дополнительную информацию.

 2
Author: Sander Mangel, 2017-04-13 12:55:02

Вы также можете попробовать использовать метод getUrlModel ниже:

$store_code = 'something';
$store_id = 2;
$category_id = 234;
$category = Mage::getModel('catalog/category')->setStoreId($store_id)->load($category_id);

$url = $category->getUrlModel()
    ->getUrlInstance()
    ->getDirectUrl($requestPath, array("_store"=>$store_code, "_nosid"=>true));
 1
Author: Tegan Snyder, 2014-09-29 21:55:02