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

отображение только товаров количество которых на складе > 0

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

вопрос может глупый, но всётаки как ?версия 1.4.0

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


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

Тема очень актуальная.

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


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

в ..catalogmodelcatalogproduct.php

найти в функции getProductsByCategoryId:

$sql = "SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2c.category_id = '" . (int)$category_id . "'";

заменить на:

$sql = "SELECT *, pd.name AS name, p.image, p.quantity, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.quantity > '0' AND p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2c.category_id = '" . (int)$category_id . "'";

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


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

Так же по аналогии нужно обработать все селекты в остальных функциях, чтоб товар исчез из рекомендуемых, последних, поиска и т.д.

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


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

я сделал в итоге проще. когда покупается последний товар он автоматом делается disable...

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


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

А кто ни будь знает как реализовать функцию чтоб можно было переключать с просмотра всех товаров на те что есть и обратно?может есть модуль по типу как модуль производители только сортирующий по статусу есль или нет на складе

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


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

Подскажите, как реализовать, что бы товар пропадал если его меньше нуля, для версии 1.4.7?

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


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

так же

$sql = "SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.quantity > '0' AND p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p2c.category_id = '" . (int)$category_id . "'";

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


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

мой вариант. выключаем товар когда покупают последний. (версия 1.4.0)

в catalog/model/checkout/order.php

в районе 58 строки

foreach ($order_product_query->rows as $product) {					$this->db->query("UPDATE " . DB_PREFIX . "product SET quantity = (quantity - " . (int)$product['quantity'] . ") WHERE product_id = '" . (int)$product['product_id'] . "'");

добавляем строкой ниже

$this->db->query("UPDATE " . DB_PREFIX . "product SET status = '0' WHERE quantity = '0' AND product_id = '" . (int)$product['product_id'] . "'");

довольно тупо, но вроде пашет. не знаю как это себя ведет если у товара есть опции...

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


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

А я сделал немного по другому.

В catalog/controller/product/product.php

if ($product_info['quantity'] <= 0) {				$this->data['stock'] = $product_info['stock'];			} else {				if ($this->config->get('config_stock_display')) {					$this->data['stock'] = $product_info['quantity'];				} else {					$this->data['stock'] = $this->language->get('text_instock');				}			}
заменил на

if ($product_info['quantity'] <= 0) {				$this->data['stock'] = $this->language->get('text_outstock');			} else {				if ($this->config->get('config_stock_display')) {					$this->data['stock'] = $product_info['quantity'];				} else {					$this->data['stock'] = $product_info['stock'];				}			}
и надо вставить
$_['text_outstock']       = '[color= #FF0000;]Временно нет в наличии[/color]';
В catalog/language/russian/product/product.php

Хотя совсем правильно, это надо везде кнопку "В корзину" менять на надпись "Нет в наличии". Но это пока лень.

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


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

На странице товара и так пишет что закончился но в корзину добавляет, а как деактивировать кнопку "Добавить в корзину"????

Кто знает как это сделать?

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


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

1) Проще всего сделать чтобы форма добавить в корзину не высвечивалась, для этого в шаблон/product/product.tpl добавляем проверку

<br />
<?php if ($display_price && $stock > 0) { ?>
<form action="<?php echo str_replace('&', '&', $action); ?>" method="post" enctype="multipart/form-data" id="product">

Как убирать плюсики при отображении категории, в хитах продаж и т.д. не помню как делал, но что-то типа того тоже.

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


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

Господа, подскажите пожалуйста, как сделать то же , но со значением одного из атрибутов товара т.е. когда один вид данного товара заканчивался то его и не было видно покупателю.

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


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

По последнему посту нет решений?

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


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

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


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

Спасибо огроменное. Очень полезная штукенция!

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


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

1) Проще всего сделать чтобы форма добавить в корзину не высвечивалась, для этого в шаблон/product/product.tpl добавляем проверку

<br />
<?php if ($display_price && $stock > 0) { ?>
<form action="<?php echo str_replace('&', '&', $action); ?>" method="post" enctype="multipart/form-data" id="product">

Как убирать плюсики при отображении категории, в хитах продаж и т.д. не помню как делал, но что-то типа того тоже.

Это убирает кнопку "Добавить в корзину" только если в настройках стоит "Показывать остаток на складе", я не хочу его показывать. Как тогда убрать добавление в корзину при кол-ве товара 0. Подскажите, плиз.

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


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

natashick, вот так можно: /catalog/view/theme/default/template/product/product.tpl

Найти:

<a onclick="$('#product').submit();" id="add_to_cart" class="button"><span><?php echo $button_add_to_cart; ?></span></a>

Заменить на:

<?php if ($stock!=0) {?><a onclick="$('#product').submit();" id="add_to_cart" class="button"><span><?php echo $button_add_to_cart; ?></span></a><?php } ?>
У меня работает

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


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

natashick, вот так можно: /catalog/view/theme/default/template/product/product.tpl

Найти:

<a onclick="$('#product').submit();" id="add_to_cart" class="button"><span><?php echo $button_add_to_cart; ?></span></a>

Заменить на:

<?php if ($stock!=0) {?><a onclick="$('#product').submit();" id="add_to_cart" class="button"><span><?php echo $button_add_to_cart; ?></span></a><?php } ?>
У меня работает

спасибо, но так тоже не заработало

Заработало c $stock == "В наличии"

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


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

Убираем кнопку КУПИТЬ для отсутствующих на складе товаров

 

в моем варианте в файле /catalog/view/theme/default/template/product/product.tpl

искал строку

 

<a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a>

 

и менно ее заменял на

 

<?php if ($stock == "В наличии") { ?>

<a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a>

<?php } ?>

 

причем $stock == "Р’ наличии"

это "В наличии" в нужной кодировке (Юникод)

 

может кому то это поможет сэкономить время

 

(Сборка ocStore © 2009-2014 All Rights Reserved.
Version 1.5.1.3)

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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