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

OZON: Обновление цен и получение остатков

This commit is contained in:
Anton Titovets 2024-09-09 13:44:35 +03:00
parent 32c9560954
commit 9409ecdee7
27 changed files with 3532 additions and 2603 deletions

View File

@ -1198,6 +1198,10 @@ jobs:
if: ${{ cancelled() }} == false if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "OzonAPI_Barcodes" run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "OzonAPI_Barcodes"
- name: Warehouses managment
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_Tests.os "OzonAPI_WarehousesManagment"
- name: Записать логи - name: Записать логи
if: ${{ cancelled() }} == false if: ${{ cancelled() }} == false
uses: actions/cache/save@v3 uses: actions/cache/save@v3

View File

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

View File

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

View File

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

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.GetProductsStocks(ClientID, APIKey, Filter);

View File

@ -1,4 +1,4 @@
 ClientID = "2128753";  ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b..."; APIKey = "7cc90d26-33e4-499b...";
Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey); Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey);

View File

@ -0,0 +1,15 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
ProductID = "1111588191";
Prices = New Structure;
Prices.Insert("auto_action_enabled" , "DISABLED");
Prices.Insert("currency_code" , "RUB");
Prices.Insert("min_price" , "200");
Prices.Insert("offer_id" , "143210608");
Prices.Insert("old_price" , "0");
Prices.Insert("price" , "200");
Prices.Insert("price_strategy_enabled", "DISABLED");
Prices.Insert("product_id" , ProductID);
Result = OPI_Ozon.UpdateProductsPrices(ClientID, APIKey, Prices);

View File

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

View File

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

View File

@ -0,0 +1,15 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
IDТовара = "1111588191";
Цены = Новый Структура;
Цены.Вставить("auto_action_enabled" , "DISABLED");
Цены.Вставить("currency_code" , "RUB");
Цены.Вставить("min_price" , "200");
Цены.Вставить("offer_id" , "143210608");
Цены.Вставить("old_price" , "0");
Цены.Вставить("price" , "200");
Цены.Вставить("price_strategy_enabled", "DISABLED");
Цены.Вставить("product_id" , IDТовара);
Результат = OPI_Ozon.ОбновитьЦеныТоваров(IDКлиента, КлючAPI, Цены);

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,4 +1,4 @@
 IDКлиента = "2128753";  IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b..."; КлючAPI = "7cc90d26-33e4-499b...";
Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI); Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI);

File diff suppressed because it is too large Load Diff

View File

