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-адрес
2 answers
Magento использует текущий магазин для создания полного URL-адреса категории, поэтому настройка текущего магазина заставит его использовать правильный базовый URL-адрес.
Вопрос , опубликованный ранее сегодня, может дать дополнительную информацию.
Вы также можете попробовать использовать метод 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));