Когда наполняешь интернет-магазин товарами  характеристиками (атрибутами), то часто бывает что не все значения заполнены, показывать пустые атрибуты посетителям сайта не всегда хорошо, поэтому есть несколько способов решить эту задачу.

Скрыть пустые атрибуты

Что бы просто скрыть пустые атрибуты в карточке товара достаточно внести небольшое изменение в файл /catalog/view/theme/ВАШ-ШАБЛОН/template/product/product.tpl

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
    <tr>
    <td><?php echo $attribute['name']; ?></td>
    <td><?php echo $attribute['text']; ?></td>
    </tr>
<?php } ?>

И добавьте проверку вот так:

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
  <?php if ($attribute['text'] != '') { ?>
    <tr>
    <td><?php echo $attribute['name']; ?></td>
    <td><?php echo $attribute['text']; ?></td>
    </tr>
<?php
  } 
}
?>

Теперь открыть Админку->Менеджер дополнений->Обновить

Но такой подход не оправдан когда есть фильтр по тем атрибутам которые быват пустыми. Т.е. в моем случае был установлен Ocfilter и он выдавал пустое чекбокс, конечно это был вариант и пришлось дорабатывать. 

Скрыть пустой атрибут в карточке товара и отобразить в фильтре

Для этого придется заполнить все пустые значения атрибутов текстом «Не указано». Если товаров уже много, то поможет любой модуль импорта экспорта. А в карточке проверять и в случае если значение совпадает с «Не указано», то скрыть атрибут. Таким образом в фильтре вместо пустого поля мы сможем дать возможность пользователю увидеть что есть товары у которых данный параметр не заполнен и отфильтровать их.

Делаем то же самой что и в предыдущем шаге только добавляе проверку не на пустое поле а на текст.

 

<?php foreach ($attribute_group['attribute'] as $attribute) { ?>
  <?php if ($attribute['text'] != 'Не указано') { ?>
    <tr>
    <td><?php echo $attribute['name']; ?></td>
    <td><?php echo $attribute['text']; ?></td>
    </tr>
<?php
  } 
}
?>

Таким образом можно скрыть атрибут в крточке но оставить в фильтре.