• Главная
  • Я и мой блог
  • Книги к прочтению
  • Необходимое вебмастеру
Blue Orange Green Pink Purple

Редактирование OpenCart — вывод наличия в списке товара

Рубрика: OpenCart. от 30 Июн 2014. Метки: OpenCart, наличие товара
Июн 30

В предыдущей статье я рассказывал о модернизации отображения наличия товара. Но, затем я столкнулся с такой проблемой, что, находясь в каталоге, клиент выбирает нужный ему товар, затем заходит в карточку товара и тут он видит, что его уже НЕТ в наличии! Получается очень не удобно. Нужно сделать так, чтобы в самой категории уже было видно какой товар есть, а какого нет в наличии.

Вывести эти данные в категории оказалось немного сложнее, поэтому я решил сразу сделать всё правильно, а не так как в предыдущей статье.

Для начала добавим в языковой файл наши три статуса.
Открываем:
/catalog/language/russian/product/product.php

Находим строки:

$_['text_stock']        = 'Наличие:';
$_['text_instock']      = 'В наличии';

$_['text_stock'] = 'Наличие:'; $_['text_instock'] = 'В наличии';

и добавляем:

$_['text_outstock']     = 'Нет в наличии';
$_['text_minstock']     = 'Заканчивается';

$_['text_outstock'] = 'Нет в наличии'; $_['text_minstock'] = 'Заканчивается';

Теперь, если вы захотите поменять надпись «Заканчивается», на «Остался последний!» вам надо всего лишь зайти в языковой файл и заменить нужную строку.

 

Основные изменения

Начинаем самый сложный процесс 😉 Работаем с контроллером категории.
Открываем для редактирования:
/catalog/controller/product/category.php

Почти в самом верху подтягиваем наш языковой файл.
После строк:

