1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-17 21:08:03 +02:00

OZON: Создание по ID и обновление характеристик

This commit is contained in:
Anton 2024-08-23 22:37:14 +03:00
parent 29b05100ab
commit 790a753ff5
51 changed files with 5126 additions and 3465 deletions

View File

@ -0,0 +1 @@
oint ozon CreateProductByOzonID --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%

View File

@ -0,0 +1 @@
oint ozon GetAttributesUpdateStructure --empty %empty%

View File

@ -0,0 +1 @@
oint ozon GetSimplifiedProductStructure --empty %empty%

View File

@ -0,0 +1 @@
oint ozon UpdateProductsAttributes --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%

View File

@ -0,0 +1,4 @@
{
"ClientID": "2128753",
"APIKey": "7cc90d26-33e4-499b..."
}

View File

@ -0,0 +1,4 @@
{
"ClientID": "2128753",
"APIKey": "7cc90d26-33e4-499b..."
}

View File

@ -0,0 +1,13 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
ItemStructure = New Structure;
ItemStructure.Insert("name" , "New imported product");
ItemStructure.Insert("sku" , 298789742);
ItemStructure.Insert("offer_id" , "91132");
ItemStructure.Insert("price" , "1100");
ItemStructure.Insert("old_price" , "1100");
ItemStructure.Insert("vat" , "0.1");
ItemStructure.Insert("currency_code", "RUB");
Result = OPI_Ozon.CreateProductByOzonID(ClientID, APIKey, ItemStructure);

View File

@ -0,0 +1 @@
 Result = OPI_Ozon.GetAttributesUpdateStructure();

View File

@ -1,5 +1,5 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
TaskID = "1282012944";
TaskID = "1284925477";
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);

View File

@ -0,0 +1 @@
 Result = OPI_Ozon.GetSimplifiedProductStructure();

View File

@ -0,0 +1,14 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
AttributesStructure = New Structure("offer_id", "143210608");
CategoryAttribute1 = New Structure("dictionary_value_id,value", 971082156, "Speaker stand");
CategoryAttribute2 = New Structure("dictionary_value_id,value", 5060050 , "Samsung");
CategoryAttribute3 = New Structure("dictionary_value_id,value", 61576 , "red");
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 5076 , 0, CategoryAttribute1);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 85 , 0, CategoryAttribute2);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 10096, 0, CategoryAttribute3);
Result = OPI_Ozon.UpdateProductsAttributes(ClientID, APIKey, AttributesStructure);

View File

@ -1,5 +1,5 @@
---
sidebar_position: 5
sidebar_position: 9
---
# Add product video cover

View File

@ -1,5 +1,5 @@
---
sidebar_position: 4
sidebar_position: 8
---
# Add product video

View File

@ -1,5 +1,5 @@
---
sidebar_position: 6
sidebar_position: 10
---
# Complete the complex attribute

View File

@ -0,0 +1,59 @@
---
sidebar_position: 2
---
# Create products by Ozon ID
Creates a product by specified Ozon ID
`Function CreateProductByOzonID(Val ClientID, Val APIKey, Val ProductsArray) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| ClientID | --clientid | String | Client identifier |
| APIKey | --apikey | String | API key |
| ProductsArray | --items | Array Of String | Array or one simplified structure of product fields |
Returns: Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
<br/>
:::tip
You can get an empty structure using the GetSimplifiedProductStructure method()
It is not possible to update a product fields by Ozon ID
Method at API documentation: [post /v1/product/import-by-sku](https://docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
:::
<br/>
```bsl title="Code example"
ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
ItemStructure = New Structure;
ItemStructure.Insert("name" , "New imported product");
ItemStructure.Insert("sku" , 298789742);
ItemStructure.Insert("offer_id" , "91132");
ItemStructure.Insert("price" , "1100");
ItemStructure.Insert("old_price" , "1100");
ItemStructure.Insert("vat" , "0.1");
ItemStructure.Insert("currency_code", "RUB");
Result = OPI_Ozon.CreateProductByOzonID(ClientID, APIKey, ItemStructure);
```
```sh title="CLI command example"
oint ozon CreateProductByOzonID --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%
```
```json title="Result"
```

View File

@ -0,0 +1,41 @@
---
sidebar_position: 7
---
# Get attributes update structure
Gets the structure for updating product characteristics in the UpdateProductsAttributes function()
`Function GetAttributesUpdateStructure(Val Clear = False) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| Clear | --empty | Boolean | True > structure with empty valuse, False > field descriptions at values |
Returns: Structure of KeyAndValue - Product fields structure
<br/>
:::tip
<Attributes> are structures with complex_id, id and values fields. For their quick creation there is the CompleteComplexAttribute method()
:::
<br/>
```bsl title="Code example"
Result = OPI_Ozon.GetAttributesUpdateStructure();
```
```sh title="CLI command example"
oint ozon GetAttributesUpdateStructure --empty %empty%
```
```json title="Result"
```

View File

