С вопросом

description_category_id в ответе

10 октября 2023
2366
5
6

Мы использовали для публикации товаров старую схему категорий. Сейчас метод /v2/product/info/list возвращает некое значение description_category_id в ответе. Но этого значения нет в результате дерева категорий и типов /v1/description-category/tree

например

description_category_id=39474657

Я полагал, что на вашей стороне сделано какое то сопоставление старых/новых категорий имеющихся товаров. Этот результат нельзя использовать и все категории придется выбирать заново?

5 комментариев
Чтобы оставить комментарий, нужно  или 
  • m170rd
    m170rd
    больше 2 лет назад

    Товарищи! Прошел почти год с публикации данного вопроса. Я столкнулся с такой же проблемой. Не подскажите, решили ли вы вопрос? Если да, то как ?

    1
  • O
    Octaivus
    почти 3 года назад

    Есть информация насчет description_category_id? Я начал использовать новые методы и если я передаю последнюю категорию у меня игнорируются новые некоторые атрибуты и появляется ошибка 

    
                "code": "description_category_not_final",
                "field": "description_category_id",
                "attribute_id": 0,
                "state": "new",
                "level": "error",
                "description": "",
                "optional_description_elements": {},
                "attribute_name": "",
                "message": "Description category should be final"
              }

    Я для проверки в ручную загрузил товар, потом с помощью метода /v2/product/info узнал его description_category_id и передал его в методе v2/product/import вместо поля category_id и тогда у меня все получилось. Товар в таком случае успешно загрузился. Но теперь встает вопрос - как мне получать description_category_id до того как загрузить товар? Я полагаю, что должен быть какой-нибудь метод для получения всех возможных description_category_id, чтобы сопоставить со своими товарами. Но такого метода я не нашел. Подскажите, если такой есть

  • for dev
    for dev
    около 3 лет назад
    Модератор

    @Itrukhin, @ssenkevich, @malferov всем привет!Все ваши вопросы видим, сейчас работаем над ответом, сможем чуть позже вернуться с обратной связью!

    1
  • malferov
    malferov
    около 3 лет назад

    Присоединяюсь к вопросу.

    Пока только известно, что type_id эквивалентен значению dictionary_value_id 8229-го атрибута товара. Атрибуты товара можно получить методом v3/products/info/attributes.

    Также, как уже отметили, известно, что значения description_category_id из свойств товара отсутствуют в новом дереве категорий и типов товаров; нет ни одного соответствия. (Логично предположить, что значение description_category_id должно соответствовать категории, которая является непосредственным предком Типа товара. Тогда, зная type_id и description_category_id, можно будет проследить ветку дерева категорий до корня.)

    Замечено, что Озон с момента публикации новых и методов и сообщения о скором прекращении старых методов (6 окт 2023) уже как минимум 1 раз перестроил новое дерево категорий, изменив их идентификаторы.

    Также известно, что в разных подкатегориях могут быть Типы товаров с одинаковыми type_id и type_name, но с разным набором атрибутов.

    Если вы храните или собираетесь хранить список категорийных атрибутов в БД, помните, что размер массива атрибутов категории в JSON-формате может занимать более 64 КБ; в моем случае пришлось изменить тип данных BLOB для поля attributes на MEDIUMBLOB. 

    2
  • S
    ssenkevich
    около 3 лет назад

    Присоединяюсь к вопросу.

    Вопрос по новой структуре каталога - откуда берется и для чего нужен description_category_id?

    Например, я запросил через /v2/product/info данные смартфона. В ответе category_id = 17030819, что соответствует старой категории "Смартфоны" - тут все понятно. Новое свойство description_category_id = 17039977. Делаю запрос на /v1/description-category/tree, но в ответе не нахожу ни category_id равный 17039977, ни type_id равный 17039977. Категория "Смартфоны, планшеты, мобильные телефоны" имеет category_id = 15621050. Тип товара "Смартфон" имеет type_id = 95139.

    В документации к /v2/product/info в описании свойства description_category_id написано "Идентификатор категории. Используйте его с методами /v1/description-category/attribute и /v1/description-category/attribute/values.". Я сделал запрос к /v1/description-category/attribute, в котором для category_id указал 17039977 - вернулась ошибка "description_category_id or item_id must not be empty". Тут вообще непонятно: свойств description_category_id и item_id нет в описании этого метода. Попробовал заменить в запросе category_id на description_category_id с тем же значением - получил ту же ошибку.

    Итого:

    1) Откуда взялось значение 17039977 для description_category_id в ответе /v2/product/info для смартфона?

    2) Для чего вообще нужно свойство description_category_id?

    3) Что мы должны передать в category_id при создании товара через /v2/product/import - category_id из нового дерева или type_id оттуда же, или вообще старый category_id? На примере смартфона: 15621050 или 95139 или 17030819?

    2