Hybris: добавить атрибуты к продукту через Impex
У меня есть каталог продукции и каталог классификации. Каталог продуктов содержит продукт, а каталог классификации содержит атрибуты, однако, когда я пытаюсь вставить продукт с атрибутами, он не отображается, когда я щелкаю продукт и открываю вкладку атрибутов.
Как мне ввести товар с атрибутами:
$lang=en
$productCatalog=productCatalog
$catalogVersion=catalogversion(catalog(id[default=$productCatalog]),version[default='Staged'])[unique=true,default=$productCatalog:Staged]
$approved=approvalstatus(code)[default='check']
$baseProduct=baseProduct(code,$catalogVersion)
$clAttrModifiers=system='MySystemClassifications',version='General',translator=de.hybris.platform.catalog.jalo.classification.impex.ClassificationAttributeTranslator,lang=nl
$id=@id[$clAttrModifiers];
INSERT_UPDATE Product;code[unique=true];$id;$catalogVersion
;M300047;200.59;
Есть ли что-то, что я должен сделать после добавления, чтобы связать это с продуктом?
1 ответ
Есть много подводных камней при работе с системой классификации. Я не вижу очевидной ошибки в вашем сценарии impex, поэтому я хочу попросить все предварительные условия, которые должны быть выполнены.
- Вам нужна ClassificationSystem (эквивалент для каталога для категорий и продуктов)
- Вам необходим ClassificationSystemversion (эквивалент для CatalogVersion для категории и продукта)
- Ваш продукт должен быть в категории.
- Эта категория нуждается в суперкатегории типа ClassificationClass.
- Вам нужен ClassificationAttribute.
- Вам нужен ClassAttributeAssignment, который назначает ваш ClassificationAttribute ClassificationClass.
- (Необязательно) Вы можете создать ClassificationAttributeUnits, чтобы определить единицу атрибута.
- (Необязательно) Вы можете создать ClassificationAttributeValues, чтобы определить возможные значения для ClassificationAttribute.
- Когда эти предварительные условия выполнены, вы можете присвоить значения продукту, используя ваш сценарий impex.
Поскольку эта структура немного сложна, позвольте мне прояснить ее на примере: рассмотрим ClassificationClasses "Photocameras" и "Videocameras". Существуют атрибуты ClassificationAttributes, такие как "Resolution", которые назначаются обоим ClassificationClass с использованием ClassAttributeAssignment. Но может также существовать атрибут ClassificationAttribute "Выдержка затвора", назначаемый только фотоаппаратам с использованием ClassAttributeAssignment. Для фотоаппаратов выдержка может быть измерена в миллисекундах. Таким образом, в ClassAttributeAssignment для фотоаппаратов и скорости затвора вы назначаете ClassificationUnit "миллисекунды". Теперь рассмотрим новый ClassificationAttribute "Форм-фактор". Есть только несколько доступных форм-факторов, поэтому для каждого форм-фактора вы создаете один ClassificationAttributeValue. Используя ClassAttributeAssignment, вы можете назначить ClassificationAttribute "Form Factor" для вашего "Photocameras" ClassificationClass с ClassificationValues "Компактная камера", "SLR" и так далее. Еще раз, могут быть разные значения форм-фактора для видеокамер.