@ -1,5 +1,5 @@
---
sidebar_position: 2
sidebar_position: 4
---
# Get product creation status
@ -29,7 +29,7 @@ Method at API documentation: [post /v1/product/import/info](https://docs.ozon.ru
```bsl title="Code example"
ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
TaskID = "1282012944";
TaskID = "1284925477";
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
```

View File

@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 5
---
# Get product structure

View File

@ -0,0 +1,38 @@
---
sidebar_position: 6
---
# Get simplified product structure
Gets the structure for creating a product based on Ozon ID in the CreateProductByOzonID function()
`Function GetSimplifiedProductStructure(Val Clear = False) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| Clear | --empty | Boolean | True > structure with empty valuse, False > field descriptions at values |
Returns: Structure of KeyAndValue - Product fields structure
<br/>
```bsl title="Code example"
Result = OPI_Ozon.GetSimplifiedProductStructure();
```
```sh title="CLI command example"
oint ozon GetSimplifiedProductStructure --empty %empty%
```
```json title="Result"
```

View File

@ -0,0 +1,58 @@
---
sidebar_position: 3
---
# Update products attributes
Updates the attributes of the selected items
`Function UpdateProductsAttributes(Val ClientID, Val APIKey, Val AttributesArray) Export`
| Parameter | CLI option | Type | Description |
|-|-|-|-|
| ClientID | --clientid | String | Client identifier |
| APIKey | --apikey | String | API key |
| AttributesArray | --items | Array Of String | Array or one structure of product attribute fields |
Returns: Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
<br/>
:::tip
You can get an empty structure using the GetAttributesUpdateStructure method()
Method at API documentation: [post /v1/product/attributes/update](https://docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
:::
<br/>
```bsl title="Code example"
ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
AttributesStructure = New Structure("offer_id", "143210608");
CategoryAttribute1 = New Structure("dictionary_value_id,value", 971082156, "Speaker stand");
CategoryAttribute2 = New Structure("dictionary_value_id,value", 5060050 , "Samsung");
CategoryAttribute3 = New Structure("dictionary_value_id,value", 61576 , "red");
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 5076 , 0, CategoryAttribute1);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 85 , 0, CategoryAttribute2);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 10096, 0, CategoryAttribute3);
Result = OPI_Ozon.UpdateProductsAttributes(ClientID, APIKey, AttributesStructure);
```
```sh title="CLI command example"
oint ozon UpdateProductsAttributes --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%
```
```json title="Result"
```

View File

@ -0,0 +1 @@
oint ozon ОбновитьХарактеристикиТоваров --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%

View File

@ -0,0 +1 @@
oint ozon ПолучитьСокращеннуюСтруктуруТовара --empty %empty%

View File

@ -0,0 +1 @@
oint ozon ПолучитьСтруктуруОбновленияХарактеристик --empty %empty%

View File

@ -0,0 +1 @@
oint ozon СоздатьТоварыПоOzonID --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%

View File

@ -0,0 +1,4 @@
{
"IDКлиента": "2128753",
"КлючAPI": "7cc90d26-33e4-499b..."
}

View File

@ -0,0 +1,4 @@
{
"IDКлиента": "2128753",
"КлючAPI": "7cc90d26-33e4-499b..."
}

View File

@ -0,0 +1,14 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СтруктураХаракетристик = Новый Структура("offer_id", "143210608");
АтрибутКатегории1 = Новый Структура("dictionary_value_id,value", 971082156, "Стойка для акустической системы");
АтрибутКатегории2 = Новый Структура("dictionary_value_id,value", 5060050 , "Samsung");
АтрибутКатегории3 = Новый Структура("dictionary_value_id,value", 61576 , "красный");
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 5076 , 0, АтрибутКатегории1);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 85 , 0, АтрибутКатегории2);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 10096, 0, АтрибутКатегории3);
Результат = OPI_Ozon.ОбновитьХарактеристикиТоваров(IDКлиента, КлючAPI, СтруктураХаракетристик);

View File

@ -0,0 +1 @@
 Результат = OPI_Ozon.ПолучитьСокращеннуюСтруктуруТовара();

View File

@ -1,5 +1,5 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
IDЗадачи = "1282012944";
IDЗадачи = "1284925477";
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);

View File

@ -0,0 +1 @@
 Результат = OPI_Ozon.ПолучитьСтруктуруОбновленияХарактеристик();

View File

@ -0,0 +1,13 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 298789742);
СтруктураТовара.Вставить("offer_id" , "91132");
СтруктураТовара.Вставить("price" , "1100");
СтруктураТовара.Вставить("old_price" , "1100");
СтруктураТовара.Вставить("vat" , "0.1");
СтруктураТовара.Вставить("currency_code", "RUB");
Результат = OPI_Ozon.СоздатьТоварыПоOzonID(IDКлиента, КлючAPI, СтруктураТовара);

View File

@ -1,5 +1,5 @@
---
sidebar_position: 5
sidebar_position: 9
---
# Добавить видеообложку товара

View File

@ -1,5 +1,5 @@
---
sidebar_position: 4
sidebar_position: 8
---
# Добавить видео товара

View File

@ -1,5 +1,5 @@
---
sidebar_position: 6
sidebar_position: 10
---
# Дополнить комплексный атрибут

View File

@ -0,0 +1,59 @@
---
sidebar_position: 2
---
# Создать товары по Ozon ID
Создаёт товар по указанному Ozon ID
`Функция СоздатьТоварыПоOzonID(Знач IDКлиента, Знач КлючAPI, Знач МассивТоваров) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| IDКлиента | --clientid | Строка | Идентификатор клиента |
| КлючAPI | --apikey | Строка | API ключ |
| МассивТоваров | --items | Массив Из Строка | Массив или одна сокращенная структура полей описания товара |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
<br/>
:::tip
Получить пустую структуру можно при помощи метода ПолучитьСокращеннуюСтруктуруТовара()
Обновить товар по Ozon ID нельзя
Метод в документации API: [post /v1/product/import-by-sku](https://docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
:::
<br/>
```bsl title="Пример кода"
IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 298789742);
СтруктураТовара.Вставить("offer_id" , "91132");
СтруктураТовара.Вставить("price" , "1100");
СтруктураТовара.Вставить("old_price" , "1100");
СтруктураТовара.Вставить("vat" , "0.1");
СтруктураТовара.Вставить("currency_code", "RUB");
Результат = OPI_Ozon.СоздатьТоварыПоOzonID(IDКлиента, КлючAPI, СтруктураТовара);
```
```sh title="Пример команды CLI"
oint ozon СоздатьТоварыПоOzonID --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%
```
```json title="Результат"
```

View File

@ -0,0 +1,41 @@
---
sidebar_position: 7
---
# Получить структуру обновления характеристик
Получает структуру для обновления характеристик товара в функции ОбновитьХарактеристикиТоваров()
`Функция ПолучитьСтруктуруОбновленияХарактеристик(Знач Пустая = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| Пустая | --empty | Булево | Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей |
Возвращаемое значение: Структура Из КлючИЗначение - Структура полей товара
<br/>
:::tip
Характеристики представляют из себя структуры с полями complex_id, id и массивом values. Для их быстрого создания есть метод ДополнитьКомплексныйАтрибут()
:::
<br/>
```bsl title="Пример кода"
Результат = OPI_Ozon.ПолучитьСтруктуруОбновленияХарактеристик();
```
```sh title="Пример команды CLI"
oint ozon ПолучитьСтруктуруОбновленияХарактеристик --empty %empty%
```
```json title="Результат"
```

View File

@ -1,5 +1,5 @@
---
sidebar_position: 2
sidebar_position: 4
---
# Получить статус добавления товара
@ -29,7 +29,7 @@ sidebar_position: 2
```bsl title="Пример кода"
IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
IDЗадачи = "1282012944";
IDЗадачи = "1284925477";
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
```

View File

@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 5
---
# Получить структуру товара

View File

@ -0,0 +1,38 @@
---
sidebar_position: 6
---
# Получить сокращенную структуру товара
Получает структуру для создания товара на основе Ozon ID в функции СоздатьТоварыПоOzonID()
`Функция ПолучитьСокращеннуюСтруктуруТовара(Знач Пустая = Ложь) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| Пустая | --empty | Булево | Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей |
Возвращаемое значение: Структура Из КлючИЗначение - Структура полей товара
<br/>
```bsl title="Пример кода"
Результат = OPI_Ozon.ПолучитьСокращеннуюСтруктуруТовара();
```
```sh title="Пример команды CLI"
oint ozon ПолучитьСокращеннуюСтруктуруТовара --empty %empty%
```
```json title="Результат"
```

View File

@ -0,0 +1,58 @@
---
sidebar_position: 3
---
# Обновить характеристики товаров
Обновляет характеристики выбранных товаров
`Функция ОбновитьХарактеристикиТоваров(Знач IDКлиента, Знач КлючAPI, Знач МассивХарактеристик) Экспорт`
| Параметр | CLI опция | Тип | Назначение |
|-|-|-|-|
| IDКлиента | --clientid | Строка | Идентификатор клиента |
| КлючAPI | --apikey | Строка | API ключ |
| МассивХарактеристик | --items | Массив Из Строка | Массив или одна структура полей атрибутов товара |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
<br/>
:::tip
Получить пустую структуру можно при помощи метода ПолучитьСтруктуруОбновленияХарактеристик()
Метод в документации API: [post /v1/product/attributes/update](https://docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
:::
<br/>
```bsl title="Пример кода"
IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СтруктураХаракетристик = Новый Структура("offer_id", "143210608");
АтрибутКатегории1 = Новый Структура("dictionary_value_id,value", 971082156, "Стойка для акустической системы");
АтрибутКатегории2 = Новый Структура("dictionary_value_id,value", 5060050 , "Samsung");
АтрибутКатегории3 = Новый Структура("dictionary_value_id,value", 61576 , "красный");
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 5076 , 0, АтрибутКатегории1);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 85 , 0, АтрибутКатегории2);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 10096, 0, АтрибутКатегории3);
Результат = OPI_Ozon.ОбновитьХарактеристикиТоваров(IDКлиента, КлючAPI, СтруктураХаракетристик);
```
```sh title="Пример команды CLI"
oint ozon ОбновитьХарактеристикиТоваров --clientid "2128753" --apikey "7cc90d26-33e4-499b..." --items %items%
```
```json title="Результат"
```

File diff suppressed because it is too large Load Diff

View File

@ -220,12 +220,56 @@ Function CreateUpdateProducts(Val ClientID, Val APIKey, Val ProductsArray) Expor
URL = "https://api-seller.ozon.ru/v3/product/import";
Headers = CreateRequestHeaders(ClientID, APIKey);
Response = SendObjectsDescription(ClientID, APIKey, ProductsArray, URL);
Parameters = New Structure;
OPI_Tools.AddField("items", ProductsArray, "Array", Parameters);
Return Response;
Response = OPI_Tools.Post(URL, Parameters, Headers);
EndFunction
// Create products by Ozon ID
// Creates a product by specified Ozon ID
//
// Note
// You can get an empty structure using the GetSimplifiedProductStructure method()
// It is not possible to update a product fields by Ozon ID
// Method at API documentation: [post /v1/product/import-by-sku](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ProductsArray - Array Of String - Array or one simplified structure of product fields - items
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function CreateProductByOzonID(Val ClientID, Val APIKey, Val ProductsArray) Export
URL = "https://api-seller.ozon.ru/v1/product/import-by-sku";
Response = SendObjectsDescription(ClientID, APIKey, ProductsArray, URL);
Return Response;
EndFunction
// Update products attributes
// Updates the attributes of the selected items
//
// Note
// You can get an empty structure using the GetAttributesUpdateStructure method()
// Method at API documentation: [post /v1/product/attributes/update](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// AttributesArray - Array Of String - Array or one structure of product attribute fields - items
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsAttributes(Val ClientID, Val APIKey, Val AttributesArray) Export
URL = "https://api-seller.ozon.ru/v1/product/attributes/update";
Response = SendObjectsDescription(ClientID, APIKey, AttributesArray, URL);
Return Response;
@ -304,6 +348,70 @@ Function GetProductStructure(Val Clear = False) Export
EndFunction
// Get simplified product structure
// Gets the structure for creating a product based on Ozon ID in the CreateProductByOzonID function()
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Product fields structure
Function GetSimplifiedProductStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("name" , "<name>");
ItemStructure.Insert("sku" , "<product identifier in the Ozon system>");
ItemStructure.Insert("offer_id" , "<offer>");
ItemStructure.Insert("price" , "<price>");
ItemStructure.Insert("old_price" , "<old price>");
ItemStructure.Insert("vat" , "<VAT rate, e.g. 0.2>");
ItemStructure.Insert("currency_code", "<currency>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
// Get attributes update structure
// Gets the structure for updating product characteristics in the UpdateProductsAttributes function()
//
// Note
// <Attributes> are structures with complex_id, id and values fields. For their quick creation there is the CompleteComplexAttribute method()
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Product fields structure
Function GetAttributesUpdateStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("offer_id" , "<offer>");
ItemStructure.Insert("attributes", "<array of updated of attributes>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
// Add product video
// Adds video to product attributes
//
@ -422,6 +530,17 @@ Function CreateRequestHeaders(Val ClientID, Val APIKey)
EndFunction
Function SendObjectsDescription(Val ClientID, Val APIKey, Val ArrayOfObjects, Val URL)
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("items", ArrayOfObjects, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
#EndRegion

View File

@ -3247,6 +3247,10 @@ Procedure OzonAPI_UploadingAndUpdatingProducts() Export
Ozon_AddProductVideo(TestParameters);
Ozon_AddProductVideoCover(TestParameters);
Ozon_CompleteComplexAttribute(TestParameters);
Ozon_CreateProductByOzonID(TestParameters);
Ozon_GetSimplifiedProductStructure(TestParameters);
Ozon_GetAttributesUpdateStructure(TestParameters);
Ozon_UpdateProductsAttributes(TestParameters);
EndProcedure
@ -4077,15 +4081,23 @@ Procedure Check_OzonListOfAttributesValues(Val Result)
EndProcedure
Procedure Check_OzonUploadTask(Val Result)
Procedure Check_OzonUploadTask(Val Result, Val Embedded = True)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["task_id"]).Заполнено();
If Embedded Then
TaskID = Result["result"]["task_id"];
Else
TaskID = Result["task_id"];
EndIf;
OPI_TestDataRetrieval.ExpectsThat(TaskID).Заполнено();
EndProcedure
Procedure Check_OzonNewProducts(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["status"]).Равно("imported");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["errors"].Count()).Равно(0);
EndProcedure
@ -11632,7 +11644,7 @@ Procedure Ozon_CreateUpdateProducts(FunctionParameters)
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductStructure", "Ozon");
OPI_TestDataRetrieval.WriteLog(Result, "CreateUpdateProducts", "Ozon");
Check_OzonUploadTask(Result);
@ -11640,7 +11652,7 @@ Procedure Ozon_CreateUpdateProducts(FunctionParameters)
OPI_TestDataRetrieval.WriteParameter("Ozon_TaskID", TaskID);
FunctionParameters.Insert("Ozon_TaskID", TaskID);
OPI_Tools.Pause(60);
OPI_Tools.Pause(120);
EndProcedure
@ -11750,6 +11762,120 @@ Procedure Ozon_GetProductCreationStatus(FunctionParameters)
OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus", "Ozon");
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
Check_OzonNewProducts(Result);
EndProcedure
Procedure Ozon_CreateProductByOzonID(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ItemStructure = New Structure;
ItemStructure.Insert("name" , "New imported product");
ItemStructure.Insert("sku" , 298789742);
ItemStructure.Insert("offer_id" , "91132");
ItemStructure.Insert("price" , "1100");
ItemStructure.Insert("old_price" , "1100");
ItemStructure.Insert("vat" , "0.1");
ItemStructure.Insert("currency_code", "RUB");
Result = OPI_Ozon.CreateProductByOzonID(ClientID, APIKey, ItemStructure);
// END
OPI_TestDataRetrieval.WriteLog(Result, "CreateProductByOzonID", "Ozon");
Check_OzonUploadTask(Result);
TaskID = Result["result"]["task_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_SkuTaskID", TaskID);
FunctionParameters.Insert("Ozon_SkuTaskID", TaskID);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus (SKU)", "Ozon");
Check_OzonNewProducts(Result);
EndProcedure
Procedure Ozon_GetSimplifiedProductStructure(FunctionParameters)
Result = OPI_Ozon.GetSimplifiedProductStructure();
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetSimplifiedProductStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_GetAttributesUpdateStructure(FunctionParameters)
Result = OPI_Ozon.GetAttributesUpdateStructure();
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetAttributesUpdateStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_UpdateProductsAttributes(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
AttributesStructure = New Structure("offer_id", "143210608");
CategoryAttribute1 = New Structure("dictionary_value_id,value", 971082156, "Speaker stand");
CategoryAttribute2 = New Structure("dictionary_value_id,value", 5060050 , "Samsung");
CategoryAttribute3 = New Structure("dictionary_value_id,value", 61576 , "red");
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 5076 , 0, CategoryAttribute1);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 85 , 0, CategoryAttribute2);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 10096, 0, CategoryAttribute3);
Result = OPI_Ozon.UpdateProductsAttributes(ClientID, APIKey, AttributesStructure);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsAttributes", "Ozon");
Check_OzonUploadTask(Result, False);
TaskID = Result["task_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_AttUpdateTaskID", TaskID);
FunctionParameters.Insert("Ozon_AttUpdateTaskID", TaskID);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus (att.)", "Ozon");
Check_OzonNewProducts(Result);
EndProcedure

View File

@ -220,12 +220,56 @@ Function CreateUpdateProducts(Val ClientID, Val APIKey, Val ProductsArray) Expor
URL = "https://api-seller.ozon.ru/v3/product/import";
Headers = CreateRequestHeaders(ClientID, APIKey);
Response = SendObjectsDescription(ClientID, APIKey, ProductsArray, URL);
Parameters = New Structure;
OPI_Tools.AddField("items", ProductsArray, "Array", Parameters);
Return Response;
Response = OPI_Tools.Post(URL, Parameters, Headers);
EndFunction
// Create products by Ozon ID
// Creates a product by specified Ozon ID
//
// Note
// You can get an empty structure using the GetSimplifiedProductStructure method()
// It is not possible to update a product fields by Ozon ID
// Method at API documentation: [post /v1/product/import-by-sku](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ProductsArray - Array Of String - Array or one simplified structure of product fields - items
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function CreateProductByOzonID(Val ClientID, Val APIKey, Val ProductsArray) Export
URL = "https://api-seller.ozon.ru/v1/product/import-by-sku";
Response = SendObjectsDescription(ClientID, APIKey, ProductsArray, URL);
Return Response;
EndFunction
// Update products attributes
// Updates the attributes of the selected items
//
// Note
// You can get an empty structure using the GetAttributesUpdateStructure method()
// Method at API documentation: [post /v1/product/attributes/update](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// AttributesArray - Array Of String - Array or one structure of product attribute fields - items
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsAttributes(Val ClientID, Val APIKey, Val AttributesArray) Export
URL = "https://api-seller.ozon.ru/v1/product/attributes/update";
Response = SendObjectsDescription(ClientID, APIKey, AttributesArray, URL);
Return Response;
@ -304,6 +348,70 @@ Function GetProductStructure(Val Clear = False) Export
EndFunction
// Get simplified product structure
// Gets the structure for creating a product based on Ozon ID in the CreateProductByOzonID function()
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Product fields structure
Function GetSimplifiedProductStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("name" , "<name>");
ItemStructure.Insert("sku" , "<product identifier in the Ozon system>");
ItemStructure.Insert("offer_id" , "<offer>");
ItemStructure.Insert("price" , "<price>");
ItemStructure.Insert("old_price" , "<old price>");
ItemStructure.Insert("vat" , "<VAT rate, e.g. 0.2>");
ItemStructure.Insert("currency_code", "<currency>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
// Get attributes update structure
// Gets the structure for updating product characteristics in the UpdateProductsAttributes function()
//
// Note
// <Attributes> are structures with complex_id, id and values fields. For their quick creation there is the CompleteComplexAttribute method()
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Product fields structure
Function GetAttributesUpdateStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("offer_id" , "<offer>");
ItemStructure.Insert("attributes", "<array of updated of attributes>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
// Add product video
// Adds video to product attributes
//
@ -422,6 +530,17 @@ Function CreateRequestHeaders(Val ClientID, Val APIKey)
EndFunction
Function SendObjectsDescription(Val ClientID, Val APIKey, Val ArrayOfObjects, Val URL)
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("items", ArrayOfObjects, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
#EndRegion

View File

@ -3247,6 +3247,10 @@ Procedure OzonAPI_UploadingAndUpdatingProducts() Export
Ozon_AddProductVideo(TestParameters);
Ozon_AddProductVideoCover(TestParameters);
Ozon_CompleteComplexAttribute(TestParameters);
Ozon_CreateProductByOzonID(TestParameters);
Ozon_GetSimplifiedProductStructure(TestParameters);
Ozon_GetAttributesUpdateStructure(TestParameters);
Ozon_UpdateProductsAttributes(TestParameters);
EndProcedure
@ -4077,15 +4081,23 @@ Procedure Check_OzonListOfAttributesValues(Val Result)
EndProcedure
Procedure Check_OzonUploadTask(Val Result)
Procedure Check_OzonUploadTask(Val Result, Val Embedded = True)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["task_id"]).Заполнено();
If Embedded Then
TaskID = Result["result"]["task_id"];
Else
TaskID = Result["task_id"];
EndIf;
OPI_TestDataRetrieval.ExpectsThat(TaskID).Заполнено();
EndProcedure
Procedure Check_OzonNewProducts(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["status"]).Равно("imported");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["errors"].Count()).Равно(0);
EndProcedure
@ -11632,7 +11644,7 @@ Procedure Ozon_CreateUpdateProducts(FunctionParameters)
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductStructure", "Ozon");
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "CreateUpdateProducts", "Ozon");
Check_OzonUploadTask(Result);
@ -11640,7 +11652,7 @@ Procedure Ozon_CreateUpdateProducts(FunctionParameters)
OPI_TestDataRetrieval.WriteParameter("Ozon_TaskID", TaskID);
FunctionParameters.Insert("Ozon_TaskID", TaskID);
OPI_Tools.Pause(60);
OPI_Tools.Pause(120);
EndProcedure
@ -11750,6 +11762,120 @@ Procedure Ozon_GetProductCreationStatus(FunctionParameters)
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus", "Ozon");
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
Check_OzonNewProducts(Result);
EndProcedure
Procedure Ozon_CreateProductByOzonID(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ItemStructure = New Structure;
ItemStructure.Insert("name" , "New imported product");
ItemStructure.Insert("sku" , 298789742);
ItemStructure.Insert("offer_id" , "91132");
ItemStructure.Insert("price" , "1100");
ItemStructure.Insert("old_price" , "1100");
ItemStructure.Insert("vat" , "0.1");
ItemStructure.Insert("currency_code", "RUB");
Result = OPI_Ozon.CreateProductByOzonID(ClientID, APIKey, ItemStructure);
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "CreateProductByOzonID", "Ozon");
Check_OzonUploadTask(Result);
TaskID = Result["result"]["task_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_SkuTaskID", TaskID);
FunctionParameters.Insert("Ozon_SkuTaskID", TaskID);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus (SKU)", "Ozon");
Check_OzonNewProducts(Result);
EndProcedure
Procedure Ozon_GetSimplifiedProductStructure(FunctionParameters)
Result = OPI_Ozon.GetSimplifiedProductStructure();
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetSimplifiedProductStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_GetAttributesUpdateStructure(FunctionParameters)
Result = OPI_Ozon.GetAttributesUpdateStructure();
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetAttributesUpdateStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_UpdateProductsAttributes(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
AttributesStructure = New Structure("offer_id", "143210608");
CategoryAttribute1 = New Structure("dictionary_value_id,value", 971082156, "Speaker stand");
CategoryAttribute2 = New Structure("dictionary_value_id,value", 5060050 , "Samsung");
CategoryAttribute3 = New Structure("dictionary_value_id,value", 61576 , "red");
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 5076 , 0, CategoryAttribute1);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 85 , 0, CategoryAttribute2);
OPI_Ozon.CompleteComplexAttribute(AttributesStructure, 10096, 0, CategoryAttribute3);
Result = OPI_Ozon.UpdateProductsAttributes(ClientID, APIKey, AttributesStructure);
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsAttributes", "Ozon");
Check_OzonUploadTask(Result, False);
TaskID = Result["task_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_AttUpdateTaskID", TaskID);
FunctionParameters.Insert("Ozon_AttUpdateTaskID", TaskID);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
WHile Result["result"]["items"][0]["status"] = "pending" Do
OPI_Tools.Pause(30);
Result = OPI_Ozon.GetProductCreationStatus(ClientID, APIKey, TaskID);
EndDo;
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductCreationStatus (att.)", "Ozon");
Check_OzonNewProducts(Result);
EndProcedure

View File

@ -255,6 +255,68 @@
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateProductByOzonID";
NewLine.МетодПоиска = "CREATEPRODUCTBYOZONID";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Creates a product by specified Ozon ID";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateProductByOzonID";
NewLine.МетодПоиска = "CREATEPRODUCTBYOZONID";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateProductByOzonID";
NewLine.МетодПоиска = "CREATEPRODUCTBYOZONID";
NewLine.Параметр = "--items";
NewLine.Описание = "Array or one simplified structure of product fields";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsAttributes";
NewLine.МетодПоиска = "UPDATEPRODUCTSATTRIBUTES";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Updates the attributes of the selected items";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsAttributes";
NewLine.МетодПоиска = "UPDATEPRODUCTSATTRIBUTES";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsAttributes";
NewLine.МетодПоиска = "UPDATEPRODUCTSATTRIBUTES";
NewLine.Параметр = "--items";
NewLine.Описание = "Array or one structure of product attribute fields";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
@ -297,6 +359,28 @@
NewLine.ОписаниеМетода = "Gets the structure of product standard fields";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetSimplifiedProductStructure";
NewLine.МетодПоиска = "GETSIMPLIFIEDPRODUCTSTRUCTURE";
NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Gets the structure for creating a product based on Ozon ID in the CreateProductByOzonID function()";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetAttributesUpdateStructure";
NewLine.МетодПоиска = "GETATTRIBUTESUPDATESTRUCTURE";
NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Gets the structure for updating product characteristics in the UpdateProductsAttributes function()";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";

View File

@ -210,8 +210,8 @@
// Метод в документации API: [post /v3/product/import](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsV3)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивТоваров - Массив Из Строка - Массив или одна структура полей описания товара - items
//
// Возвращаемое значение:
@ -220,12 +220,56 @@
URL = "https://api-seller.ozon.ru/v3/product/import";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивТоваров, URL);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивТоваров, "Массив", Параметры);
Возврат Ответ;
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
КонецФункции
// Создать товары по Ozon ID
// Создаёт товар по указанному Ozon ID
//
// Примечание:
// Получить пустую структуру можно при помощи метода ПолучитьСокращеннуюСтруктуруТовара()
// Обновить товар по Ozon ID нельзя
// Метод в документации API: [post /v1/product/import-by-sku](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивТоваров - Массив Из Строка - Массив или одна сокращенная структура полей описания товара - items
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция СоздатьТоварыПоOzonID(Знач IDКлиента, Знач КлючAPI, Знач МассивТоваров) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/import-by-sku";
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивТоваров, URL);
Возврат Ответ;
КонецФункции
// Обновить характеристики товаров
// Обновляет характеристики выбранных товаров
//
// Примечание:
// Получить пустую структуру можно при помощи метода ПолучитьСтруктуруОбновленияХарактеристик()
// Метод в документации API: [post /v1/product/attributes/update](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивХарактеристик - Массив Из Строка - Массив или одна структура полей атрибутов товара - items
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ОбновитьХарактеристикиТоваров(Знач IDКлиента, Знач КлючAPI, Знач МассивХарактеристик) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/attributes/update";
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивХарактеристик, URL);
Возврат Ответ;
@ -304,6 +348,70 @@
КонецФункции
// Получить сокращенную структуру товара
// Получает структуру для создания товара на основе Ozon ID в функции СоздатьТоварыПоOzonID()
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСокращеннуюСтруктуруТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "<наименование>");
СтруктураТовара.Вставить("sku" , "<идентификатор товара в системе Ozon>");
СтруктураТовара.Вставить("offer_id" , "<артикул>");
СтруктураТовара.Вставить("price" , "<цена>");
СтруктураТовара.Вставить("old_price" , "<старая цена>");
СтруктураТовара.Вставить("vat" , "<ставка ндс, например 0.2>");
СтруктураТовара.Вставить("currency_code", "<валюта>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Получить структуру обновления характеристик
// Получает структуру для обновления характеристик товара в функции ОбновитьХарактеристикиТоваров()
//
// Примечание:
// Характеристики представляют из себя структуры с полями complex_id, id и массивом values. Для их быстрого создания есть метод ДополнитьКомплексныйАтрибут()
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСтруктуруОбновленияХарактеристик(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offer_id" , "<артикул>");
СтруктураТовара.Вставить("attributes", "<массив обновляемых атрибутов>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Добавить видео товара
// Добавляет видео к атрибутам товара
//
@ -422,6 +530,17 @@
КонецФункции
Функция ОтправитьОписанияОбъектов(Знач IDКлиента, Знач КлючAPI, Знач МассивОбъектов, Знач URL)
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3247,6 +3247,10 @@
Ozon_ДобавитьВидеоТовара(ПараметрыТеста);
Ozon_ДобавитьВидеообложкуТовара(ПараметрыТеста);
Ozon_ДополнитьКомплексныйАтрибут(ПараметрыТеста);
Ozon_СоздатьТоварыПоOzonID(ПараметрыТеста);
Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыТеста);
Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыТеста);
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4077,15 +4081,23 @@
КонецПроцедуры
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат)
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат, Знач Вложенный = Истина)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["task_id"]).Заполнено();
Если Вложенный Тогда
IDЗадачи = Результат["result"]["task_id"];
Иначе
IDЗадачи = Результат["task_id"];
КонецЕсли;
OPI_ПолучениеДанныхТестов.ОжидаетЧто(IDЗадачи).Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонНовыеТовары(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["status"]).Равно("imported");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["errors"].Количество()).Равно(0);
КонецПроцедуры
@ -11632,7 +11644,7 @@
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруТовара", "Ozon");
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОбновитьТовары", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
@ -11640,7 +11652,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_TaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_TaskID", IDЗадания);
OPI_Инструменты.Пауза(60);
OPI_Инструменты.Пауза(120);
КонецПроцедуры
@ -11750,6 +11762,120 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара", "Ozon");
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_СоздатьТоварыПоOzonID(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 298789742);
СтруктураТовара.Вставить("offer_id" , "91132");
СтруктураТовара.Вставить("price" , "1100");
СтруктураТовара.Вставить("old_price" , "1100");
СтруктураТовара.Вставить("vat" , "0.1");
СтруктураТовара.Вставить("currency_code", "RUB");
Результат = OPI_Ozon.СоздатьТоварыПоOzonID(IDКлиента, КлючAPI, СтруктураТовара);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТоварыПоOzonID", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
IDЗадачи = Результат["result"]["task_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_SkuTaskID", IDЗадачи);
ПараметрыФункции.Вставить("Ozon_SkuTaskID", IDЗадачи);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара (SKU)", "Ozon");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСокращеннуюСтруктуруТовара();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСокращеннуюСтруктуруТовара", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСтруктуруОбновленияХарактеристик();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруОбновленияХарактеристик", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ОбновитьХарактеристикиТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СтруктураХаракетристик = Новый Структура("offer_id", "143210608");
АтрибутКатегории1 = Новый Структура("dictionary_value_id,value", 971082156, "Стойка для акустической системы");
АтрибутКатегории2 = Новый Структура("dictionary_value_id,value", 5060050 , "Samsung");
АтрибутКатегории3 = Новый Структура("dictionary_value_id,value", 61576 , "красный");
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 5076 , 0, АтрибутКатегории1);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 85 , 0, АтрибутКатегории2);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 10096, 0, АтрибутКатегории3);
Результат = OPI_Ozon.ОбновитьХарактеристикиТоваров(IDКлиента, КлючAPI, СтруктураХаракетристик);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьХарактеристикиТоваров", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат, Ложь);
IDЗадачи = Результат["task_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_AttUpdateTaskID", IDЗадачи);
ПараметрыФункции.Вставить("Ozon_AttUpdateTaskID", IDЗадачи);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара (хар.)", "Ozon");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры

