Ответить Новая тема Новый опрос 
Всего: 2 < 1 2
 Как скрыть товар который нет в наличии?
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


27-05-2015 11:28
Цитата:( yuazakharov @ 27-05-2015 09:39 Смотреть сообщение )
Что не так делаю?
Код размещен неверно!

Код:
AND (p.`quantity` > 0 OR IFNULL((SELECT SUM(`quantity`) FROM `'._DB_PREFIX_.'product_attribute` paz WHERE p.`id_product` = paz.`id_product`), 0) > 0)

добавить после:
Код:
WHERE product_shop.`active` = 1


Код:
$sql->where('product_shop.`active` = 1');

заменить на:
Код:
$sql->where('product_shop.`active` = 1 AND (p.`quantity` > 0 OR IFNULL((SELECT SUM(`quantity`) FROM `'._DB_PREFIX_.'product_attribute` paz WHERE p.`id_product` = paz.`id_product`), 0) > 0)');
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
yuazakharov


Новичок
Сообщений: 17
Откуда: Якутск
Регистрация: 21-03-2013


27-05-2015 23:36
Все равно видны.
Жалко что я не умею писать коды ( Приходится надеяться на таких отзывчивых профи-программистов как вы.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


27-05-2015 23:41
Цитата:( yuazakharov @ 28-05-2015 00:36 Смотреть сообщение )
Все равно видны.

Приложите еще раз снимок экрана (где в данный момент изменен код) или приложите к сообщению файл /classes/Product.php
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
yuazakharov


Новичок
Сообщений: 17
Откуда: Якутск
Регистрация: 21-03-2013


28-05-2015 08:42
Вот приложил


Вложения:

Вложения Product.php( Размер файла: 194.26KB Скачиваний: 1100 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


28-05-2015 11:23
Ошибок в коде нет.

Если не работает проверьте:
- наличие файла /override/classes/Product.php
- проверьте каким образом модуль новых товаров получает товары. Модуль используемый в prestashop по умолчанию собирает данные используя метод getNewProducts в файле /classes/Product.php. Для главной должен использоваться модуль "blocknewproducts" (метод hookdisplayHomeTabContent)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
yuazakharov


Новичок
Сообщений: 17
Откуда: Якутск
Регистрация: 21-03-2013


28-05-2015 12:17
Цитата:( Алекс @ 28-05-2015 14:23 Смотреть сообщение )
Ошибок в коде нет.

Если не работает проверьте:
- наличие файла /override/classes/Product.php
- проверьте каким образом модуль новых товаров получает товары. Модуль используемый в prestashop по умолчанию собирает данные используя метод getNewProducts в файле /classes/Product.php. Для главной должен использоваться модуль "blocknewproducts" (метод hookdisplayHomeTabContent)

-такого файла нет
-используется модуль новых товаров который стоит по умолчанию.
Оказывается когда ставишь это
Код:
$sql->where('product_shop.`active` = 1 AND (p.`quantity` > 0 OR IFNULL((SELECT SUM(`quantity`) FROM `'._DB_PREFIX_.'product_attribute` paz WHERE p.`id_product` = paz.`id_product`), 0) > 0)');

модуль на сайте не отображается.


Сообщение отредактировано yuazakharov 28-05-2015 15:18 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


29-05-2015 21:55
после:
Код:
'.Shop::addSqlAssociation('product', 'p').'

добавить:
Код:
'.Product::sqlStock('p', 0).'

после:
Код:
WHERE product_shop.`active` = 1

добавить:
Код:
AND (p.`quantity` > 0 OR IFNULL(stock.quantity, 0) > 0 OR IFNULL((SELECT SUM(`quantity`) FROM `'._DB_PREFIX_.'product_attribute` WHERE p.`id_product` = `id_product`), 0) > 0)



Код:
$sql->where('product_shop.`active` = 1');

заменить на:
Код:
$sql->where('product_shop.`active` = 1 AND (p.`quantity` > 0 OR IFNULL(stock.quantity, 0) > 0 OR IFNULL((SELECT SUM(`quantity`) FROM `'._DB_PREFIX_.'product_attribute` WHERE p.`id_product` = `id_product`), 0) > 0)');
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
yuazakharov


Новичок
Сообщений: 17
Откуда: Якутск
Регистрация: 21-03-2013


04-06-2015 21:06
Алекс, еще раз Благодарю за Помощь! Теперь их не видно.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 < 1 2