Чтобы отобразить состояние товара на складе и не раскрывать количество можно выводить "статус на складе" прямо на странице категории. Для этого необходимо внести изменения в три файла: 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
Не хватает только в поиске отображения. Основываясь на другой статье сделал чуть по другому: В файлах: /catalog/language/russian/product/product.php /catalog/language/russian/product/manufacturer.php /catalog/language/russian/product/search.php /catalog/language/russian/product/special.php Добавляем: Код: $_['text_outstock'] = 'Нет в наличии'; $_['text_minstock'] = 'Заканчивается'; Основные изменения: В файлы: /catalog/controller/product/category.php /catalog/controller/product/manufacturer.php /catalog/controller/product/search.php /catalog/controller/product/special.php После строк: Код: <?php class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); Вставляем: Код: $this->language->load('product/product'); После строк: Код: if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } Вставляем: Код: if ($result['quantity'] <= 0) { $stock = $result['stock_status']; } elseif ($this->config->get('config_stock_display')) { $stock = $result['quantity']; } elseif ($result['quantity'] >= 1 AND $result['quantity'] <= 2) { $stock = $this->language->get('text_minstock'); } else { $stock = $this->language->get('text_instock'); } И после: Код: $data['products'][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], Вставляем: Код: 'stock' => $stock, Открываем: /catalog/view/theme/ваша_тема/template/product/category.tpl /catalog/view/theme/ваша_тема/template/product/manufacturer_info.tpl /catalog/view/theme/ваша_тема/template/product/search.tpl /catalog/view/theme/ваша_тема/template/product/special.tpl После: Код: <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> Вставляем: Код: <div class="caption-stock"><?php echo $product['stock']; ?><p></p></div> В файле: /catalog/view/theme/ваша_тема/stylesheet/stylesheet.css Указываем нужный стиль: Код: .caption-stock { color: #353578; }
Для версии opencart 2.1.0.1 в карточке товара не отображается «Заканчивается» . А категории вообще не отображается статус товаров. Подскажите пожалуйста, может кто то разобрался как настроить для opencart 2.1
А вы все правильно сделали? Кеш модиикатора не забыли почистить и проверить логи на ошибки и в модификаторах тоже?
Вы правы, что то пошло не так. Обновила модификации, проверила, а на страницах категорий просто белые страницы без контента. Восстанавливаю резервную копию сайта)