ThreeGraph фильтр. Товары без цены, без остатка…
Разные вариации запросов в фильтре для получения нужных товаров
Копирую текст письма Антона Лопатина.
В фильтре нужно написать условие. Для выбора у нас есть такие поля:
prod_is — признак товара (работаем именно с товарами, а не
категориями). Булево поле (1/0)
prod_price — цена (числовое поле)
prod_count — остаток (числовое поле)
ro — признак того что товар есть на сайте (булево 1-открыт, 0- скрыт)
Соответственно, если нужно выбрать все товары без цены ИЛИ остатков,
то просто пишем в условии фильтра
prod_is and (!prod_price or !prod_count)
и смотрим сколько нашлось
http://joxi.ru/a2XOxdc101DZmg
дополнительно можно настроить вывод интересующих значений прямо в
дереве
http://joxi.ru/Rmzzeph0X0R1mO
Дальше, если нужно удалить, то
http://joxi.ru/GrqyzOtQnQG5rz
1. ставим большое количество,
2. галочку «только количество», чтобы на экран 4000 строк не выводить.
3. рекомендую ограничивать выбор веткой каталога. Не обязательно, но
так спокойнее.
4. Кликаем на «все выбранные», в верху появляются кнопки (см 5 и 6)
дальше нужно решить как делать — удалять такие товары или хранить в
скрытом состоянии. Я бы предложил на старте удалить.
5. Эта кнопка левым кликом публикует всю выборку, а правым (правой
кнопкой мыши) — скрывает. Соответственно если товары держим в скрытом
состоянии то надо сюда кликнуть правой кнопкой мыши.
6. Эта кнопка удаляет товары (переносит в корзину, те, что уже в
корзине — удаляет совсем.
Дальше, как проверять:
если вы будете удалять товары, то достаточно завтра сделать точно
такой же запрос.
prod_is and (!prod_price or !prod_count), с таким же ограничением по
каталогу, т.е. все как на скриншоте. (из корзины фильтр тоже выбирает,
если не стоит галочка «не брать из trash»)
Если скрывать, то нужно будет проверять есть ли открытые товары
c нулевой ценой или остатком, это делается так:
prod_is and (!prod_price or !prod_count) and ro
Ну и соответственно, если вы решите удалять только товары у которых
не только цена или только остаток нулевые, а и цена и остаток отсутствуют,
(если есть что-то одно, то оставлять такие товары), то условие изменится так:
prod_is and (!prod_price and !prod_count)
запросы пишутся по правилам mySQL. На самом деле, в фильтре мы и пишем
where для запроса. А поле количество — это limit. «Таблицы» — это select
from и т.д.
Пока скрыл все товары по первому условию.