Характеристики товаров


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

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

Для того, чтобы характеристика могла принимать участие в фильтрации товаров, необходимо, чтобы её поле filterable было установлено в значение true.

Используемые структуры

Характеристика

{
    "id": "90a9826b-7812-41a4-95e1-5ffd96ad94a8",
    "name": "Частота процессора",
    "filterable": true,
    "field_type": {
        "id": "range",
        "name": "Диапазон"
    },
    "range_type": {
        "id": "float",
        "name": "С плавающей точкой"
    },
    "created_at": {
        "timezone": "Asia\/Irkutsk",
        "datetime_utc": "2020-05-27 10:58:39",
        "datetime": "2020-05-27 18:58:39",
        "datetime_at": "27.05.2020 в 18:58",
        "date": "27.05.2020",
        "diff": "11 месяцев назад",
        "timestamp": 1590577119,
        "iso_utc": "2020-05-27T10:58:39+00:00",
        "iso": "2020-05-27T18:58:39+08:00"
    },
    "updated_at": {
        "timezone": "Asia\/Irkutsk",
        "datetime_utc": "2020-05-27 10:58:39",
        "datetime": "2020-05-27 18:58:39",
        "datetime_at": "27.05.2020 в 18:58",
        "date": "27.05.2020",
        "diff": "11 месяцев назад",
        "timestamp": 1590577119,
        "iso_utc": "2020-05-27T10:58:39+00:00",
        "iso": "2020-05-27T18:58:39+08:00"
    }
}

Описание полей

Значение характеристики

{
    "id": "90a9826b-797e-4bed-a0ef-589ce4984079",
    "name": "1.8 ГГц",
    "range_value": 1.8,
    "created_at": {
        "timezone": "Asia\/Irkutsk",
        "datetime_utc": "2020-05-27 10:58:39",
        "datetime": "2020-05-27 18:58:39",
        "datetime_at": "27.05.2020 в 18:58",
        "date": "27.05.2020",
        "diff": "11 месяцев назад",
        "timestamp": 1590577119,
        "iso_utc": "2020-05-27T10:58:39+00:00",
        "iso": "2020-05-27T18:58:39+08:00"
    },
    "updated_at": {
        "timezone": "Asia\/Irkutsk",
        "datetime_utc": "2020-05-27 10:58:39",
        "datetime": "2020-05-27 18:58:39",
        "datetime_at": "27.05.2020 в 18:58",
        "date": "27.05.2020",
        "diff": "11 месяцев назад",
        "timestamp": 1590577119,
        "iso_utc": "2020-05-27T10:58:39+00:00",
        "iso": "2020-05-27T18:58:39+08:00"
    }
}

Описание полей

Запросы

API характеристик (наряду с опциями вариантов) имеет возможность передавать список возможных значений во время создания и/или редактирования характеристик. Это позволяет выполнить сохранение характеристики со всеми её значениями в одном API-запросе.

Прежде чем вы начнёте создавать и редактировать характеристики, необходимо учесть следующие технические требования и ограничения.

Создание характеристик

При создании характеристики можно передать неограниченное количество её значений в поле values (массив). Каждый элемент массива values должен являться объектом с единственным полем - name:

POST https://api.zenky.io/v2/features

{
  "name": "Операционная система",
  "values": [
    {"name": "iOS"},
    {"name": "Android"}
  ]
}

При передаче такого тела запроса будут выполнены следующие действия:

  1. Будет создана новая характеристика "Операционная система";
  2. К созданной характеристике будут добавлены 2 значения - iOS и Android.

Редактирование характеристик

При редактировании характеристики список значений так же передаётся в поле values (массив). Однако, в случае изменения какого-либо значения, необходимо передать и id такого значения (иначе будет создано новое значение).

Одновременно с редактированием существующих значений вы можете передавать новые значения (без поля id).

PUT https://api.zenky.io/v2/features/a3ee2778-e06b-47aa-a001-90540d811f80

{
  "values": [
    {"name": "Windows 10 Mobile"},
    {"id": "219f3837-e1ee-49b1-8f6b-0f12fdfcff13", "name": "Android 8.1.0 Oreo"}
  ]
}

При передаче такого тела запроса будут выполнены следующие действия:

  1. В характеристику "Операционная система" будет добавлено новое значение Windows 10 Mobile;
  2. Значение с ID 219f3837-e1ee-49b1-8f6b-0f12fdfcff13 (ранее - Android) будет изменено на Android 8.1.0 Oreo.

Удаление значений характеристик

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

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

PUT https://api.zenky.io/v2/features/a3ee2778-e06b-47aa-a001-90540d811f80

{
  "removed_values": [
    "219f3837-e1ee-49b1-8f6b-0f12fdfcff13"
  ]
}

При передаче такого тела запроса будут выполнены следующие действия:

  1. Значение с ID 219f3837-e1ee-49b1-8f6b-0f12fdfcff13 (Android 8.1.0 Oreo) будет удалено из списка значений характеристики Операционная система;
  2. У всех товаров, которые имели такое значение, характеристика Операционная система будет удалена (сами товары не будут удалены).

Методы

Список поддерживаемых методов для работы с характеристиками.

Список характеристик

Возвращает список характеристик магазина.

Создание характеристики

Просмотр характеристики

Редактирование характеристики

Удаление характеристики

Массовое удаление характеристик