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

时间:2016-11-04 08:40:41

标签: hybris

我们正在执行目录清理任务,并要求将所有没有超类别的产品标记为非活动状态。可以看到这些产品直接位于PCM的目录根目录下,而不是任何超类别。

我希望获得所有此类产品的列表,并通过impex我可以更新所有此类产品的批准状态,以便检查',以便用户在店面不再可见。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

获取目标产品

我们的想法是从'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”替换为您的自定义产品类型。

更新产品approvalStatus

作为第二步,您可以创建一个impex以更改approvalStatus:

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