Типы

Введение

Типы определяют, какого рода сущности или объекты имеются в вашей системе. Представим, что на вашем сайте есть следующая структура:

.

Это означает, что на верхнем уровне у вас есть Department, затем 3 уровня иерархии, а затем ваши продукты.

Давайте войдем в систему и настроим ее для хранения такой информации. Сначала нам нужно войти в систему и перейти в раздел Настройки -> Типы. Нажмем кнопку + и добавим новый тип:

.

Сначала необходимо настроить Идентификатор. Каждый объект в системе имеет идентификатор. Идентификатор - это уникальная строка, без пробелов и специальных символов, которая указывает на данный конкретный объект. Он будет использоваться позже при импорте/экспорте для идентификации ваших объектов.

Давайте настроим наш объект Department и нажмем Save, чтобы сохранить эту конфигурацию:

.

У вас есть возможность определить иконку, которая будет связана с этим объектом. Вы можете выбрать имя значка из Material Design Iconsopen in new window.

Также вы можете указать цвет используемого значка. Вы можете выбрать название цвета из Available Colorsopen in new window.

Таким образом, у нас есть 3 уровня иерархии в нашей модели данных. Давайте добавим их один за другим, используя тот же подход.

.

И последний - это товар:

.

Теперь, когда наша модель данных определена, давайте перейдем в область Work и добавим данные, которые у нас есть на нашем сайте. Сначала мы можем нажать на кнопку + и добавить наш отдел:

.

Затем, когда мы находимся в узле Department 1, мы можем продолжить и добавить другую структуру. Обратите внимание, что когда вы находитесь на уровне отдела, система позволяет вам добавлять только узлы Уровня 1, потому что мы определили это в нашей модели данных.

Давайте заполним всю структуру.

Теперь вы можете увидеть, как Типы связаны с реальными данными. У вас есть объект Department 1 с типом Department, затем объект Computers с типом Level 1, затем Computer Accessories & Peripherals с типом Level 2 и затем набор объектов Audio & Video Accessories, Blank Media и т.д. с типом Level 3:

Таким образом, типы определяют, какого рода сущности или объекты есть в вашей системе и _иерархию между ними. Поэтому, когда вы определяете модель данных, вы контролируете, что пользователь может добавлять только объекты Level 2 под Level 1 и т.д.

Теперь мы также можем добавлять товары:

Но у нашего продукта нет атрибутов. Теперь вы можете перейти к разделу Attributes, чтобы узнать, как добавить атрибуты к вашим продуктам или другим объектам.

Работа с вариантами

Варианты - это продукты, которые имеют много общих атрибутов и отличаются только несколькими атрибутами. Например, футболка. Одна футболка имеет одинаковые атрибуты, такие как производитель, бренд, материал, стиль, пол и т.д., но имеет разные цвета и размеры. Каждая комбинация цвета/размера имеет свой собственный SKU и даже может иметь разные цены. Таким образом, футболка сама по себе является вариантом, а каждая комбинация цвета/размера относится к продукту под ней.

.

Таким образом, мы можем моделировать варианты в нашей модели данных как еще одну иерархию между уровнями и продуктами. Давайте удалим наш текущий тип Product, а затем снова добавим Variant и тип Product, но уже ниже варианта:

.

Мы будем хранить все общие атрибуты на уровне варианта, а атрибуты, которые отличаются, на уровне продукта. Обратитесь к разделу Attributes, чтобы узнать, как добавлять атрибуты.

Давайте вернемся в область Work и заполним необходимую иерархию и сам продукт в качестве примера того, как работает эта модель данных.

Наличие одного и того же типа в разных местах модели данных

Теперь у нас есть проблема, связанная с тем, что мы определили продукт только на уровне вариантов в нашей модели данных. Но у нас нет вариантов в компьютерах. Так как же нам иметь Product и на уровне Variant, и на уровне Level 3?

Нет проблем, мы можем связать тип Product, чтобы он также находился на уровне Level 3! Давайте нажмем на кнопку Связать, выберем тип Уровень 3.

Итак, теперь у нас есть тип Product и в разделе Variant и в разделе Level 3.

Что это означает для наших данных? Это означает, что у нас есть Variant or Product под Level 3. Вот как это выглядит:

Если мы выберем здесь вариант, мы сможем добавить продукт под ним, или мы можем создать продукт только здесь.

Теперь наша модель данных стала более гибкой. Кроме того, продукты или варианты могут быть не только на Уровне 3, что если мы можем иметь их также на Уровне 2 или Уровне 1 нашей иерархии?

Все просто! Мы можем связать их там!

И у нас будут продукты или варианты на всех уровнях.

Неограниченное количество уровней в модели данных

Что делать, если вы не знаете точно, сколько уровней у вас будет? Может быть, 3 или больше в некоторых категориях. Да, вы можете определить максимальное количество уровней или вы также можете использовать ссылки. Вы можете определить тип Level с To Product под ним, а затем связать Level с самим собой!