@ -929,7 +929,7 @@ Function GetAttributesUpdateStructure(Val Clear = False) Export
EndFunction EndFunction
// Get products filter structure // Get products filter structure
// Gets the structure for products list selecting in the GetProductList function // Gets the structure for selecting the list of goods in the functions GetProductList and GetProductsStocks
// //
// Note // 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) // 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)
@ -1141,6 +1141,38 @@ EndFunction
#Region PricesAndStocks #Region PricesAndStocks
// Get products stocks
// Gets the number of items in the balance with or without filtering
//
// Note
// Method at API documentation: [post /v3/product/info/stocks](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoStocksV3)
//
// 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 GetProductsStocks(Val ClientID, Val APIKey, Val Filter = "", Val LastID = 0) Export
URL = "https://api-seller.ozon.ru/v3/product/info/stocks";
Headers = CreateRequestHeaders(ClientID, APIKey);
Limit = 100;
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
// Update products stocks // Update products stocks
// Changes the information about the stock amount of a product // Changes the information about the stock amount of a product
// //
@ -1172,6 +1204,34 @@ Function UpdateProductsStocks(Val ClientID, Val APIKey, Val Stocks) Export
EndFunction EndFunction
// Update products prices
// Changes the price of one or more items
//
// Note
// Method at API documentation: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Prices - Array of Structure - Products prices. See GetProductPriceStructure - prices
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsPrices(Val ClientID, Val APIKey, Val Prices) Export
URL = "https://api-seller.ozon.ru/v1/product/import/prices";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("prices", Prices, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get product stocks structure // Get product stocks structure
// Gets the data structure for udpating product stocks in the UpdateProductsStocks function // Gets the data structure for udpating product stocks in the UpdateProductsStocks function
// //
@ -1205,6 +1265,44 @@ Function GetProductStocksStructure(Val Clear = False) Export
EndFunction EndFunction
// Get product price structure
// Gets the product price structure for the UpdateProductsPrices function
//
// Note
// The description of the filter fields can be found on the documentation page for product list retrieving method: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Filter fields structure
Function GetProductPriceStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("auto_action_enabled" , "<Enable auto application of shares: ENABLED or DISABLED>");
ItemStructure.Insert("currency_code" , "<currency>");
ItemStructure.Insert("min_price" , "<minimum price of product after promotions have been applied>");
ItemStructure.Insert("offer_id" , "<product identifier in the sellers system>");
ItemStructure.Insert("old_price" , "<price before discounts; specify 0 if no discounts are available>");
ItemStructure.Insert("price" , "<product price with discounts>");
ItemStructure.Insert("price_strategy_enabled", "<auto application of price strategies: ENABLED or DISABLED>");
ItemStructure.Insert("product_id" , "<Product ID>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
#EndRegion #EndRegion
#Region WarehousesManagment #Region WarehousesManagment

View File

@ -3300,11 +3300,23 @@ Procedure OzonAPI_Barcodes() Export
EndProcedure EndProcedure
Procedure OzonAPI_PricesAndStocks() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ProductID", TestParameters);
Ozon_GetProductsStocks(TestParameters);
Ozon_UpdateProductsPrices(TestParameters);
EndProcedure
Procedure OzonAPI_WarehousesManagment() Export Procedure OzonAPI_WarehousesManagment() Export
TestParameters = New Structure; TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
Ozon_GetWarehousesList(TestParameters); Ozon_GetWarehousesList(TestParameters);
@ -4170,6 +4182,12 @@ Procedure Check_OzonObjectsArray(Val Result)
EndProcedure EndProcedure
Procedure Check_OzonUpdatedArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"][0]["updated"]).Равно(True);
EndProcedure
Procedure Check_OzonRatingArray(Val Result) Procedure Check_OzonRatingArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array"); OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array");
@ -12593,8 +12611,8 @@ EndProcedure
Procedure Ozon_GetWarehousesList(FunctionParameters) Procedure Ozon_GetWarehousesList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"]; ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"]; APIKey = FunctionParameters["Ozon_ApiKey"];
Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey); Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey);
@ -12606,6 +12624,54 @@ Procedure Ozon_GetWarehousesList(FunctionParameters)
EndProcedure EndProcedure
Procedure Ozon_GetProductsStocks(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.GetProductsStocks(ClientID, APIKey, Filter);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductsStocks", "Ozon");
Check_OzonObjectsArray(Result);
EndProcedure
Procedure Ozon_UpdateProductsPrices(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ProductID = FunctionParameters["Ozon_ProductID"];
Prices = New Structure;
Prices.Insert("auto_action_enabled" , "DISABLED");
Prices.Insert("currency_code" , "RUB");
Prices.Insert("min_price" , "200");
Prices.Insert("offer_id" , "143210608");
Prices.Insert("old_price" , "0");
Prices.Insert("price" , "200");
Prices.Insert("price_strategy_enabled", "DISABLED");
Prices.Insert("product_id" , ProductID);
Result = OPI_Ozon.UpdateProductsPrices(ClientID, APIKey, Prices);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsPrices", "Ozon");
Check_OzonUpdatedArray(Result);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion

View File

@ -249,6 +249,7 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon); NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon);
NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon); NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon);
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon); NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
Return TestTable; Return TestTable;

View File