View File

@ -210,8 +210,8 @@
// Метод в документации API: [post /v3/product/import](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsV3)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивТоваров - Массив Из Строка - Массив или одна структура полей описания товара - items
//
// Возвращаемое значение:
@ -220,12 +220,56 @@
URL = "https://api-seller.ozon.ru/v3/product/import";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивТоваров, URL);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивТоваров, "Массив", Параметры);
Возврат Ответ;
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
КонецФункции
// Создать товары по Ozon ID
// Создаёт товар по указанному Ozon ID
//
// Примечание:
// Получить пустую структуру можно при помощи метода ПолучитьСокращеннуюСтруктуруТовара()
// Обновить товар по Ozon ID нельзя
// Метод в документации API: [post /v1/product/import-by-sku](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsBySKU)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивТоваров - Массив Из Строка - Массив или одна сокращенная структура полей описания товара - items
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция СоздатьТоварыПоOzonID(Знач IDКлиента, Знач КлючAPI, Знач МассивТоваров) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/import-by-sku";
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивТоваров, URL);
Возврат Ответ;
КонецФункции
// Обновить характеристики товаров
// Обновляет характеристики выбранных товаров
//
// Примечание:
// Получить пустую структуру можно при помощи метода ПолучитьСтруктуруОбновленияХарактеристик()
// Метод в документации API: [post /v1/product/attributes/update](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateAttributes)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// МассивХарактеристик - Массив Из Строка - Массив или одна структура полей атрибутов товара - items
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ОбновитьХарактеристикиТоваров(Знач IDКлиента, Знач КлючAPI, Знач МассивХарактеристик) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/attributes/update";
Ответ = ОтправитьОписанияОбъектов(IDКлиента, КлючAPI, МассивХарактеристик, URL);
Возврат Ответ;
@ -304,6 +348,70 @@
КонецФункции
// Получить сокращенную структуру товара
// Получает структуру для создания товара на основе Ozon ID в функции СоздатьТоварыПоOzonID()
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСокращеннуюСтруктуруТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "<наименование>");
СтруктураТовара.Вставить("sku" , "<идентификатор товара в системе Ozon>");
СтруктураТовара.Вставить("offer_id" , "<артикул>");
СтруктураТовара.Вставить("price" , "<цена>");
СтруктураТовара.Вставить("old_price" , "<старая цена>");
СтруктураТовара.Вставить("vat" , "<ставка ндс, например 0.2>");
СтруктураТовара.Вставить("currency_code", "<валюта>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Получить структуру обновления характеристик
// Получает структуру для обновления характеристик товара в функции ОбновитьХарактеристикиТоваров()
//
// Примечание:
// Характеристики представляют из себя структуры с полями complex_id, id и массивом values. Для их быстрого создания есть метод ДополнитьКомплексныйАтрибут()
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей товара
Функция ПолучитьСтруктуруОбновленияХарактеристик(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offer_id" , "<артикул>");
СтруктураТовара.Вставить("attributes", "<массив обновляемых атрибутов>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Добавить видео товара
// Добавляет видео к атрибутам товара
//
@ -422,6 +530,17 @@
КонецФункции
Функция ОтправитьОписанияОбъектов(Знач IDКлиента, Знач КлючAPI, Знач МассивОбъектов, Знач URL)
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3247,6 +3247,10 @@
Ozon_ДобавитьВидеоТовара(ПараметрыТеста);
Ozon_ДобавитьВидеообложкуТовара(ПараметрыТеста);
Ozon_ДополнитьКомплексныйАтрибут(ПараметрыТеста);
Ozon_СоздатьТоварыПоOzonID(ПараметрыТеста);
Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыТеста);
Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыТеста);
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4077,15 +4081,23 @@
КонецПроцедуры
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат)
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат, Знач Вложенный = Истина)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["task_id"]).Заполнено();
Если Вложенный Тогда
IDЗадачи = Результат["result"]["task_id"];
Иначе
IDЗадачи = Результат["task_id"];
КонецЕсли;
OPI_ПолучениеДанныхТестов.ОжидаетЧто(IDЗадачи).Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонНовыеТовары(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["status"]).Равно("imported");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["errors"].Количество()).Равно(0);
КонецПроцедуры
@ -11632,7 +11644,7 @@
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруТовара", "Ozon");
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОбновитьТовары", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
@ -11640,7 +11652,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_TaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_TaskID", IDЗадания);
OPI_Инструменты.Пауза(60);
OPI_Инструменты.Пауза(120);
КонецПроцедуры
@ -11750,6 +11762,120 @@
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара", "Ozon");
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_СоздатьТоварыПоOzonID(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 298789742);
СтруктураТовара.Вставить("offer_id" , "91132");
СтруктураТовара.Вставить("price" , "1100");
СтруктураТовара.Вставить("old_price" , "1100");
СтруктураТовара.Вставить("vat" , "0.1");
СтруктураТовара.Вставить("currency_code", "RUB");
Результат = OPI_Ozon.СоздатьТоварыПоOzonID(IDКлиента, КлючAPI, СтруктураТовара);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьТоварыПоOzonID", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
IDЗадачи = Результат["result"]["task_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_SkuTaskID", IDЗадачи);
ПараметрыФункции.Вставить("Ozon_SkuTaskID", IDЗадачи);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара (SKU)", "Ozon");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСокращеннуюСтруктуруТовара();
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСокращеннуюСтруктуруТовара", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСтруктуруОбновленияХарактеристик();
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруОбновленияХарактеристик", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ОбновитьХарактеристикиТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СтруктураХаракетристик = Новый Структура("offer_id", "143210608");
АтрибутКатегории1 = Новый Структура("dictionary_value_id,value", 971082156, "Стойка для акустической системы");
АтрибутКатегории2 = Новый Структура("dictionary_value_id,value", 5060050 , "Samsung");
АтрибутКатегории3 = Новый Структура("dictionary_value_id,value", 61576 , "красный");
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 5076 , 0, АтрибутКатегории1);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 85 , 0, АтрибутКатегории2);
OPI_Ozon.ДополнитьКомплексныйАтрибут(СтруктураХаракетристик, 10096, 0, АтрибутКатегории3);
Результат = OPI_Ozon.ОбновитьХарактеристикиТоваров(IDКлиента, КлючAPI, СтруктураХаракетристик);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьХарактеристикиТоваров", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат, Ложь);
IDЗадачи = Результат["task_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_AttUpdateTaskID", IDЗадачи);
ПараметрыФункции.Вставить("Ozon_AttUpdateTaskID", IDЗадачи);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара (хар.)", "Ozon");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры

