Для подобных целей в следующих обновлениях, думаю, правильно товарам добавить флажок Не для продажи (скажем поле назвать non_usable). Движок пусть сам сносит "непродажные" товары в конец демонстрируемого покупателю списка независимо от текущего способа сортировки. Правда, придется возложить на шаблон задачу убирать кнопку Купить и визуально пояснять (выделять?), почему товар оказался в конце списка. Иначе покупатель посчитает это багом магазина: например выбираю сортировку по названию, а некоторые товары с буквы А почему-то внизу.
Также движок пусть сам отсекает попытки положить такой товар в корзину. Дело в том, что одно лишь убирание кнопки в шаблоне не закроет злопыхателю путь воспроизвести эту кнопку искусственным образом. Должен быть игнор и со стороны движка.
В шаблоне мини карточки товара (выводимой в списках) и странице товара будут правки, похожие как для флажка Выделен.
<div {if $product->highlighted|default:false} class="look-at-me" {/if}>
...
...
</div>
Как видно, если отрисовываемый товар имеет признак выделен, тогда контейнер мини карточки снабжается стилевым классом look-at-me. Аналогично и для признака не для продажи - снабжаем контейнер стилевым классом и не рисуем кнопку.
<div {if $product->non_usable|default:false} class="restrict-production" {/if}>
...
...
{if !$product->non_usable|default:false}
кнопка Купить
{/if}
...
...
</div>
Пока же до обновления предлагаю воспользоваться флажком Не для RSS (вкладка Мета информация страницы товара). Установите его у всех снятых с производства товаров. Добавьте помеченное ниже синим цветом в файл cards/product-card.htm - модуль мини карточки товара.
...
...
{* если на вход получена запись о товаре *}
{if isset($item) && is_object($item)}
...
...
{$stop = $item->rss_disabled|default:false}
{* карточка товара *}
<li class="ajax_block_product bordercolor">
<div class="produc-cat-inner {($stop) ? 'restrict-production' : ''}">
...
...
{* артикул варианта товара *}
<div class="right_block bordercolor">
...
...
{* кнопка В корзину *}
{if !$stop}
...
...
{* кнопка Отложить *}
...
...
{* кнопка Быстрый заказ *}
...
...
{/if}
</div>
</div>
</li>
{/if}
{/strip}
В дальнейшем после выхода обновления просто замените $item->rss_disabled на $item->non_usable и состояния флажков Не для RSS у снятых с производства товаров перенесите на флажок Не продавать (будет помещен во вкладку Маркетинговые настройки).
Похожие действия сделайте в файле product.tpl - шаблон центральной части страницы товара.
...
...
{* если существует запись о товаре *}
{if isset($product) && is_object($product)}
...
...
{$stop = $product->rss_disabled|default:false}
<div class="clearfix" id="primary_block">
...
...
{* название товара *}
<div id="pb-left-column" {($stop) ? 'class="restrict-production"' : ''}>
...
...
<form class="bordercolor" id="buy_block" method="post">
{* цена со скидкой *}
<div class="price bordercolor">
...
...
{* кнопка В корзину *}
{if !$stop}
...
...
{* поле Количество *}
...
...
{/if}
</div>
...
...
<div class="clearblock"></div>
</form>
</div>
</div>
...
...
{* иначе страницы нет или закрыта для чужих *}
{else}
...
...
{/if}
{/strip}
Раз задействуем стилевой класс restrict-production, следует прописать его в css. Скажем, фоновая картинка в правом верхнем углу контейнера.
/* для мини карточки снятого с производства товара */
li > .restrict-production {
background: url('../images/restrict-production.png') top right no-repeat;
}
/* для страницы снятого с производства товара */
#pb-left-column.restrict-production {
background: url('../images/restrict-production.png') top right no-repeat;
}