1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-04 10:34:52 +02:00

Merge branch 'Bayselonarrend:main' into main

This commit is contained in:
EvgeniyOst 2024-08-24 18:33:47 +03:00 committed by GitHub
commit 433d362478
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
83 changed files with 8318 additions and 4019 deletions

Binary file not shown.

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,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" , 1626044001);
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,11 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
IDArray = New Array;
IDArray.Add("143210608");
Filter = New Structure;
Filter.Insert("visibility" , "ALL");
Filter.Insert("offer_id" , IDArray);
Result = OPI_Ozon.GetProductList(ClientID, APIKey, Filter);

View File

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

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,13 @@
 {
"result": 32,
"time": {
"start": 1724490194.07134,
"finish": 1724490194.80748,
"duration": 0.736131191253662,
"processing": 0.710794925689697,
"date_start": "2024-08-24T09:03:14+00:00",
"date_finish": "2024-08-24T09:03:14+00:00",
"operating_reset_at": 1724490794,
"operating": 0.710777044296265
}
}

View File

@ -0,0 +1,13 @@
 {
"result": 34,
"time": {
"start": 1724490195.28511,
"finish": 1724490195.73827,
"duration": 0.4531569480896,
"processing": 0.428863048553467,
"date_start": "2024-08-24T09:03:15+00:00",
"date_finish": "2024-08-24T09:03:15+00:00",
"operating_reset_at": 1724490795,
"operating": 0.428843021392822
}
}

View File

@ -0,0 +1,13 @@
 {
"result": true,
"time": {
"start": 1724490198.71165,
"finish": 1724490199.00301,
"duration": 0.291359901428223,
"processing": 0.262908935546875,
"date_start": "2024-08-24T09:03:18+00:00",
"date_finish": "2024-08-24T09:03:19+00:00",
"operating_reset_at": 1724490798,
"operating": 0.262879848480225
}
}

View File

@ -0,0 +1,13 @@
 {
"result": true,
"time": {
"start": 1724490199.49719,
"finish": 1724490199.64436,
"duration": 0.147169828414917,
"processing": 0.123839855194092,
"date_start": "2024-08-24T09:03:19+00:00",
"date_finish": "2024-08-24T09:03:19+00:00",
"operating_reset_at": 1724490799,
"operating": 0.123820066452026
}
}

View File

@ -0,0 +1,87 @@
 {
"result": {
"ID": "32",
"TITLE": "MegaClient",
"HONORIFIC": null,
"NAME": "John",
"SECOND_NAME": null,
"LAST_NAME": "Doe",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "32",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-24T09:03:14+00:00",
"DATE_MODIFY": "2024-08-24T09:03:14+00:00",
"DATE_CLOSED": "2024-08-24T09:03:14+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-24T09:03:14+00:00",
"ADDRESS": "Pushkin st., b. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Russia",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "62",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-24T09:03:14+00:00",
"EMAIL": [
{
"ID": "146",
"VALUE_TYPE": "HOME",
"VALUE": "yo@example.com",
"TYPE_ID": "EMAIL"
},
{
"ID": "148",
"VALUE_TYPE": "WORK",
"VALUE": "hi@example.com",
"TYPE_ID": "EMAIL"
}
],
"PHONE": [
{
"ID": "150",
"VALUE_TYPE": "WORK",
"VALUE": "88005553535",
"TYPE_ID": "PHONE"
}
]
},
"time": {
"start": 1724490196.26846,
"finish": 1724490196.31403,
"duration": 0.0455701351165772,
"processing": 0.0218369960784912,
"date_start": "2024-08-24T09:03:16+00:00",
"date_finish": "2024-08-24T09:03:16+00:00",
"operating_reset_at": 1724490796,
"operating": 0
}
}

View File

@ -0,0 +1,87 @@
 {
"result": {
"ID": "34",
"TITLE": "MegaClient",
"HONORIFIC": null,
"NAME": "Ivan",
"SECOND_NAME": null,
"LAST_NAME": "Ivanov",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "34",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-24T09:03:15+00:00",
"DATE_MODIFY": "2024-08-24T09:03:15+00:00",
"DATE_CLOSED": "2024-08-24T09:03:15+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-24T09:03:15+00:00",
"ADDRESS": "Pushkin st., b. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Russia",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "66",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-24T09:03:15+00:00",
"EMAIL": [
{
"ID": "158",
"VALUE_TYPE": "HOME",
"VALUE": "yo@example.com",
"TYPE_ID": "EMAIL"
},
{
"ID": "160",
"VALUE_TYPE": "WORK",
"VALUE": "hi@example.com",
"TYPE_ID": "EMAIL"
}
],
"PHONE": [
{
"ID": "162",
"VALUE_TYPE": "WORK",
"VALUE": "88005553535",
"TYPE_ID": "PHONE"
}
]
},
"time": {
"start": 1724490196.80887,
"finish": 1724490196.85079,
"duration": 0.0419189929962158,
"processing": 0.0176949501037598,
"date_start": "2024-08-24T09:03:16+00:00",
"date_finish": "2024-08-24T09:03:16+00:00",
"operating_reset_at": 1724490796,
"operating": 0
}
}

