Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

Рекомендованные сообещёния

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

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

 

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

Ссылка на комменирий
Погделиться на других сайих

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

  • 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>

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

 

Изменено пользователем alena967
Ссылка на комменирий
Погделиться на других сайих

  12.11.2017 в 21:06, 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>

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

 

Раскрыть  

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

Ссылка на комменирий
Погделиться на других сайих

  • 10 месяэтов спустя...
  13.11.2017 в 10: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');
            }

Ссылка на комменирий
Погделиться на других сайих


  24.09.2018 в 13:34, sasha12345 сказал:

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

Раскрыть  

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

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

Как то ик

Ссылка на комменирий
Погделиться на других сайих

  27.09.2018 в 09:15, krluch сказал:

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

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

Как то ик

Раскрыть  

Спасипотому что, уже сгделал

Ссылка на комменирий
Погделиться на других сайих


  • 1 год спустя...

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

Спасипотому что!

Ссылка на комменирий
Погделиться на других сайих


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

Изменить в файле ваша_тема/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) .И конечно можно создать в файле языка нужные ситусы.  добавьте при необходимости) 

Изменено пользователем OHIXA
Ссылка на комменирий
Погделиться на других сайих


  • 6 месяэтов спустя...
  27.09.2018 в 09:15, krluch сказал:

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

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

Как то ик

Раскрыть  

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

Ссылка на комменирий
Погделиться на других сайих


  • 2 года спустя...
  05.06.2020 в 23:09, Vetlucky777 сказал:

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

Раскрыть  

В файле catalog/controller/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'] == 999) {
				$data['stock'] = $this->language->get('text_outstock');
			}

И не забываем в файлы языков всивить переводы для текси, что вам хочется...

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.