Варианты объекта
Лучший способ показать использование и функцию вариантов объекта - это вариант использования:
Ваша цель - хранить много продуктов в Pimcore. Многие из этих продуктов являются вариантами друг друга, например, Желтая футболка, синяя футболка, красная футболка и т. Д. Большинство атрибутов футболка имеют одинаковые значения, и они Просто отличайтесь по цвету и EAN CODE.
Один из способов достижения этого-сделать общий объект футболки, а затем создать для каждого варианта детского объекта в Дерево, которое наследует большинство атрибутов и устанавливает только те, которые различаются. Этот подход работает нормально, но если у вас десятки или даже сотни вариантов, ваше объектное дерево становится довольно большим и запутанным.
Именно здесь появляются варианты объектов. По сути, это просто объекты, которые вы можете настроить, чтобы не показаться в дереве объектов. В дереве вы просто создаете общую футболку. Для каждого варианта этой футболки вы создаете вариант объекта. Хотя вы можете выбрать варианты, чтобы не быть показаны на дереве, вы, тем не менее, сможете редактировать их через собственную вкладку в редакторе объектов.
Единственная разница между объектами и вариантами поведения заключается в том, что вы не можете добавить объект другого класса ниже варианта.
Таким образом, вы можете создать сотни вариантов объекта, не продувая дерево объекта.

В качестве сетки с нормальной объектом, сетка варианта объекта поддерживает пейджинг, фильтрацию, скрытие столбцов и визуализация унаследованные значения. Таким образом, даже большое количество вариантов должно быть управляемым.
Создать и организовать варианты объектов
Чтобы использовать варианты объектов, они должны сначала активироваться в определении класса. Варианты объекта имеют смысл, только Если наследство активируется. Следовательно, наследование является требованием для вариантов объекта.

Как только они активируются, редактор объектов имеет дополнительные вкладки «варианты». Там все варианты текущего объекта показаны в сетке. Варианты объектов через кнопки могут быть созданы, открыты и удалены.

Чтобы создать варианты объекта через код, просто создайте обычный объект, установите как родительную футболку и установите объект введите в {c3}.
$objectX = new DataObject\Product();
$objectX->setParent(DataObject\Product::getById(362603));
$objectX->setKey("variantname");
$objectX->setColor("black");
$objectX->setType(DataObject::OBJECT_TYPE_VARIANT);
$objectX->save();
Query Object Variants
Get all Object Variants of an object
Getting all variants of an object is quite simple. Just call getChildren and pass the wanted object types as an array.
If only variants should be returned use following line.
$objectX->getChildren([DataObject::OBJECT_TYPE_VARIANT]);
By default, getChildren delivers objects, variants, and folders.
Object Variants in Object Lists
Similar to getChildren, the object list objects now have an object type property, which defines the object types to
deliver. Per default objects, variants and folders are delivered. To deliver object variants, use one of the following code
snippets:
$list = new DataObject\Product\Listing();
$list->setObjectTypes([DataObject::OBJECT_TYPE_VARIANT]);
$list->load();
// or
DataObject\Product::getList([
"objectTypes" => [DataObject::OBJECT_TYPE_VARIANT]
]);
If you want regular objects and variants, you should use:
$list = new DataObject\Product\Listing();
$list->setObjectTypes([DataObject::OBJECT_TYPE_VARIANT,DataObject::OBJECT_TYPE_OBJECT]);
$list->load();
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.