Настройка витрины — Для большинства тем (Default)

Настройка для темы Default

Чтобы предоставить посетителям сайта возможность сортировать товары по скидке, нужно в теме (на примере Default) в файле отвечающего за вывод товаров (list-thumbs.html) добавить код:

'flexsort__discount' => 'По скидке',

в список возможных сортировок (для темы Default - в следующее место шаблона):

Результат:

 

Настройка сортировки по умолчанию

По умолчанию для неизвестных полей Shop-script производит сортировку по возрастанию, иными словами если кликнуть по ссылке "По скидке" то сперва выведутся товары без скидки, чтобы изменить действие по умолчанию, выполните следующие:

В файл list-thumbs.html добавить код:

{function name=sortUrl}{strip}
 {$active_sort = $active_sort|default:$wa->get('sort')}
 {$inverted = (in_array($sort, array('rating', 'create_datetime', 'total_sales', 'count', 'stock','flexsort__discount')))}
 {$data = $wa->get(null)}
 {$data.sort = $sort}
 {if ($sort == $active_sort)}
  {$data.order = ($wa->get('order', 'asc', 'string') == 'asc') ? 'desc' : 'asc'}
 {else}
  {$data.order = ($inverted) ? 'desc' : 'asc'}
 {/if}
 <a href="?{http_build_query($data)}">{$name}{if $sort == $active_sort} <i class="sort-{if $data.order == 'asc'}desc{else}asc{/if}"></i>{else}{/if}</a>
{/strip}{/function}

в следующее место шаблона:

Далее в этом-же файле, заменить:

{$wa->shop->sortUrl($sort, $name, $active_sort)}

на

{sortUrl sort=$sort name=$name active_sort=$active_sort}
 

Таким образом при первом нажатие на ссылку "По скидке" будут выведены товары с максимальной скидкой