@ -929,7 +929,7 @@ Function GetAttributesUpdateStructure(Val Clear = False) Export
EndFunction EndFunction
// Get products filter structure // Get products filter structure
// Gets the structure for products list selecting in the GetProductList function // Gets the structure for selecting the list of goods in the functions GetProductList and GetProductsStocks
// //
// Note // 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) // 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)
@ -1141,6 +1141,38 @@ EndFunction
#Region PricesAndStocks #Region PricesAndStocks
// Get products stocks
// Gets the number of items in the balance with or without filtering
//
// Note
// Method at API documentation: [post /v3/product/info/stocks](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoStocksV3)
//
// 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 GetProductsStocks(Val ClientID, Val APIKey, Val Filter = "", Val LastID = 0) Export
URL = "https://api-seller.ozon.ru/v3/product/info/stocks";
Headers = CreateRequestHeaders(ClientID, APIKey);
Limit = 100;
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
// Update products stocks // Update products stocks
// Changes the information about the stock amount of a product // Changes the information about the stock amount of a product
// //
@ -1172,6 +1204,34 @@ Function UpdateProductsStocks(Val ClientID, Val APIKey, Val Stocks) Export
EndFunction EndFunction
// Update products prices
// Changes the price of one or more items
//
// Note
// Method at API documentation: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// Prices - Array of Structure - Products prices. See GetProductPriceStructure - prices
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsPrices(Val ClientID, Val APIKey, Val Prices) Export
URL = "https://api-seller.ozon.ru/v1/product/import/prices";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("prices", Prices, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get product stocks structure // Get product stocks structure
// Gets the data structure for udpating product stocks in the UpdateProductsStocks function // Gets the data structure for udpating product stocks in the UpdateProductsStocks function
// //
@ -1205,6 +1265,44 @@ Function GetProductStocksStructure(Val Clear = False) Export
EndFunction EndFunction
// Get product price structure
// Gets the product price structure for the UpdateProductsPrices function
//
// Note
// The description of the filter fields can be found on the documentation page for product list retrieving method: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Parameters:
// Clear - Boolean - True > structure with empty valuse, False > field descriptions at values - empty
//
// Returns:
// Structure of KeyAndValue - Filter fields structure
Function GetProductPriceStructure(Val Clear = False) Export
OPI_TypeConversion.GetBoolean(Clear);
ItemStructure = New Structure;
ItemStructure.Insert("auto_action_enabled" , "<Enable auto application of shares: ENABLED or DISABLED>");
ItemStructure.Insert("currency_code" , "<currency>");
ItemStructure.Insert("min_price" , "<minimum price of product after promotions have been applied>");
ItemStructure.Insert("offer_id" , "<product identifier in the sellers system>");
ItemStructure.Insert("old_price" , "<price before discounts; specify 0 if no discounts are available>");
ItemStructure.Insert("price" , "<product price with discounts>");
ItemStructure.Insert("price_strategy_enabled", "<auto application of price strategies: ENABLED or DISABLED>");
ItemStructure.Insert("product_id" , "<Product ID>");
If Clear Then
For Each Field In ItemStructure Do
Field.Value = "";
EndDo;
EndIf;
//@skip-check constructor-function-return-section
Return ItemStructure;
EndFunction
#EndRegion #EndRegion
#Region WarehousesManagment #Region WarehousesManagment

View File

@ -249,6 +249,7 @@ Function GetTestTable() Export
NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon); NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon);
NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon); NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon);
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon); NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
Return TestTable; Return TestTable;

View File

