mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-03-17 21:08:03 +02:00
OZON: Обновление цен и получение остатков
This commit is contained in:
parent
32c9560954
commit
9409ecdee7
4
.github/workflows/oint_test_full_en.yml
vendored
4
.github/workflows/oint_test_full_en.yml
vendored
@ -1198,6 +1198,10 @@ jobs:
|
||||
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"
|
||||
|
||||
- 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: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
|
4
.github/workflows/oint_test_full_ru.yml
vendored
4
.github/workflows/oint_test_full_ru.yml
vendored
@ -1202,6 +1202,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_Тесты.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: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
|
4
docs/en/data/Ozon/GetProductsStocks.json
Normal file
4
docs/en/data/Ozon/GetProductsStocks.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"ClientID": "2128753",
|
||||
"APIKey": "7cc90d26-33e4-499b..."
|
||||
}
|
5
docs/en/data/Ozon/UpdateProductsPrices.json
Normal file
5
docs/en/data/Ozon/UpdateProductsPrices.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ClientID": "2128753",
|
||||
"APIKey": "7cc90d26-33e4-499b...",
|
||||
"ProductID": 1111588191
|
||||
}
|
11
docs/en/examples/Ozon/GetProductsStocks.txt
Normal file
11
docs/en/examples/Ozon/GetProductsStocks.txt
Normal 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);
|
15
docs/en/examples/Ozon/UpdateProductsPrices.txt
Normal file
15
docs/en/examples/Ozon/UpdateProductsPrices.txt
Normal 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);
|
5
docs/ru/data/Ozon/ОбновитьЦеныТоваров.json
Normal file
5
docs/ru/data/Ozon/ОбновитьЦеныТоваров.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"IDКлиента": "2128753",
|
||||
"КлючAPI": "7cc90d26-33e4-499b...",
|
||||
"IDТовара": 1111588191
|
||||
}
|
4
docs/ru/data/Ozon/ПолучитьКоличествоТоваров.json
Normal file
4
docs/ru/data/Ozon/ПолучитьКоличествоТоваров.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"IDКлиента": "2128753",
|
||||
"КлючAPI": "7cc90d26-33e4-499b..."
|
||||
}
|
15
docs/ru/examples/Ozon/ОбновитьЦеныТоваров.txt
Normal file
15
docs/ru/examples/Ozon/ОбновитьЦеныТоваров.txt
Normal 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, Цены);
|
11
docs/ru/examples/Ozon/ПолучитьКоличествоТоваров.txt
Normal file
11
docs/ru/examples/Ozon/ПолучитьКоличествоТоваров.txt
Normal file
@ -0,0 +1,11 @@
|
||||
IDКлиента = "2128753";
|
||||
КлючAPI = "7cc90d26-33e4-499b...";
|
||||
|
||||
МассивID = Новый Массив;
|
||||
МассивID.Добавить("143210608");
|
||||
|
||||
Фильтр = Новый Структура;
|
||||
Фильтр.Вставить("visibility" , "ALL");
|
||||
Фильтр.Вставить("offer_id" , МассивID);
|
||||
|
||||
Результат = OPI_Ozon.ПолучитьКоличествоТоваров(IDКлиента, КлючAPI, Фильтр);
|
File diff suppressed because it is too large
Load Diff
@ -929,7 +929,7 @@ Function GetAttributesUpdateStructure(Val Clear = False) Export
|
||||
EndFunction
|
||||
|
||||
// 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
|
||||
// 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
|
||||
|
||||
// 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
|
||||
// Changes the information about the stock amount of a product
|
||||
//
|
||||
@ -1172,6 +1204,34 @@ Function UpdateProductsStocks(Val ClientID, Val APIKey, Val Stocks) Export
|
||||
|
||||
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
|
||||
// Gets the data structure for udpating product stocks in the UpdateProductsStocks function
|
||||
//
|
||||
@ -1205,6 +1265,44 @@ Function GetProductStocksStructure(Val Clear = False) Export
|
||||
|
||||
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
|
||||
|
||||
#Region WarehousesManagment
|
||||
|
@ -3300,6 +3300,18 @@ Procedure OzonAPI_Barcodes() Export
|
||||
|
||||
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
|
||||
|
||||
TestParameters = New Structure;
|
||||
@ -4170,6 +4182,12 @@ Procedure Check_OzonObjectsArray(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_OzonUpdatedArray(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["result"][0]["updated"]).Равно(True);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_OzonRatingArray(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array");
|
||||
@ -12606,6 +12624,54 @@ Procedure Ozon_GetWarehousesList(FunctionParameters)
|
||||
|
||||
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
|
||||
|
@ -249,6 +249,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
@ -929,7 +929,7 @@ Function GetAttributesUpdateStructure(Val Clear = False) Export
|
||||
EndFunction
|
||||
|
||||
// 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
|
||||
// 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
|
||||
|
||||
// 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
|
||||
// Changes the information about the stock amount of a product
|
||||
//
|
||||
@ -1172,6 +1204,34 @@ Function UpdateProductsStocks(Val ClientID, Val APIKey, Val Stocks) Export
|
||||
|
||||
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
|
||||
// Gets the data structure for udpating product stocks in the UpdateProductsStocks function
|
||||
//
|
||||
@ -1205,6 +1265,44 @@ Function GetProductStocksStructure(Val Clear = False) Export
|
||||
|
||||
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
|
||||
|
||||
#Region WarehousesManagment
|
||||
|
@ -249,6 +249,7 @@ Function GetTestTable() Export
|
||||
NewTest(TestTable, "OzonAPI_UploadingAndUpdatingProducts" , "Uploading and updating products" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_Barcodes" , "Barcodes" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_WarehousesManagment" , "Warehouses managment" , Ozon);
|
||||
NewTest(TestTable, "OzonAPI_PricesAndStocks" , "Prices and stocks" , Ozon);
|
||||
|
||||
Return TestTable;
|
||||
|
||||
|
@ -3300,6 +3300,18 @@ Procedure OzonAPI_Barcodes() Export
|
||||
|
||||
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
|
||||
|
||||
TestParameters = New Structure;
|
||||
@ -4170,6 +4182,12 @@ Procedure Check_OzonObjectsArray(Val Result)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_OzonUpdatedArray(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["result"][0]["updated"]).Равно(True);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure Check_OzonRatingArray(Val Result)
|
||||
|
||||
OPI_TestDataRetrieval.ExpectsThat(Result["products"]).ИмеетТип("Array");
|
||||
@ -12606,6 +12624,54 @@ Procedure Ozon_GetWarehousesList(FunctionParameters)
|
||||
|
||||
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
|
||||
|
@ -965,7 +965,7 @@
|
||||
NewLine.Параметр = "--empty";
|
||||
NewLine.Описание = "True > structure with empty valuse, False > field descriptions at values (optional, def. val. - No)";
|
||||
NewLine.Область = "Uploading and updating products";
|
||||
NewLine.ОписаниеМетода = "Gets the structure for products list selecting in the GetProductList function";
|
||||
NewLine.ОписаниеМетода = "Gets the structure for selecting the list of goods in the functions GetProductList and GetProductsStocks";
|
||||
|
||||
|
||||
NewLine = CompositionTable.Add();
|
||||
@ -1123,6 +1123,47 @@
|
||||
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.Библиотека = "ozon";
|
||||
NewLine.Модуль = "OPI_Ozon";
|
||||
@ -1154,6 +1195,37 @@
|
||||
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.Библиотека = "ozon";
|
||||
NewLine.Модуль = "OPI_Ozon";
|
||||
@ -1165,6 +1237,17 @@
|
||||
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.Библиотека = "ozon";
|
||||
NewLine.Модуль = "OPI_Ozon";
|
||||
|
@ -929,7 +929,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Получить структуру фильтра товаров
|
||||
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров
|
||||
// Получает структуру для отбора списка товаров в функциях ПолучитьСписокТоваров и ПолучитьКоличествоТоваров
|
||||
//
|
||||
// Примечание:
|
||||
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [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
|
||||
Возврат СтруктураТовара;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСоСкладами
|
||||
|
@ -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"]).ИмеетТип("Массив");
|
||||
@ -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");
|
||||
|
||||
Проверка_ОзонМассивОбновлено(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -249,6 +249,7 @@
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЦеныИОстаткиТоваров" , "Цены и остатки товаров" , Озон);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -929,7 +929,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Получить структуру фильтра товаров
|
||||
// Получает структуру для отбора списка товаров в функции ПолучитьСписокТоваров
|
||||
// Получает структуру для отбора списка товаров в функциях ПолучитьСписокТоваров и ПолучитьКоличествоТоваров
|
||||
//
|
||||
// Примечание:
|
||||
// Описание полей фильтра можно найти на странице документации по получению списка товаров: [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
|
||||
Возврат СтруктураТовара;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область РаботаСоСкладами
|
||||
|
@ -249,6 +249,7 @@
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЗагрузкаИОбновлениеТоваров" , "Загрузка и обновление товаров" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_Штрихкоды" , "Штрихкоды" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_РаботаСоСкладами" , "Работа со складами" , Озон);
|
||||
НовыйТест(ТаблицаТестов, "ОзонАПИ_ЦеныИОстаткиТоваров" , "Цены и остатки товаров" , Озон);
|
||||
|
||||
Возврат ТаблицаТестов;
|
||||
|
||||
|
@ -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"]).ИмеетТип("Массив");
|
||||
@ -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");
|
||||
|
||||
Проверка_ОзонМассивОбновлено(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -1017,7 +1017,7 @@
|
||||
НоваяСтрока.Параметр = "--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";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
@ -1214,6 +1255,41 @@
|
||||
НоваяСтрока.Область = "Цены и остатки товаров";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
|
||||
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--clientid";
|
||||
НоваяСтрока.Описание = "Идентификатор клиента";
|
||||
НоваяСтрока.Область = "Цены и остатки товаров";
|
||||
НоваяСтрока.ОписаниеМетода = "Изменяет цены однного или нескольких товаров
|
||||
|
|
||||
| Пример указания параметра типа массив:
|
||||
| --param ""['Val1','Val2','Val3']""
|
||||
|";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
|
||||
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--apikey";
|
||||
НоваяСтрока.Описание = "API ключ";
|
||||
НоваяСтрока.Область = "Цены и остатки товаров";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
НоваяСтрока.Метод = "ОбновитьЦеныТоваров";
|
||||
НоваяСтрока.МетодПоиска = "ОБНОВИТЬЦЕНЫТОВАРОВ";
|
||||
НоваяСтрока.Параметр = "--prices";
|
||||
НоваяСтрока.Описание = "Цены товаров. См. ПолучитьСтруктуруЦеныТовара";
|
||||
НоваяСтрока.Область = "Цены и остатки товаров";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
@ -1225,6 +1301,17 @@
|
||||
НоваяСтрока.ОписаниеМетода = "Получает структуру для внесения остатков товара в функции ОбновитьКоличествоТоваров";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
НоваяСтрока.Метод = "ПолучитьСтруктуруЦеныТовара";
|
||||
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬСТРУКТУРУЦЕНЫТОВАРА";
|
||||
НоваяСтрока.Параметр = "--empty";
|
||||
НоваяСтрока.Описание = "Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей (необяз. по ум. - Нет)";
|
||||
НоваяСтрока.Область = "Цены и остатки товаров";
|
||||
НоваяСтрока.ОписаниеМетода = "Получает структуру цены товара для функции ОбновитьЦеныТоваров";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "ozon";
|
||||
НоваяСтрока.Модуль = "OPI_Ozon";
|
||||
|
Loading…
x
Reference in New Issue
Block a user