Estoy tratando de obtener la clave de URL de cualquier categoría dada con la ID. Tengo esto;
$categoryId = 3;
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$object_manager = $_objectManager->create('Magento\Catalog\Model\Category')->load($categoryId);
print_r($object_manager->getData());
Y esto funciona (en print_r está la clave de URL que necesito), pero la categoría # 3 es la categoría de nivel superior. Cada vez que intento cualquier subcategoría (por ejemplo, ID 5) obtengo una matriz en blanco. Estoy perdido por las palabras, no puedo entenderlo.
En Magento 1.x solía hacer esto: Mage::getModel('catalog/category')->load($catID)->getUrl()
y funcionó.
TL; DR: este código funciona, cambie la ID a una ID de categoría (correcta) y cambie getData()
a getUrl()
la URL completa de la categoría, o getName()
para el nombre de la categoría.
fuente
Siempre trate de usar el repositorio. Debe inyectar de la siguiente manera:
Por categoría url
fuente
Puedes probar el siguiente código.
Antes de usar una identificación de categoría, debe confirmar que existe una identificación de categoría en admin o devolverá una matriz vacía.
Hazme saber si tienes alguna pregunta.
fuente
Descubrí que cuando necesito URL de categoría de diferentes dominios (por vista de tienda), tenía que crear un nuevo objeto Url por vista de tienda.
fuente
Esto funciona bien en mi bloque personalizado (usando el repositorio de categorías y DI):
Finalmente, dentro de un archivo de plantilla solo uso:
fuente
@andrea Actualiza el método getCategory. O bien funciona bien.
fuente