Помощь Наличие товара и вывод разных данных при отсутствии

Тема в разделе "Opencart", создана пользователем candro333, 17 мар 2015.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. candro333

    candro333

    Регистр.:
    29 мар 2013
    Сообщения:
    256
    Симпатии:
    42
    Всем привет! В общем столкнулся с проблемкой о которой сейчас расскажу.
    В общем, хотел сделать следующее:
    При статусе товара "нет в наличии/предзаказ" убирать кнопки в корзину или другую (купить в 1 клик, к примеру) и выводить кнопки "сделать предзаказ" и "уведомить при поступлении". При этом цену товара заменять на "под заказ".
    Кто сталкивался с таким вопросом и как его решал?
    За ранее всем спасибо!)
    UPD: Ну или хотя бы если товара нет в наличии, то цена менялась бы на от ХХХ рублей (знак вопроса, которые поясняет, что означает эта цена).
     
    Последнее редактирование: 17 мар 2015
  2. Dj-Tiesto

    Dj-Tiesto Стероид

    Регистр.:
    19 авг 2010
    Сообщения:
    271
    Симпатии:
    88
    Знаю лишь как скрывать кнопку купить при условии установки определенного статуса товара. А так, как при наличии товара =0 Нет в наличии стаёт по умолчанию, то кнопка скрываеться.

    ищем в product.tpl строчку:

    Код:
    <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
    и заменяем её на эти:

    Код:
    <?php if ($stock != 'Нет в наличии') { ?>
              <input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />
    <?php } else { ?>
              <input type="button" value="<?php echo $button_cart; ?>" id="button-ne-cart" class="button" />
    <?php } ?>
    потом добавляем в stylesheet.css следующие строки:

    input#button-ne-cart {
    background: #ccc;
    }

    это сделает кнопку серой и недоступной к нажатию. Что бы вообще скрыть:

    input#button-ne-cart {
    visibility: hidden;
    }



    // PS

    Есть еще модуль, который меняет кнопку на "уведомить о появлении". Ща пороюсь.


    Вот

     
    candro333 нравится это.
  3. candro333

    candro333

    Регистр.:
    29 мар 2013
    Сообщения:
    256
    Симпатии:
    42
    Так же можно поступить с ценой?
     
  4. Dj-Tiesto

    Dj-Tiesto Стероид

    Регистр.:
    19 авг 2010
    Сообщения:
    271
    Симпатии:
    88
    Ну да, просто другая переменная <?php if ($price!=0) { ?> ...... <?php } ?>

    где 0 можно заменить тем числом, что нужно..\
     
  5. candro333

    candro333

    Регистр.:
    29 мар 2013
    Сообщения:
    256
    Симпатии:
    42
    Ну я имею ввиду, то, что при нет в наличии, то вместо цены выводиться "под заказ".

    Кстати, как поступать с блоками Акции, рекомендуемые, а так же категории?
     
  6. Dj-Tiesto

    Dj-Tiesto Стероид

    Регистр.:
    19 авг 2010
    Сообщения:
    271
    Симпатии:
    88
    Эмм...?

    При каких условиях будет это "нет в наличии"? Количество товара равно чему должно быть?
    Обычно "нет в наличии" появляется при остатке товара =0.

    Вот еще модуль, но он опять таки заменяет кнопку купить на различные тексты - ссылка

    Если надо вместо цены, то что тогда с кнопкой Купить должно быть?

    Вот вам еще решение.

    Если на вкладке (Данные) товара указана цена 0, Вместо Цены произвольный текст заданный вами -

    открываем файл system/library/currency.php и находим строку:
    Код:
    $string = '';
    Впереди, добавляем:

    Код:
    if ($format && (int)$value == 0) {
        return $this->language->get('text_zero');
    }
    В файле catalog/language/russian/russian.php добавляем строку:

    Код:
    $_['text_zero']             = 'Под заказ';
    Фсё.. :tut:


    ПС, но лучше 0 не писать, а то многие суммы заканчиваются на 0, могут быть косяки, поэтому, рекомедную, прописывать левое число, например - 54321
     
  7. dmitry_shirin

    dmitry_shirin Постоялец

    Регистр.:
    27 мар 2012
    Сообщения:
    51
    Симпатии:
    16
    Как это реализовать в категории и др. модулях? если это копирую, то жалуется на переменную stock.

    Что добавить в контролер category.php и module/*.php

    использую такую связку


    Код:
    <?php if ($stock != 'На заказ' && $stock >= 1) { ?>
                <a id="add_to_cart" class="cartr"><?php echo $button_cart; ?></a>
    <?php } elseif ($stock != 'Нет в наличии' && $stock >= 0) { ?>
                <a onclick="jv_qiuckorder_show('<?php echo $product_id; ?>');" class="nazakaz cartr">На заказ</a>
    <?php } else { ?>
                <a class="notinstock cartr">Нет в наличии</a>
    <?php } ?>
     
    Dj-Tiesto нравится это.
  8. Ruri

    Ruri Постоялец

    Регистр.:
    28 авг 2013
    Сообщения:
    52
    Симпатии:
    3
    А у меня реализовано через количество в категориях.
     
  9. Ruri

    Ruri Постоялец

    Регистр.:
    28 авг 2013
    Сообщения:
    52
    Симпатии:
    3
    Но я добавляла еще модуль про уведомление о наличии товара.

    Код:
    <?php if ($product['quantity'] == 0) { ?>
                        <input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button_zakaz" />
                        <input type="button" value="Подробнее" onclick="top.location.href=('<?php echo $product['href']; ?>');" class="button_info" />
                <?php } elseif ($product['quantity'] < 0) { ?>
                        <div class="waitlist-not-available"style="margin-top:-3px;color: #848484; " ><?php echo $text_not_available;?></div>
                                    <div class="waitlist-add" style="text-decoration: underline; ">
                                      <?php if ($product['already_in_waitlist']) { ?>
                                        <?php echo $text_already_waitlist; ?>
                                      <?php } else { ?>
                                        <a onclick="addToWaitList('<?php echo $product['product_id']; ?>');"><?php echo $text_notify_available; ?></a>
                                      <?php } ?>
                                    </div>
                <?php } else { ?>
                        <input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button_cart" />
                        <input type="button" value="Подробнее" onclick="top.location.href=('<?php echo $product['href']; ?>');" class="button_info" />
                <?php } ?>
     
  10. SavKS

    SavKS Писатель

    Регистр.:
    14 июл 2014
    Сообщения:
    6
    Симпатии:
    0
    Вот так делать не советую


    PHP:
    <?php if ($stock != 'Нет в наличии') { ?>
              <input type="button" value="<?php echo $button_cart?>" id="button-cart" class="button" />
    <?php } else { ?>
              <input type="button" value="<?php echo $button_cart?>" id="button-ne-cart" class="button" />
    <?php ?>
    Проверку нежно проводить по ID статуса. Так как 'Нет в наличии' меняться соответственно языку на сайте. + в будущем текст может кто то изменить.