Идентификаторы в любом виде и назначении должны соответствовать следующему regexp-выражению
[a-zA-Z0-9_\-]
Параметрическое описание каждого товара разделяется на две части:
- "Свойства" - параметры строго относящиеся к категории размещения и обособленно хранящиеся в товаре
- "Параметры" - параметры относящиеся ко всем товар
Тип | Название в интерфейсе | Тип хранимых данных при хранении в товаре | Описание |
---|---|---|---|
boolean |
Логическое значение | boolean |
Визуализация состояния Да/Нет |
number |
Число | int |
Может использоваться в фильтрах тип период, от, до |
text |
Строка | string |
|
color |
Цвет | string |
Цвет представленный в HEX(для визуализации пользователю) |
multi_text |
Список строк | string[] |
Массив строк |
multi_color |
Список цветов | string[] |
Массив цветов |
Каждое свойство имеет свой уникальный идентификатор(далее UID) в рамках рассматриваемой категории.
К этому UID привязаны следующие данные
Обязательность | Ключ | Тип данных | Описание |
---|---|---|---|
+ | label |
string |
Название свойства |
+ | type |
string |
Тип свойства |
+ | values |
array |
Допустимые значения свойства (отсутствует у Логическое значение ) |
- | filter_show |
boolean |
Флаг отображении в фильтрах |
- | filter_position |
integer |
Позиция отображения в фильтрах |
- | filter_active |
boolean |
Состояние раскрытости при первом показе фильтров (раскрыта фильтрация или свернута) |
- | card_position |
integer |
Позиция отображения в карточке товара |
- | card_separated |
boolean |
Показывается свойство в отдельном блоке в карточке товара, или в общем списке |
Реализация необязательных полей позволит централизованно управлять отображениями визуализацией на конечных сайтов, что позволит избежать ситуации, когда на одном сайте поменяли, а на другом - нет.
Нужно четко понимать, будут реализованны необязательные поля или нет, так как от этого зависит конечная обработка свойств при проведении синхронизации номенклатуры
Это массив, где каждый элемент массива представляет собой описание одного из вариантов значений для свойства и содержит два параметра:
key
- значение, позволяющее однозначно идентифицировать вариант при хранении и передаче внутри системы или между системами (имеет соответствующий тип данных)label
- человеко понятное обозначения варианта, которое показывается пользователю
Для типа данных Логическое значение данная структура отсутствует
Пример хранения свойства с типом Строка
{
"chip" : {
"label" : "Чип",
"type" : "text",
"values" : [
{
"key" : "mifare_1k",
"label" : "Mifare 1k"
},
{
"key" : "mifare_1k_p",
"label" : "Mifare 1k Plus"
}
],
"filter_show" : true,
"filter_position" : 1,
"filter_active" : false,
"card_position" : 2,
"card_separated" : true
}
}
Свойства в товаре хранятся в виде ассоциативного массива, где каждая пара это "UID свойства
=> "key" вариант допустимого значения
"
Для типа данных Логическое значение в виде значения хранится булевое значение
Пример хранения свойств в товаре
{
"chip" : "mifare_1k",
"is_bad_good" : false,
"wire_length" : 20,
"main_color" : "#000000",
"protocol" : [
"wifi",
"bluetooth_4.2",
"nfc"
]
}
Ключ | Название | Описание |
---|---|---|
name |
string |
Название товара |
sku |
string |
SKU - Уникальный складской идентификатор товара |
price |
int |
Цена товара |
weight |
int |
Вес товара |
dimensions |
integer[string] |
Размерность товара (ширина, высота, глубина(длина)) |
Пример Параметра Размерность товара
dimensions
{ "width" : 115, "height" : 54, "depth" : 2 }