Импорт типа коллекции локализованных строк в Hybris
У меня есть такая коллекция:
<collectiontype code="colors" elementtype="localized:java.lang.String">
и тип элемента, содержащий эту коллекцию:
<itemtype code="MyShirt" autocreate="true" generate="true">
<attributes>
<attribute qualifier="code" type="java.lang.String">
<persistence type="property">
</attribute>
<attribute qualifier="colors" type="colors">
<persistence type="property">
</attribute>
</attributes>
</itemtype>
Так что должно быть правильным ImpEx для вставки рубашки в этот тип элемента:
$lang=en
INSERT_UPDATE MyShirt;code[unique=true];colors(code[lang=$lang])
Вышеупомянутое утверждение дает ошибку. Где я иду не так?
2 ответа
Здесь вы пытаетесь добавить локализованную коллекцию, но я не уверен, что Hybris позволяет вам это делать. Итак, я думаю, вам нужно изменить тип коллекции на:
<collectiontype code="colors" elementtype="java.lang.String">
Чтобы импортировать новые элементы, вы должны изменить свой головной убор Impex и удалить (code[lang=$lang])
, цвета это список String
не Objects
которые имеют атрибут под названием code
Итак, вы должны использовать:
INSERT_UPDATE MyShirt;code[unique=true];colors
;shirt_1;color1,color2,color
Но почти всегда, для такого рода требований, Hybris требуют использования Classifications
, Attributes of classifications
а также Attributes value classifications
,
CollectionTypes устарели. Предпочитаю отношения. В вашем случае я бы представил тип элемента "Цвет" и создал бы связь между "MyShirt" и "Цвет". Для цвета вы можете создать уникальный идентификатор и повторно использовать этот цвет для всех ваших рубашек. Я абсолютно уверен, что разные рубашки могут быть одного цвета. Кроме того, вы можете локализовать свои цвета в одной точке. Вы можете быть уверены, что изменение названия цвета на определенный цвет влияет на все ваши рубашки. У этого подхода есть множество преимуществ.