PrestaShop 1.5.2 no pone categoría por defecto en url de productos
Muy buenas de nuevo, como veis aquí sigo optimizando nuevas versiones de PrestaShop y sinceramente creo que cada vez ponen menos esmero en conseguir que PrestaShop sea lo más amigable posible para buscadores.
En esta ocasión, tras solucionar estos dos problemas
- Inclusión de cada producto en una categoría por defecto
- Creación de un módulo específico para hacer correctamente el sitemap multi-idioma (cosa que ha día de hoy PrestaShop no hace bien en ninguna de sus versiones).
Me di cuenta que aunque toda estaba bien las urls de PrestaShop no mostraban de ninguna manera las categorías en Urls, lo que francamente se carga cualquier intento de tener una estructura lógica de clusters.
[-] Indice de contenidos |
---|
Bug de PrestaShop
No me ha costado mucho dar con la solución buscando en los bug conocidos de PrestaShop hasta dar con este: http://forge.prestashop.com/browse/PSCFV-4978
En resumidas cuentas existe un problema en el fichero /classes/Link.php que se soluciona cambiando el primer fragmento de código que os muestro por el segundo.
Código Original (línea 130)
if ($dispatcher->hasKeyword(‘product_rule’, $id_lang, ‘categories’))
{
$params[‘category’] = (!$category) ? $product->category : $category;
$cats = array();
foreach ($product->getParentCategories() as $cat)
$cats[] = $cat[‘link_rewrite’];
$params[‘categories’] = implode(‘/’, $cats);
}
Nuevo código
if ($dispatcher->hasKeyword(‘product_rule’, $id_lang, ‘category’))
$params[‘category’] = (!$category) ? $product->category : $category;
if ($dispatcher->hasKeyword(‘product_rule’, $id_lang, ‘categories’))
{
$cats = array(); foreach ($product->getParentCategories() as $cat) $cats[] = $cat[‘link_rewrite’]; $params[‘categories’] = implode(‘/’, $cats);
}
Con esta solución se arreglará el problema, pero lo mejor sería hacer Rewrite para no tener que tocar el código original y no tener problemas con futuras actualizaciones.
Como ya he dicho existen soluciones mejores, así que si la tienes no dudes en ponerla en un comentario ;)
¡Menos mal! Por fin doy con la solución, que me tenía loco. Es la primera vez que trabajo con Prestashop y no había manera de arreglar el fallo (link_rewrite required) hasta ahora.
¡Gracias!