Перейти к содержанию

Рекомендуемые сообщения

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

  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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
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>

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 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');
            }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 24.09.2018 в 16:34, sasha12345 сказал:

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

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

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

Как то так

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
19 минут назад, krluch сказал:

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


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

Как то так

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От Nymphetamine
      300.00 руб
      Скачать/Купить дополнение


      OWL Карусель Изображений

       
       
      Особенности:
      Настраиваемая адаптивность изображений. Сенсорные события (свайп-жесты). Слайд события мышкой. Настраиваемая навигация. Настраиваемая  пагинация. И многое другое..
      * Весь функционал настраиваться из админ. панели.
      * Простой в установке.
      * Требуется ocmod.
       
      Демо OpenCart 2x
      Демо
      Админка - логин и пароль: demo
       
      Демо OpenCart 3x
      Демо
      Админка - логин и пароль: demo
       
      Добавил Nymphetamine Добавлено 02.04.2017 Категория Слайдшоу, баннеры, галереи Системные требования Сайт разработчика https://greenmedia.ua Старая цена 450 Метод активации Без активации 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 Не проверялось  
    • От Nymphetamine
      Особенности:
      Настраиваемая адаптивность изображений. Сенсорные события (свайп-жесты). Слайд события мышкой. Настраиваемая навигация. Настраиваемая  пагинация. И многое другое..
      * Весь функционал настраиваться из админ. панели.
      * Простой в установке.
      * Требуется ocmod.
       
      Демо OpenCart 2x
      Демо
      Админка - логин и пароль: demo
       
      Демо OpenCart 3x
      Демо
      Админка - логин и пароль: demo
       
    • От tanya2307
      Подскажите, где убрать эту функцию? Когда товару А добавляю сопутствующий товар В, то у товара В в сопутствующих появляется товар А. А мне надо, чтобы у товара В были совсем другие сопутствующие.
      Как убрать это приклеивание?
    • От gennadygg
      Добрый день. Opencart 2.3.0.2 Стандартный шаблон. Помогите, пожалуйста, изменить положение блока с названием товара и кнопкой купить. В мобильной версии он съезжает ниже блока с описанием товара.
      Насколько я понимаю, блок с ценой обтекает описание справа, при уменьшении размера окнп - падает вниз.
       
       
    • От danineo1
      Реализовано ли у кого во вкладки на карточке товара аксессуары для основного товара?  И можно ли туда запихнуть товаров штук 20-40.  
       
      Или есть более удобное решение предложения аксессуаров к основному товару?
       
      Описание / Характеристики / Отзывы / Вопрос-Ответ / Аксессуары
       

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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