2016-11-04 9 views
2

カタログクリーンアップタスクを実行しており、スーパーカテゴリを持たないすべての製品を非アクティブとしてマークする必要があります。このような製品は、スーパーカテゴリの下ではなくPCMのカタログルートのすぐ下に横たわって見ることができます。Hybris:スーパーカテゴリのない製品を非アクティブとしてマーク

私はそのようなすべての製品のリストを取得したいと思うし、impex経由で、そのようなすべての製品の「承認」ステータスを「チェック」に更新して、店頭のユーザーには表示されなくすることができます。

ご協力いただきありがとうございます。

答えて

4

アイデアは、少なくとも一つのカテゴリを持っているすべての製品(NOT IN)を除き、「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' 
}}) 

: あなたはこの柔軟な検索を使用することができます。

更新製品承認ステータス

第二段階として、あなたは承認ステータスを変更するためにIMPEXを作成することができます。

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

おかげでたくさん!それは完璧に働いた。 –

関連する問題