Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Разные статусы в зависимости от количества товара на складе


Recommended Posts

Помогите рецептом. Я не профессионал и вообще занимаюсь фронтендом, но понадобилось в интернет-магазине сделать разные статусы товара, например:

  1. если товар есть в наличии в количестве более 10 шт - статус "Есть в наличии"
  2. если товар есть в наличии в количестве 1 шт - статус "Под заказ"
  3. если товара нет в наличии - статус "Нет в наличии"

 

Какое условие прописать в файлах шаблона? Надо ли в контроллер лезть? Может кто знает готовое решение - поделитесь, будьте добры!

Link to post
Share on other sites

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

  • controller/product/category.php
  • language/ru-ru/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 = $this->language->get('text_outstock');
} else {
    if ($result['quantity'] == 1) {
        $stock = $this->language->get('text_minstock');
    } else {
        $stock = $this->language->get('text_instock');
    }
}

И в массив, чуть ниже:

'stock'       => $stock,

2. В языковой файл добавим строки, сообщающие о наличии товара.

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

3. В файл шаблона, после этого div-а кнопок:

              <div class="button-group">
                <button type="button" onclick="car......
....
</button></div>

добавим:

<div class="caption-stock"><i class="fa fa-exclamation-circle"></i> <?php echo $product['stock'];?></div>

Стиль оформляем на своё усмотрение

 

Edited by alena967
Link to post
Share on other sites
13 часов назад, alena967 сказал:

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

  • controller/product/category.php
  • language/ru-ru/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 = $this->language->get('text_outstock');
} else {
    if ($result['quantity'] == 1) {
        $stock = $this->language->get('text_minstock');
    } else {
        $stock = $this->language->get('text_instock');
    }
}

И в массив, чуть ниже:


'stock'       => $stock,

2. В языковой файл добавим строки, сообщающие о наличии товара.


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

3. В файл шаблона, после этого div-а кнопок:


              <div class="button-group">
                <button type="button" onclick="car......
....
</button></div>

добавим:


<div class="caption-stock"><i class="fa fa-exclamation-circle"></i> <?php echo $product['stock'];?></div>

Стиль оформляем на своё усмотрение

 

Почти то что надо, только вы для категории указали. Но решение понял, спасибо! 

Link to post
Share on other sites
  • 10 months later...
В 13.11.2017 в 13:14, krluch сказал:

Почти то что надо, только вы для категории указали. Но решение понял, спасибо! 

Добрый день. Подскажите как вы реализували даную задачу с разными статусами в зависимости от количества товара на складе  карточки товара ? 

Нужно чтобы при количестве на складе 999999 - статус был  "Под заказ " 

Сам код :

 

    if ($product_info['quantity'] <= 0) {
                $this->data['stock'] = $product_info['stock_status'];
            } elseif ($this->config->get('config_stock_display')) {
                $this->data['stock'] = $product_info['quantity'];
            } else {
                $this->data['stock'] = $this->language->get('text_instock');
            }

Link to post
Share on other sites

В 24.09.2018 в 16:34, sasha12345 сказал:

Нужно чтобы при количестве на складе 999999 - статус был  "Под заказ " 

в карточке товара замени условие с выводом статуса и сделай что типа этого

<?php if ($quantity == 0) {
  Нет в наличии
} elseif ($quantity <= 2) {
  Заканчивается
} elseif ($quantity <= 9999) {
  Наличие гарантируем
} else {
  Есть в наличии
}?>

Как то так

Link to post
Share on other sites
19 минут назад, krluch сказал:

в карточке товара замени условие с выводом статуса и сделай что типа этого


<?php if ($quantity == 0) {
  Нет в наличии
} elseif ($quantity <= 2) {
  Заканчивается
} elseif ($quantity <= 9999) {
  Наличие гарантируем
} else {
  Есть в наличии
}?>

Как то так

Спасибо, уже сделал

Link to post
Share on other sites

  • 1 year later...

