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

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot) 2024-12-22 13:51:21 +03:00
parent c1e6cc10a9
commit d1644a9095
44 changed files with 7387 additions and 6191 deletions

View File

@ -1106,6 +1106,10 @@ jobs:
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os "CLI_ОзонАПИ_РаботаСоСкладами"
- name: Схема FBO
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os "CLI_ОзонАПИ_СхемаFBO"
- name: Записать логи
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3

View File

@ -585,6 +585,10 @@ pipeline {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os" "CLI_ОзонАПИ_РаботаСоСкладами"'
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os" "CLI_ОзонАПИ_СхемаFBO"'
}
}
}

View File

@ -1629,6 +1629,18 @@ def test_ozon(){
powershell encoding: 'UTF-8', script:'./oint.exe ozon GetWarehousesList --clientid "test" --apikey "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon GetClustersList --clientid "test" --apikey "test" --type "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon GetShippingWarehousesList --clientid "test" --apikey "test" --search "test" --type "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon CreateFBODraft --clientid "test" --apikey "test" --clusters "test" --items "test" --type "test" --point "test" --debug --test '
}
}

View File

@ -1629,6 +1629,18 @@ def test_ozon(){
powershell encoding: 'UTF-8', script:'./oint.exe ozon ПолучитьСписокСкладов --clientid "test" --apikey "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon ПолучитьСписокКластеров --clientid "test" --apikey "test" --type "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon ПолучитьСписокСкладовОтгрузки --clientid "test" --apikey "test" --search "test" --type "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe ozon СоздатьЧерновикЗаявкиFBO --clientid "test" --apikey "test" --clusters "test" --items "test" --type "test" --point "test" --debug --test '
}
}

View File

@ -585,6 +585,10 @@ pipeline {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "ОзонАПИ_РаботаСоСкладами"'
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "ОзонАПИ_СхемаFBO"'
}
}
}

View File

