Hybris: помечает товары без суперкатегории как неактивные

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

Я хочу получить список всех таких продуктов, и с помощью impex я могу обновить статус утверждения всех таких продуктов как «проверка», чтобы они больше не были видны пользователю на витрине.

Любая помощь приветствуется!


person Sanchit Khera    schedule 04.11.2016    source источник


Ответы (1)


Получите целевые продукты

Идея состоит в том, чтобы извлечь все продукты из YOUR_CATALOG_ID, за исключением (не из) всех продуктов, которые имеют хотя бы одну категорию. Вы можете использовать этот гибкий поиск:

select {p.pk}
from { Product as p join CatalogVersion as cv on {p.catalogversion}={cv.pk}
  join Catalog as catalog on {cv.catalog}={catalog.pk} }
where {catalog.id}='YOUR_CATALOG_ID'
and {cv.version}='Staged'
and {p.pk} not in ({{
  select {p.pk}
  from {Product as p join CategoryProductRelation as pc on {p.pk}={pc.target}
    join Category as c on {pc.source}={c.pk} 
    join CatalogVersion as cv on {p.catalogversion}={cv.pk}
    join catalog as catalog on {cv.catalog}={catalog.pk}}
  where {catalog.id}='YOUR_CATALOG_ID'
  and {cv.version}='Staged'
}})

Вы должны заменить «Продукт» на свой собственный Тип продукта, если ваша модель данных была настроена.

Обновление статуса утверждения продуктов

В качестве второго шага вы можете создать импекс, чтобы изменить статус утверждения:

INSERT_UPDATE Product;code[unique=true];approvalstatus(code);
;target_product_pk;check;
person user6904265    schedule 05.11.2016