Так какже всё таки реализовать данную хотелку? Сам в поисках попал сюда, и так и не разобрался, где и как поменять условия.? Помогите пожалуйста, знающие люди! Необходимость такая: нужно при наличии допустим 10 товаров и больше выводить вместо цифры количества надпись - много, если меньше 10 шт, начинать выводить количество в цифрах, ну и когда 0 выводить надпись нет в наличии как и полагается. как правильно реализовать такое? opencart 2.3 pro.  

Спасибо!

Link to post
Share on other sites

вышло. если кто искать будет, то вот: 

Изменить в файле ваша_тема/template/product/product.php

Это:

if ($product_info['quantity'] <= 0) {
				$data['stock'] = $product_info['stock_status'];
			} elseif ($this->config->get('config_stock_display')) {
				$data['stock'] = $product_info['quantity'];
			} else {
				$data['stock'] = $this->language->get('text_instock');
			}

на это:

if ($product_info['quantity'] <= 0) {
				$data['stock'] = $this->language->get('text_outstock');
			} 
						elseif ($this->config->get('config_stock_display')) {
				$data['stock'] = $product_info['quantity'];
				
			}
			elseif ($product_info['quantity'] >= 20 AND $product_info['quantity'] <= 9999) {
				$data['stock'] = $this->language->get('text_instock');
			} 
			
			 else {
				$data['stock'] = $product_info['quantity'];
			}

Ну это в моём случае... и указать в настройках магазина-Опции - "показывать остаток на складе" значение - "Нет". тогда количество отображать будет только при оставшемся диапазоне значений. в моём случае это от 1-19) .И конечно можно создать в файле языка нужные статусы.  добавьте при необходимости) 

Edited by OHIXA
Link to post
Share on other sites

  • 6 months later...
В 27.09.2018 в 12:15, krluch сказал:

в карточке товара замени условие с выводом статуса и сделай что типа этого


<?php if ($quantity == 0) {
  Нет в наличии
} elseif ($quantity <= 2) {
  Заканчивается
} elseif ($quantity <= 9999) {
  Наличие гарантируем
} else {
  Есть в наличии
}?>

Как то так