View File

@ -0,0 +1,23 @@
 {
"ID": "<lead identifier>",
"ASSIGNED_BY_ID": "<responsible person identifier",
"COMPANY_ID": "<company identifier>",
"COMPANY_TITLE": "<company name>",
"CONTACT_ID": "<contact identifier>",
"CREATED_BY_ID": "<author identifier>",
"CURRENCY_ID": "<currency identifier>",
"DATE_CLOSED": "<closing date>",
"DATE_CREATE": "<date of creation>",
"DATE_MODIFY": "<date of change>",
"EMAIL": "<email address>",
"HAS_EMAIL": "<email address is filled in (Y|N)>",
"HAS_PHONE": "<phone number is filled in (Y|N)>",
"IS_RETURN_CUSTOMER": "<repeat lead (Y|N)>",
"MODIFY_BY_ID": "<author ID of the last change>",
"MOVED_BY_ID": "<identifier of the author of moving the lead to the current stage>",
"MOVED_TIME": "<date of moving the lead to the current stage>",
"OPENED": "<feature is available for all (Y|N)>",
"OPPORTUNITY": "<expected amount>",
"STATUS_ID": "<status identifier>",
"TITLE": "<lead name (can be searched by template [%_])>"
}

View File

@ -0,0 +1,534 @@
 {
"result": {
"ID": {
"type": "integer",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "ID"
},
"TITLE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Название лида"
},
"HONORIFIC": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "HONORIFIC",
"title": "Обращение"
},
"NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Имя"
},
"SECOND_NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Отчество"
},
"LAST_NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Фамилия"
},
"BIRTHDATE": {
"type": "date",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата рождения"
},
"COMPANY_TITLE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Название компании"
},
"SOURCE_ID": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "SOURCE",
"title": "Источник"
},
"SOURCE_DESCRIPTION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дополнительно об источнике"
},
"STATUS_ID": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "STATUS",
"title": "Стадия"
},
"STATUS_DESCRIPTION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дополнительно о стадии"
},
"STATUS_SEMANTIC_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Состояние статуса"
},
"POST": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Должность"
},
"ADDRESS": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Адрес"
},
"ADDRESS_2": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Адрес (стр. 2)"
},
"ADDRESS_CITY": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Город"
},
"ADDRESS_POSTAL_CODE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Почтовый индекс"
},
"ADDRESS_REGION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Район"
},
"ADDRESS_PROVINCE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Область"
},
"ADDRESS_COUNTRY": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Страна"
},
"ADDRESS_COUNTRY_CODE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Код страны"
},
"ADDRESS_LOC_ADDR_ID": {
"type": "integer",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Идентификатор адреса местоположения"
},
"CURRENCY_ID": {
"type": "crm_currency",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Валюта"
},
"OPPORTUNITY": {
"type": "double",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Сумма"
},
"IS_MANUAL_OPPORTUNITY": {
"type": "char",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "IS_MANUAL_OPPORTUNITY"
},
"OPENED": {
"type": "char",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Доступен для всех"
},
"COMMENTS": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Комментарий"
},
"HAS_PHONE": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задан телефон"
},
"HAS_EMAIL": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задан e-mail"
},
"HAS_IMOL": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задана открытая линия"
},
"ASSIGNED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Ответственный"
},
"CREATED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Кем создан"
},
"MODIFY_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Кем изменен"
},
"MOVED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "MOVED_BY_ID"
},
"DATE_CREATE": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата создания"
},
"DATE_MODIFY": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата изменения"
},
"MOVED_TIME": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "MOVED_TIME"
},
"COMPANY_ID": {
"type": "crm_company",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Компания",
"settings": {
"parentEntityTypeId": 4
}
},
"CONTACT_ID": {
"type": "crm_contact",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"isDeprecated": true,
"title": "Контакт"
},
"CONTACT_IDS": {
"type": "crm_contact",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "CONTACT_IDS"
},
"IS_RETURN_CUSTOMER": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Повторный лид"
},
"DATE_CLOSED": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата завершения"
},
"ORIGINATOR_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Внешний источник"
},
"ORIGIN_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Идентификатор элемента во внешнем источнике"
},
"UTM_SOURCE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Рекламная система"
},
"UTM_MEDIUM": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Тип трафика"
},
"UTM_CAMPAIGN": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Обозначение рекламной кампании"
},
"UTM_CONTENT": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Содержание кампании"
},
"UTM_TERM": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Условие поиска кампании"
},
"LAST_ACTIVITY_TIME": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "LAST_ACTIVITY_TIME"
},
"LAST_ACTIVITY_BY": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "LAST_ACTIVITY_BY"
},
"PHONE": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Телефон"
},
"EMAIL": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "E-mail"
},
"WEB": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Сайт"
},
"IM": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Мессенджер"
},
"LINK": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "LINK"
}
},
"time": {
"start": 1724490192.94463,
"finish": 1724490192.9824,
"duration": 0.0377709865570068,
"processing": 0.0116209983825684,
"date_start": "2024-08-24T09:03:12+00:00",
"date_finish": "2024-08-24T09:03:12+00:00",
"operating_reset_at": 1724490792,
"operating": 0
}
}