@ -0,0 +1,4 @@
{
"ClientID": "2479669",
"APIKey": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,4 @@
{
"ClientID": "2479669",
"APIKey": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,5 @@
{
"ClientID": "2479669",
"APIKey": "09f65e9f-262d-4aca...",
"OperationID": "0193ede5-1756-70ba-97fc-4acbf5a5d308"
}

View File

@ -0,0 +1,4 @@
{
"ClientID": "2479669",
"APIKey": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,9 @@
 ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Cluster = 1;
Items = New Map;
Items.Insert("1783161863", 5);
Items.Insert("1784654052", 2);
Result = OPI_Ozon.CreateFBODraft(ClientID, APIKey, Cluster, Items);

View File

@ -0,0 +1,4 @@
 ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Result = OPI_Ozon.GetClustersList(ClientID, APIKey);

View File

@ -0,0 +1,5 @@
 ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
OperationID = "0193ede5-1756-70ba-97fc-4acbf5a5d308";
Result = OPI_Ozon.GetFBODraft(ClientID, APIKey, OperationID);

View File

@ -0,0 +1,5 @@
 ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Search = "Tver";
Result = OPI_Ozon.GetShippingWarehousesList(ClientID, APIKey, Search);

View File

@ -0,0 +1,51 @@
---
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Create FBO draft
Creates a draft of FBO supply order
`Function CreateFBODraft(Val ClientID, Val APIKey, Val Clusters, Val Items, Val SupplyType = "CREATE_TYPE_DIRECT", Val ShippingPoint = "") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| ClientID | --clientid | String | ✔ | Client identifier |
| APIKey | --apikey | String | ✔ | API key |
| Clusters | --clusters | String, Array of String | ✔ | Clusters identifiers |
| Items | --items | Map Of KeyAndValue | ✔ | Items list: Key > SKU, Value > Amount |
| SupplyType | --type | String | ✖ | Supply type: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT |
| ShippingPoint | --point | String | ✖ | Shipping point identifier for CREATE_TYPE_CROSSDOCK |
Returns: Map Of KeyAndValue - serialized JSON response from Ozon Seller API
<br/>
:::tip
Method at API documentation: [post /v1/draft/create](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Cluster = 1;
Items = New Map;
Items.Insert("1783161863", 5);
Items.Insert("1784654052", 2);
Result = OPI_Ozon.CreateFBODraft(ClientID, APIKey, Cluster, Items);
```

View File

@ -0,0 +1,43 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get clusters list
Gets information about clusters and warehouses
`Function GetClustersList(Val ClientID, Val APIKey, Val ClusterType = "CLUSTER_TYPE_OZON") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| ClientID | --clientid | String | &#x2714; | Client identifier |
| APIKey | --apikey | String | &#x2714; | API key |
| ClusterType | --type | String | &#x2716; | Cluster type: CLUSTER_TYPE_OZON (Russia), CLUSTER_TYPE_CIS (CIS) |
Returns: Map Of KeyAndValue - serialized JSON response from Ozon Seller API
<br/>
:::tip
Method at API documentation: [post /v1/cluster/list](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Result = OPI_Ozon.GetClustersList(ClientID, APIKey);
```

View File

@ -0,0 +1,45 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Get shipping warehouses list
Gets a list of warehouses, sorting centers and delivery points
`Function GetShippingWarehousesList(Val ClientID, Val APIKey, Val Search, Val SupplyType = "CREATE_TYPE_DIRECT") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| ClientID | --clientid | String | &#x2714; | Client identifier |
| APIKey | --apikey | String | &#x2714; | API key |
| Search | --search | String | &#x2714; | Search by name (4 chars. min). For delivery points enter the full name |
| SupplyType | --type | String, Array of String | &#x2716; | Supply types: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT |
Returns: Map Of KeyAndValue - serialized JSON response from Ozon Seller API
<br/>
:::tip
Method at API documentation: [post /v1/warehouse/fbo/list](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
ClientID = "2479669";
APIKey = "09f65e9f-262d-4aca...";
Search = "Tver";
Result = OPI_Ozon.GetShippingWarehousesList(ClientID, APIKey, Search);
```

View File

@ -0,0 +1,4 @@
{
"label": "Fbo scheme",
"position": "8"
}

View File

@ -0,0 +1,4 @@
{
"IDКлиента": "2479669",
"КлючAPI": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,4 @@
{
"IDКлиента": "2479669",
"КлючAPI": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,5 @@
{
"IDКлиента": "2479669",
"КлючAPI": "09f65e9f-262d-4aca...",
"IDОперации": "0193ede5-1756-70ba-97fc-4acbf5a5d308"
}

View File

@ -0,0 +1,4 @@
{
"IDКлиента": "2479669",
"КлючAPI": "09f65e9f-262d-4aca..."
}

View File

@ -0,0 +1,4 @@
 IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Результат = OPI_Ozon.ПолучитьСписокКластеров(IDКлиента, КлючAPI);

View File

@ -0,0 +1,5 @@
 IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Поиск = "ТВЕРЬ";
Результат = OPI_Ozon.ПолучитьСписокСкладовОтгрузки(IDКлиента, КлючAPI, Поиск);

View File

@ -0,0 +1,5 @@
 IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
IDОперации = "0193ede5-1756-70ba-97fc-4acbf5a5d308";
Результат = OPI_Ozon.ПолучитьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, IDОперации);

View File

@ -0,0 +1,9 @@
 IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Кластер = 1;
Позиции = Новый Соответствие;
Позиции.Вставить("1783161863", 5);
Позиции.Вставить("1784654052", 2);
Результат = OPI_Ozon.СоздатьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, Кластер, Позиции);

View File

@ -0,0 +1,51 @@
---
sidebar_position: 3
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Создать черновик заявки FBO
Создает черновик заявки на поставку
`Функция СоздатьЧерновикЗаявкиFBO(Знач IDКлиента, Знач КлючAPI, Знач Кластеры, Знач Позиции, Знач ТипПоставки = "CREATE_TYPE_DIRECT", Знач ТочкаОтгрузки = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| IDКлиента | --clientid | Строка | &#x2714; | Идентификатор клиента |
| КлючAPI | --apikey | Строка | &#x2714; | API ключ |
| Кластеры | --clusters | Строка, Массив Из Строка | &#x2714; | Идентификаторы кластеров |
| Позиции | --items | Соответствие Из КлючИЗначение | &#x2714; | Список позиций: Ключ > SKU, Значение > Количество |
| ТипПоставки | --type | Строка | &#x2716; | Тип поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT |
| ТочкаОтгрузки | --point | Строка | &#x2716; | Идентификатор точки отгрузки для CREATE_TYPE_CROSSDOCK |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
<br/>
:::tip
Метод в документации API: [post /v1/draft/create](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Кластер = 1;
Позиции = Новый Соответствие;
Позиции.Вставить("1783161863", 5);
Позиции.Вставить("1784654052", 2);
Результат = OPI_Ozon.СоздатьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, Кластер, Позиции);
```

View File

@ -0,0 +1,43 @@
---
sidebar_position: 1
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить список кластеров
Получает информацию о кластерах и складах
`Функция ПолучитьСписокКластеров(Знач IDКлиента, Знач КлючAPI, Знач ТипКластера = "CLUSTER_TYPE_OZON") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| IDКлиента | --clientid | Строка | &#x2714; | Идентификатор клиента |
| КлючAPI | --apikey | Строка | &#x2714; | API ключ |
| ТипКластера | --type | Строка | &#x2716; | Тип кластера: CLUSTER_TYPE_OZON (Россия), CLUSTER_TYPE_CIS (СНГ) |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
<br/>
:::tip
Метод в документации API: [post /v1/cluster/list](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Результат = OPI_Ozon.ПолучитьСписокКластеров(IDКлиента, КлючAPI);
```

View File

@ -0,0 +1,45 @@
---
sidebar_position: 2
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Получить список складов отгрузки
Получает список складов, сортировочных центров и пунктов выдачи
`Функция ПолучитьСписокСкладовОтгрузки(Знач IDКлиента, Знач КлючAPI, Знач Поиск, Знач ТипПоставки = "CREATE_TYPE_DIRECT") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| IDКлиента | --clientid | Строка | &#x2714; | Идентификатор клиента |
| КлючAPI | --apikey | Строка | &#x2714; | API ключ |
| Поиск | --search | Строка | &#x2714; | Поиск по названию (4 симв. мин). Для пунктов выдачи укажите полное название |
| ТипПоставки | --type | Строка, Массив Из Строка | &#x2716; | Типы поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT |
Возвращаемое значение: Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
<br/>
:::tip
Метод в документации API: [post /v1/warehouse/fbo/list](https://docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
IDКлиента = "2479669";
КлючAPI = "09f65e9f-262d-4aca...";
Поиск = "ТВЕРЬ";
Результат = OPI_Ozon.ПолучитьСписокСкладовОтгрузки(IDКлиента, КлючAPI, Поиск);
```

View File

@ -0,0 +1,4 @@
{
"label": "Схема fbo",
"position": "8"
}

File diff suppressed because it is too large Load Diff

View File

@ -1558,6 +1558,131 @@ EndFunction
#EndRegion
#Region FBOScheme
// Get clusters list
// Gets information about clusters and warehouses
//
// Note
// Method at API documentation: [post /v1/cluster/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ClusterType - String - Cluster type: CLUSTER_TYPE_OZON (Russia), CLUSTER_TYPE_CIS (CIS) - type
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function GetClustersList(Val ClientID, Val APIKey, Val ClusterType = "CLUSTER_TYPE_OZON") Export
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("cluster_type", ClusterType, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get shipping warehouses list
// Gets a list of warehouses, sorting centers and delivery points
//
// Note
// Method at API documentation: [post /v1/warehouse/fbo/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Search - String - Search by name (4 chars. min). For delivery points enter the full name - search
// SupplyType - String, Array of String - Supply types: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function GetShippingWarehousesList(Val ClientID
, Val APIKey
, Val Search
, Val SupplyType = "CREATE_TYPE_DIRECT") Export
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("filter_by_supply_type", SupplyType, "Array" , Parameters);
OPI_Tools.AddField("search" , Search , "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Create FBO draft
// Creates a draft of FBO supply order
//
// Note
// Method at API documentation: [post /v1/draft/create](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Clusters - String, Array of String - Clusters identifiers - clusters
// Items - Map Of KeyAndValue - Items list: Key > SKU, Value > Amount - items
// SupplyType - String - Supply type: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
// ShippingPoint - String - Shipping point identifier for CREATE_TYPE_CROSSDOCK - point
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function CreateFBODraft(Val ClientID
, Val APIKey
, Val Clusters
, Val Items
, Val SupplyType = "CREATE_TYPE_DIRECT"
, Val ShippingPoint = "") Export
Clusters_ = OPI_Tools.CopyCollection(Clusters);
Items_ = OPI_Tools.CopyCollection(Items);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Headers = CreateRequestHeaders(ClientID, APIKey);
ProcessClustersList(Clusters_);
ProcessItemsList(Items_);
Parameters = New Structure;
OPI_Tools.AddField("cluster_ids" , Clusters_ , "Array" , Parameters);
OPI_Tools.AddField("drop_off_point_warehouse_id", ShippingPoint, "Number" , Parameters);
OPI_Tools.AddField("items" , Items_ , "Array" , Parameters);
OPI_Tools.AddField("type" , SupplyType , "String" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
Function GetFBODraft(Val ClientID, Val APIKey, Val OperationID) Export
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("operation_id", OperationID, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
#EndRegion
#EndRegion
#Region Private
@ -1586,4 +1711,47 @@ Function SendObjectsDescription(Val ClientID, Val APIKey, Val ArrayOfObjects, Va
EndFunction
Procedure ProcessClustersList(Clusters)
OPI_TypeConversion.GetArray(Clusters);
For N = 0 To Clusters.UBound() Do
CurrentValue = Clusters[N];
OPI_TypeConversion.GetNumber(CurrentValue);
Clusters[N] = CurrentValue;
EndDo;
EndProcedure
Procedure ProcessItemsList(Items)
ErrorText = "The list of items has an incorrect format";
OPI_TypeConversion.GetKeyValueCollection(Items, ErrorText);
ProcessedPositions = New Array;
For Each Item In Items Do
CurrentKey = Item.Key;
CurrentValue = Item.Value;
OPI_TypeConversion.GetNumber(CurrentKey);
OPI_TypeConversion.GetNumber(CurrentValue);
If CurrentKey = 0 Or CurrentValue = 0 Then
Raise ("Error in position " + String(CurrentKey));
EndIf;
ProcessedPositions.Add(New Structure("quantity,sku", CurrentValue, CurrentKey));
EndDo;
Items = ProcessedPositions;
EndProcedure
#EndRegion

View File

@ -1953,6 +1953,19 @@ Procedure OzonAPI_PromotionsManagement() Export
EndProcedure
Procedure OzonAPI_FBOScheme() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
Ozon_GetClustersList(TestParameters);
Ozon_GetShippingWarehousesList(TestParameters);
Ozon_CreateFBODraft(TestParameters);
Ozon_GetFBODraft(TestParameters);
EndProcedure
#EndRegion
#Region Neocities
@ -13660,6 +13673,72 @@ Procedure Ozon_GetProductPriceStructure(FunctionParameters)
EndProcedure
Procedure Ozon_GetClustersList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Result = OPI_Ozon.GetClustersList(ClientID, APIKey);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetClustersList", "Ozon");
OPI_TestDataRetrieval.Check_OzonClusters(Result);
EndProcedure
Procedure Ozon_GetShippingWarehousesList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Search = "Tver";
Result = OPI_Ozon.GetShippingWarehousesList(ClientID, APIKey, Search);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetShippingWarehousesList", "Ozon");
OPI_TestDataRetrieval.Check_OzonSearch(Result);
EndProcedure
Procedure Ozon_CreateFBODraft(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Cluster = 1;
Items = New Map;
Items.Insert("1783161863", 5);
Items.Insert("1784654052", 2);
Result = OPI_Ozon.CreateFBODraft(ClientID, APIKey, Cluster, Items);
// END
OPI_TestDataRetrieval.WriteLog(Result, "CreateFBODraft", "Ozon");
OPI_TestDataRetrieval.Check_OzonDraft(Result);
DraftID = Result["operation_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_FBOOperID", DraftID);
FunctionParameters.Insert("Ozon_FBOOperID", DraftID);
EndProcedure
Procedure Ozon_GetFBODraft(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
OperationID = FunctionParameters["Ozon_FBOOperID"];
Result = OPI_Ozon.GetFBODraft(ClientID, APIKey, OperationID);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetFBODraft", "Ozon");
EndProcedure
#EndRegion
#Region Neocities

View File

@ -251,6 +251,7 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
NewTest(TestTable, "OzonAPI_PromotionsManagement" , "Promotions management" , Ozon);
NewTest(TestTable, "OzonAPI_WarehousesManagement" , "Warehouses management" , Ozon);
NewTest(TestTable, "OzonAPI_FBOScheme" , "FBO scheme" , Ozon);
NewTest(TestTable, "NC_FilesManagement" , "Files management" , Neocities);
NewTest(TestTable, "NC_DataRetrieving" , "Data retrieving" , Neocities);
NewTest(TestTable, "CdekAPI_CommonMethods" , "Common methods" , Cdek);
@ -1875,6 +1876,18 @@ Procedure Check_OzonSKU(Val Result) Export
EndProcedure
Procedure Check_OzonDraft(Val Result) Export
ExpectsThat(Result["operation_id"]).ИмеетТип("String").Заполнено();
EndProcedure
Procedure Check_OzonSearch(Val Result) Export
ExpectsThat(Result["search"]).ИмеетТип("Array").Заполнено();
EndProcedure
Procedure Check_OzonClusters(Val Result) Export
ExpectsThat(Result["clusters"]).ИмеетТип("Array").Заполнено();
EndProcedure
Procedure Check_NCSuccess(Val Result) Export
ExpectsThat(Result["result"]).Равно("success");

View File

@ -1558,6 +1558,131 @@ EndFunction
#EndRegion
#Region FBOScheme
// Get clusters list
// Gets information about clusters and warehouses
//
// Note
// Method at API documentation: [post /v1/cluster/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ClusterType - String - Cluster type: CLUSTER_TYPE_OZON (Russia), CLUSTER_TYPE_CIS (CIS) - type
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function GetClustersList(Val ClientID, Val APIKey, Val ClusterType = "CLUSTER_TYPE_OZON") Export
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("cluster_type", ClusterType, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get shipping warehouses list
// Gets a list of warehouses, sorting centers and delivery points
//
// Note
// Method at API documentation: [post /v1/warehouse/fbo/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Search - String - Search by name (4 chars. min). For delivery points enter the full name - search
// SupplyType - String, Array of String - Supply types: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function GetShippingWarehousesList(Val ClientID
, Val APIKey
, Val Search
, Val SupplyType = "CREATE_TYPE_DIRECT") Export
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("filter_by_supply_type", SupplyType, "Array" , Parameters);
OPI_Tools.AddField("search" , Search , "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Create FBO draft
// Creates a draft of FBO supply order
//
// Note
// Method at API documentation: [post /v1/draft/create](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Clusters - String, Array of String - Clusters identifiers - clusters
// Items - Map Of KeyAndValue - Items list: Key > SKU, Value > Amount - items
// SupplyType - String - Supply type: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
// ShippingPoint - String - Shipping point identifier for CREATE_TYPE_CROSSDOCK - point
//
// Returns:
// Map Of KeyAndValue - serialized JSON response from Ozon Seller API
Function CreateFBODraft(Val ClientID
, Val APIKey
, Val Clusters
, Val Items
, Val SupplyType = "CREATE_TYPE_DIRECT"
, Val ShippingPoint = "") Export
Clusters_ = OPI_Tools.CopyCollection(Clusters);
Items_ = OPI_Tools.CopyCollection(Items);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Headers = CreateRequestHeaders(ClientID, APIKey);
ProcessClustersList(Clusters_);
ProcessItemsList(Items_);
Parameters = New Structure;
OPI_Tools.AddField("cluster_ids" , Clusters_ , "Array" , Parameters);
OPI_Tools.AddField("drop_off_point_warehouse_id", ShippingPoint, "Number" , Parameters);
OPI_Tools.AddField("items" , Items_ , "Array" , Parameters);
OPI_Tools.AddField("type" , SupplyType , "String" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
Function GetFBODraft(Val ClientID, Val APIKey, Val OperationID) Export
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("operation_id", OperationID, "String", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
#EndRegion
#EndRegion
#Region Private
@ -1586,4 +1711,47 @@ Function SendObjectsDescription(Val ClientID, Val APIKey, Val ArrayOfObjects, Va
EndFunction
Procedure ProcessClustersList(Clusters)
OPI_TypeConversion.GetArray(Clusters);
For N = 0 To Clusters.UBound() Do
CurrentValue = Clusters[N];
OPI_TypeConversion.GetNumber(CurrentValue);
Clusters[N] = CurrentValue;
EndDo;
EndProcedure
Procedure ProcessItemsList(Items)
ErrorText = "The list of items has an incorrect format";
OPI_TypeConversion.GetKeyValueCollection(Items, ErrorText);
ProcessedPositions = New Array;
For Each Item In Items Do
CurrentKey = Item.Key;
CurrentValue = Item.Value;
OPI_TypeConversion.GetNumber(CurrentKey);
OPI_TypeConversion.GetNumber(CurrentValue);
If CurrentKey = 0 Or CurrentValue = 0 Then
Raise ("Error in position " + String(CurrentKey));
EndIf;
ProcessedPositions.Add(New Structure("quantity,sku", CurrentValue, CurrentKey));
EndDo;
Items = ProcessedPositions;
EndProcedure
#EndRegion

View File

@ -251,6 +251,7 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
NewTest(TestTable, "OzonAPI_PromotionsManagement" , "Promotions management" , Ozon);
NewTest(TestTable, "OzonAPI_WarehousesManagement" , "Warehouses management" , Ozon);
NewTest(TestTable, "OzonAPI_FBOScheme" , "FBO scheme" , Ozon);
NewTest(TestTable, "NC_FilesManagement" , "Files management" , Neocities);
NewTest(TestTable, "NC_DataRetrieving" , "Data retrieving" , Neocities);
NewTest(TestTable, "CdekAPI_CommonMethods" , "Common methods" , Cdek);
@ -1875,6 +1876,18 @@ Procedure Check_OzonSKU(Val Result) Export
EndProcedure
Procedure Check_OzonDraft(Val Result) Export
ExpectsThat(Result["operation_id"]).ИмеетТип("String").Заполнено();
EndProcedure
Procedure Check_OzonSearch(Val Result) Export
ExpectsThat(Result["search"]).ИмеетТип("Array").Заполнено();
EndProcedure
Procedure Check_OzonClusters(Val Result) Export
ExpectsThat(Result["clusters"]).ИмеетТип("Array").Заполнено();
EndProcedure
Procedure Check_NCSuccess(Val Result) Export
ExpectsThat(Result["result"]).Равно("success");

View File

@ -1953,6 +1953,19 @@ Procedure OzonAPI_PromotionsManagement() Export
EndProcedure
Procedure OzonAPI_FBOScheme() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
Ozon_GetClustersList(TestParameters);
Ozon_GetShippingWarehousesList(TestParameters);
Ozon_CreateFBODraft(TestParameters);
Ozon_GetFBODraft(TestParameters);
EndProcedure
#EndRegion
#Region Neocities
@ -13660,6 +13673,72 @@ Procedure Ozon_GetProductPriceStructure(FunctionParameters)
EndProcedure
Procedure Ozon_GetClustersList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Result = OPI_Ozon.GetClustersList(ClientID, APIKey);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetClustersList", "Ozon");
OPI_TestDataRetrieval.Check_OzonClusters(Result);
EndProcedure
Procedure Ozon_GetShippingWarehousesList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Search = "Tver";
Result = OPI_Ozon.GetShippingWarehousesList(ClientID, APIKey, Search);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetShippingWarehousesList", "Ozon");
OPI_TestDataRetrieval.Check_OzonSearch(Result);
EndProcedure
Procedure Ozon_CreateFBODraft(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Cluster = 1;
Items = New Map;
Items.Insert("1783161863", 5);
Items.Insert("1784654052", 2);
Result = OPI_Ozon.CreateFBODraft(ClientID, APIKey, Cluster, Items);
// END
OPI_TestDataRetrieval.WriteLog(Result, "CreateFBODraft", "Ozon");
OPI_TestDataRetrieval.Check_OzonDraft(Result);
DraftID = Result["operation_id"];
OPI_TestDataRetrieval.WriteParameter("Ozon_FBOOperID", DraftID);
FunctionParameters.Insert("Ozon_FBOOperID", DraftID);
EndProcedure
Procedure Ozon_GetFBODraft(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
OperationID = FunctionParameters["Ozon_FBOOperID"];
Result = OPI_Ozon.GetFBODraft(ClientID, APIKey, OperationID);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetFBODraft", "Ozon");
EndProcedure
#EndRegion
#Region Neocities

View File

@ -1484,6 +1484,139 @@
NewLine.Описание = "API key";
NewLine.Область = "Warehouses management";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetClustersList";
NewLine.МетодПоиска = "GETCLUSTERSLIST";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Fbo scheme";
NewLine.ОписаниеМетода = "Gets information about clusters and warehouses";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetClustersList";
NewLine.МетодПоиска = "GETCLUSTERSLIST";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetClustersList";
NewLine.МетодПоиска = "GETCLUSTERSLIST";
NewLine.Параметр = "--type";
NewLine.Описание = "Cluster type: CLUSTER_TYPE_OZON (Russia), CLUSTER_TYPE_CIS (CIS) (optional, def. val. - CLUSTER_TYPE_OZON)";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetShippingWarehousesList";
NewLine.МетодПоиска = "GETSHIPPINGWAREHOUSESLIST";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Fbo scheme";
NewLine.ОписаниеМетода = "Gets a list of warehouses, sorting centers and delivery points";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetShippingWarehousesList";
NewLine.МетодПоиска = "GETSHIPPINGWAREHOUSESLIST";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetShippingWarehousesList";
NewLine.МетодПоиска = "GETSHIPPINGWAREHOUSESLIST";
NewLine.Параметр = "--search";
NewLine.Описание = "Search by name (4 chars. min). For delivery points enter the full name";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetShippingWarehousesList";
NewLine.МетодПоиска = "GETSHIPPINGWAREHOUSESLIST";
NewLine.Параметр = "--type";
NewLine.Описание = "Supply types: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT (optional, def. val. - CREATE_TYPE_DIRECT)";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Fbo scheme";
NewLine.ОписаниеМетода = "Creates a draft of FBO supply order";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--clusters";
NewLine.Описание = "Clusters identifiers";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--items";
NewLine.Описание = "Items list: Key > SKU, Value > Amount";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--type";
NewLine.Описание = "Supply type: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT (optional, def. val. - CREATE_TYPE_DIRECT)";
NewLine.Область = "Fbo scheme";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "CreateFBODraft";
NewLine.МетодПоиска = "CREATEFBODRAFT";
NewLine.Параметр = "--point";
NewLine.Описание = "Shipping point identifier for CREATE_TYPE_CROSSDOCK (optional, def. val. - Empty value)";
NewLine.Область = "Fbo scheme";
Return CompositionTable;
EndFunction

View File

@ -1562,7 +1562,7 @@
// Получить список кластеров
// Получает информацию о кластерах и складах
//
//
// Примечание:
// Метод в документации API: [post /v1/cluster/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
//
@ -1570,27 +1570,27 @@
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// ТипКластера - Строка - Тип кластера: CLUSTER_TYPE_OZON (Россия), CLUSTER_TYPE_CIS (СНГ) - type
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокКластеров(Знач IDКлиента, Знач КлючAPI, Знач ТипКластера = "CLUSTER_TYPE_OZON") Экспорт
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_type", ТипКластера, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_type", ТипКластера, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить список складов отгрузки
// Получает список складов, сортировочных центров и пунктов выдачи
//
//
// Примечание:
// Метод в документации API: [post /v1/warehouse/fbo/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
//
@ -1599,31 +1599,31 @@
// КлючAPI - Строка - API ключ - apikey
// Поиск - Строка - Поиск по названию (4 симв. мин). Для пунктов выдачи укажите полное название - search
// ТипПоставки - Строка, Массив Из Строка - Типы поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокСкладовОтгрузки(Знач IDКлиента
, Знач КлючAPI
, Знач Поиск
, Знач ТипПоставки = "CREATE_TYPE_DIRECT") Экспорт
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter_by_supply_type", ТипПоставки, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("search" , Поиск , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
, Знач КлючAPI
, Знач Поиск
, Знач ТипПоставки = "CREATE_TYPE_DIRECT") Экспорт
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter_by_supply_type", ТипПоставки, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("search" , Поиск , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать черновик заявки FBO
// Создает черновик заявки на поставку
//
//
// Примечание:
// Метод в документации API: [post /v1/draft/create](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
//
@ -1631,54 +1631,54 @@
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Кластеры - Строка, Массив Из Строка - Идентификаторы кластеров - clusters
// Позиции - Соответствие Из КлючИЗначение - Список позиций: Ключ > SKU, Значение > Количество - items
// Позиции - Соответствие Из КлючИЗначение - Список позиций: Ключ > SKU, Значение > Количество - items
// ТипПоставки - Строка - Тип поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
// ТочкаОтгрузки - Строка - Идентификатор точки отгрузки для CREATE_TYPE_CROSSDOCK - point
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция СоздатьЧерновикЗаявкиFBO(Знач IDКлиента
, Знач КлючAPI
, Знач Кластеры
, Знач Позиции
, Знач ТипПоставки = "CREATE_TYPE_DIRECT"
, Знач ТочкаОтгрузки = "") Экспорт
Кластеры_ = OPI_Инструменты.КопироватьКоллекцию(Кластеры);
Позиции_ = OPI_Инструменты.КопироватьКоллекцию(Позиции);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
ОбработатьСписокКластеров(Кластеры_);
ОбработатьСписокПозиций(Позиции_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_ids" , Кластеры_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("drop_off_point_warehouse_id", ТочкаОтгрузки, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("items" , Позиции_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("type" , ТипПоставки , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
, Знач КлючAPI
, Знач Кластеры
, Знач Позиции
, Знач ТипПоставки = "CREATE_TYPE_DIRECT"
, Знач ТочкаОтгрузки = "") Экспорт
Кластеры_ = OPI_Инструменты.КопироватьКоллекцию(Кластеры);
Позиции_ = OPI_Инструменты.КопироватьКоллекцию(Позиции);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
ОбработатьСписокКластеров(Кластеры_);
ОбработатьСписокПозиций(Позиции_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_ids" , Кластеры_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("drop_off_point_warehouse_id", ТочкаОтгрузки, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("items" , Позиции_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("type" , ТипПоставки , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьЧерновикЗаявкиFBO(Знач IDКлиента, Знач КлючAPI, Знач IDОперации) Экспорт
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("operation_id", IDОперации, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("operation_id", IDОперации, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
@ -1713,45 +1713,45 @@
Процедура ОбработатьСписокКластеров(Кластеры)
OPI_ПреобразованиеТипов.ПолучитьМассив(Кластеры);
Для Н = 0 По Кластеры.ВГраница() Цикл
ТекущееЗначение = Кластеры[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Кластеры[Н] = ТекущееЗначение;
КонецЦикла;
OPI_ПреобразованиеТипов.ПолучитьМассив(Кластеры);
Для Н = 0 По Кластеры.ВГраница() Цикл
ТекущееЗначение = Кластеры[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Кластеры[Н] = ТекущееЗначение;
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьСписокПозиций(Позиции)
ТекстОшибки = "Список позиций имеет некорректный формат";
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Позиции, ТекстОшибки);
ОбработанныеПозиции = Новый Массив;
Для Каждого Позиция Из Позиции Цикл
ТекущийКлюч = Позиция.Ключ;
ТекущееЗначение = Позиция.Значение;
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущийКлюч);
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Если ТекущийКлюч = 0 Или ТекущееЗначение = 0 Тогда
ВызватьИсключение ("Ошибка в позиции " + Строка(ТекущийКлюч));
КонецЕсли;
ОбработанныеПозиции.Добавить(Новый Структура("quantity,sku", ТекущееЗначение, ТекущийКлюч));
КонецЦикла;
Позиции = ОбработанныеПозиции;
ТекстОшибки = "Список позиций имеет некорректный формат";
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Позиции, ТекстОшибки);
ОбработанныеПозиции = Новый Массив;
Для Каждого Позиция Из Позиции Цикл
ТекущийКлюч = Позиция.Ключ;
ТекущееЗначение = Позиция.Значение;
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущийКлюч);
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Если ТекущийКлюч = 0 Или ТекущееЗначение = 0 Тогда
ВызватьИсключение ("Ошибка в позиции " + Строка(ТекущийКлюч));
КонецЕсли;
ОбработанныеПозиции.Добавить(Новый Структура("quantity,sku", ТекущееЗначение, ТекущийКлюч));
КонецЦикла;
Позиции = ОбработанныеПозиции;
КонецПроцедуры
#КонецОбласти

View File

@ -1954,16 +1954,16 @@
КонецПроцедуры
Процедура ОзонАПИ_СхемаFBO() Экспорт
ПараметрыТеста = Новый Структура;
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ApiKey" , ПараметрыТеста);
Ozon_ПолучитьСписокКластеров(ПараметрыТеста);
Ozon_ПолучитьСписокСкладовОтгрузки(ПараметрыТеста);
Ozon_СоздатьЧерновикЗаявкиFBO(ПараметрыТеста);
Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыТеста);
Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -13675,68 +13675,68 @@
Процедура Ozon_ПолучитьСписокКластеров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Результат = OPI_Ozon.ПолучитьСписокКластеров(IDКлиента, КлючAPI);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКластеров", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонКластеры(Результат);
OPI_ПолучениеДанныхТестов.Проверка_ОзонКластеры(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСписокСкладовОтгрузки(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Поиск = "ТВЕРЬ";
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Поиск = "ТВЕРЬ";
Результат = OPI_Ozon.ПолучитьСписокСкладовОтгрузки(IDКлиента, КлючAPI, Поиск);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСкладовОтгрузки", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонПоиск(Результат);
OPI_ПолучениеДанныхТестов.Проверка_ОзонПоиск(Результат);
КонецПроцедуры
Процедура Ozon_СоздатьЧерновикЗаявкиFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Кластер = 1;
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Кластер = 1;
Позиции = Новый Соответствие;
Позиции.Вставить("1783161863", 5);
Позиции.Вставить("1784654052", 2);
Результат = OPI_Ozon.СоздатьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, Кластер, Позиции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЧерновикЗаявкиFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонЧерновик(Результат);
IDЧерновика = Результат["operation_id"];
OPI_ПолучениеДанныхТестов.Проверка_ОзонЧерновик(Результат);
IDЧерновика = Результат["operation_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_FBOOperID", IDЧерновика);
ПараметрыФункции.Вставить("Ozon_FBOOperID", IDЧерновика);
КонецПроцедуры
Процедура Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDОперации = ПараметрыФункции["Ozon_FBOOperID"];
Результат = OPI_Ozon.ПолучитьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, IDОперации);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
Результат = OPI_Ozon.ПолучитьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, IDОперации);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
КонецПроцедуры
#КонецОбласти

View File

@ -1877,15 +1877,15 @@
КонецПроцедуры
Процедура Проверка_ОзонЧерновик(Знач Результат) Экспорт
ОжидаетЧто(Результат["operation_id"]).ИмеетТип("Строка").Заполнено();
ОжидаетЧто(Результат["operation_id"]).ИмеетТип("Строка").Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонПоиск(Знач Результат) Экспорт
ОжидаетЧто(Результат["search"]).ИмеетТип("Массив").Заполнено();
ОжидаетЧто(Результат["search"]).ИмеетТип("Массив").Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонКластеры(Знач Результат) Экспорт
ОжидаетЧто(Результат["clusters"]).ИмеетТип("Массив").Заполнено();
ОжидаетЧто(Результат["clusters"]).ИмеетТип("Массив").Заполнено();
КонецПроцедуры
Процедура Проверка_НСУспех(Знач Результат) Экспорт
@ -2071,9 +2071,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
// OneScript: ./OInt/core/Modules/OPI_Ozon.os
// Lib: Ozon
// CLI: ozon
@ -1562,7 +1562,7 @@
// Получить список кластеров
// Получает информацию о кластерах и складах
//
//
// Примечание:
// Метод в документации API: [post /v1/cluster/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftClusterList)
//
@ -1570,27 +1570,27 @@
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// ТипКластера - Строка - Тип кластера: CLUSTER_TYPE_OZON (Россия), CLUSTER_TYPE_CIS (СНГ) - type
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокКластеров(Знач IDКлиента, Знач КлючAPI, Знач ТипКластера = "CLUSTER_TYPE_OZON") Экспорт
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_type", ТипКластера, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
URL = "https://api-seller.ozon.ru/v1/cluster/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_type", ТипКластера, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить список складов отгрузки
// Получает список складов, сортировочных центров и пунктов выдачи
//
//
// Примечание:
// Метод в документации API: [post /v1/warehouse/fbo/list](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftGetWarehouseFboList)
//
@ -1599,31 +1599,31 @@
// КлючAPI - Строка - API ключ - apikey
// Поиск - Строка - Поиск по названию (4 симв. мин). Для пунктов выдачи укажите полное название - search
// ТипПоставки - Строка, Массив Из Строка - Типы поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьСписокСкладовОтгрузки(Знач IDКлиента
, Знач КлючAPI
, Знач Поиск
, Знач ТипПоставки = "CREATE_TYPE_DIRECT") Экспорт
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter_by_supply_type", ТипПоставки, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("search" , Поиск , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
, Знач КлючAPI
, Знач Поиск
, Знач ТипПоставки = "CREATE_TYPE_DIRECT") Экспорт
URL = "https://api-seller.ozon.ru/v1/warehouse/fbo/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter_by_supply_type", ТипПоставки, "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("search" , Поиск , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать черновик заявки FBO
// Создает черновик заявки на поставку
//
//
// Примечание:
// Метод в документации API: [post /v1/draft/create](@docs.ozon.ru/api/seller/#operation/SupplyDraftAPI_DraftCreate)
//
@ -1631,54 +1631,54 @@
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Кластеры - Строка, Массив Из Строка - Идентификаторы кластеров - clusters
// Позиции - Соответствие Из КлючИЗначение - Список позиций: Ключ > SKU, Значение > Количество - items
// Позиции - Соответствие Из КлючИЗначение - Список позиций: Ключ > SKU, Значение > Количество - items
// ТипПоставки - Строка - Тип поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT - type
// ТочкаОтгрузки - Строка - Идентификатор точки отгрузки для CREATE_TYPE_CROSSDOCK - point
//
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция СоздатьЧерновикЗаявкиFBO(Знач IDКлиента
, Знач КлючAPI
, Знач Кластеры
, Знач Позиции
, Знач ТипПоставки = "CREATE_TYPE_DIRECT"
, Знач ТочкаОтгрузки = "") Экспорт
Кластеры_ = OPI_Инструменты.КопироватьКоллекцию(Кластеры);
Позиции_ = OPI_Инструменты.КопироватьКоллекцию(Позиции);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
ОбработатьСписокКластеров(Кластеры_);
ОбработатьСписокПозиций(Позиции_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_ids" , Кластеры_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("drop_off_point_warehouse_id", ТочкаОтгрузки, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("items" , Позиции_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("type" , ТипПоставки , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
, Знач КлючAPI
, Знач Кластеры
, Знач Позиции
, Знач ТипПоставки = "CREATE_TYPE_DIRECT"
, Знач ТочкаОтгрузки = "") Экспорт
Кластеры_ = OPI_Инструменты.КопироватьКоллекцию(Кластеры);
Позиции_ = OPI_Инструменты.КопироватьКоллекцию(Позиции);
URL = "https://api-seller.ozon.ru/v1/draft/create";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
ОбработатьСписокКластеров(Кластеры_);
ОбработатьСписокПозиций(Позиции_);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("cluster_ids" , Кластеры_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("drop_off_point_warehouse_id", ТочкаОтгрузки, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("items" , Позиции_ , "Массив", Параметры);
OPI_Инструменты.ДобавитьПоле("type" , ТипПоставки , "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
Функция ПолучитьЧерновикЗаявкиFBO(Знач IDКлиента, Знач КлючAPI, Знач IDОперации) Экспорт
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("operation_id", IDОперации, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
URL = "https://api-seller.ozon.ru/v1/draft/create/info";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("operation_id", IDОперации, "Строка", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
#КонецОбласти
@ -1713,45 +1713,45 @@
Процедура ОбработатьСписокКластеров(Кластеры)
OPI_ПреобразованиеТипов.ПолучитьМассив(Кластеры);
Для Н = 0 По Кластеры.ВГраница() Цикл
ТекущееЗначение = Кластеры[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Кластеры[Н] = ТекущееЗначение;
КонецЦикла;
OPI_ПреобразованиеТипов.ПолучитьМассив(Кластеры);
Для Н = 0 По Кластеры.ВГраница() Цикл
ТекущееЗначение = Кластеры[Н];
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Кластеры[Н] = ТекущееЗначение;
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьСписокПозиций(Позиции)
ТекстОшибки = "Список позиций имеет некорректный формат";
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Позиции, ТекстОшибки);
ОбработанныеПозиции = Новый Массив;
Для Каждого Позиция Из Позиции Цикл
ТекущийКлюч = Позиция.Ключ;
ТекущееЗначение = Позиция.Значение;
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущийКлюч);
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Если ТекущийКлюч = 0 Или ТекущееЗначение = 0 Тогда
ВызватьИсключение ("Ошибка в позиции " + Строка(ТекущийКлюч));
КонецЕсли;
ОбработанныеПозиции.Добавить(Новый Структура("quantity,sku", ТекущееЗначение, ТекущийКлюч));
КонецЦикла;
Позиции = ОбработанныеПозиции;
ТекстОшибки = "Список позиций имеет некорректный формат";
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Позиции, ТекстОшибки);
ОбработанныеПозиции = Новый Массив;
Для Каждого Позиция Из Позиции Цикл
ТекущийКлюч = Позиция.Ключ;
ТекущееЗначение = Позиция.Значение;
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущийКлюч);
OPI_ПреобразованиеТипов.ПолучитьЧисло(ТекущееЗначение);
Если ТекущийКлюч = 0 Или ТекущееЗначение = 0 Тогда
ВызватьИсключение ("Ошибка в позиции " + Строка(ТекущийКлюч));
КонецЕсли;
ОбработанныеПозиции.Добавить(Новый Структура("quantity,sku", ТекущееЗначение, ТекущийКлюч));
КонецЦикла;
Позиции = ОбработанныеПозиции;
КонецПроцедуры
#КонецОбласти

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
// OneScript: ./OInt/tools/Modules/OPI_ПолучениеДанныхТестов.os
// MIT License
@ -1877,15 +1877,15 @@
КонецПроцедуры
Процедура Проверка_ОзонЧерновик(Знач Результат) Экспорт
ОжидаетЧто(Результат["operation_id"]).ИмеетТип("Строка").Заполнено();
ОжидаетЧто(Результат["operation_id"]).ИмеетТип("Строка").Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонПоиск(Знач Результат) Экспорт
ОжидаетЧто(Результат["search"]).ИмеетТип("Массив").Заполнено();
ОжидаетЧто(Результат["search"]).ИмеетТип("Массив").Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонКластеры(Знач Результат) Экспорт
ОжидаетЧто(Результат["clusters"]).ИмеетТип("Массив").Заполнено();
ОжидаетЧто(Результат["clusters"]).ИмеетТип("Массив").Заполнено();
КонецПроцедуры
Процедура Проверка_НСУспех(Знач Результат) Экспорт

View File

@ -1,4 +1,4 @@
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
// MIT License
@ -1954,16 +1954,16 @@
КонецПроцедуры
Процедура ОзонАПИ_СхемаFBO() Экспорт
ПараметрыТеста = Новый Структура;
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ApiKey" , ПараметрыТеста);
Ozon_ПолучитьСписокКластеров(ПараметрыТеста);
Ozon_ПолучитьСписокСкладовОтгрузки(ПараметрыТеста);
Ozon_СоздатьЧерновикЗаявкиFBO(ПараметрыТеста);
Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыТеста);
Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыТеста);
КонецПроцедуры
#КонецОбласти
@ -13675,68 +13675,68 @@
Процедура Ozon_ПолучитьСписокКластеров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Результат = OPI_Ozon.ПолучитьСписокКластеров(IDКлиента, КлючAPI);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКластеров", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонКластеры(Результат);
OPI_ПолучениеДанныхТестов.Проверка_ОзонКластеры(Результат);
КонецПроцедуры
Процедура Ozon_ПолучитьСписокСкладовОтгрузки(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Поиск = "ТВЕРЬ";
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Поиск = "ТВЕРЬ";
Результат = OPI_Ozon.ПолучитьСписокСкладовОтгрузки(IDКлиента, КлючAPI, Поиск);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСкладовОтгрузки", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонПоиск(Результат);
OPI_ПолучениеДанныхТестов.Проверка_ОзонПоиск(Результат);
КонецПроцедуры
Процедура Ozon_СоздатьЧерновикЗаявкиFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Кластер = 1;
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Кластер = 1;
Позиции = Новый Соответствие;
Позиции.Вставить("1783161863", 5);
Позиции.Вставить("1784654052", 2);
Результат = OPI_Ozon.СоздатьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, Кластер, Позиции);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЧерновикЗаявкиFBO", "Ozon");
OPI_ПолучениеДанныхТестов.Проверка_ОзонЧерновик(Результат);
IDЧерновика = Результат["operation_id"];
OPI_ПолучениеДанныхТестов.Проверка_ОзонЧерновик(Результат);
IDЧерновика = Результат["operation_id"];
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Ozon_FBOOperID", IDЧерновика);
ПараметрыФункции.Вставить("Ozon_FBOOperID", IDЧерновика);
КонецПроцедуры
Процедура Ozon_ПолучитьЧерновикЗаявкиFBO(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDОперации = ПараметрыФункции["Ozon_FBOOperID"];
Результат = OPI_Ozon.ПолучитьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, IDОперации);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
Результат = OPI_Ozon.ПолучитьЧерновикЗаявкиFBO(IDКлиента, КлючAPI, IDОперации);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon");
КонецПроцедуры
#КонецОбласти

View File

@ -1552,6 +1552,147 @@
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Работа со складами";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокКластеров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККЛАСТЕРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока.ОписаниеМетода = "Получает информацию о кластерах и складах";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокКластеров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККЛАСТЕРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокКластеров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОККЛАСТЕРОВ";
НоваяСтрока.Параметр = "--type";
НоваяСтрока.Описание = "Тип кластера: CLUSTER_TYPE_OZON (Россия), CLUSTER_TYPE_CIS (СНГ) (необяз. по ум. - CLUSTER_TYPE_OZON)";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокСкладовОтгрузки";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСКЛАДОВОТГРУЗКИ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока.ОписаниеМетода = "Получает список складов, сортировочных центров и пунктов выдачи
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокСкладовОтгрузки";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСКЛАДОВОТГРУЗКИ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокСкладовОтгрузки";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСКЛАДОВОТГРУЗКИ";
НоваяСтрока.Параметр = "--search";
НоваяСтрока.Описание = "Поиск по названию (4 симв. мин). Для пунктов выдачи укажите полное название";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСписокСкладовОтгрузки";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСПИСОКСКЛАДОВОТГРУЗКИ";
НоваяСтрока.Параметр = "--type";
НоваяСтрока.Описание = "Типы поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT (необяз. по ум. - CREATE_TYPE_DIRECT)";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока.ОписаниеМетода = "Создает черновик заявки на поставку
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--clusters";
НоваяСтрока.Описание = "Идентификаторы кластеров";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--items";
НоваяСтрока.Описание = "Список позиций: Ключ > SKU, Значение > Количество";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--type";
НоваяСтрока.Описание = "Тип поставки: CREATE_TYPE_CROSSDOCK, CREATE_TYPE_DIRECT (необяз. по ум. - CREATE_TYPE_DIRECT)";
НоваяСтрока.Область = "Схема fbo";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "СоздатьЧерновикЗаявкиFBO";
НоваяСтрока.МетодПоиска = "СОЗДАТЬЧЕРНОВИКЗАЯВКИFBO";
НоваяСтрока.Параметр = "--point";
НоваяСтрока.Описание = "Идентификатор точки отгрузки для CREATE_TYPE_CROSSDOCK (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Схема fbo";
Возврат ТаблицаСостава;
КонецФункции