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, поэтому я хочу попросить все предварительные условия, которые должны быть выполнены.

  1. Вам нужна ClassificationSystem (эквивалент для каталога для категорий и продуктов)
  2. Вам необходим ClassificationSystemversion (эквивалент для CatalogVersion для категории и продукта)
  3. Ваш продукт должен быть в категории.
  4. Эта категория нуждается в суперкатегории типа ClassificationClass.
  5. Вам нужен ClassificationAttribute.
  6. Вам нужен ClassAttributeAssignment, который назначает ваш ClassificationAttribute ClassificationClass.
  7. (Необязательно) Вы можете создать ClassificationAttributeUnits, чтобы определить единицу атрибута.
  8. (Необязательно) Вы можете создать ClassificationAttributeValues, чтобы определить возможные значения для ClassificationAttribute.
  9. Когда эти предварительные условия выполнены, вы можете присвоить значения продукту, используя ваш сценарий impex.

Поскольку эта структура немного сложна, позвольте мне прояснить ее на примере: рассмотрим ClassificationClasses "Photocameras" и "Videocameras". Существуют атрибуты ClassificationAttributes, такие как "Resolution", которые назначаются обоим ClassificationClass с использованием ClassAttributeAssignment. Но может также существовать атрибут ClassificationAttribute "Выдержка затвора", назначаемый только фотоаппаратам с использованием ClassAttributeAssignment. Для фотоаппаратов выдержка может быть измерена в миллисекундах. Таким образом, в ClassAttributeAssignment для фотоаппаратов и скорости затвора вы назначаете ClassificationUnit "миллисекунды". Теперь рассмотрим новый ClassificationAttribute "Форм-фактор". Есть только несколько доступных форм-факторов, поэтому для каждого форм-фактора вы создаете один ClassificationAttributeValue. Используя ClassAttributeAssignment, вы можете назначить ClassificationAttribute "Form Factor" для вашего "Photocameras" ClassificationClass с ClassificationValues ​​"Компактная камера", "SLR" и так далее. Еще раз, могут быть разные значения форм-фактора для видеокамер.

Другие вопросы по тегам