Настройка для темы 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}
Таким образом при первом нажатие на ссылку "По скидке" будут выведены товары с максимальной скидкой