View File

@ -0,0 +1,534 @@
 {
"result": {
"ID": {
"type": "integer",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "ID"
},
"TITLE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Название лида"
},
"HONORIFIC": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "HONORIFIC",
"title": "Обращение"
},
"NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Имя"
},
"SECOND_NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Отчество"
},
"LAST_NAME": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Фамилия"
},
"BIRTHDATE": {
"type": "date",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата рождения"
},
"COMPANY_TITLE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Название компании"
},
"SOURCE_ID": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "SOURCE",
"title": "Источник"
},
"SOURCE_DESCRIPTION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дополнительно об источнике"
},
"STATUS_ID": {
"type": "crm_status",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"statusType": "STATUS",
"title": "Стадия"
},
"STATUS_DESCRIPTION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дополнительно о стадии"
},
"STATUS_SEMANTIC_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Состояние статуса"
},
"POST": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Должность"
},
"ADDRESS": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Адрес"
},
"ADDRESS_2": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Адрес (стр. 2)"
},
"ADDRESS_CITY": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Город"
},
"ADDRESS_POSTAL_CODE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Почтовый индекс"
},
"ADDRESS_REGION": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Район"
},
"ADDRESS_PROVINCE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Область"
},
"ADDRESS_COUNTRY": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Страна"
},
"ADDRESS_COUNTRY_CODE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Код страны"
},
"ADDRESS_LOC_ADDR_ID": {
"type": "integer",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Идентификатор адреса местоположения"
},
"CURRENCY_ID": {
"type": "crm_currency",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Валюта"
},
"OPPORTUNITY": {
"type": "double",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Сумма"
},
"IS_MANUAL_OPPORTUNITY": {
"type": "char",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "IS_MANUAL_OPPORTUNITY"
},
"OPENED": {
"type": "char",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Доступен для всех"
},
"COMMENTS": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Комментарий"
},
"HAS_PHONE": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задан телефон"
},
"HAS_EMAIL": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задан e-mail"
},
"HAS_IMOL": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Задана открытая линия"
},
"ASSIGNED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Ответственный"
},
"CREATED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Кем создан"
},
"MODIFY_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Кем изменен"
},
"MOVED_BY_ID": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "MOVED_BY_ID"
},
"DATE_CREATE": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата создания"
},
"DATE_MODIFY": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата изменения"
},
"MOVED_TIME": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "MOVED_TIME"
},
"COMPANY_ID": {
"type": "crm_company",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Компания",
"settings": {
"parentEntityTypeId": 4
}
},
"CONTACT_ID": {
"type": "crm_contact",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"isDeprecated": true,
"title": "Контакт"
},
"CONTACT_IDS": {
"type": "crm_contact",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "CONTACT_IDS"
},
"IS_RETURN_CUSTOMER": {
"type": "char",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Повторный лид"
},
"DATE_CLOSED": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Дата завершения"
},
"ORIGINATOR_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Внешний источник"
},
"ORIGIN_ID": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Идентификатор элемента во внешнем источнике"
},
"UTM_SOURCE": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Рекламная система"
},
"UTM_MEDIUM": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Тип трафика"
},
"UTM_CAMPAIGN": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Обозначение рекламной кампании"
},
"UTM_CONTENT": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Содержание кампании"
},
"UTM_TERM": {
"type": "string",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "Условие поиска кампании"
},
"LAST_ACTIVITY_TIME": {
"type": "datetime",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "LAST_ACTIVITY_TIME"
},
"LAST_ACTIVITY_BY": {
"type": "user",
"isRequired": false,
"isReadOnly": true,
"isImmutable": false,
"isMultiple": false,
"isDynamic": false,
"title": "LAST_ACTIVITY_BY"
},
"PHONE": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Телефон"
},
"EMAIL": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "E-mail"
},
"WEB": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Сайт"
},
"IM": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "Мессенджер"
},
"LINK": {
"type": "crm_multifield",
"isRequired": false,
"isReadOnly": false,
"isImmutable": false,
"isMultiple": true,
"isDynamic": false,
"title": "LINK"
}
},
"time": {
"start": 1724490193.53042,
"finish": 1724490193.56597,
"duration": 0.035545825958252,
"processing": 0.0106868743896484,
"date_start": "2024-08-24T09:03:13+00:00",
"date_finish": "2024-08-24T09:03:13+00:00",
"operating_reset_at": 1724490793,
"operating": 0
}
}

View File

