Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Как сделать что бы не выводились товары без цены?

00 голосов
5
Добрый день. Такой вопрос. После выгрузки на сайт номенклатуры, некоторая номенклатура выгрузилась без цены, т.к в 1С на нее не заведен документ Устновка цен номенклатуры.

В шаблоне компонента catalog прописал что если цена равна 0, тогда элемент не выводится, в результате на некоторых страницах по 1 - 2 товара выводится. Что прописать в компоненте что бы из базы выбирались только те товары, у которых заполнена цена?
спросил 08 Ноя, 13 от mrUhauma (320 баллов)

5 Ответы

00 голосов
Цитата
Михаил Щербак пишет:
Добрый день. Такой вопрос. После выгрузки на сайт номенклатуры, некоторая номенклатура выгрузилась без цены, т.к в 1С на нее не заведен документ Устновка цен номенклатуры.

В шаблоне компонента catalog прописал что если цена равна 0, тогда элемент не выводится, в результате на некоторых страницах по 1 - 2 товара выводится. Что прописать в компоненте что бы из базы выбирались только те товары, у которых заполнена цена?


Я думаю только в компонент лезть, модифицировать. Был похожий вопрос в форуме - остался без ответа. Я тоже не могу придумать, сталкавался как-то, нормально решить не удалось, пришлось на API делать, без компонентов.
ответил 17 Дек, 13 от SleepLess (1,220 баллов)
00 голосов
Как вариант, берем компонент, который выводит товары, создаем магический резулт модифе пхп, в нем делаем цикл по товарам, в цикле для каждого элемента вызываем метод $ar_res = CPrice::GetBasePrice(ид товара), и далее проверку, if(!$ar_res["PRICE"]).
ответил 01 Апр, 14 от Niferiys (220 баллов)
00 голосов
Цитата
Антон Савченко пишет:
Как вариант, берем компонент, который выводит товары, создаем магический резулт модифе пхп, в нем делаем цикл по товарам, в цикле для каждого элемента вызываем метод $ar_res = CPrice::GetBasePrice(ид товара), и далее проверку, if(!$ar_res["PRICE"]).


А как быть с тем, что в результате этого из, например, 50 выводимых результатов остаются только 10?
ответил 25 Июль, 14 от SleepLess (1,220 баллов)
00 голосов
Пока приходит на ум следующие: ведь товары без цены появляються каждый раз после обновления каталога. Так вот, пишем скрипт, который пробегает по товарам, и каждый товар, что без цены делает не активным. Таким образом при выборке результаты не будут попадать в общий список и проблема с тем что на страницах по 10 товаров не будет отображаться по 4 - 6. И вот этот скрипт, будем запускать каждый раз, после обновления каталога. или кроном, или можно запрограмить так, чтобы запускался автоматом послеобновления - дальше в общем фантазия безгранична.
ответил 26 Ноя, 14 от OPEX (720 баллов)
00 голосов
Цитата
Evgenij Chirochkin пишет:
Пока приходит на ум следующие: ведь товары без цены появляються каждый раз после обновления каталога. Так вот, пишем скрипт, который пробегает по товарам, и каждый товар, что без цены делает не активным. Таким образом при выборке результаты не будут попадать в общий список и проблема с тем что на страницах по 10 товаров не будет отображаться по 4 - 6. И вот этот скрипт, будем запускать каждый раз, после обновления каталога. или кроном, или можно запрограмить так, чтобы запускался автоматом послеобновления - дальше в общем фантазия безгранична.


Но это тоже не всегда подойдёт, т.к. в Битрикс почти так: если не активен - значит "тебя нет". Т.е. не посмотришь, в поиске не найдешь товар, а какие дальше могут всплыть проблемы - даже и неизвестно. Да и по здравой логике это как-то не клеится. Всё-таки товар есть, просто отображать не нужно.
ответил 21 Март, 15 от SleepLess (1,220 баллов)