πŸ—‚οΈCategory API

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ катСгориями ΠΈ характСристиками Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² OZON

🌳 getCategoryTree

ПолноС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

/v1/description-category/tree

πŸ“‹ getCategoryAttributes

Π₯арактСристики ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

/v1/description-category/attribute

πŸ“– getCategoryAttributeValues

ЗначСния характСристики с ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ

/v1/description-category/attribute/values

πŸš€ Быстрый старт

1

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ структуру ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ OZON

2

Найти ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ для Ρ‚ΠΎΠ²Π°Ρ€Π°

3

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹

Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ характСристики ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

4

Π’Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля

import { OzonSellerAPI } from 'daytona-ozon-seller-api';

const client = new OzonSellerAPI({
  clientId: 'your-client-id',
  apiKey: 'your-api-key'
});

// Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ workflow Ρ€Π°Π±ΠΎΡ‚Ρ‹ с катСгориями
try {
  // 1. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ
  const categoryTree = await client.category.getCategoryTree({
    language: 'RU'
  });

  console.log('🌳 Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ');

  // 2. Найти ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ для создания Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² (ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹)
  const findLeafCategories = (items: any[]): any[] => {
    const leafCategories: any[] = [];
    items.forEach(item => {
      if ((!item.children || item.children.length === 0) && !item.disabled) {
        leafCategories.push(item);
      } else if (item.children) {
        leafCategories.push(...findLeafCategories(item.children));
      }
    });
    return leafCategories;
  };

  const leafCategories = findLeafCategories(categoryTree.result || []);
  console.log(`πŸ“‚ Доступно ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ для создания Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²: ${leafCategories.length}`);

  if (leafCategories.length > 0) {
    const selectedCategory = leafCategories[0];
    console.log(`\n🎯 Π’Ρ‹Π±Ρ€Π°Π½Π° катСгория: ${selectedCategory.category_name}`);
    console.log(`   ID ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: ${selectedCategory.description_category_id}`);
    console.log(`   ID Ρ‚ΠΈΠΏΠ°: ${selectedCategory.type_id}`);

    // 3. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ характСристики ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
    const attributes = await client.category.getCategoryAttributes({
      description_category_id: selectedCategory.description_category_id,
      type_id: selectedCategory.type_id,
      language: 'RU'
    });

    console.log(`\nπŸ“‹ Π₯арактСристик Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: ${attributes.result?.length || 0}`);

    // 4. Найти характСристики со справочниками Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
    const dictionaryAttributes = attributes.result?.filter(attr => 
      attr.dictionary_id && attr.dictionary_id > 0
    ) || [];

    console.log(`πŸ“– Π₯арактСристик со справочниками: ${dictionaryAttributes.length}`);
  }

} catch (error) {
  console.error('❌ Ошибка Ρ€Π°Π±ΠΎΡ‚Ρ‹ с катСгориями:', error);
}

🌳 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ структуры ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

πŸ“‚ ОдСТда, ΠΎΠ±ΡƒΠ²ΡŒ ΠΈ аксСссуары
πŸ“‚ ЖСнская ΠΎΠ΄Π΅ΠΆΠ΄Π°
πŸ‘— ΠŸΠ»Π°Ρ‚ΡŒΡ (ID: 15621)
πŸ‘š Π‘Π»ΡƒΠ·Ρ‹ ΠΈ Ρ€ΡƒΠ±Π°ΡˆΠΊΠΈ (ID: 15623)
❌ ВинтаТная ΠΎΠ΄Π΅ΠΆΠ΄Π° (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°)
πŸ“‚ ΠœΡƒΠΆΡΠΊΠ°Ρ ΠΎΠ΄Π΅ΠΆΠ΄Π°
πŸ‘” Π ΡƒΠ±Π°ΡˆΠΊΠΈ (ID: 15641)
15,000+
ВсСго ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ
8,500+
ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ
7,200+
Доступно для Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²
12
Максимальная Π³Π»ΡƒΠ±ΠΈΠ½Π°

πŸ“‹ Анализ характСристик ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

πŸ”΄ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅

Π₯арактСристики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΡ€ΠΈ создании Ρ‚ΠΎΠ²Π°Ρ€Π°. ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ„Π»Π°Π³ΠΎΠΌ is_required: true

πŸ“– Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π₯арактСристики с ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ значСниями. dictionary_id > 0 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ справочника

🏷️ АспСктныС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° сайтС. ΠžΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ„Π»Π°Π³ΠΎΠΌ is_aspect: true

πŸ“¦ ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

ΠœΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. is_collection: true