@ -0,0 +1,598 @@
 {
"result": [
{
"ID": "2",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "2",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "N",
"HAS_EMAIL": "N",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T16:25:57+00:00",
"DATE_MODIFY": "2024-08-22T16:25:58+00:00",
"DATE_CLOSED": "2024-08-22T16:25:58+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T16:25:58+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "2",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T16:25:57+00:00"
},
{
"ID": "4",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "4",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "N",
"HAS_EMAIL": "N",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T16:40:17+00:00",
"DATE_MODIFY": "2024-08-22T16:40:17+00:00",
"DATE_CLOSED": "2024-08-22T16:40:17+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T16:40:17+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "6",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T16:40:17+00:00"
},
{
"ID": "6",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Иван",
"SECOND_NAME": null,
"LAST_NAME": "Иванов",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "6",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "N",
"HAS_EMAIL": "N",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T16:40:18+00:00",
"DATE_MODIFY": "2024-08-22T16:40:18+00:00",
"DATE_CLOSED": "2024-08-22T16:40:18+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T16:40:18+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "10",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T16:40:18+00:00"
},
{
"ID": "8",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "8",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T16:48:12+00:00",
"DATE_MODIFY": "2024-08-22T16:48:12+00:00",
"DATE_CLOSED": "2024-08-22T16:48:12+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T16:48:12+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "14",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T16:48:12+00:00"
},
{
"ID": "10",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Иван",
"SECOND_NAME": null,
"LAST_NAME": "Иванов",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "10",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T16:48:13+00:00",
"DATE_MODIFY": "2024-08-22T16:48:13+00:00",
"DATE_CLOSED": "2024-08-22T16:48:13+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T16:48:13+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "18",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T16:48:13+00:00"
},
{
"ID": "12",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "12",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:00:19+00:00",
"DATE_MODIFY": "2024-08-22T17:00:20+00:00",
"DATE_CLOSED": "2024-08-22T17:00:20+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:00:20+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "22",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:00:19+00:00"
},
{
"ID": "14",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Иван",
"SECOND_NAME": null,
"LAST_NAME": "Иванов",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "14",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:00:20+00:00",
"DATE_MODIFY": "2024-08-22T17:00:20+00:00",
"DATE_CLOSED": "2024-08-22T17:00:20+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:00:20+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "26",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:00:20+00:00"
},
{
"ID": "16",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "16",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:01:03+00:00",
"DATE_MODIFY": "2024-08-22T17:01:03+00:00",
"DATE_CLOSED": "2024-08-22T17:01:03+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:01:03+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "30",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:01:03+00:00"
},
{
"ID": "18",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Иван",
"SECOND_NAME": null,
"LAST_NAME": "Иванов",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "18",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:01:03+00:00",
"DATE_MODIFY": "2024-08-22T17:01:04+00:00",
"DATE_CLOSED": "2024-08-22T17:01:04+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:01:04+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "34",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:01:03+00:00"
},
{
"ID": "20",
"TITLE": "Суперклиент",
"HONORIFIC": null,
"NAME": "Петр",
"SECOND_NAME": null,
"LAST_NAME": "Петров",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "20",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:01:39+00:00",
"DATE_MODIFY": "2024-08-22T17:01:40+00:00",
"DATE_CLOSED": "2024-08-22T17:01:39+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:01:39+00:00",
"ADDRESS": "ул. Лермонтова, д. 20",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Беларусь",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "38",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:01:39+00:00"
},
{
"ID": "22",
"TITLE": "Мегаклиент",
"HONORIFIC": null,
"NAME": "Иван",
"SECOND_NAME": null,
"LAST_NAME": "Иванов",
"COMPANY_TITLE": null,
"COMPANY_ID": null,
"CONTACT_ID": "22",
"IS_RETURN_CUSTOMER": "N",
"BIRTHDATE": "",
"SOURCE_ID": null,
"SOURCE_DESCRIPTION": null,
"STATUS_ID": "CONVERTED",
"STATUS_DESCRIPTION": null,
"POST": null,
"COMMENTS": null,
"CURRENCY_ID": "BYN",
"OPPORTUNITY": "0.00",
"IS_MANUAL_OPPORTUNITY": "N",
"HAS_PHONE": "Y",
"HAS_EMAIL": "Y",
"HAS_IMOL": "N",
"ASSIGNED_BY_ID": "1",
"CREATED_BY_ID": "1",
"MODIFY_BY_ID": "1",
"DATE_CREATE": "2024-08-22T17:01:39+00:00",
"DATE_MODIFY": "2024-08-22T17:01:40+00:00",
"DATE_CLOSED": "2024-08-22T17:01:40+00:00",
"STATUS_SEMANTIC_ID": "S",
"OPENED": "N",
"ORIGINATOR_ID": null,
"ORIGIN_ID": null,
"MOVED_BY_ID": "1",
"MOVED_TIME": "2024-08-22T17:01:40+00:00",
"ADDRESS": "ул. Пушкина, д. 10",
"ADDRESS_2": null,
"ADDRESS_CITY": null,
"ADDRESS_POSTAL_CODE": null,
"ADDRESS_REGION": null,
"ADDRESS_PROVINCE": null,
"ADDRESS_COUNTRY": "Россия",
"ADDRESS_COUNTRY_CODE": null,
"ADDRESS_LOC_ADDR_ID": "42",
"UTM_SOURCE": null,
"UTM_MEDIUM": null,
"UTM_CAMPAIGN": null,
"UTM_CONTENT": null,
"UTM_TERM": null,
"LAST_ACTIVITY_BY": "1",
"LAST_ACTIVITY_TIME": "2024-08-22T17:01:39+00:00"
}
],
"total": 11,
"time": {
"start": 1724490191.76485,
"finish": 1724490191.83132,
"duration": 0.0664689540863037,
"processing": 0.0417559146881104,
"date_start": "2024-08-24T09:03:11+00:00",
"date_finish": "2024-08-24T09:03:11+00:00",
"operating_reset_at": 1724490791,
"operating": 0
}
}