.

И у вас будет неограниченное количество уровней с возможностью иметь продукты на всех уровнях.

Хранение активов (изображений, видео или других файлов)

Изображения или файлы очень важны для продуктов. Очень трудно продать продукт в Интернете без изображений. Вы также можете хранить сертификаты и любые другие файлы в качестве вложений к вашим продуктам.

Вы должны определить специальные типы, которые будут хранить изображения, видео или другие файлы, связанные с вашими продуктами.

Давайте сначала определим корневой тип, в котором мы будем хранить наши файлы:

Если у нас есть файлы разных типов, не очень хорошо хранить их в одном месте, поэтому давайте добавим иерархию братьев и сестер, чтобы мы могли группировать наши файлы:

.

Теперь добавим изображения и файлы. Пусть они будут разных типов, чтобы можно было их различать.

.

Обратите внимание, что вы должны выбрать опцию File, если хотите хранить файлы в этом объекте.

После этого можно создать необходимую структуру и создать пример объекта изображения (пока без самого изображения).

.

Затем можно перейти на вкладку File и загрузить туда изображение.

.

Только один файл может быть загружен в один объект. Поэтому, если вам нужно загрузить несколько файлов, создайте несколько соответствующих объектов.

Позже вы сможете связать этот файл с соответствующим товаром или любым другим объектом (например, вы можете присвоить изображение категории. В нашей модели данных есть типы уровней для категорий). Подробнее см. раздел Relations.

Система предоставляет несколько автоматических атрибутов для активов, см. раздел "Автоматические атрибуты для изображений и файлов" в главе "Атрибуты".

Множественные иерархии

Мы создали основную иерархию в наших типах, которая начинается с Department, затем у нас есть 3 уровня структуры, а затем вариант с продуктом под ним. И мы создали реальную структуру, заполненную данными в области Работа, основанную на этой иерархии типов.

Эта основная структура очень важна, на ней мы будем строить наши атрибуты, потому что разные типы продуктов имеют разный набор атрибутов (например, атрибуты мобильного телефона сильно отличаются от атрибутов пиццы, но оба могут быть нашими продуктами). Более того, наша структура должна быть основана на типе продукта, это означает, что мы можем иметь продукт только в одном месте в нашей структуре. Мы всегда должны иметь такую основную иерархию в системе, чтобы мы могли загрузить наш продукт в правильную категорию и назначить правильные атрибуты.

Но в реальной жизни часто существует множество других иерархий. Например, у нас может быть веб-сайт с нашими продуктами. Иерархия этого сайта может быть очень похожа на основную, но в любом случае у нас будут различия, потому что один и тот же продукт в веб-иерархии обычно может находиться в нескольких категориях. Мобильный телефон будет находиться в категории Мобильные телефоны, также он может быть в категории Новинки или, например, мы можем иметь товары по брендам.

Другой пример - некоторые отраслевые стандарты, например, существует классификация ETIMopen in new window для электротехнической продукции, и вы можете иметь в системе как основную (вашу собственную) иерархию, так и ETIM.

Другой пример - иерархии поставщиков, которые могут быть полезны для розничных торговцев. Таким образом, у розничного торговца будет своя иерархия с набором продуктов, но он также будет загружать все иерархии от всех поставщиков. И т.д.

Вы можете легко определить другие иерархии с помощью нашей системы типов.

Давайте создадим новый корневой тип для хранения всех дополнительных иерархий, а затем тип иерархии для хранения конкретной иерархии.

Теперь мы создадим 3 уровня категорий под узлом иерархии. Это будут уровни (категории), отличные от уровней нашей основной иерархии.

Теперь мы можем перейти в область Работа и заполнить данные для наших дополнительных категорий.

Позже вы можете связать ваши продукты с этими дополнительными иерархиями с помощью отношений, см. раздел "Связывание продуктов с дополнительными иерархиями" в главе "Отношения".

Порядок элементов в дереве объектов

Теперь у нас есть следующее дерево объектов:

.

Как мы видим, дочерние элементы в разделе Компьютерные принадлежности и периферия расположены в порядке возрастания. Но что, если нам нужно, чтобы они располагались в порядке убывания? У нас есть возможность определить, как дети могут быть отсортированы.

Раздел Компьютерные принадлежности и периферия имеет тип Уровень 2 в нашей модели данных. Давайте перейдем в тип Level 2 и определим новый порядок:

.

Это означает, что все дочерние узлы для всех узлов Level 2 будут отсортированы по их английскому названию в порядке убывания.

Опция sort - это поле, которое используется для сортировки, а sortDirection может быть: ASC и DESC. Это означает, что мы можем сделать сортировку и по какому-либо атрибуту. Например, мы можем определить атрибут с идентификатором order для наших дочерних объектов, а затем использовать выражение values.order в конфигурации родительского типа, чтобы сортировки дочерних объектов по этому атрибуту. Таким образом, мы можем определить любой порядок, который нам нужен.