По умолчанию в Opencart модуль корзины при отсутствии товаров выводит их количество и стоимость, которые разумеется равны нулю. Кого то это устраивает, кому то не нравится.. Если количество и стоимость товаров нужно показать только при наличии их в корзине, а при отсутствии вывести что то другое (сообщение, изображение) понадобится внести небольшие изменения в шаблон модуля корзины (добавим - что нужно вывести) и в скрипт common.js (что бы после внесенных изменений все работало как надо).
Для начала внесем небольшие изменения в шаблон мудуля - /catalog/view/theme/default/template/module/cart.tpl:
Необходимо, что бы при наличии товаров выводилась корзина, при их отсутствии что то другое. В шаблоне уже есть проверка на наличие товара, только сделана она для всплывающего окна с информацией о добавленных товарах - если их нет - выводит сообщение об отсутствии. Этим и воспользуемся.
В начале:
<div id="cart">
<div class="heading">
<h4><?php echo $heading_title; ?></h4>
<a><span id="cart-total"><?php echo $text_items; ?></span></a></div>
<div class="content">
<?php if ($products || $vouchers) { ?>
<div class="mini-cart-info">
Меняем на:
<div id="cart">
<div class="heading">
<?php if (!$products) { ?>
Пусто здесь однако...
</div>
<?php } else { ?>
<h4><?php echo $heading_title; ?></h4>
<a><span id="cart-total"><?php echo $text_items; ?></span></a></div>
<div class="content">
<div class="mini-cart-info">
В проверке внес небольшие изменения - оставил только проверку на наличие товаров и если их нет, то будет выведено "Пусто здесь однако..." (замените на что-нибудь свое), если же товары есть - выведет корзину.
Теперь в самом низу - закроем в нужном месте проверку и удалим сообщение об отсутствии товаров (т.к. теперь если корзина отображена, то товары там точно есть).
Меняем:
</a></div>
<?php } else { ?>
<div class="empty"><?php echo $text_empty; ?></div>
<?php } ?>
</div>
</div>
На вот это:
</a></div>
</div>
<?php } ?>
</div>
На этом правка шаблона модуля закончена, при отсутствии товаров выводится сообщение, при наличии корзина, но при добавлении не происходит автоматического обновления и результат виден только после того как обновим страницу, или перейдем на другую. Что бы это исправить, необходимо внести изменения в файл /catalog/view/javascript/common.js в функцию addToCart (строка 113):
В функции addToCart находим следующее (строка 133):
$('#cart-total').html(json['total']);
И меняем на:
$('#cart').load('index.php?route=module/cart #cart > *');
Теперь все работает как надо. :)
как для 2.0 сделать?