Добрый день! в ocStore 3.0.2.0 где изменить чтоб был разный статус в зависимости от количества? 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By legioner26
      Разработан многофункциональный модуль Opencart Zoom для зуммирования изображений в карточке товара с выбором вариантов исполнения.
      ПРИМЕЧАНИЕ !!!
      Если у Вас не стандартный шаблон то для корректной работы настоятельно рекомендую проверить установлены ли иные плагины зумма.
      Не забываем очищать кешь на сайте при изменении настроек. Сочетание клавишь (Ctrl+F5)
       
      DEMO Логин: demo Пароль: demo
      http://mvc-cart.ru/index.php?route=product/product&product_id=30
       
       
      ПРОСМОТР РАБОТЫ МОДУЛЯ Кликнуть по тексту чтобы просмотреть.
       
      По адаптации шаблонов пишите в ЛС
       
      Тестировался с шаблонами Moneymaker 2, ROUNDSHOP, Corsica, Fiji, pixelshop и многими другими.
       
      Вариант №1
       
      Зуммирование в отдельном блоке, от изображения либо вывод в любом другом
       
      Вариант №2
       
      Зуммирование со скроллом внутри блока с изображением
       
      Вариант №3
       
      Зуммирование в виде лупы с настройками по ширине и высоте.
       
       
       
      Установка:
      1. Копируем содержимое исходя из версий ОС на хостинг в корень сайта 
      2. В модификаторах чистим кешь и обновляем.
      3. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
    • By legioner26
      2299
      Скачать/Купить дополнение


      Модуль зуммирования изображений товара - ZoomPRO
      Разработан многофункциональный модуль Opencart Zoom для зуммирования изображений в карточке товара с выбором вариантов исполнения.
      ПРИМЕЧАНИЕ !!!
      Если у Вас не стандартный шаблон то для корректной работы настоятельно рекомендую проверить установлены ли иные плагины зумма.
      Не забываем очищать кешь на сайте при изменении настроек. Сочетание клавишь (Ctrl+F5)
       
      DEMO Логин: demo Пароль: demo
      http://mvc-cart.ru/index.php?route=product/product&product_id=30
       
       
      ПРОСМОТР РАБОТЫ МОДУЛЯ Кликнуть по тексту чтобы просмотреть.
       
      По адаптации шаблонов пишите в ЛС
       
      Тестировался с шаблонами Moneymaker 2, ROUNDSHOP, Corsica, Fiji, pixelshop и многими другими.
       
      Вариант №1
       
      Зуммирование в отдельном блоке, от изображения либо вывод в любом другом
       
      Вариант №2
       
      Зуммирование со скроллом внутри блока с изображением
       
      Вариант №3
       
      Зуммирование в виде лупы с настройками по ширине и высоте.
       
       
       
      Установка:
      1. Копируем содержимое исходя из версий ОС на хостинг в корень сайта 
      2. В модификаторах чистим кешь и обновляем.
      3. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
      Добавил legioner26 Добавлено 20.05.2019 Категория Меню, дизайн, внешний вид Системные требования Ioncube Loader Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет  
    • By KlimGo
      Всем привет!
       
      Есть такая проблема. Попросили помочь с настройкой магазина. Стоит на шаблоне ocStore 3.0.2.0
      Сайт http://kristall-azot.ru/ 

      1. Никак не могу понять, как включить отображение карточек товаров, а также, чтобы категории тоже в ЧПУ менялись.
      То бишь отключить этот каталожный режим.
       
      2. А еще как убрать /home в ЧПУ на главной.

      Буду очень признателен!
    • By Rammstein91
      Скачать/Купить дополнение Индикаторы количества товаров [VQMod]
      Модуль «Индикаторы количества товаров [VQMod]» для OpenCart 1.5.1+
      Этот модуль заменяет стандартное текстовое поле Наличие на графическое отображение в карточке товара.
      Использует VQMod.
      УСТАНОВКА:
      1. Распаковать архив.
      2. Cодержимое папки «upload» скопировать в корень сайта.
      ДЕМО:
      Демо сайт: http://dothesite.ru/opencart-module/index.php?route=product/product&path=5&product_id=123
      ПОДДЕРЖКА:
      По общим вопросам - Андрей Лежнетев - http://dothesite.ru
      Добавил Rammstein91 Добавлено 08.04.2016 Категория Модули Системные требования vqmod Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop Обращение к серверу разработчика  
    • By whiteblue
      Скачать/Купить дополнение "HTML данные в продукте и продуктах категории" и другие custom блоки
      Очень часто нам нужно добавить произвольную информацию в виде html кода в карточку товара, как на уровне товара, так и в каждый товар категории...
       
      Данный модуль позволит добавить необходимой информации(html-поле) и заголовок H1 на уровне категорий и в карточке товара.
       
      Модуль способен заменить более 100 других модулей. Совместим с более 95% шаблонов. Рекомендован для каждого интернет-магазина. Модуль позволяет расположить любую информацию на любой странице сайта. Данные возможно выводить, как для отдельных товаров и категорий, так и для отдельных производителей, а также схем магазина. Любой html, js, jquery, ajax–код и в любой части странице Выберите селектор блока и положение данных, относительно блока (перед, после, вместо). Модуль мультиязычный, прост в настройке и использовании. Селекторы можно использовать абсолютно любые, от класса, заканчивая набором элементов, любые схемы селекторов, для jquery Любой код   
      Demo: карточка товара
      Demo: категория
      Admin (demo/demo)
       
       
       
      Установка модуля:
      Сделать резервную копию сайта и БД. Скачать архив. Не распаковывая его загрузить в админ-панель. Модули - Установка расширения - Загрузить. Обновить модификаторы. Добавил whiteblue Добавлено 03.05.2017 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.1 Обращение к серверу разработчика Нет  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.