Долго искали бесплатный модуль стикеров, чтобы обозначать в категориях товары которые сейчас есть на складе и не требуют времени для доставки.
Долго, трудно дорого не надёжно.
Наконец догадались что проще в товарах в категориях добавить строку со статусом товара.
Количество товара в категориях не нужно, а знание по срокам доставки товаров на странице категории -- очень полезно
Проверено -- работает под ocStore 2.3
1. controller/product/category.php заводим новый параметр
Код:
if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
} else {
$rating = false;
}
И добавляем после него:
Код:
if ($result['quantity'] <= 0) {
$stock = $result['stock_status'];
} else {
$stock = $this->language->get('text_instock');
}
буквально парой строк ниже в массиве: добавляем новый 'stock' => $stock, в той "орфографии", какая там прописана , я после строки 'special' => $special, добавил
--------------
2. language/ru-ru/product/category.php
Языковую строку вставляем в той "орфографии", какая там прописана:
$_['text_instock'] = 'товар в наличии';
-----------------
3. catalog/view/theme/ваша_тема/template/product/category.tpl
в нужном вам месте карточки товара добавляете:
<div class="caption-stock"><?php echo $product['stock'];?></div>
я добавил перед выводом цены. Форматирование прямо в div-e (заливка например) и стилями, у меня вот так:
<div class="caption-stock"><span style="color: #500050; font-auto: bold; font-size: 1em"><?php echo $product['stock'];?></span></div>
Во вложении инструкция для OC2.1.0.1, я использовал её
Резюме: стикеры не нужны для боле-менее серьёзного сайта от них в глазах рябит, а тут всё понятно и если у вас товар закончился выдаётся штатная запись системы "товар имеется в наличии", а если вы изначально количество не задали но поставили товар в статусе в наличии -- идёт ваша запись из кода
Чтобы отобразить состояние товара на складе и не раскрывать количество можно выводить "статус на складе" прямо на странице категории.
Для этого необходимо внести изменения в три файла:
controller/product/category.php
language/russian/product/category.php
catalog/view/theme/ваша_тема/template/product/category.tpl
1. Находим в контроллере код:
Код:
if ($this->config->get('config_review_status')) {
$rating = (int)$result['rating'];
} else {
$rating = false;
}
И добавляем после него:
Код:
if ($result['quantity'] <= 0) {
$stock = $result['stock_status'];
} else {
$stock = $this->language->get('text_instock');
}
И в массив, чуть ниже:
Код:
'stock' => $stock,
2. В языковой файл добавим строку, сообщающую о наличии товара. Текст можно сделать стимулирующим:
Код:
'text_instock' => 'Товар в наличии.<br /> Отправим уже завтра!',
3. В файл шаблона, после этого div-а кнопок:
Код:
<div class="button-group">
<button type="button" onclick="car......
....
</button></div>
добавим:
Код:
<div class="caption-stock"><?php echo $product['stock'];?></div>
Стиль оформляем на своё усмотрение.
Тестировалось на OC2.1.0.1