View File

@ -0,0 +1,14 @@
 {
"result": [],
"total": 0,
"time": {
"start": 1724490192.37401,
"finish": 1724490192.41267,
"duration": 0.0386598110198975,
"processing": 0.0151891708374023,
"date_start": "2024-08-24T09:03:12+00:00",
"date_finish": "2024-08-24T09:03:12+00:00",
"operating_reset_at": 1724490792,
"operating": 0
}
}

View File

@ -0,0 +1,13 @@
 {
"result": true,
"time": {
"start": 1724490197.38124,
"finish": 1724490197.50951,
"duration": 0.128268003463745,
"processing": 0.104852914810181,
"date_start": "2024-08-24T09:03:17+00:00",
"date_finish": "2024-08-24T09:03:17+00:00",
"operating_reset_at": 1724490797,
"operating": 0.104832887649536
}
}

View File

@ -0,0 +1,13 @@
 {
"result": true,
"time": {
"start": 1724490198.00253,
"finish": 1724490198.16141,
"duration": 0.158878087997437,
"processing": 0.13422703742981,
"date_start": "2024-08-24T09:03:18+00:00",
"date_finish": "2024-08-24T09:03:18+00:00",
"operating_reset_at": 1724490798,
"operating": 0.134207010269165
}
}

View File

@ -0,0 +1,6 @@
 {
"result": {
"task_id": 1285532034,
"unmatched_sku_list": []
}
}

View File

@ -0,0 +1,5 @@
 {
"result": {
"task_id": 1285530068
}
}

View File

@ -0,0 +1,25 @@
 {
"result": {
"items": [
{
"offer_id": "91132",
"product_id": 1156646653,
"status": "imported",
"errors": [
{
"code": "foreign_seller_card_copy_denied",
"field": "sku",
"attribute_id": 0,
"state": "new",
"level": "error",
"description": "Невозможно скопировать товар — карточка принадлежит продавцу из другой страны. Убедитесь, что вы копируете карточку продавца из вашей страны.",
"optional_description_elements": {},
"attribute_name": "",
"message": "Невозможно скопировать товар — карточка принадлежит продавцу из другой страны. Убедитесь, что вы копируете карточку продавца из вашей страны."
}
]
}
],
"total": 1
}
}

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,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

@ -0,0 +1,11 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
МассивID = Новый Массив;
МассивID.Добавить("143210608");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
Фильтр.Вставить("offer_id" , МассивID);
Результат = OPI_Ozon.ПолучитьСписокТоваров(IDКлиента, КлючAPI, Фильтр);

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 @@
 Результат = OPI_Ozon.ПолучитьСтруктуруФильтраТоваров();

View File

