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

candro333

Профессор
Регистрация
29 Мар 2013
Сообщения
257
Реакции
46
Всем привет! В общем столкнулся с проблемкой о которой сейчас расскажу.
В общем, хотел сделать следующее:
При статусе товара "нет в наличии/предзаказ" убирать кнопки в корзину или другую (купить в 1 клик, к примеру) и выводить кнопки "сделать предзаказ" и "уведомить при поступлении". При этом цену товара заменять на "под заказ".
Кто сталкивался с таким вопросом и как его решал?
За ранее всем спасибо!)
UPD: Ну или хотя бы если товара нет в наличии, то цена менялась бы на от ХХХ рублей (знак вопроса, которые поясняет, что означает эта цена).
 
Последнее редактирование:
Знаю лишь как скрывать кнопку купить при условии установки определенного статуса товара. А так, как при наличии товара =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

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


Вот

 
Знаю лишь как скрывать кнопку купить при условии установки определенного статуса товара. А так, как при наличии товара =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

Есть еще модуль, который меняет кнопку на "уведомить о появлении". Ща пороюсь.
Так же можно поступить с ценой?
 
Ну да, просто другая переменная <?php if ($price!=0) { ?> ...... <?php } ?>

где 0 можно заменить тем числом, что нужно..\
 
Ну да, просто другая переменная <?php if ($price!=0) { ?> ...... <?php } ?>

где 0 можно заменить тем числом, что нужно..\
Ну я имею ввиду, то, что при нет в наличии, то вместо цены выводиться "под заказ".

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

При каких условиях будет это "нет в наличии"? Количество товара равно чему должно быть?
Обычно "нет в наличии" появляется при остатке товара =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
 
Код:
<?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 } ?>

Как это реализовать в категории и др. модулях? если это копирую, то жалуется на переменную 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 } ?>
 
А у меня реализовано через количество в категориях.
 
Но я добавляла еще модуль про уведомление о наличии товара.

Код:
<?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 } ?>
 
Вот так делать не советую


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 статуса. Так как 'Нет в наличии' меняться соответственно языку на сайте. + в будущем текст может кто то изменить.
 
Назад
Сверху