Hybris:将没有超类别的产品标记为不活动

Hybris: Mark products with no super-category as inactive

我们正在执行目录清理任务,并要求将所有没有超类别的产品标记为非活动。这样的产品直接在PCM的目录根目录下,不在任何超目录下。

我想获取所有此类产品的列表,并且通过 impex 我可以更新所有此类产品的批准状态 'check',这样它们就不再对店面的用户可见。

非常感谢任何帮助!

获取您的目标产品

想法是从 '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'
}})

如果您的数据模型已自定义,您应该将 "Product" 替换为您的自定义产品类型。

更新产品批准状态

作为第二步,您可以创建一个 impex 以更改批准状态:

INSERT_UPDATE Product;code[unique=true];approvalstatus(code);
;target_product_pk;check;