Hoy vamos a ver un tema que me ha tenido dando vueltas la cabeza y lo he podido solucionar de una manera bastante sencilla que quiero compartir hoy contigo.
Por un lado se plantea la problemática de que las Marcas y Proveedores en Prestashop no están muy bien configuradas y tienen ciertas carencias. Por un lado, los slugs no son editables a diferencias de las categorías. Por otro lado, no es posible crear submarcas.
Por ejemplo, en el caso de la ropa podemos tener una marca que es la marca Adidas, dentro de la cuál podría crear una marca que sea Adidas, dentro de la cuál tengo Zapatillas Adidas – 40500 búsquedas mensuales, dentro de la cuál, me gustaría crear otra categoría que sea Zapatillas Adidas de Mujer y Zapatillas Adidas de Hombre con 27100 búsquedas mensuales. Las marcas para muchos negocios son términos con muchas búsquedas y que merecen la penas ser incluidas.
La idea es utilizar un campo de la base de datos de las categorías (ps_category_lang) para poder distinguir entre una categoría u otra. Con ayuda de un compañero se nos ocurrió utilizar el campo meta_keywords, que está asociado a las metakeywords, que desde 2009 están totalmente desfasadas para Google.
Código a modificar en el Child Theme
En el bucle dentro de una categoría para obtener las subcategorías incluyes la condición de que si la meta_keyword está vacía, cree el item del listado. Para mostrar lo contrario, exigimos la condición contraria. Poniéndole cualquier valor de texto, al campo, podemos diferenciar los items.
<ul class="clearfix">
{foreach from=$subcategories item=subcategory}
{if $subcategory.meta_keyword == ''}
<li>
{if $subcategory.image.bySize.category_default.url}
<a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">
<img src="/img/c/{$subcategory.id_category}_thumb.jpg" width="150px" height="150px" alt="{$subcategory.name}">
</a>{/if}
<h3>
<a class="subcategory-name" href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'html':'UTF-8'}">
{$subcategory.name|truncate:45:'...'|escape:'html':'UTF-8'}
</a>
</h3>
</li>
{/if}
{/foreach}
</ul>
De esta manera, desde el Backend, puedes separar entre marcas y no marcas, o clasificar como te de la gana, puedes separar las categorías de prestashop por etiquetas, dándole un uso a ese campo que ya está obsoleto, y sin módulos.