Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

повтор товаров при формировании прайса yml market.php

скорее всего этот вопрос многие уже задавали, но поиск по форуму не помог.

при формировании прайса для яндекса yml
market.php пробегает по всей базе товаров и если на один товар есть ссылки в разных категориях, то товар выводится столько раз, сколько есть ссылок, видимо это происходить из-за того, что цикл задан для категорий (сначала категория, затем товары в категории).

например товар Велосипед (id =1) есть в разных (не вложенных) категориях Спецпредложение (cathegory_id =1), Лето (cathegory_id =2) и Транспорт (cathegory_id =3),
в этом случае в прайс yml товар будет выведен 3 раза.

При проверке яндекс ругается и загружать прайс отказывается.

до 100 товаров, если цены меняются редко, можно смириться с потерей времени и откорректировать вручную, но в других случаях это уже глупость.

по хорошему, должна быть стандартная процедура проверки после формирования прайса на предмет задвоения id товаров и если есть повторы, то предложение/вопрос в какой категории прайса оставить товар,
либо специально для прайса яндекса при повторе id тупо заменять его на несуществующий (например с префиксом), но ссылку на товар другие данные оставлять без изменения. (не знаю проверяет ли яндекс повтор ссылок).

мне в принципе подойдет простой вариант (вообще не выводить повторы).

к сожалению в пхп я не разбираюсь, поэтому обращаюсь к тем кто знает:
подскажите в каком месте и какой код добавить в market.php чтобы выполнялась проверка на предмет того, что товар с таким ID уже выгружен в прайс.

Заранее благодарю за помощь!



либо специально для прайса яндекса при повторе id тупо заменять его на несуществующий (например с префиксом), но ссылку на товар другие данные оставлять без изменения. (не знаю проверяет ли яндекс повтор ссылок).


Лучше так с Яндексом не шутить!


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


попробуйте в файле market.php заменить
  ORDER BY p.products_id ASC
на
  GROUP BY p.products_id  ORDER BY p.products_id ASC


ГРИГ - большое спасибо!

замена на
  GROUP BY p.products_id  ORDER BY p.products_id ASC
помогла.

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


спасибо. поправлено

ближайшее время выложу попрвленную версию


аналогичная фигня в новинках - дублируется товар, лежащий в нескольких категориях, решение такое же работает:
в файле products_new.php к строкам

order
by
p.products_date_added DESC

добавил
GROUP
BY
p.products_date_added
order
by
p.products_date_added DESC
спасибо grig!


а есть решение проблеме чтобы товар в новинках на главной не выводился с одинаковым названием или не брался из 1 категории сразу по 3 товара? что-то в этом духе есть?


а если сделать как тут
http://www.shopos.ru/forum/index.php?topic=5063.msg27372#msg27372

как будет выводить?


Источник



Copyright ShopOS