<?php 
class ControllerProductCategory extends Controller {  
	public function index() {
 
		$this->language->load('product/category');

<?php class ControllerProductCategory extends Controller { public function index() { $this->language->load('product/category');

Вставляем:

$this->language->load('product/product');

$this->language->load('product/product');

 

Где-то в районе 240-250 строк после строки:

$rating = false;
}

$rating = false; }

вставляем этот код:

if ($result['quantity'] <= 0) {
        $stock = $this->language->get('text_outstock');
} elseif ($this->config->get('config_stock_display')) {
        $stock = $result['quantity'];
} elseif ($result['quantity'] >= 1 AND $result['quantity'] <= 3) {
	$stock = $this->language->get('text_minstock');
} else {
	$stock = $this->language->get('text_instock');
}

if ($result['quantity'] <= 0) { $stock = $this->language->get('text_outstock'); } elseif ($this->config->get('config_stock_display')) { $stock = $result['quantity']; } elseif ($result['quantity'] >= 1 AND $result['quantity'] <= 3) { $stock = $this->language->get('text_minstock'); } else { $stock = $this->language->get('text_instock'); }

 

и последний штрих, где-то в районе 270 строки, между строк:

'thumb'       => $image,
'name'        => $result['name'],
'description' => utf8_truncate(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 200, '&nbsp;&hellip;', true),
'price'       => $price,

'thumb' => $image, 'name' => $result['name'], 'description' => utf8_truncate(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 200, '&nbsp;&hellip;', true), 'price' => $price,

вставляем строку:

'stock'       => $stock,

'stock' => $stock,

 

Вывод результата в списке товара

И непосредственно сам вывод нужной информации на сайте.
Открываем:
/catalog/view/theme/ваша_тема/template/product/category.tpl

Я предлагаю разместить информацию о наличии сразу под ценой.
Для этого, находим строки:

<div class="price">
  <?php if (!$product['special']) { ?>
  <?php echo $product['price']; ?>
  <?php } else { ?>
  <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
  <?php } ?>
  <?php if ($product['tax']) { ?>
  <br />
  <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
  <?php } ?>
</div>

<div class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <br /> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </div>

и перед последним /div вставляем:

<br /><?php echo $product['stock']; ?>

<br /><?php echo $product['stock']; ?>

 

Делаем красиво

А тем кто хотят, чтоб это было ещё и красиво, можем назначить уникальный стиль для надписей.

В последнее наше изменение, вставляем не просто строчку

<br /><?php echo $product['stock']; ?>

<br /><?php echo $product['stock']; ?>

а вот такую:

<span class="stock"><br /><?php echo $product['stock']; ?></span>

<span class="stock"><br /><?php echo $product['stock']; ?></span>

Заходим в:
/catalog/view/theme/ваша_тема/stylesheet/stylesheet.css

Находим строчку:

.product-list .price-tax {
	font-size: 12px;
	font-weight: normal;
	color: #BBBBBB;
}

.product-list .price-tax { font-size: 12px; font-weight: normal; color: #BBBBBB; }

и вставляем после неё:

.product-list .stock {
	font-size: 13px;
	font-weight: normal;
}

.product-list .stock { font-size: 13px; font-weight: normal; }

или подгоняем под свой стиль.

А вот чтоб надписи были разного цвета, возвращаемся в наш языковой файл:
/catalog/language/russian/product/product.php

и уже известные нам строки

$_['text_stock']        = 'Наличие:';
$_['text_instock']      = 'В наличии';
$_['text_outstock']     = 'Нет в наличии';
$_['text_minstock']     = 'Заканчивается';

$_['text_stock'] = 'Наличие:'; $_['text_instock'] = 'В наличии'; $_['text_outstock'] = 'Нет в наличии'; $_['text_minstock'] = 'Заканчивается';

меняем на что-то типа такого:

$_['text_stock']        = 'Наличие:';
$_['text_instock']      = '<font style="color: green;"><b>В наличии</b></font>';
$_['text_outstock']     = '<font style="color: #f00;">Нет в наличии</font>';
$_['text_minstock']     = '<font style="color: green;">Заканчивается</font>';

$_['text_stock'] = 'Наличие:'; $_['text_instock'] = '<font style="color: green;"><b>В наличии</b></font>'; $_['text_outstock'] = '<font style="color: #f00;">Нет в наличии</font>'; $_['text_minstock'] = '<font style="color: green;">Заканчивается</font>';

 

Вот что у нас получилось:
nalichie_spisok

 

Поиск, Акции, и Производители…

По выше изложенной схеме исправим ещё парочку файлов, чтобы наличие товара отображалось и в поиске и в списке производителя и в акциях.

В каталоге /catalog/controller/product/
меняем файлы:
manufacturer.php — Список товаров определенного производителя
search.php — Поиск. Список найденных товаров
special.php — Специальные акционные предложения

изменения вносим такие же как в category.php (Основные изменения)
Думаю, разберетесь.

 

Вновь заходим в папку: /catalog/view/theme/ваша_тема/template/product/
И добавляем уже известную нам строку:

<span class="stock"><br /><?php echo $product['stock']; ?></span>

<span class="stock"><br /><?php echo $product['stock']; ?></span>

в файлы:
manufacturer_info.tpl
search.tpl
special.tpl

P.S. У меня почему-то только в списке по производителю, выдаёт не результат, а наш полуготовый instock/outstock… попробую разобраться…



Похожие записи:

  1. Редактирование OpenCart — наличие товара в карточке
  2. Хлебные крошки в OpenCart, SEO оптимизация магазина
  3. Как убрать количество товаров в категориях OpenCart
  4. Как изменить кнопку «Купить» в OpenCart CMS

« Редактирование OpenCart — наличие товара в карточке

Воздействие цвета на человека или подбор цвета для сайта »






11 комментариев

  1. Дмитрий 10 Мар 2015

    Спасибо, чуток переделал, но суть та, что надо!

  2. Безработный 30 Мар 2015

    Рад что статья стала полезной!

  3. Анастасия 6 Апр 2015

    Спасибо за статью) всегда думала, как же осуществить такое удобство для посетителей сайта)))

  4. Безработный 6 Апр 2015

    Да, думаю посетители тоже будут благодарны! 😉

  5. Евгений 2 Июн 2015

    Здравствуйте, спасибо за статью, получилось сделать в категориях и поиске. А как сделать, для модулей? у меня на главной выведены модули. хиты. новинки рекомендуемые.

  6. Сергей 10 Июл 2015

    Ценная статья по действительно «наболевшей» теме. Спасибо! Сразу приступил к изменениям, старался делать все внимательно и точно по «рецепту». Но в итоге надписи «Есть в наличии», «Нет в наличии» появляются при загрузке страницы только на долю секунды. Может подскажите чтобы это могло быть? Версия 1.5.4.1.

  7. Безработный 11 Июл 2015

    Сергей, к сожалению по вашему вопросу не подскажу 🙁
    Видимо версия 1.5.4.1 работает немного иначе и идет какой-то конфликт.

    Странно что оно появляется и исчезает, посмотрите в других браузерах… Как там работает?

  8. Сергей 19 Июл 2015

    Проверил в Opera, Google Chrome, Mozilla Firefox, Yandex.Browser. К сожалению везде одинаковая ситуация. Пока продолжаю искать решение…

  9. Евгений 5 Авг 2015

    Все супер, получилось, а как сделать под заказ?

  10. Юлия 2 Апр 2016

    Спасибо!! Все четко и красиво))

  11. Дима 27 Сен 2016

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

    если можно напишите мне на почту



Оставить комментарий

Жизнь одного безработного

  • Поиск



  • Меню разделов:

    • Создание сайта
      • OpenCart
      • WordPress
      • html / css / js
    • Арбитраж трафика
    • Монетизация или Делаем деньги
    • Компьютеры и программы
    • Тренинги, Семинары и Марафоны
    • Дневник успеха
  • Я работаю с…

    BeGet - Лучший хостинг!
    TurboText - Контент заказываю здесь
    GoGetLinks - Покупка вечных ссылок
    MiraLinks - Продвижение статьями RushAnalytics - Сбор слов и позиций LinkPad - Проверка обратных ссылок AdvanceTS - Отчёты CPA конкурентов

    HashFlare

  • Новые статьи

    • Как убрать возможность скачивать в html5 теге video
    • Как добавить 2 телефона на страницу контактов в OpenCart 2
    • Дополнительное описание категорий товаров для OpenCart
    • Настройка целей в Google Analytics для OpenCart
    • Правильная пагинация или избавляемся от дублей OpenCart часть 2
    • Как убрать количество товаров в категориях OpenCart
    • Вирус JS/Iframeinject.AE или JS/IFrame.VJ.gen на WordPress


  • Главная
  • Я и мой блог
  • Книги к прочтению
  • Необходимое вебмастеру

© Жизнь одного безработного.
При копировании материалов, ссылка на данный блог обязательна!

В НАЧАЛО