Categorías URL keys para diferentes vistas de tienda (idiomas) en Magento
Magento tiene alguno pequeños problemas de concepto, que al final requieren de extensiones de terceros. Las extensiones de terceros, con pequeñas salvedades de empresas con reconocimiento de Magento, son desarrollados por programadores que muchas veces, no pueden o no están capacitados para dar soporte al complejo Magento, y puede tener consecuencias desastrosas.
En nuestro caso, para la tienda de Dulcissimus.fr, localizamos e instalamos TranslateURL de Kamil Borkowski, el cual en principio nos pareció un buen producto, con la salvedad de que su dinámica de trabajo tampoco era muy acertada, suplía las deficiencias de Magento respecto de las URL cortas.
El problema surgió cuando nos dimos cuenta de que con esta extensión activada, la paginación de la tienda no funcionaba. Siempre que había una página de categoría con más de 1 página, los enlaces de paginación a las páginas siguientes daban como resultado un error 404.
Como en muchos caso, nos encontramos con una respuesta típica del desarrollador:
«No es mi lio ni es problema de mi modulo. Es problema de otro modulo con toda seguridad»
Asi, que decidimos dar por perdido el precio pagado, y no volver a usar el modulo. Ahora teníamos el problema de como modificar el alcance de las URL Key (Clave URL) que por defecto en Magento, esta asignada a valor global.
La solución gracias a Magento Blog
- Localizamos el attribute_id que corresponde a la fila que contiene el valor url_key para las categorías.
SELECT * FROM [prefijotabla_]eav_attribute WHERE attribute_code LIKE ’%url_key%’;
Resultado:
479 9 url_key NULL catalog/category_attribute_backend_urlkey varchar text URL key
481 10 url_key NULL catalog/product_attribute_backend_urlkey varchar text URL key - 479 sería el valor de attribute_id y con el deberíamos, bien mediante phpMyAdmin o por linea de comandos modificar la fila en la tabla [prefijotabla_]catalog_eav_attribute que tiene ese attribute_id para desactivar el alcance global de su valor, y así pasar a tener un alcance de tienda, lo que nos permitirá editar por tiendas o idiomas cada categoría.
SELECT attribute_id, is_global FROM [prefijotabla_]catalog_eav_attribute WHERE attribute_id=479;
Veremos que hay una sola fila, con el valor is_global igual a 1.
UPDATE [prefijotabla_]catalog_eav_attribute SET is_global=’0′ WHERE attribute_id=479; - Ya solo nos resta, hacer una limpieza de cache (recomendable) y probar cualquiera de las categorías en el idioma deseado.
* [prefijotabla] En muchos casos, la instalación de nuestro magento usa un prefijo de tabla. Deberemos sustituir los corchetes y su contenido por ese prefijo, en ese caso.