View File

@ -259,6 +259,76 @@
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьТоварыПоOzonID";
НоваяСтрока.МетодПоиска = "СОЗДАТЬТОВАРЫПОOZONID";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Создаёт товар по указанному Ozon ID
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьТоварыПоOzonID";
НоваяСтрока.МетодПоиска = "СОЗДАТЬТОВАРЫПОOZONID";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьТоварыПоOzonID";
НоваяСтрока.МетодПоиска = "СОЗДАТЬТОВАРЫПОOZONID";
НоваяСтрока.Параметр = "--items";
НоваяСтрока.Описание = "Массив или одна сокращенная структура полей описания товара";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьХарактеристикиТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬХАРАКТЕРИСТИКИТОВАРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Обновляет характеристики выбранных товаров
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьХарактеристикиТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬХАРАКТЕРИСТИКИТОВАРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьХарактеристикиТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬХАРАКТЕРИСТИКИТОВАРОВ";
НоваяСтрока.Параметр = "--items";
НоваяСтрока.Описание = "Массив или одна структура полей атрибутов товара";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
@ -301,6 +371,28 @@
НоваяСтрока.ОписаниеМетода = "Получает структуру стандартных полей товара";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСокращеннуюСтруктуруТовара";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСОКРАЩЕННУЮСТРУКТУРУТОВАРА";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для создания товара на основе Ozon ID в функции СоздатьТоварыПоOzonID()";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСтруктуруОбновленияХарактеристик";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУОБНОВЛЕНИЯХАРАКТЕРИСТИК";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для обновления характеристик товара в функции ОбновитьХарактеристикиТоваров()";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";