Por defecto en prestashop tenemos la “vista cuadrícula” por defecto en el listado de productos. Para poner la “vista lista” siempre por defecto hay que hacer 2 pequeños cambios en nuestro theme default-bootstrap.

1. Buscamos en el archivo: /themes/default-bootstrap/produt-list.tpl el siguiente código:

<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list grid row{if isset($class) && $class} {$class}{/if}{if isset($active) && $active == 1} active{/if}">

Y lo reemplazamos por:

<ul{if isset($id) && $id} id="{$id}"{/if} class="product_list list row{if isset($class) && $class} {$class}{/if}{if isset($active) && $active == 1} active{/if}">

2. Buscamos en el archivo: /themes/default-bootstrap/js/global.js el siguiente código:

function bindGrid(){
    var view = $.totalStorage('display');
    if (view && view != 'grid')
        display(view);
    else
        $('.display').find('li#grid').addClass('selected');
     
    $(document).on('click', '#grid', function(e){
        e.preventDefault();
        display('grid');
    });
 
    $(document).on('click', '#list', function(e){
        e.preventDefault();
        display('list');
    });
}

Y lo reemplazamos por:

function bindGrid(){
    var view = $.totalStorage('display');
    if (view && view != 'list')
        display(view);
    else {
        $('.display').find('li#list').addClass('selected');
            display('list');
        }
     
    $(document).on('click', '#grid', function(e){
        e.preventDefault();
        display('grid');
    });
 
    $(document).on('click', '#list', function(e){
        e.preventDefault();
        display('list');
    });
}

Con eso basta. Básicamente lo único que hacemos es cambiar la clase “grid” por “list” en el listado.

Agradezco tu comentario 🤘