我们正在执行目录清理任务,并要求将所有没有超类别的产品标记为非活动状态。可以看到这些产品直接位于PCM的目录根目录下,而不是任何超类别。
我希望获得所有此类产品的列表,并通过impex我可以更新所有此类产品的批准状态,以便检查',以便用户在店面不再可见。
非常感谢任何帮助!
答案 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;