// Анализ характСристик ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
const analyzeCategoryAttributes = async (categoryId: number, typeId: number) => {
  try {
    const attributes = await client.category.getCategoryAttributes({
      description_category_id: categoryId,
      type_id: typeId,
      language: 'RU'
    });
    
    const analysis = {
      total: attributes.result?.length || 0,
      required: 0,
      optional: 0,
      collections: 0,
      aspects: 0,
      withDictionary: 0,
      withoutDictionary: 0,
      groups: new Set()
    };
    
    const requiredAttributes: any[] = [];
    const dictionaryAttributes: any[] = [];
    
    attributes.result?.forEach(attr => {
      // Базовая статистика
      if (attr.is_required) {
        analysis.required++;
        requiredAttributes.push(attr);
      } else {
        analysis.optional++;
      }
      
      if (attr.is_collection) analysis.collections++;
      if (attr.is_aspect) analysis.aspects++;
      
      // Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ
      if (attr.dictionary_id && attr.dictionary_id > 0) {
        analysis.withDictionary++;
        dictionaryAttributes.push(attr);
      } else {
        analysis.withoutDictionary++;
      }
      
      // Π“Ρ€ΡƒΠΏΠΏΡ‹
      if (attr.group_name) {
        analysis.groups.add(attr.group_name);
      }
    });
    
    console.log('πŸ“Š Анализ характСристик ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ:');
    console.log(`   ВсСго характСристик: ${analysis.total}`);
    console.log(`   ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…: ${analysis.required}`);
    console.log(`   ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…: ${analysis.optional}`);
    console.log(`   Π‘ΠΎ справочником: ${analysis.withDictionary}`);
    console.log(`   Π“Ρ€ΡƒΠΏΠΏ характСристик: ${analysis.groups.size}`);
    
    return { analysis, requiredAttributes, dictionaryAttributes };
    
  } catch (error) {
    console.error('❌ Ошибка Π°Π½Π°Π»ΠΈΠ·Π° характСристик:', error);
  }
};

βœ… Валидация Ρ‚ΠΎΠ²Π°Ρ€Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

βœ…
Валидация ΡƒΡΠΏΠ΅ΡˆΠ½Π°
ВсС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ характСристики Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ
❌
Ошибка Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ
ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика: "Π¦Π²Π΅Ρ‚"
⚠️
ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "Ρ‚Π΅ΠΌΠ½ΠΎ-синий" Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² справочникС Ρ†Π²Π΅Ρ‚ΠΎΠ²
// Валидация Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΏΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ
const validateProductForCategory = async (categoryId: number, typeId: number, productData: any) => {
  try {
    const attributes = await client.category.getCategoryAttributes({
      description_category_id: categoryId,
      type_id: typeId,
      language: 'RU'
    });
    
    const requiredAttributes = attributes.result?.filter(attr => attr.is_required) || [];
    const errors: string[] = [];
    const warnings: string[] = [];
    
    console.log(`πŸ” Валидация Ρ‚ΠΎΠ²Π°Ρ€Π° для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ${categoryId}...`);
    
    // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… характСристик
    for (const attr of requiredAttributes) {
      const value = productData[attr.name] || productData[attr.id];
      
      if (!value) {
        errors.push(`ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика: ${attr.name}`);
      } else if (attr.dictionary_id && attr.dictionary_id > 0) {
        // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° значСния ΠΈΠ· справочника
        try {
          const searchResult = await client.category.searchCategoryAttributeValues({
            attribute_id: attr.id,
            description_category_id: categoryId,
            type_id: typeId,
            value: value.toString(),
            limit: 1
          });
          
          const exactMatch = searchResult.result?.find(v => 
            v.value?.toLowerCase() === value.toString().toLowerCase()
          );
          
          if (!exactMatch) {
            warnings.push(`Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "${value}" Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π² справочникС для "${attr.name}"`);
          }
        } catch (error) {
          warnings.push(`НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для "${attr.name}"`);
        }
      }
    }
    
    const isValid = errors.length === 0;
    
    console.log(`${isValid ? 'βœ…' : '❌'} Валидация Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°:`);
    console.log(`   Ошибок: ${errors.length}`);
    console.log(`   ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ: ${warnings.length}`);
    
    return { isValid, errors, warnings, requiredAttributesCount: requiredAttributes.length };
    
  } catch (error) {
    console.error('❌ Ошибка Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π°:', error);
    return {
      isValid: false,
      errors: [`Ошибка Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ: ${error.message}`],
      warnings: [],
      requiredAttributesCount: 0
    };
  }
};

⚠️ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΈ особСнности

🌳 Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… катСгориях
  • ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Ρ„Π»Π°Π³ΠΎΠΌ disabled
  • Π Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ комиссии OZON

πŸ“‹ Π₯арактСристики

  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹
  • Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΈ: dictionary_id > 0
  • АспСктныС для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½Π° сайтС
  • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ содСрТат нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

πŸ“„ Π›ΠΈΠΌΠΈΡ‚Ρ‹ ΠΈ пагинация

  • ЗначСния характСристик: максимум 2000 Π·Π° запрос
  • Поиск Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: максимум 100 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²
  • ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ 2 символа Π² поисковом запросС
  • ΠŸΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· last_value_id

🌍 Π―Π·Ρ‹ΠΊΠΈ ΠΈ локализация

  • πŸ‡·πŸ‡Ί RU: русский (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)
  • πŸ‡¬πŸ‡§ EN: английский
  • πŸ‡ΉπŸ‡· TR: Ρ‚ΡƒΡ€Π΅Ρ†ΠΊΠΈΠΉ
  • πŸ‡¨πŸ‡³ ZH_HANS: китайский ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ
πŸ“š ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ πŸ“‘ ИндСкс API πŸš€ Быстрый старт ❓ FAQ