@ -0,0 +1,13 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 1626044001);
СтруктураТовара.Вставить("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="Результат"
```

View File

@ -0,0 +1,3 @@
 {
"task_id": 1285618976
}

View File

@ -0,0 +1,9 @@
 {
"name": "<наименование>",
"sku": "<идентификатор товара в системе Ozon>",
"offer_id": "<артикул>",
"price": "<цена>",
"old_price": "<старая цена>",
"vat": "<ставка ндс, например 0.2>",
"currency_code": "<валюта>"
}

View File

@ -0,0 +1,16 @@
 {
"result": {
"items": [
{
"product_id": 1111588191,
"offer_id": "143210608",
"is_fbo_visible": false,
"is_fbs_visible": false,
"archived": false,
"is_discounted": false
}
],
"total": 1,
"last_id": "WzExMTE1ODgxOTEsMTExMTU4ODE5MV0="
}
}

View File

@ -0,0 +1,13 @@
 {
"result": {
"items": [
{
"offer_id": "91132",
"product_id": 1156646653,
"status": "imported",
"errors": []
}
],
"total": 1
}
}

View File

@ -0,0 +1,13 @@
 {
"result": {
"items": [
{
"offer_id": "143210608",
"product_id": 1111588191,
"status": "imported",
"errors": []
}
],
"total": 1
}
}

View File

@ -0,0 +1,4 @@
 {
"offer_id": "<артикул>",
"attributes": "<массив обновляемых атрибутов>"
}

View File

@ -0,0 +1,5 @@
 {
"offer_id": "<массив артинкулов>",
"product_id": "<массив ID товаров>",
"visibility": "<видимость>"
}

View File

@ -0,0 +1,5 @@
 {
"result": {
"task_id": 1285616890
}
}

View File

@ -0,0 +1,6 @@
 {
"result": {
"task_id": 1285618666,
"unmatched_sku_list": []
}
}

File diff suppressed because it is too large Load Diff

View File

@ -202,6 +202,38 @@ EndFunction
#Region UploadingAndUpdatingProducts
// Get product list
// Gets a list of products with or without filter
//
// Note
// Method at API documentation: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Filter - Structure of KeyAndValue - Product selection filter. See GetProductsFilterStructure - filter
// LastID - String, Number - ID of the last value (last_id) from the previous response - last
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function GetProductList(Val ClientID, Val APIKey, Val Filter = "", Val LastID = 0) Export
URL = "https://api-seller.ozon.ru/v2/product/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Limit = 200;
Parameters = New Structure;
OPI_Tools.AddField("filter" , Filter , "Collection", Parameters);
OPI_Tools.AddField("limit" , Limit , "String" , Parameters);
OPI_Tools.AddField("last_id", LastID , "String" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Create update product
// Creates new products or updates existing products, based on data structures
//
@ -220,12 +252,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 +380,102 @@ 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
// Get products filter structure
// Gets the structure for products list selecting in the GetProductList function
//
// Note
// The description of the filter fields can be found on the documentation page for product list retrieving method: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Filter fields structure
Function GetProductsFilterStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("offer_id" , "<array of sku>");
ItemStructure.Insert("product_id", "<array ID of products>");
ItemStructure.Insert("visibility", "<visibility>");
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 +594,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,12 @@ 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);
Ozon_GetProductsFilterStructure(TestParameters);
Ozon_GetProductList(TestParameters);
EndProcedure
@ -4077,15 +4083,29 @@ 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
Procedure Check_OzonObjectsArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
EndProcedure
@ -11632,7 +11652,7 @@ Procedure Ozon_CreateUpdateProducts(FunctionParameters)
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductStructure", "Ozon");
OPI_TestDataRetrieval.WriteLog(Result, "CreateUpdateProducts", "Ozon");
Check_OzonUploadTask(Result);
@ -11640,7 +11660,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,10 +11770,158 @@ 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" , 1626044001);
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
Procedure Ozon_GetProductsFilterStructure(FunctionParameters)
Result = OPI_Ozon.GetProductsFilterStructure();
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductsFilterStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_GetProductList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
IDArray = New Array;
IDArray.Add("143210608");
Filter = New Structure;
Filter.Insert("visibility" , "ALL");
Filter.Insert("offer_id" , IDArray);
Result = OPI_Ozon.GetProductList(ClientID, APIKey, Filter);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductList", "Ozon");
Check_OzonObjectsArray(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -202,6 +202,38 @@ EndFunction
#Region UploadingAndUpdatingProducts
// Get product list
// Gets a list of products with or without filter
//
// Note
// Method at API documentation: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Filter - Structure of KeyAndValue - Product selection filter. See GetProductsFilterStructure - filter
// LastID - String, Number - ID of the last value (last_id) from the previous response - last
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function GetProductList(Val ClientID, Val APIKey, Val Filter = "", Val LastID = 0) Export
URL = "https://api-seller.ozon.ru/v2/product/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Limit = 200;
Parameters = New Structure;
OPI_Tools.AddField("filter" , Filter , "Collection", Parameters);
OPI_Tools.AddField("limit" , Limit , "String" , Parameters);
OPI_Tools.AddField("last_id", LastID , "String" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Create update product
// Creates new products or updates existing products, based on data structures
//
@ -220,12 +252,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 +380,102 @@ 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
// Get products filter structure
// Gets the structure for products list selecting in the GetProductList function
//
// Note
// The description of the filter fields can be found on the documentation page for product list retrieving method: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Filter fields structure
Function GetProductsFilterStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("offer_id" , "<array of sku>");
ItemStructure.Insert("product_id", "<array ID of products>");
ItemStructure.Insert("visibility", "<visibility>");
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 +594,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,12 @@ 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);
Ozon_GetProductsFilterStructure(TestParameters);
Ozon_GetProductList(TestParameters);
EndProcedure
@ -4077,15 +4083,29 @@ 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
Procedure Check_OzonObjectsArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
EndProcedure
@ -11632,7 +11652,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 +11660,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,10 +11770,158 @@ 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" , 1626044001);
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
Procedure Ozon_GetProductsFilterStructure(FunctionParameters)
Result = OPI_Ozon.GetProductsFilterStructure();
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductsFilterStructure", "Ozon");
Check_Structure(Result);
EndProcedure
Procedure Ozon_GetProductList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
IDArray = New Array;
IDArray.Add("143210608");
Filter = New Structure;
Filter.Insert("visibility" , "ALL");
Filter.Insert("offer_id" , IDArray);
Result = OPI_Ozon.GetProductList(ClientID, APIKey, Filter);
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductList", "Ozon");
Check_OzonObjectsArray(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -224,6 +224,47 @@
NewLine.Область = "Attributes and features";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductList";
NewLine.МетодПоиска = "GETPRODUCTLIST";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Gets a list of products with or without filter";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductList";
NewLine.МетодПоиска = "GETPRODUCTLIST";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductList";
NewLine.МетодПоиска = "GETPRODUCTLIST";
NewLine.Параметр = "--filter";
NewLine.Описание = "Product selection filter. See GetProductsFilterStructure (optional, def. val. - Empty value)";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductList";
NewLine.МетодПоиска = "GETPRODUCTLIST";
NewLine.Параметр = "--last";
NewLine.Описание = "ID of the last value (last_id) from the previous response (optional, def. val. - Empty value)";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
@ -255,6 +296,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 +400,39 @@
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";
NewLine.Метод = "GetProductsFilterStructure";
NewLine.МетодПоиска = "GETPRODUCTSFILTERSTRUCTURE";
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 products list selecting in the GetProductList function";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";

View File

@ -202,6 +202,38 @@
#Область ЗагрузкаИОбновлениеТоваров
// Получить список товаров
// Получает список товаров с фильтром или без
//
// Примечание:
// Метод в документации API: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Фильтр - Структура Из КлючИЗначение - Фильтр выборки товаров. См. ПолучитьСтруктуруФильтраТоваров - filter
// IDПоследнего - Строка, Число - ID последнего значения (last_id) из предыдущего запроса - last
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокТоваров(Знач IDКлиента, Знач КлючAPI, Знач Фильтр = "", Знач IDПоследнего = 0) Экспорт
URL = "https://api-seller.ozon.ru/v2/product/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Лимит = 200;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter" , Фильтр , "Коллекция", Параметры);
OPI_Инструменты.ДобавитьПоле("limit" , Лимит , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("last_id", IDПоследнего, "Строка" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать обновить товары
// Создает новые или обновляет существующие товары по структурам полей
//
@ -210,8 +242,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 +252,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 +380,102 @@
КонецФункции
// Получить сокращенную структуру товара
// Получает структуру для создания товара на основе 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
Возврат СтруктураТовара;
КонецФункции
// Получить структуру фильтра товаров
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров
//
// Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей фильра
Функция ПолучитьСтруктуруФильтраТоваров(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offer_id" , "<массив артинкулов>");
СтруктураТовара.Вставить("product_id", "<массив ID товаров>");
СтруктураТовара.Вставить("visibility", "<видимость>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Добавить видео товара
// Добавляет видео к атрибутам товара
//
@ -422,6 +594,17 @@
КонецФункции
Функция ОтправитьОписанияОбъектов(Знач IDКлиента, Знач КлючAPI, Знач МассивОбъектов, Знач URL)
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3247,6 +3247,12 @@
Ozon_ДобавитьВидеоТовара(ПараметрыТеста);
Ozon_ДобавитьВидеообложкуТовара(ПараметрыТеста);
Ozon_ДополнитьКомплексныйАтрибут(ПараметрыТеста);
Ozon_СоздатьТоварыПоOzonID(ПараметрыТеста);
Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыТеста);
Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыТеста);
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыТеста);
Ozon_ПолучитьСписокТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4077,15 +4083,29 @@
КонецПроцедуры
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат)
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат, Знач Вложенный = Истина)
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);
КонецПроцедуры
Процедура Проверка_ОзонМассивОбъектов(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
КонецПроцедуры
@ -11632,7 +11652,7 @@
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруТовара", "Ozon");
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОбновитьТовары", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
@ -11640,7 +11660,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_TaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_TaskID", IDЗадания);
OPI_Инструменты.Пауза(60);
OPI_Инструменты.Пауза(120);
КонецПроцедуры
@ -11750,10 +11770,158 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтатусДобавленияТовара", "Ozon");
Пока Результат["result"]["items"][0]["status"] = "pending" Цикл
OPI_Инструменты.Пауза(30);
Результат = OPI_Ozon.ПолучитьСтатусДобавленияТовара(IDКлиента, КлючAPI, IDЗадачи);
КонецЦикла;
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_СоздатьТоварыПоOzonID(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("name" , "Новый импортированный товар");
СтруктураТовара.Вставить("sku" , 1626044001);
СтруктураТовара.Вставить("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");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСтруктуруФильтраТоваров();
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруФильтраТоваров", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСписокТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
МассивID = Новый Массив;
МассивID.Добавить("143210608");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
Фильтр.Вставить("offer_id" , МассивID);
Результат = OPI_Ozon.ПолучитьСписокТоваров(IDКлиента, КлючAPI, Фильтр);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТоваров", "Ozon");
Проверка_ОзонМассивОбъектов(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -202,6 +202,38 @@
#Область ЗагрузкаИОбновлениеТоваров
// Получить список товаров
// Получает список товаров с фильтром или без
//
// Примечание:
// Метод в документации API: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Фильтр - Структура Из КлючИЗначение - Фильтр выборки товаров. См. ПолучитьСтруктуруФильтраТоваров - filter
// IDПоследнего - Строка, Число - ID последнего значения (last_id) из предыдущего запроса - last
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокТоваров(Знач IDКлиента, Знач КлючAPI, Знач Фильтр = "", Знач IDПоследнего = 0) Экспорт
URL = "https://api-seller.ozon.ru/v2/product/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Лимит = 200;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter" , Фильтр , "Коллекция", Параметры);
OPI_Инструменты.ДобавитьПоле("limit" , Лимит , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("last_id", IDПоследнего, "Строка" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать обновить товары
// Создает новые или обновляет существующие товары по структурам полей
//
@ -210,8 +242,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 +252,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 +380,102 @@
КонецФункции
// Получить сокращенную структуру товара
// Получает структуру для создания товара на основе 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
Возврат СтруктураТовара;
КонецФункции
// Получить структуру фильтра товаров
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров
//
// Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей фильра
Функция ПолучитьСтруктуруФильтраТоваров(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("offer_id" , "<массив артинкулов>");
СтруктураТовара.Вставить("product_id", "<массив ID товаров>");
СтруктураТовара.Вставить("visibility", "<видимость>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
// Добавить видео товара
// Добавляет видео к атрибутам товара
//
@ -422,6 +594,17 @@
КонецФункции
Функция ОтправитьОписанияОбъектов(Знач IDКлиента, Знач КлючAPI, Знач МассивОбъектов, Знач URL)
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("items", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти

View File

@ -3247,6 +3247,12 @@
Ozon_ДобавитьВидеоТовара(ПараметрыТеста);
Ozon_ДобавитьВидеообложкуТовара(ПараметрыТеста);
Ozon_ДополнитьКомплексныйАтрибут(ПараметрыТеста);
Ozon_СоздатьТоварыПоOzonID(ПараметрыТеста);
Ozon_ПолучитьСокращеннуюСтруктуруТовара(ПараметрыТеста);
Ozon_ПолучитьСтруктуруОбновленияХарактеристик(ПараметрыТеста);
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыТеста);
Ozon_ПолучитьСписокТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4077,15 +4083,29 @@
КонецПроцедуры
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат)
Процедура Проверка_ОзонЗаданиеЗагрузки(Знач Результат, Знач Вложенный = Истина)
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);
КонецПроцедуры
Процедура Проверка_ОзонМассивОбъектов(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
КонецПроцедуры
@ -11632,7 +11652,7 @@
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруТовара", "Ozon");
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьОбновитьТовары", "Ozon");
Проверка_ОзонЗаданиеЗагрузки(Результат);
@ -11640,7 +11660,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_TaskID", IDЗадания);
ПараметрыФункции.Вставить("Ozon_TaskID", IDЗадания);
OPI_Инструменты.Пауза(60);
OPI_Инструменты.Пауза(120);
КонецПроцедуры
@ -11750,10 +11770,158 @@
// !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" , 1626044001);
СтруктураТовара.Вставить("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");
Проверка_ОзонНовыеТовары(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыФункции)
Результат = OPI_Ozon.ПолучитьСтруктуруФильтраТоваров();
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруФильтраТоваров", "Ozon");
Проверка_Структура(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСписокТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
МассивID = Новый Массив;
МассивID.Добавить("143210608");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
Фильтр.Вставить("offer_id" , МассивID);
Результат = OPI_Ozon.ПолучитьСписокТоваров(IDКлиента, КлючAPI, Фильтр);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокТоваров", "Ozon");
Проверка_ОзонМассивОбъектов(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -224,6 +224,47 @@
НоваяСтрока.Область = "Атрибуты и характеристики";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКТОВАРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает список товаров с фильтром или без";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКТОВАРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКТОВАРОВ";
НоваяСтрока.Параметр = "--filter";
НоваяСтрока.Описание = "Фильтр выборки товаров. См. ПолучитьСтруктуруФильтраТоваров (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКТОВАРОВ";
НоваяСтрока.Параметр = "--last";
НоваяСтрока.Описание = "ID последнего значения (last_id) из предыдущего запроса (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
@ -259,6 +300,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 +412,39 @@
НоваяСтрока.ОписаниеМетода = "Получает структуру стандартных полей товара";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСокращеннуюСтруктуруТовара";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСОКРАЩЕННУЮСТРУКТУРУТОВАРА";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для создания товара на основе Ozon ID в функции СоздатьТоварыПоOzonID()";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСтруктуруОбновленияХарактеристик";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУОБНОВЛЕНИЯХАРАКТЕРИСТИК";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для обновления характеристик товара в функции ОбновитьХарактеристикиТоваров()";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСтруктуруФильтраТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУФИЛЬТРАТОВАРОВ";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";