technokid Опубликовано 28 октября, 2015 Жалоба Поделиться Опубликовано 28 октября, 2015 (изменено) Заметил момент, при попытки отфильтровать товары у которых количество товаров 0, мне выдает, только те, у которых 1 либо все варианты с кол-вом товара 0, но те у которых один вариант кол-во "безлим" а второй вариант 0, то фильтр его не находит.Пытался поправить запрос в api/Products.php в функции get_products() но честно, запутался if(isset($filter['in_stock'])) $in_stock_filter = $this->db->placehold('AND (SELECT count(*)>0 FROM __variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = ?', intval($filter['in_stock'])); Подскажите как поправить запрос Изменено 28 октября, 2015 пользователем technokid Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 неужели никто не решал эту проблему? Ведь это явный баг Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 Интересно, как это?Вы придумали запрос, он у вас не работает - и это БАГ Симплы? Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 Интересно, как это?Вы придумали запрос, он у вас не работает - и это БАГ Симплы? Ничего я не придумал. Это стандартный запрос симплы. вот тут сами посмотрите https://github.com/pikusov/Simpla/blob/master/api/Products.php#L72, еще как вариант можете войти в демо версию админки симплы и сами увидите этот баг Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 (изменено) То, что Вы описали - никакой не баг, работает правильно, именно так, как задумано.Схема проста - есть товар, у него несколько вариантов, у вариантов есть количество (stock). Количество для товара - формально не определено. Когда говорят про кол-во товара, обычно имеют в виду суммарное количество его вариантов. Поэтому товар с количеством =0 - это товар, у которого ВСЕ варианты имеют кол-во 0. Если Вам хочется трактовать это иначе, например, если для Вас товар с количеством 0 - это тот, у которого в одном варианте 0, а в других - произвольное число, то программируйте указанный фрагмент по-своему. Изменено 29 октября, 2015 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 То, что Вы описали - никакой не баг, работает правильно, именно так, как задумано.Схема проста - есть товар, у него несколько вариантов, у вариантов есть количество (stock). Количество для товара - формально не определено. Когда говорят про кол-во товара, обычно имеют в виду суммарное количество его вариантов. Поэтому товар с количеством =0 - это товар, у которого ВСЕ варианты имеют кол-во 0. Если Вам хочется трактовать это иначе, например, если для Вас товар с количеством 0 - это тот, у которого в одном варианте 0, а в других - произвольное число, то программируйте указанный фрагмент по-своему.Я с Вами не совсем согласен.Я могу сказать как кол-во товара в общем, так и количество вариантов по товару. Если мне дают возможность показать товары которые отсутствуют, то почему я не могу видеть вариант товара который закончился. Когда у меня магазин в 15 тысяч позиций или больше, как я должен отловить ту позицию, которая закончилась? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 Когда у меня магазин в 15 тысяч позиций или больше, как я должен отловить ту позицию, которая закончилась?Отловить можно, сделав экспорт. Если это не подходит то, похоже, Вам надо что-то свое специфичное. Тогда это отдельной доработкой. Если готовы оплачивать, обращайтесь... Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 30 октября, 2015 Автор Жалоба Поделиться Опубликовано 30 октября, 2015 Отловить можно, сделав экспорт. Скажу честно, при 15 тысячах товара, экспорт работает очень медленно.На счет отдельной доработки, я не вижу тут что-то глобальное дорабатывать. Ведь на самом деле, тут просто нужно изменить запрос.Вот так он выглядит если нажать "Отсутствующие" SELECT p.id, p.url, p.brand_id, p.name, p.annotation, p.body, p.position, p.created as created, p.visible, p.partner, p.featured, p.meta_title, p.meta_keywords, p.meta_description, b.name as brand, b.url as brand_url FROM __products p LEFT JOIN __brands b ON p.brand_id = b.id WHERE 1 AND (SELECT count(*)>0 FROM s_variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = 0 ORDER BY p.position DESC LIMIT 0, 20 Я не понимаю что означает вот этот кусок WHERE 1 AND (SELECT count(*)>0 FROM s_variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = 0 вернее SELECT count(*)>0 Тут вопрос более в помощи с запросом, а не доработкой Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 30 октября, 2015 Жалоба Поделиться Опубликовано 30 октября, 2015 На счет отдельной доработки, я не вижу тут что-то глобальное дорабатывать. Ведь на самом деле, тут просто нужно изменить запрос. Изменить его можно тысячами способов. Вам все равно каким? Я не понимаю что означает вот этот кусок WHERE 1 AND (SELECT count(*)>0 FROM s_variants pv WHERE pv.product_id=p.id AND pv.price>0 AND (pv.stock IS NULL OR pv.stock>0) LIMIT 1) = 0 вернее SELECT count(*)>0 Вы вот даже не можете:1. точно сформулировать свой вопрос,2. точно сказать, какой кусок непонятен,3. прочитать учебник по SQL, чтобы там получить ответ,4. чуть-чуть поэкспериментировать с запросом в PhpMyAdmin, чтобы посмотреть на результат и попытаться понять смысл (который довольно прост и прозрачен). Только можете утверждать, что тут, мол, все легко.Сам я не знаю, но знаю, что им это легко.А спецы, такие нехорошие, наперебой не кидаются отвечать... Тут вопрос более в помощи с запросом, а не доработкой Если б Вы еще могли ТОЛКОМ задать этот вопрос... Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 30 октября, 2015 Автор Жалоба Поделиться Опубликовано 30 октября, 2015 так я в самом первом посте этой теме описал все. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 31 октября, 2015 Жалоба Поделиться Опубликовано 31 октября, 2015 Если изменить запрос в указанном Вами месте так, как Вы желаете, то1. В админке будет работать по Вашему желанию,2. Но на сайте, скорее всего, исчезнет в показе львиная доля товаров,3. И будете Вы потом писать негатив на того, кто Вам пытался помочь. По-хорошему, чтобы достичь Ваших (туманно объясненных целей), надо проводить более сложные изменения в НЕСКОЛЬКИХ местах. Потому никто и не спешит изменить для Вас в запросе пару-тройку лексем... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.