question Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 Здравствуйте. Столкнулся со следующей проблемой: каждый товар (например, возьмём абстрактный, "стол малютка") размещён одновременно в трёх категориях: Модульная мебель -> малюткаДетская мебель -> малюткаЭлементы мебели ->Столы Товаров очень много, и хлебные крошки в них выводятся как им вздумается. У стола первой категорией будет Модульная мебель -> малютка, а у комода - Детская мебель -> малютка Пройтись по всем товарам и привести их к единому виду не представляется возможным. Как это сделать программно?Мне не нужно готовое решение, просто подскажите алгоритм или в какую сторону копать. Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 не очень понятно что вы хотите. укажите точный пример как на вашем сайте сейчас и как вам надо Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 января, 2019 Автор Жалоба Поделиться Опубликовано 11 января, 2019 (изменено) У товаров, добавленных в разное время, разная "первая категория".В итоге сейчас у двух разных столов в хлебных крошках отображается Детская мебель -> малютка -> Стол1Элементы мебели ->Столы -> Стол2 Хочу, чтобы у всех столов хлебные крошки были одинаковыми:Элементы мебели ->Столы -> Стол1Элементы мебели ->Столы -> Стол2Элементы мебели ->Столы -> Стол3 Изменено 11 января, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 Ну так зайдите в товары и укажите ПРАВИЛЬНУЮ первую категорию...В чем, собственно, проблема?Если товаров МНОГО - сделайте экспорт - поправьте категории и сделайте импортЛучше это конечно делать не со всеми сразу, а по категориям или брендам Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 (изменено) У товаров, добавленных в разное время, разная "первая категория".В итоге сейчас у двух разных столов в хлебных крошках отображается Детская мебель -> малютка -> Стол1Элементы мебели ->Столы -> Стол2 Хочу, чтобы у всех столов хлебные крошки были одинаковыми:Элементы мебели ->Столы -> Стол1Элементы мебели ->Столы -> Стол2Элементы мебели ->Столы -> Стол3 Пробуйте, например, так:1. Экспортировать в CSV,2. В полученном файле в колонке категории заменить 'Детская мебель/малютка' на 'Элементы мебели/Столы',3. Импортировать измененный файл. Изменено 11 января, 2019 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 Ну, или писать какой-то скрипт, который будет менять позицию у категорий в таблице s_product_categories Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 января, 2019 Автор Жалоба Поделиться Опубликовано 11 января, 2019 (изменено) Пока думал и гадал, залез в БД и в голову пришло вот такое решение. Позиция находится в столбце position таблицы s_products_categories.Нужно просто определённым категориям назначить position минимальное значение Изменено 11 января, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 января, 2019 Жалоба Поделиться Опубликовано 11 января, 2019 По-моему, проще не списком это делать, а менять позицииИ причем тут parent_id? Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 12 января, 2019 Автор Жалоба Поделиться Опубликовано 12 января, 2019 (изменено) Для упорядочивания хлебных крошек и приведения их к единому стандарту, было решено сделать следующее:Для начала увеличиваем позицию всех категорий на 1. UPDATE `s_products_categories` SET `position` = `position` +1; Затем либо выписываем вручную категории, которые должны быть "основными" в хлебных крошках, либо (в моём случае) выбираем дочерние категории из той категории, которая у нас основная (в моём случае "элементы мебели") SELECT `id` FROM `s_categories` WHERE `parent_id` like '%149%' Далее полученным id категорий присваиваем позицию равную 0 для того, чтобы эти категории были "основными". В моём случае это выглядит так UPDATE `s_products_categories` SET `position` = 0 WHERE `category_id` IN (64,67,71, и ещё куча категорий); Всё. Изменено 12 января, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
Решение phukortsin Опубликовано 12 января, 2019 Решение Жалоба Поделиться Опубликовано 12 января, 2019 Последние 2 запроса можно заменить одним:UPDATE `s_products_categories` SET `position` = 0 WHERE `category_id` IN ( SELECT `id` FROM `s_categories` WHERE `parent_id` like '%149%' );Тогда не придется ручками формировать длинный список... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 14 января, 2019 Автор Жалоба Поделиться Опубликовано 14 января, 2019 Последние 2 запроса можно заменить одним:UPDATE `s_products_categories` SET `position` = 0 WHERE `category_id` IN ( SELECT `id` FROM `s_categories` WHERE `parent_id` like '%149%' );Тогда не придется ручками формировать длинный список... Спасибо. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.