@ -3300,11 +3300,23 @@ Procedure OzonAPI_Barcodes() Export
EndProcedure EndProcedure
Procedure OzonAPI_PricesAndStocks() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ProductID", TestParameters);
Ozon_GetProductsStocks(TestParameters);
Ozon_UpdateProductsPrices(TestParameters);
EndProcedure
Procedure OzonAPI_WarehousesManagment() Export Procedure OzonAPI_WarehousesManagment() Export
TestParameters = New Structure; TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Ozon_ClientID" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters); OPI_TestDataRetrieval.ParameterToCollection("Ozon_ApiKey" , TestParameters);
Ozon_GetWarehousesList(TestParameters); Ozon_GetWarehousesList(TestParameters);
@ -4170,6 +4182,12 @@ Procedure Check_OzonObjectsArray(Val Result)
EndProcedure EndProcedure
Procedure Check_OzonUpdatedArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"][0]["updated"]).Равно(True);
EndProcedure
Procedure Check_OzonRatingArray(Val Result) Procedure Check_OzonRatingArray(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array"); OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array");
@ -12593,8 +12611,8 @@ EndProcedure
Procedure Ozon_GetWarehousesList(FunctionParameters) Procedure Ozon_GetWarehousesList(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"]; ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"]; APIKey = FunctionParameters["Ozon_ApiKey"];
Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey); Result = OPI_Ozon.GetWarehousesList(ClientID, APIKey);
@ -12606,6 +12624,54 @@ Procedure Ozon_GetWarehousesList(FunctionParameters)
EndProcedure EndProcedure
Procedure Ozon_GetProductsStocks(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.GetProductsStocks(ClientID, APIKey, Filter);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductsStocks", "Ozon");
Check_OzonObjectsArray(Result);
EndProcedure
Procedure Ozon_UpdateProductsPrices(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ProductID = FunctionParameters["Ozon_ProductID"];
Prices = New Structure;
Prices.Insert("auto_action_enabled" , "DISABLED");
Prices.Insert("currency_code" , "RUB");
Prices.Insert("min_price" , "200");
Prices.Insert("offer_id" , "143210608");
Prices.Insert("old_price" , "0");
Prices.Insert("price" , "200");
Prices.Insert("price_strategy_enabled", "DISABLED");
Prices.Insert("product_id" , ProductID);
Result = OPI_Ozon.UpdateProductsPrices(ClientID, APIKey, Prices);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsPrices", "Ozon");
Check_OzonUpdatedArray(Result);
EndProcedure
#EndRegion #EndRegion
#EndRegion #EndRegion

View File

@ -965,7 +965,7 @@
NewLine.Параметр = "--empty"; NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)"; NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Uploading and updating products"; NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Gets the structure for products list selecting in the GetProductList function"; NewLine.ОписаниеМетода = "Gets the structure for selecting the list of goods in the functions GetProductList and GetProductsStocks";
NewLine = CompositionTable.Add(); NewLine = CompositionTable.Add();
@ -1123,6 +1123,47 @@
NewLine.Область = "Barcodes"; NewLine.Область = "Barcodes";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductsStocks";
NewLine.МетодПоиска = "GETPRODUCTSSTOCKS";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Prices and stocks";
NewLine.ОписаниеМетода = "Gets the number of items in the balance with or without filtering";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductsStocks";
NewLine.МетодПоиска = "GETPRODUCTSSTOCKS";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductsStocks";
NewLine.МетодПоиска = "GETPRODUCTSSTOCKS";
NewLine.Параметр = "--filter";
NewLine.Описание = "Product selection filter. See GetProductsFilterStructure (optional, def. val. - Empty value)";
NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductsStocks";
NewLine.МетодПоиска = "GETPRODUCTSSTOCKS";
NewLine.Параметр = "--last";
NewLine.Описание = "ID of the last value (last_id) from the previous response (optional, def. val. - Empty value)";
NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add(); NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon"; NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon"; NewLine.Модуль = "OPI_Ozon";
@ -1154,6 +1195,37 @@
NewLine.Область = "Prices and stocks"; NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsPrices";
NewLine.МетодПоиска = "UPDATEPRODUCTSPRICES";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Prices and stocks";
NewLine.ОписаниеМетода = "Changes the price of one or more items";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsPrices";
NewLine.МетодПоиска = "UPDATEPRODUCTSPRICES";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsPrices";
NewLine.МетодПоиска = "UPDATEPRODUCTSPRICES";
NewLine.Параметр = "--prices";
NewLine.Описание = "Products prices. See GetProductPriceStructure";
NewLine.Область = "Prices and stocks";
NewLine = CompositionTable.Add(); NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon"; NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon"; NewLine.Модуль = "OPI_Ozon";
@ -1165,6 +1237,17 @@
NewLine.ОписаниеМетода = "Gets the data structure for udpating product stocks in the UpdateProductsStocks function"; NewLine.ОписаниеМетода = "Gets the data structure for udpating product stocks in the UpdateProductsStocks function";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductPriceStructure";
NewLine.МетодПоиска = "GETPRODUCTPRICESTRUCTURE";
NewLine.Параметр = "--empty";
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
NewLine.Область = "Prices and stocks";
NewLine.ОписаниеМетода = "Gets the product price structure for the UpdateProductsPrices function";
NewLine = CompositionTable.Add(); NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon"; NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon"; NewLine.Модуль = "OPI_Ozon";

View File

@ -929,7 +929,7 @@
КонецФункции КонецФункции
// Получить структуру фильтра товаров // Получить структуру фильтра товаров
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров // Получает структуру для отбора списка товаров в функциях ПолучитьСписокТоваров и ПолучитьКоличествоТоваров
// //
// Примечание: // Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList) // Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
@ -1141,6 +1141,38 @@
#Область ЦеныИОстаткиТоваров #Область ЦеныИОстаткиТоваров
// Получить количество товаров
// Получает количество товаров в остатке с фильтром или без
//
// Примечание:
// Метод в документации API: [post /v3/product/info/stocks](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoStocksV3)
//
// Параметры:
// 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/v3/product/info/stocks";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Лимит = 100;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter" , Фильтр , "Коллекция", Параметры);
OPI_Инструменты.ДобавитьПоле("limit" , Лимит , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("last_id", IDПоследнего, "Строка" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Обновить количество товаров // Обновить количество товаров
// Изменяет информацию о количестве товара в наличии // Изменяет информацию о количестве товара в наличии
// //
@ -1172,6 +1204,34 @@
КонецФункции КонецФункции
// Обновить цены товаров
// Изменяет цены однного или нескольких товаров
//
// Примечание:
// Метод в документации API: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Цены - Массив из Структура - Цены товаров. См. ПолучитьСтруктуруЦеныТовара - prices
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ОбновитьЦеныТоваров(Знач IDКлиента, Знач КлючAPI, Знач Цены) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/import/prices";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("prices", Цены, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру остатков товара // Получить структуру остатков товара
// Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров // Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров
// //
@ -1205,6 +1265,44 @@
КонецФункции КонецФункции
// Получить структуру цены товара
// Получает структуру цены товара для функции ОбновитьЦеныТоваров
//
// Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей фильра
Функция ПолучитьСтруктуруЦеныТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("auto_action_enabled" , "<включение автоприменения акций: ENABLED или DISABLED>");
СтруктураТовара.Вставить("currency_code" , "<валюта>");
СтруктураТовара.Вставить("min_price" , "<минимальная цена товара после применения акций>");
СтруктураТовара.Вставить("offer_id" , "<идентификатор товара в системе продавца>");
СтруктураТовара.Вставить("old_price" , "<цена до скидок; укажите значение 0, если скидок нет>");
СтруктураТовара.Вставить("price" , "<цена товара с учётом скидок>");
СтруктураТовара.Вставить("price_strategy_enabled", "<автоприменения стратегий цены: ENABLED или DISABLED>");
СтруктураТовара.Вставить("product_id" , "<ID товара>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
#КонецОбласти #КонецОбласти
#Область РаботаСоСкладами #Область РаботаСоСкладами

View File

@ -3300,6 +3300,18 @@
КонецПроцедуры КонецПроцедуры
Процедура ОзонАПИ_ЦеныИОстаткиТоваров() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ApiKey" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ProductID", ПараметрыТеста);
Ozon_ПолучитьКоличествоТоваров(ПараметрыТеста);
Ozon_ОбновитьЦеныТоваров(ПараметрыТеста);
КонецПроцедуры
Процедура ОзонАПИ_РаботаСоСкладами() Экспорт Процедура ОзонАПИ_РаботаСоСкладами() Экспорт
ПараметрыТеста = Новый Структура; ПараметрыТеста = Новый Структура;
@ -4170,6 +4182,12 @@
КонецПроцедуры КонецПроцедуры
Процедура Проверка_ОзонМассивОбновлено(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"][0]["updated"]).Равно(Истина);
КонецПроцедуры
Процедура Проверка_ОзонМассивРейтингов(Знач Результат) Процедура Проверка_ОзонМассивРейтингов(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["products"]).ИмеетТип("Массив"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["products"]).ИмеетТип("Массив");
@ -12594,7 +12612,7 @@
Процедура Ozon_ПолучитьСписокСкладов(ПараметрыФункции) Процедура Ozon_ПолучитьСписокСкладов(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"]; IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"]; КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI); Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI);
@ -12606,6 +12624,54 @@
КонецПроцедуры КонецПроцедуры
Процедура Ozon_ПолучитьКоличествоТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
МассивID = Новый Массив;
МассивID.Добавить("143210608");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
Фильтр.Вставить("offer_id" , МассивID);
Результат = OPI_Ozon.ПолучитьКоличествоТоваров(IDКлиента, КлючAPI, Фильтр);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКоличествоТоваров", "Ozon");
Проверка_ОзонМассивОбъектов(Результат);
КонецПроцедуры
Процедура Ozon_ОбновитьЦеныТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDТовара = ПараметрыФункции["Ozon_ProductID"];
Цены = Новый Структура;
Цены.Вставить("auto_action_enabled" , "DISABLED");
Цены.Вставить("currency_code" , "RUB");
Цены.Вставить("min_price" , "200");
Цены.Вставить("offer_id" , "143210608");
Цены.Вставить("old_price" , "0");
Цены.Вставить("price" , "200");
Цены.Вставить("price_strategy_enabled", "DISABLED");
Цены.Вставить("product_id" , IDТовара);
Результат = OPI_Ozon.ОбновитьЦеныТоваров(IDКлиента, КлючAPI, Цены);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЦеныТоваров", "Ozon");
Проверка_ОзонМассивОбновлено(Результат);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

View File

@ -249,6 +249,7 @@
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЦеныИОстаткиТоваров" , "Цены и остатки товаров" , Озон);
Возврат ТаблицаТестов; Возврат ТаблицаТестов;

View File

@ -929,7 +929,7 @@
КонецФункции КонецФункции
// Получить структуру фильтра товаров // Получить структуру фильтра товаров
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров // Получает структуру для отбора списка товаров в функциях ПолучитьСписокТоваров и ПолучитьКоличествоТоваров
// //
// Примечание: // Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList) // Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v2/product/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList)
@ -1141,6 +1141,38 @@
#Область ЦеныИОстаткиТоваров #Область ЦеныИОстаткиТоваров
// Получить количество товаров
// Получает количество товаров в остатке с фильтром или без
//
// Примечание:
// Метод в документации API: [post /v3/product/info/stocks](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoStocksV3)
//
// Параметры:
// 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/v3/product/info/stocks";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Лимит = 100;
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("filter" , Фильтр , "Коллекция", Параметры);
OPI_Инструменты.ДобавитьПоле("limit" , Лимит , "Строка" , Параметры);
OPI_Инструменты.ДобавитьПоле("last_id", IDПоследнего, "Строка" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Обновить количество товаров // Обновить количество товаров
// Изменяет информацию о количестве товара в наличии // Изменяет информацию о количестве товара в наличии
// //
@ -1172,6 +1204,34 @@
КонецФункции КонецФункции
// Обновить цены товаров
// Изменяет цены однного или нескольких товаров
//
// Примечание:
// Метод в документации API: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// Цены - Массив из Структура - Цены товаров. См. ПолучитьСтруктуруЦеныТовара - prices
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ОбновитьЦеныТоваров(Знач IDКлиента, Знач КлючAPI, Знач Цены) Экспорт
URL = "https://api-seller.ozon.ru/v1/product/import/prices";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("prices", Цены, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру остатков товара // Получить структуру остатков товара
// Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров // Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров
// //
@ -1205,6 +1265,44 @@
КонецФункции КонецФункции
// Получить структуру цены товара
// Получает структуру цены товара для функции ОбновитьЦеныТоваров
//
// Примечание:
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [post /v1/product/import/prices](@docs.ozon.ru/api/seller/#operation/ProductAPI_ImportProductsPrices)
//
// Параметры:
// Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Структура полей фильра
Функция ПолучитьСтруктуруЦеныТовара(Знач Пустая = Ложь) Экспорт
OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая);
СтруктураТовара = Новый Структура;
СтруктураТовара.Вставить("auto_action_enabled" , "<включение автоприменения акций: ENABLED или DISABLED>");
СтруктураТовара.Вставить("currency_code" , "<валюта>");
СтруктураТовара.Вставить("min_price" , "<минимальная цена товара после применения акций>");
СтруктураТовара.Вставить("offer_id" , "<идентификатор товара в системе продавца>");
СтруктураТовара.Вставить("old_price" , "<цена до скидок; укажите значение 0, если скидок нет>");
СтруктураТовара.Вставить("price" , "<цена товара с учётом скидок>");
СтруктураТовара.Вставить("price_strategy_enabled", "<автоприменения стратегий цены: ENABLED или DISABLED>");
СтруктураТовара.Вставить("product_id" , "<ID товара>");
Если Пустая Тогда
Для Каждого Поле Из СтруктураТовара Цикл
Поле.Значение = "";
КонецЦикла;
КонецЕсли;
//@skip-check constructor-function-return-section
Возврат СтруктураТовара;
КонецФункции
#КонецОбласти #КонецОбласти
#Область РаботаСоСкладами #Область РаботаСоСкладами

View File

@ -249,6 +249,7 @@
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон); НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон);
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЦеныИОстаткиТоваров" , "Цены и остатки товаров" , Озон);
Возврат ТаблицаТестов; Возврат ТаблицаТестов;

View File

@ -3300,6 +3300,18 @@
КонецПроцедуры КонецПроцедуры
Процедура ОзонАПИ_ЦеныИОстаткиТоваров() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ClientID" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ApiKey" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Ozon_ProductID", ПараметрыТеста);
Ozon_ПолучитьКоличествоТоваров(ПараметрыТеста);
Ozon_ОбновитьЦеныТоваров(ПараметрыТеста);
КонецПроцедуры
Процедура ОзонАПИ_РаботаСоСкладами() Экспорт Процедура ОзонАПИ_РаботаСоСкладами() Экспорт
ПараметрыТеста = Новый Структура; ПараметрыТеста = Новый Структура;
@ -4170,6 +4182,12 @@
КонецПроцедуры КонецПроцедуры
Процедура Проверка_ОзонМассивОбновлено(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"][0]["updated"]).Равно(Истина);
КонецПроцедуры
Процедура Проверка_ОзонМассивРейтингов(Знач Результат) Процедура Проверка_ОзонМассивРейтингов(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["products"]).ИмеетТип("Массив"); OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["products"]).ИмеетТип("Массив");
@ -12594,7 +12612,7 @@
Процедура Ozon_ПолучитьСписокСкладов(ПараметрыФункции) Процедура Ozon_ПолучитьСписокСкладов(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"]; IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"]; КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI); Результат = OPI_Ozon.ПолучитьСписокСкладов(IDКлиента, КлючAPI);
@ -12606,6 +12624,54 @@
КонецПроцедуры КонецПроцедуры
Процедура Ozon_ПолучитьКоличествоТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
МассивID = Новый Массив;
МассивID.Добавить("143210608");
Фильтр = Новый Структура;
Фильтр.Вставить("visibility" , "ALL");
Фильтр.Вставить("offer_id" , МассивID);
Результат = OPI_Ozon.ПолучитьКоличествоТоваров(IDКлиента, КлючAPI, Фильтр);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьКоличествоТоваров", "Ozon");
Проверка_ОзонМассивОбъектов(Результат);
КонецПроцедуры
Процедура Ozon_ОбновитьЦеныТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
IDТовара = ПараметрыФункции["Ozon_ProductID"];
Цены = Новый Структура;
Цены.Вставить("auto_action_enabled" , "DISABLED");
Цены.Вставить("currency_code" , "RUB");
Цены.Вставить("min_price" , "200");
Цены.Вставить("offer_id" , "143210608");
Цены.Вставить("old_price" , "0");
Цены.Вставить("price" , "200");
Цены.Вставить("price_strategy_enabled", "DISABLED");
Цены.Вставить("product_id" , IDТовара);
Результат = OPI_Ozon.ОбновитьЦеныТоваров(IDКлиента, КлючAPI, Цены);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЦеныТоваров", "Ozon");
Проверка_ОзонМассивОбновлено(Результат);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецОбласти #КонецОбласти

View File

@ -1017,7 +1017,7 @@
НоваяСтрока.Параметр = "--empty"; НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)"; НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Загрузка и обновление товаров"; НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров"; НоваяСтрока.ОписаниеМетода = "Получает структуру для отбора списка товаров в функциях ПолучитьСписокТоваров и ПолучитьКоличествоТоваров";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
@ -1179,6 +1179,47 @@
НоваяСтрока.Область = "Штрихкоды"; НоваяСтрока.Область = "Штрихкоды";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьКоличествоТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬКОЛИЧЕСТВОТОВАРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока.ОписаниеМетода = "Получает количество товаров в остатке с фильтром или без";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьКоличествоТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬКОЛИЧЕСТВОТОВАРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьКоличествоТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬКОЛИЧЕСТВОТОВАРОВ";
НоваяСтрока.Параметр = "--filter";
НоваяСтрока.Описание = "Фильтр выборки товаров. См. ПолучитьСтруктуруФильтраТоваров (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьКоличествоТоваров";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬКОЛИЧЕСТВОТОВАРОВ";
НоваяСтрока.Параметр = "--last";
НоваяСтрока.Описание = "ID последнего значения (last_id) из предыдущего запроса (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon"; НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon"; НоваяСтрока.Модуль = "OPI_Ozon";
@ -1214,6 +1255,41 @@
НоваяСтрока.Область = "Цены и остатки товаров"; НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока.ОписаниеМетода = "Изменяет цены однного или нескольких товаров
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
НоваяСтрока.Параметр = "--prices";
НоваяСтрока.Описание = "Цены товаров. См. ПолучитьСтруктуруЦеныТовара";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon"; НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon"; НоваяСтрока.Модуль = "OPI_Ozon";
@ -1225,6 +1301,17 @@
НоваяСтрока.ОписаниеМетода = "Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров"; НоваяСтрока.ОписаниеМетода = "Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьСтруктуруЦеныТовара";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУЦЕНЫТОВАРА";
НоваяСтрока.Параметр = "--empty";
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
НоваяСтрока.Область = "Цены и остатки товаров";
НоваяСтрока.ОписаниеМетода = "Получает структуру цены товара для функции ОбновитьЦеныТоваров";
НоваяСтрока = ТаблицаСостава.Добавить(); НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon"; НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon"; НоваяСтрока.Модуль = "OPI_Ozon";