Добавляем статус наличия товара в категорию opencart
Выводим статус наличия товара в список товаров
Создание, разработка, изготовление сайтов | WEB-STYDIA.COM

Здравствуйте дорогие друзья.

В данной статье я хотел бы описать несколько различных способов и манипуляций над товарами которых нет в наличии в opencart.

  1. Добавляем статус наличия в категорию
  2. Товар которого нет в наличии в самом конце списка
  3. Скрываем товар которого нет в наличии

Задача №1

В первую очередь давайте поговорим о том как вывести, (отобразить) наличие товара в список товаров в категории и аналогичных страницах таких как поиск, акции, производители, и.т.д...

По умолчанию Opencart не отображает статус наличия товара в общем списке товаров, ну что же давайте исправим это.

И так перед нами есть opencart версии 1.5.5.1 или любой другой версии данной ветки, ну и шаблон мы будем использовать по умолчанию.

Для того что бы отобразить наличие товара в категории делаем следующее:

1.В файл /catalog/language/russian/product/category.php

В любом месте добавляем:

Я добавил эту строку после ($_['text_manufacturer'] = 'Производитель:';) но это не принципиально и вы можете ее вставить в любом месте, между тегами <?php и ?> так же не забудьте сделать то же самое из другими языковыми файлами если у вас магазин на нескольких языках.

Текст мы добавили , теперь нам нужно откорректировать немного сам контролер а именно:

2. В файле catalog/controller/product/category.php

После строчки:

Добавляем:

Все с контролером так же закончили.

3. Ну и последним нашим шагом мы выводим всю эту конструкцию в файл нашего шаблона :

А именно откриваем:
catalog/view/theme/default/template/product/category.tpl
и в нужном вам месте добавляем код:

Я его добавил сразу под ценой а именно перед последним div после кода:

Вот и все, таким несложным образом мы добавили в список товаров отображения его наличия, как все это выглядит вы можете посмотреть на фото ниже.


Задача №2

Теперь приступим к рассмотрению второго вопроса, иногда еще нам требуется сделать так что бы товар которого нет в наличии был всегда в самом конце списка товаров.

Решение данной задачи еще проще , открываем файл catalog\model\catalog\product.php и меняем в нем код:

На следующий код:

Все, теперь все товары в которых в количестве указанно 0 будут отображаться в самом конце списка всех товаров категории.


Задача №3

Меня часто спрашивают как можно убрать товары, которых нет в наличии, из списка товаров OpenCart, но при этом что бы они были доступны для поисковых систем.

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

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

А решение как всегда очень простое, находим файт catalog/controller/product/category.php

и перед строкой:

Добавляем следующее:

Ну и обязательно после строки:

Закрываем скобку, то есть добавляем :

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

Ну вот все что я хотел здесь описать. буду рад если данная заметка будет кому то полезна!

Вас также может заинтересовать

24 комментария

  •   06.10.2017 в 16:17

    Здравствуйте! А как сделать чтобы выводился только статус В наличии? Других не было.

    Ответить
    • Василий
        06.10.2017 в 16:25

      Отключить все товары которых нет в наличии и список будет только в наличии.
      Или править код привязывать к количеству.
      Примерно как то так:

       

      Ответить
  •   16.11.2017 в 14:13

    Добрый день, попробовал сделать тоже самое на opencart 3, не получилось … кэш зачищал, клаву протирал, не помогает

    Ответить
    • Василий
        16.11.2017 в 16:45

      Инструкция написана для ветки 1.5….
      Для вашей же версии под рукой готового написано нет, но принцип тот же.
      Изучите для начала различие версий а после без проблем сможете сделать у себя данный функционал, ну или же обратитесь за платной помощью.
      А от протирания клавиатуры большого эффекта не будет ;-) ;-) ;-)

      Ответить
    •   26.07.2018 в 22:07

      В opencart 3 шаблон имеет другой синтаксис.
      Я в файле category.twig вставил такие строки

      Все работает.

      Ответить
  •   19.12.2017 в 22:11

    Здравствуйте, пробовала сделать 1 задание на ос 1.5.4.1., не рабоатет(

    Ответить
    • Василий
        19.12.2017 в 22:40

      Анна, «не работает» этого мало для того чтобы вам что то можно было помочь и подсказать :)
      Скорей всего что то не доделали, или у вас шаблон сильно переделан и нужно делать индивидуально.
      Данный пример делался на дефолтном шаблоне…
      Пример на тестовом сайте здесь

      Ответить
  •   24.04.2018 в 22:02

    Огромное спасибо)) все отлично работает!! ;-) :!:

    Ответить
  •   10.05.2018 в 13:43

    Здравствуйте! В наличии пишет все правильно! Если же нет в наличии то пишет красным цифру 5?

    Ответить
    • Василий
        10.05.2018 в 21:24

      Скорей всего у вас выводит ID статуса а не сам статус, перепроверьте еще раз все все действия, хотя насколько я вижу у вас в магазине все отображает верно http://prntscr.com/jg8wdb

      Ответить
  •   29.06.2018 в 00:23

    А как это сформировать для версии Opencart 3.0.2.0
    Там вывод такой
    {{ text_stock }} {{ stock }}
    Спасибо за ранее.

    Ответить
    • Василий
        29.06.2018 в 13:45

      Третья ветка кардинально отличается от предыдущих, поэтому здесь только индивидуальная работа. Для данной версии под рукой нет готовой инструкции.

      Ответить
  •   03.11.2018 в 19:27

    Я на сайте попробовал сделать первое задание, вывести в категориях статус о наличии, но ничего не выводится. У меня ocStore 2.3

    Ответить
    • Василий
        04.11.2018 в 15:50

      Данная инструкция писалась для ветки 1.5….
      На вашу версию немного все по другому, под рукой готовой инструкции нет, только индивидуальна доработка.

      Ответить
  •   27.11.2018 в 14:39

    Подскажите, а как сделать «Нет в наличии» на разных языках? Если «В наличии» я разобрался, выводит на разных яхыках.

    Ответить
        • Василий
            27.11.2018 в 15:58

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

          Ответить
      •   27.11.2018 в 15:43

        И красным цветом выделить. Буду очень признателен за помощь

        Ответить
          •   27.11.2018 в 16:55

            Извините, последний вопрос.
            Это вы говорите про вывод наличия в категории, а я хочу вывести в самом товаре наличие, у меня product.tpl за вывод отвечает:

            (это есть в наличии)
            а контроллер у меня такой:

            Выводит всё идеально, что «Есть в наличии», что «Нет в наличии», но не могу разобраться что изменить именно в этом коде, не тот, что вы предоставили, чтобы было красным цветом «Нет в наличии»

          • Василий
              27.11.2018 в 17:32

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

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

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