Search code examples
sap-commerce-cloudimpex

how to assign categories to classifying categories in hybris through impex


I don't know whether the below impex is correct for my requirement.please correct me if i am wrong.i want to assign categories to classification class.

$classificationSystem=hpeClassification 
$classificationCatalogVersion=catalogversion(catalog(id[default=$classificationSystem]),version[default='1.0'])[unique=true,default=$classificationSystem:1.0] 
$classificationClasses=Classificationclass(code[unique=true],name[lang=en],supercategories(code,$classificationCatalogVersion),$classificationCatalogVersion);
INSERT_UPDATE Product;code[unique=true];$classificationClasses;$catalogVersion;
;5476;/facets/care;

Solution

  • I think your missing some elements

    First you need to define a classification catalog version macro:

    $systemName=TelcoClassification;
    $systemVersion=1.0;
    
    INSERT_UPDATE ClassificationSystem; id[unique=true]; name[lang=en];
    ;$systemName;Telco ClassificationSystem;
    
    $classCatalogVersion=catalogversion(catalog(id[default=$systemName]),version[default=$systemVersion])
    

    Then you define the Classification class macro

    $class=classificationClass(ClassificationClass.code,$classCatalogVersion)[unique=true]
    

    You create the DB object :

    INSERT_UPDATE ClassificationSystemversion; catalog(id)[unique=true] ; version[unique=true] ; active ; writeprincipals(uid); languages(isocode); inclPacking[virtual=true,default=true]; inclDuty[virtual=true,default=true]; inclFreight[virtual=true,default=true]; inclAssurance[virtual=true,default=true]
    ;$systemName ;$systemVersion ;true ;employeegroup;en;
    
    INSERT_UPDATE ClassificationClass;$classCatalogVersion[unique=true];code[unique=true];allowedPrincipals(uid)[default='customergroup']
    ;;compatibilityclassification
    

    You define the attribute for classification :

    INSERT_UPDATE ClassificationAttribute;$classSystemVersion;code[unique=true]
    ;;featurecompatibility
    
    $class=classificationClass(ClassificationClass.code,$classCatalogVersion)[unique=true]
    $attribute=classificationAttribute(code,$classSystemVersion)[unique=true]
    
    INSERT_UPDATE ClassificationAttributeValue;code[unique=true];$classSystemVersion
    ;feature_bt10
    
    INSERT_UPDATE ClassAttributeAssignment;$class;$attribute;position;$unit;attributeType(code[default=string]);multiValued[default=false];range[default=false];localized[default=false];attributeValues(code,$classSystemVersion)
    ;compatibilityclassification;featurecompatibility;0;;enum;true;;;feature_bt10
    

    And you link it to a product

    $clAttrModifiers=system='TelcoClassification',version='1.0',translator=de.hybris.platform.catalog.jalo.classification.impex.ClassificationAttributeTranslator,lang=en
    
    
    $feature1=@featurecompatibility[$clAttrModifiers];
    
    
    UPDATE Product;code[unique=true];$feature1;$catalogversion
    ;109058;feature_bt10;
    

    For category:

    INSERT_UPDATE Category;code[unique=true];allowedPrincipals(uid)[default='customergroup'];$catalogversion
    ;devices
    
    
    UPDATE Category; $catalogversion; code[unique=true]; supercategories(code,$classCatalogVersion)[mode=append]
    ;;devices;compatibilityclassification;