Столкнулся с проблемой. Помогло простое и очевидное решение. Работает на ocStore 2.3. Но по опыту этот кусок кода не отличается у 2-к.
Было:
if (localStorage.getItem('display') == 'list') {
$('#list-view').trigger('click');
$('#list-view').addClass('active');
} else {
$('#grid-view').trigger('click');
$('#grid-view').addClass('active');
}
то есть, если в куках лежит значение list, генерируется событие на включение вида списка. Во всех остальных случаях, а это случаи когда в куках нет ничего по поводу вида, генерируется событие на сетку.
Чтобы победить сие зло нужно проверять localStorage на соответствие 'grid' и если там 'grid' то его и включать, во всех остальных случаях 'list'. То есть:
if (localStorage.getItem('display') == 'grid') {
$('#grid-view').trigger('click');
$('#grid-view').addClass('active');
} else {
$('#list-view').trigger('click');
$('#list-view').addClass('active');
}