Помощь с выборкой по производителю, SOS
Василий, доброе утро!
Заранее благодарю за помощь, если откликнешься.
Есть следующий код:
Все замечательно работает, выбираются категории и товары из контекста «каталог». Задача следующая, необходимо, чтобы выбирались, только категории и товары, например с привязкой к производителю VendorName:
Что необходимо приджоинить? Опробовал много вариантов, ничего не получилось.
Спасибо!
Заранее благодарю за помощь, если откликнешься.
Есть следующий код:
[[msProducts?
&parents=`0`
&class=`msCategory`
&where=`{"context_key":"catalog", "class_key":"msCategory"}`
&tpl=`category.row.tpl`
&select=`{
"msCategory":"*"
,"msProduct":"msProduct.id as product_id"
}`
&innerJoin=`{
"msProduct": {"class":"msProduct", "alias":"msProduct", "on":"msProduct.parent = msCategory.id AND msProduct.class_key = 'msProduct' AND msProduct.published = true"}
}`
&sortdir=`asc`
&limit=`0`
&showLog=`1`
]]
Все замечательно работает, выбираются категории и товары из контекста «каталог». Задача следующая, необходимо, чтобы выбирались, только категории и товары, например с привязкой к производителю VendorName:
&where=`{"Vendor.name:LIKE":"%VendorName%"}`
Что необходимо приджоинить? Опробовал много вариантов, ничего не получилось.
Спасибо!
Комментарии: 4
Производителя можно присоединить только через таблицу данных товара. Поле vendor id — там.
Причем, лучше использовать pdoResources, потому что в msProducts много ненужных для твой задачи дополнительных обработок.
Причем, лучше использовать pdoResources, потому что в msProducts много ненужных для твой задачи дополнительных обработок.
[[!pdoResources?
&parents=`0`
&class=`msCategory`
&select=`{
"msCategory":"*"
,"Product":"Product.id as product_id"
}`
&innerJoin=`{
"Product": {"class":"msProduct", "on":"Product.parent = msCategory.id AND Product.class_key = 'msProduct' AND Product.published = 1 AND Product.deleted = 0"},
"Data": {"class":"msProductData", "on":"Product.id = Data.id"},
"Vendor": {"class":"msVendor", "on":"Data.vendor = Vendor.id"}
}`
&sortdir=`asc`
&where=`{"Vendor.name:LIKE":"%Apple%", "class_key":"msCategory"}`
&showLog=`1`
]]
Спасибо, выборка работает, только есть нюанс. В результате выборки у нас получается подобное:
— Категория Iphone 6
— Товар 1 (производитель Apple)
— Категория Iphone 6
— Товар 2 (производитель Apple)
— Категория Iphone 6 Plus
— Товар 3 (производитель Apple)
Можно ли как-то объединить товары в общие категории? Вот так например:
— Категория Iphone 6
— Товар 1 (производитель Apple)
— Товар 2 (производитель Apple)
— Категория Iphone 6 Plus
— Товар 3 (производитель Apple)
Я думаю, многим будет полезно данное решение. Спасибо еще раз.
— Категория Iphone 6
— Товар 1 (производитель Apple)
— Категория Iphone 6
— Товар 2 (производитель Apple)
— Категория Iphone 6 Plus
— Товар 3 (производитель Apple)
Можно ли как-то объединить товары в общие категории? Вот так например:
— Категория Iphone 6
— Товар 1 (производитель Apple)
— Товар 2 (производитель Apple)
— Категория Iphone 6 Plus
— Товар 3 (производитель Apple)
Я думаю, многим будет полезно данное решение. Спасибо еще раз.
Укажи
&groupby=`Vendor.id`
или&groupby=`msCategory.id`
Спасибо. И последний вопрос, можно ли собрать не прямых потомков категорий товаров:
— Категория Iphone 6 (Чехлы)
— Категория Iphone 6 Plus (Чехлы)
— Категория Iphone 6 Plus (Аксессуары)
А родительские категории:
— Чехлы
— Аксессуары
— Категория Iphone 6 (Чехлы)
— Категория Iphone 6 Plus (Чехлы)
— Категория Iphone 6 Plus (Аксессуары)
А родительские категории:
— Чехлы
— Аксессуары
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.