Jump to content
Sign in to follow this  
krluch

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

Recommended Posts

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

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

 

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

Share this post


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

Share this post


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>

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

 

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

Share this post


Link to post
Share on other sites
В 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');
            }

Share this post


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 {
  Есть в наличии
}?>

Как то так

Share this post


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

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

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

Как то так

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

Share this post


Link to post
Share on other sites

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

Спасибо!

Share this post


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

Share this post


Link to post
Share on other sites
В 27.09.2018 в 12:15, krluch сказал:

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

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

Как то так

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • 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. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
       
      https://opencartforum.com/profile/723002-legioner26/?tab=field_core_pfield_13 ->> СЕО сопровождение магазинов под управлением OpenCart
       
    • By legioner26
      1 299.00 руб
      Скачать/Купить дополнение


      Модуль зуммирования изображений товара - 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. Пишем в личку номер вашего заказа, я высылаю Вам ключ.
       
       
      https://opencartforum.com/profile/723002-legioner26/?tab=field_core_pfield_13 ->> СЕО сопровождение магазинов под управлением OpenCart
       
      Добавил 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.х Обращение к серверу разработчика Нет Старая цена 3500  
    • By legioner26
      Разработан модификатор который позволяет склеивать изображения из одиночных картинок прямо из менеджера изображений в админ панели, с автоматическим добавлением. Регистронезависимость расширений файлов (jpg - JPG, png - PNG, jpeg - JPEG).
      После склеивания создается новая картинка имя которой состоит из (имя1-ой_имя2-ой.jpeg)
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
       
       
    • By legioner26
      750.00 руб
      Скачать/Купить дополнение


      Конструктор картинок из менеджера изображений
      Разработан модификатор который позволяет склеивать изображения из одиночных картинок прямо из менеджера изображений в админ панели, с автоматическим добавлением. Регистронезависимость расширений файлов (jpg - JPG, png - PNG, jpeg - JPEG).
      После склеивания создается новая картинка имя которой состоит из (имя1-ой_имя2-ой.jpeg)
       
      Установка:
      Устанавливаете модификатор через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
       
       
      Добавил legioner26 Добавлено 23.01.2018 Категория Инструменты, утилиты Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Нет Старая цена 0  
    • By kosta686
      Всем здравствуйте! 
      Есть ИМ на opencart 2.3.0.2, настроена синхронизация товаров с 1С (из 1С загружаются товары, артикулы, штрих-коды, категории, подкатегории, цены, остатки; в 1С уходят Заказы).
      Задачи:
      1. Заполнить в существующих товарах Изображения, Описания, Габариты (ДхШхВ), Вес, Фильтры (используется OCFilter), Рекомендуемые товары (частично заполнено (не затереть бы!) (заполнение с сайта аналогичной тематики). Уже имеющиеся карточки назовем "постоянный ассортимент"
      2. Для расширения ассортимента (изучение покупательского спроса) с некоторой периодичностью подгружать на сайт товары похожего ассортимента, но от других производителей, иногда принципиально новые товары, для которых нет категорий на сайте. (товары загружать с полным заполнением карточки товара и фильтров) Такие товары назовем "дополнительный ассортимент"
      3. Далее периодически (раз в неделю например) отслеживать изменения цен конкурентов и корректировать свои цены. (по "дополнительному ассортименту" сразу на сайте, по "постоянному ассортименту" - через 1С (нужен будет файл с аналитикой, как сделать в 1с решим сами)) 
      4. При получении прайса от поставщиков изменение цен по аналогии с пунктам 3. (Прайсы как правило в excel)
       
      Что посоветуете? Как это организовать на сайте? 
       
      P.S. Предполагаю, что через какое -то время товары из "дополнительного ассортимента" будут переходить в "постоянный". 
      Спасибо за внимание.
  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.