Очень много вариаций ответа на ваш вопрос.
Вы можете переписать компонент, который выводит товары пользователю, так чтобы он не видел неактивные товары.
Вы можете переписать Result_modifier компонента и удалить в нём товары, которых нет в наличии
Если ваш инфоблок обрабатывается модулем торговый каталог и у вас просто отключен количественный учёт - включите его
Если у вас выгрузка из 1С вы можете не выгружать товары у которых нет остатков, тогда вам нужно в настройках магазина > интеграция 1с выбрать опцию "деактивировать" у "Что делать с товарами, отсутствующими в файле импорта:"
Если вы импортируете через Магазин > Настройки >Импорт данных вы можете настроить соответствующий профиль
Тоже самое если вы импортируете через инфоблок