1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2024-12-29 02:57:35 +02:00

OZON: Изменение артикулов

This commit is contained in:
Anton 2024-08-27 21:24:09 +03:00
parent b8d9d255ae
commit 3e717a7317
19 changed files with 5274 additions and 4801 deletions

View File

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

View File

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

View File

@ -0,0 +1,5 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
Article = "143210608";
Result = OPI_Ozon.GetProductsInformation(ClientID, APIKey, , , Article);

View File

@ -0,0 +1,7 @@
 ClientID = "2128753";
APIKey = "7cc90d26-33e4-499b...";
ArticlesMap = New Map;
ArticlesMap.Insert("143210608", "143210609");
Result = OPI_Ozon.UpdateProductsArticles(ClientID, APIKey, ArticlesMap);

View File

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

View File

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

View File

@ -0,0 +1,7 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
СоответствиеАртикулов = Новый Соответствие;
СоответствиеАртикулов.Вставить("143210608", "143210609");
Результат = OPI_Ozon.ИзменитьАртикулыТоваров(IDКлиента, КлючAPI, СоответствиеАртикулов);

View File

@ -0,0 +1,5 @@
 IDКлиента = "2128753";
КлючAPI = "7cc90d26-33e4-499b...";
Артикул = "143210608";
Результат = OPI_Ozon.ПолучитьИнформациюОТоварах(IDКлиента, КлючAPI, , , Артикул);

File diff suppressed because it is too large Load Diff

View File

@ -258,34 +258,39 @@ Function GetProductList(Val ClientID, Val APIKey, Val Filter = "", Val LastID =
EndFunction
// Get product information
// Gets product information by identifiers
// Get products informations
// Gets information about products by an array of identifiers
//
// Note
// Specify the minimum price of the product after all promotions have been applied in your personal cabinet. The min_price parameter from the method response is being reworked and returns 0
// The active_product parameter is deprecated, use the values of the visible parameter
// The fbs_sku and fbo_sku parameters from the method response were disabled on August 15, 2023
// Method at API documentation: [post /v2/product/info](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoV2)
// The body of the request must contain a single identifier or an array of identical identifiers, the response will be an array of items
// Method at API documentation: [post /v2/product/info/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoListV2)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ProductID - String, Number - Product identifier - productid
// SKU - String, Number - Product identifier in the Ozon system (SKU) - sku
// Article - String, Number - Item identifier in the vendor's system (Article) - offerid
// ProductsID - Number, Array Of Number - Products identifier - productid
// SKU - Number, Array Of Number - Products identifiers in the Ozon system (SKU) - sku
// Articles - String, Array of String - Item identifiers in the vendor's system (Article) - offerid
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function GetProductInformation(Val ClientID, Val APIKey, Val ProductID = 0, Val SKU = 0, Val Article = "") Export
Function GetProductsInformation(Val ClientID
, Val APIKey
, Val ProductsID = 0
, Val SKU = 0
, Val Articles = "") Export
URL = "https://api-seller.ozon.ru/v2/product/info";
URL = "https://api-seller.ozon.ru/v2/product/info/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("offer_id" , Article , "String" , Parameters);
OPI_Tools.AddField("product_id", ProductID, "Number" , Parameters);
OPI_Tools.AddField("sku" , SKU , "Number" , Parameters);
OPI_Tools.AddField("offer_id" , Articles , "Array" , Parameters);
OPI_Tools.AddField("product_id", ProductsID, "Array" , Parameters);
OPI_Tools.AddField("sku" , SKU , "Array" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
@ -522,6 +527,46 @@ Function CheckProductsImagesUpload(Val ClientID, Val APIKey, Val ProductsID) Exp
EndFunction
// Update products articles
// Modifies articles of existing products
//
// Note
// Method at API documentation: [post /v1/product/update/offer-id](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateOfferID)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ArticlesMap - Map Of KeyAndValue - Articles: Key > current, Value > new - offers
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsArticles(Val ClientID, Val APIKey, Val ArticlesMap) Export
OPI_TypeConversion.GetCollection(ArticlesMap);
If TypeOf(ArticlesMap) = Type("Array") Then
Raise "Article value type error ";
EndIf;
ArrayOfObjects = New Array;
For Each ArticlesPair In ArticlesMap Do
ArrayOfObjects.Add(New Structure("offer_id,new_offer_id", ArticlesPair.Key, ArticlesPair.Value));
EndDo;
URL = "https://api-seller.ozon.ru/v1/product/update/offer-id";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("update_offer_id", ArrayOfObjects, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get product structure
// Gets the structure of product standard fields
//

View File

@ -3271,11 +3271,12 @@ Procedure OzonAPI_UploadingAndUpdatingProducts() Export
Ozon_UpdateProductsAttributes(TestParameters);
Ozon_GetProductsFilterStructure(TestParameters);
Ozon_GetProductList(TestParameters);
Ozon_GetProductInformation(TestParameters);
Ozon_GetProductsInformation(TestParameters);
Ozon_GetProductsContentRating(TestParameters);
Ozon_GetProductDescription(TestParameters);
Ozon_UpdateProductImages(TestParameters);
Ozon_CheckProductsImagesUpload(TestParameters);
Ozon_UpdateProductsArticles(TestParameters);
EndProcedure
@ -4152,6 +4153,14 @@ Procedure Check_OzonProduct(Val Result)
EndProcedure
Procedure Check_OzonProducts(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["name"]).Заполнено();
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["id"]).Заполнено();
EndProcedure
Procedure Check_OzonLimits(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["daily_create"]).Заполнено();
@ -4165,6 +4174,12 @@ Procedure Check_OzonPictures(Val Result)
EndProcedure
Procedure Check_OzonNoErrors(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["errors"].Count()).Равно(0);
EndProcedure
#EndRegion
#Region AtomicTests
@ -12192,19 +12207,19 @@ Procedure Ozon_GetProductsContentRating(FunctionParameters)
EndProcedure
Procedure Ozon_GetProductInformation(FunctionParameters)
Procedure Ozon_GetProductsInformation(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Article = "143210608";
Result = OPI_Ozon.GetProductInformation(ClientID, APIKey, , , Article);
Result = OPI_Ozon.GetProductsInformation(ClientID, APIKey, , , Article);
// END
OPI_TestDataRetrieval.WriteLog(Result, "GetProductInformation", "Ozon");
OPI_TestDataRetrieval.WriteLog(Result, "GetProductsInformation", "Ozon");
Check_OzonProduct(Result);
Check_OzonProducts(Result);
EndProcedure
@ -12285,6 +12300,33 @@ Procedure Ozon_CheckProductsImagesUpload(FunctionParameters)
EndProcedure
Procedure Ozon_UpdateProductsArticles(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ArticlesMap = New Map;
ArticlesMap.Insert("143210608", "143210609");
Result = OPI_Ozon.UpdateProductsArticles(ClientID, APIKey, ArticlesMap);
// END
OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsArticles", "Ozon");
Check_OzonNoErrors(Result);
ArticlesMap = New Map;
ArticlesMap.Insert("143210609", "143210608");
Result = OPI_Ozon.UpdateProductsArticles(ClientID, APIKey, ArticlesMap);
OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsArticles (reverse)", "Ozon");
Check_OzonNoErrors(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -258,34 +258,39 @@ Function GetProductList(Val ClientID, Val APIKey, Val Filter = "", Val LastID =
EndFunction
// Get product information
// Gets product information by identifiers
// Get products informations
// Gets information about products by an array of identifiers
//
// Note
// Specify the minimum price of the product after all promotions have been applied in your personal cabinet. The min_price parameter from the method response is being reworked and returns 0
// The active_product parameter is deprecated, use the values of the visible parameter
// The fbs_sku and fbo_sku parameters from the method response were disabled on August 15, 2023
// Method at API documentation: [post /v2/product/info](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoV2)
// The body of the request must contain a single identifier or an array of identical identifiers, the response will be an array of items
// Method at API documentation: [post /v2/product/info/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoListV2)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ProductID - String, Number - Product identifier - productid
// SKU - String, Number - Product identifier in the Ozon system (SKU) - sku
// Article - String, Number - Item identifier in the vendor's system (Article) - offerid
// ProductsID - Number, Array Of Number - Products identifier - productid
// SKU - Number, Array Of Number - Products identifiers in the Ozon system (SKU) - sku
// Articles - String, Array of String - Item identifiers in the vendor's system (Article) - offerid
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function GetProductInformation(Val ClientID, Val APIKey, Val ProductID = 0, Val SKU = 0, Val Article = "") Export
Function GetProductsInformation(Val ClientID
, Val APIKey
, Val ProductsID = 0
, Val SKU = 0
, Val Articles = "") Export
URL = "https://api-seller.ozon.ru/v2/product/info";
URL = "https://api-seller.ozon.ru/v2/product/info/list";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("offer_id" , Article , "String" , Parameters);
OPI_Tools.AddField("product_id", ProductID, "Number" , Parameters);
OPI_Tools.AddField("sku" , SKU , "Number" , Parameters);
OPI_Tools.AddField("offer_id" , Articles , "Array" , Parameters);
OPI_Tools.AddField("product_id", ProductsID, "Array" , Parameters);
OPI_Tools.AddField("sku" , SKU , "Array" , Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
@ -522,6 +527,46 @@ Function CheckProductsImagesUpload(Val ClientID, Val APIKey, Val ProductsID) Exp
EndFunction
// Update products articles
// Modifies articles of existing products
//
// Note
// Method at API documentation: [post /v1/product/update/offer-id](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateOfferID)
//
// Parameters:
// ClientID - String - Client identifier - clientid
// APIKey - String - API key - apikey
// ArticlesMap - Map Of KeyAndValue - Articles: Key > current, Value > new - offers
//
// Returns:
// Map Of KeyAndValue - Serialized JSON response from Ozon Seller API
Function UpdateProductsArticles(Val ClientID, Val APIKey, Val ArticlesMap) Export
OPI_TypeConversion.GetCollection(ArticlesMap);
If TypeOf(ArticlesMap) = Type("Array") Then
Raise "Article value type error ";
EndIf;
ArrayOfObjects = New Array;
For Each ArticlesPair In ArticlesMap Do
ArrayOfObjects.Add(New Structure("offer_id,new_offer_id", ArticlesPair.Key, ArticlesPair.Value));
EndDo;
URL = "https://api-seller.ozon.ru/v1/product/update/offer-id";
Headers = CreateRequestHeaders(ClientID, APIKey);
Parameters = New Structure;
OPI_Tools.AddField("update_offer_id", ArrayOfObjects, "Array", Parameters);
Response = OPI_Tools.Post(URL, Parameters, Headers);
Return Response;
EndFunction
// Get product structure
// Gets the structure of product standard fields
//

View File

@ -3271,11 +3271,12 @@ Procedure OzonAPI_UploadingAndUpdatingProducts() Export
Ozon_UpdateProductsAttributes(TestParameters);
Ozon_GetProductsFilterStructure(TestParameters);
Ozon_GetProductList(TestParameters);
Ozon_GetProductInformation(TestParameters);
Ozon_GetProductsInformation(TestParameters);
Ozon_GetProductsContentRating(TestParameters);
Ozon_GetProductDescription(TestParameters);
Ozon_UpdateProductImages(TestParameters);
Ozon_CheckProductsImagesUpload(TestParameters);
Ozon_UpdateProductsArticles(TestParameters);
EndProcedure
@ -4152,6 +4153,14 @@ Procedure Check_OzonProduct(Val Result)
EndProcedure
Procedure Check_OzonProducts(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"]).ИмеетТип("Array");
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["name"]).Заполнено();
OPI_TestDataRetrieval.ExpectsThat(Result["result"]["items"][0]["id"]).Заполнено();
EndProcedure
Procedure Check_OzonLimits(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["daily_create"]).Заполнено();
@ -4165,6 +4174,12 @@ Procedure Check_OzonPictures(Val Result)
EndProcedure
Procedure Check_OzonNoErrors(Val Result)
OPI_TestDataRetrieval.ExpectsThat(Result["errors"].Count()).Равно(0);
EndProcedure
#EndRegion
#Region AtomicTests
@ -12192,19 +12207,19 @@ Procedure Ozon_GetProductsContentRating(FunctionParameters)
EndProcedure
Procedure Ozon_GetProductInformation(FunctionParameters)
Procedure Ozon_GetProductsInformation(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
Article = "143210608";
Result = OPI_Ozon.GetProductInformation(ClientID, APIKey, , , Article);
Result = OPI_Ozon.GetProductsInformation(ClientID, APIKey, , , Article);
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductInformation", "Ozon");
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "GetProductsInformation", "Ozon");
Check_OzonProduct(Result);
Check_OzonProducts(Result);
EndProcedure
@ -12285,6 +12300,33 @@ Procedure Ozon_CheckProductsImagesUpload(FunctionParameters)
EndProcedure
Procedure Ozon_UpdateProductsArticles(FunctionParameters)
ClientID = FunctionParameters["Ozon_ClientID"];
APIKey = FunctionParameters["Ozon_ApiKey"];
ArticlesMap = New Map;
ArticlesMap.Insert("143210608", "143210609");
Result = OPI_Ozon.UpdateProductsArticles(ClientID, APIKey, ArticlesMap);
// END
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsArticles", "Ozon");
Check_OzonNoErrors(Result);
ArticlesMap = New Map;
ArticlesMap.Insert("143210609", "143210608");
Result = OPI_Ozon.UpdateProductsArticles(ClientID, APIKey, ArticlesMap);
// !OInt OPI_TestDataRetrieval.WriteLog(Result, "UpdateProductsArticles (reverse)", "Ozon");
Check_OzonNoErrors(Result);
EndProcedure
#EndRegion
#EndRegion

View File

@ -289,19 +289,19 @@
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductInformation";
NewLine.МетодПоиска = "GETPRODUCTINFORMATION";
NewLine.Метод = "GetProductsInformation";
NewLine.МетодПоиска = "GETPRODUCTSINFORMATION";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Gets product information by identifiers";
NewLine.ОписаниеМетода = "Gets information about products by an array of identifiers";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductInformation";
NewLine.МетодПоиска = "GETPRODUCTINFORMATION";
NewLine.Метод = "GetProductsInformation";
NewLine.МетодПоиска = "GETPRODUCTSINFORMATION";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Uploading and updating products";
@ -310,30 +310,30 @@
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductInformation";
NewLine.МетодПоиска = "GETPRODUCTINFORMATION";
NewLine.Метод = "GetProductsInformation";
NewLine.МетодПоиска = "GETPRODUCTSINFORMATION";
NewLine.Параметр = "--productid";
NewLine.Описание = "Product identifier (optional, def. val. - Empty value)";
NewLine.Описание = "Products identifier (optional, def. val. - Empty value)";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductInformation";
NewLine.МетодПоиска = "GETPRODUCTINFORMATION";
NewLine.Метод = "GetProductsInformation";
NewLine.МетодПоиска = "GETPRODUCTSINFORMATION";
NewLine.Параметр = "--sku";
NewLine.Описание = "Product identifier in the Ozon system (SKU) (optional, def. val. - Empty value)";
NewLine.Описание = "Products identifiers in the Ozon system (SKU) (optional, def. val. - Empty value)";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "GetProductInformation";
NewLine.МетодПоиска = "GETPRODUCTINFORMATION";
NewLine.Метод = "GetProductsInformation";
NewLine.МетодПоиска = "GETPRODUCTSINFORMATION";
NewLine.Параметр = "--offerid";
NewLine.Описание = "Item identifier in the vendor's system (Article) (optional, def. val. - Empty value)";
NewLine.Описание = "Item identifiers in the vendor's system (Article) (optional, def. val. - Empty value)";
NewLine.Область = "Uploading and updating products";
@ -625,6 +625,37 @@
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsArticles";
NewLine.МетодПоиска = "UPDATEPRODUCTSARTICLES";
NewLine.Параметр = "--clientid";
NewLine.Описание = "Client identifier";
NewLine.Область = "Uploading and updating products";
NewLine.ОписаниеМетода = "Modifies articles of existing products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsArticles";
NewLine.МетодПоиска = "UPDATEPRODUCTSARTICLES";
NewLine.Параметр = "--apikey";
NewLine.Описание = "API key";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";
NewLine.Метод = "UpdateProductsArticles";
NewLine.МетодПоиска = "UPDATEPRODUCTSARTICLES";
NewLine.Параметр = "--offers";
NewLine.Описание = "Articles: Key > current, Value > new";
NewLine.Область = "Uploading and updating products";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "ozon";
NewLine.Модуль = "OPI_Ozon";

View File

@ -258,34 +258,39 @@
КонецФункции
// Получить информацию о товаре
// Получает информацию о товаре по идентификаторам
// Получить информацию о товарах
// Получает информацию о товарах по массиву идентификаторов
//
// Примечание:
// Уточняйте минимальную цену товара после применения всех акций в личном кабинете. Параметр min_price из ответа метода на доработке и возвращает 0
// Параметр active_product устарел, используйте значения параметра visible
// Параметры fbs_sku и fbo_sku из ответа метода были отключены 15 августа 2023 года
// Метод в документации API: [post /v2/product/info](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoV2)
// В теле запроса должен быть один идентификатор или массив однотипных идентификаторов, в ответе будет массив items
// Метод в документации API: [post /v2/product/info/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoListV2)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// IDТовара - Строка, Число - Идентификатор товара - productid
// SKU - Строка, Число - Идентификатор товара в системе Ozon (SKU) - sku
// Артикул - Строка, Число - Идентификатор товара в системе продавца (Артикул) - offerid
// IDТоваров - Число, Массив Из Число - Идентификаторы товаров - productid
// SKU - Число, Массив Из Число - Идентификаторы товаров в системе Ozon (SKU) - sku
// Артикулы - Строка, Массив Из Строка - Идентификаторы товаров в системе продавца (Артикул) - offerid
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьИнформациюОТоваре(Знач IDКлиента, Знач КлючAPI, Знач IDТовара = 0, Знач SKU = 0, Знач Артикул = "") Экспорт
Функция ПолучитьИнформациюОТоварах(Знач IDКлиента
, Знач КлючAPI
, Знач IDТоваров = 0
, Знач SKU = 0
, Знач Артикулы = "") Экспорт
URL = "https://api-seller.ozon.ru/v2/product/info";
URL = "https://api-seller.ozon.ru/v2/product/info/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("offer_id" , Артикул , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("product_id", IDТовара, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("sku" , SKU , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("offer_id" , Артикулы , "Массив" , Параметры);
OPI_Инструменты.ДобавитьПоле("product_id", IDТоваров, "Массив" , Параметры);
OPI_Инструменты.ДобавитьПоле("sku" , SKU , "Массив" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
@ -522,6 +527,46 @@
КонецФункции
// Изменить артикулы товаров
// Изменяет артикулы существующих товаров
//
// Примечание:
// Метод в документации API: [post /v1/product/update/offer-id](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateOfferID)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// СоответствиеАртикулов - Соответствие Из КлючИЗначение - Артикулы: Ключ > старый, Значение > новый - offers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ИзменитьАртикулыТоваров(Знач IDКлиента, Знач КлючAPI, Знач СоответствиеАртикулов) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеАртикулов);
Если ТипЗнч(СоответствиеАртикулов) = Тип("Массив") Тогда
ВызватьИсключение "Ошибка типа значения соответствия артикулов";
КонецЕсли;
МассивОбъектов = Новый Массив;
Для Каждого ПараАртикулов Из СоответствиеАртикулов Цикл
МассивОбъектов.Добавить(Новый Структура("offer_id,new_offer_id", ПараАртикулов.Ключ, ПараАртикулов.Значение));
КонецЦикла;
URL = "https://api-seller.ozon.ru/v1/product/update/offer-id";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("update_offer_id", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//

View File

@ -3271,11 +3271,12 @@
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыТеста);
Ozon_ПолучитьСписокТоваров(ПараметрыТеста);
Ozon_ПолучитьИнформациюОТоваре(ПараметрыТеста);
Ozon_ПолучитьИнформациюОТоварах(ПараметрыТеста);
Ozon_ПолучитьКонтентРейтингТоваров(ПараметрыТеста);
Ozon_ПолучитьОписаниеТовара(ПараметрыТеста);
Ozon_ОбновитьИзображенияТовара(ПараметрыТеста);
Ozon_ПроверитьЗагрузкуИзображенийТоваров(ПараметрыТеста);
Ozon_ИзменитьАртикулыТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4152,6 +4153,14 @@
КонецПроцедуры
Процедура Проверка_ОзонТовары(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["name"]).Заполнено();
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["id"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонЛимиты(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["daily_create"]).Заполнено();
@ -4165,6 +4174,12 @@
КонецПроцедуры
Процедура Проверка_ОзонБезОшибок(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["errors"].Количество()).Равно(0);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -12192,19 +12207,19 @@
КонецПроцедуры
Процедура Ozon_ПолучитьИнформациюОТоваре(ПараметрыФункции)
Процедура Ozon_ПолучитьИнформациюОТоварах(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Артикул = "143210608";
Результат = OPI_Ozon.ПолучитьИнформациюОТоваре(IDКлиента, КлючAPI, , , Артикул);
Результат = OPI_Ozon.ПолучитьИнформациюОТоварах(IDКлиента, КлючAPI, , , Артикул);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТоваре", "Ozon");
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТоварах", "Ozon");
Проверка_ОзонТовар(Результат);
Проверка_ОзонТовары(Результат);
КонецПроцедуры
@ -12285,6 +12300,33 @@
КонецПроцедуры
Процедура Ozon_ИзменитьАртикулыТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СоответствиеАртикулов = Новый Соответствие;
СоответствиеАртикулов.Вставить("143210608", "143210609");
Результат = OPI_Ozon.ИзменитьАртикулыТоваров(IDКлиента, КлючAPI, СоответствиеАртикулов);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьАртикулыТоваров", "Ozon");
Проверка_ОзонБезОшибок(Результат);
СоответствиеАртикулов = Новый Соответствие;
СоответствиеАртикулов.Вставить("143210609", "143210608");
Результат = OPI_Ozon.ИзменитьАртикулыТоваров(IDКлиента, КлючAPI, СоответствиеАртикулов);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьАртикулыТоваров (обратный)", "Ozon");
Проверка_ОзонБезОшибок(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -258,34 +258,39 @@
КонецФункции
// Получить информацию о товаре
// Получает информацию о товаре по идентификаторам
// Получить информацию о товарах
// Получает информацию о товарах по массиву идентификаторов
//
// Примечание:
// Уточняйте минимальную цену товара после применения всех акций в личном кабинете. Параметр min_price из ответа метода на доработке и возвращает 0
// Параметр active_product устарел, используйте значения параметра visible
// Параметры fbs_sku и fbo_sku из ответа метода были отключены 15 августа 2023 года
// Метод в документации API: [post /v2/product/info](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoV2)
// В теле запроса должен быть один идентификатор или массив однотипных идентификаторов, в ответе будет массив items
// Метод в документации API: [post /v2/product/info/list](@docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductInfoListV2)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// IDТовара - Строка, Число - Идентификатор товара - productid
// SKU - Строка, Число - Идентификатор товара в системе Ozon (SKU) - sku
// Артикул - Строка, Число - Идентификатор товара в системе продавца (Артикул) - offerid
// IDТоваров - Число, Массив Из Число - Идентификаторы товаров - productid
// SKU - Число, Массив Из Число - Идентификаторы товаров в системе Ozon (SKU) - sku
// Артикулы - Строка, Массив Из Строка - Идентификаторы товаров в системе продавца (Артикул) - offerid
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ПолучитьИнформациюОТоваре(Знач IDКлиента, Знач КлючAPI, Знач IDТовара = 0, Знач SKU = 0, Знач Артикул = "") Экспорт
Функция ПолучитьИнформациюОТоварах(Знач IDКлиента
, Знач КлючAPI
, Знач IDТоваров = 0
, Знач SKU = 0
, Знач Артикулы = "") Экспорт
URL = "https://api-seller.ozon.ru/v2/product/info";
URL = "https://api-seller.ozon.ru/v2/product/info/list";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("offer_id" , Артикул , "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("product_id", IDТовара, "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("sku" , SKU , "Число" , Параметры);
OPI_Инструменты.ДобавитьПоле("offer_id" , Артикулы , "Массив" , Параметры);
OPI_Инструменты.ДобавитьПоле("product_id", IDТоваров, "Массив" , Параметры);
OPI_Инструменты.ДобавитьПоле("sku" , SKU , "Массив" , Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
@ -522,6 +527,46 @@
КонецФункции
// Изменить артикулы товаров
// Изменяет артикулы существующих товаров
//
// Примечание:
// Метод в документации API: [post /v1/product/update/offer-id](@docs.ozon.ru/api/seller/#operation/ProductAPI_ProductUpdateOfferID)
//
// Параметры:
// IDКлиента - Строка - Идентификатор клиента - clientid
// КлючAPI - Строка - API ключ - apikey
// СоответствиеАртикулов - Соответствие Из КлючИЗначение - Артикулы: Ключ > старый, Значение > новый - offers
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Ozon Seller API
Функция ИзменитьАртикулыТоваров(Знач IDКлиента, Знач КлючAPI, Знач СоответствиеАртикулов) Экспорт
OPI_ПреобразованиеТипов.ПолучитьКоллекцию(СоответствиеАртикулов);
Если ТипЗнч(СоответствиеАртикулов) = Тип("Массив") Тогда
ВызватьИсключение "Ошибка типа значения соответствия артикулов";
КонецЕсли;
МассивОбъектов = Новый Массив;
Для Каждого ПараАртикулов Из СоответствиеАртикулов Цикл
МассивОбъектов.Добавить(Новый Структура("offer_id,new_offer_id", ПараАртикулов.Ключ, ПараАртикулов.Значение));
КонецЦикла;
URL = "https://api-seller.ozon.ru/v1/product/update/offer-id";
Заголовки = СоздатьЗаголовкиЗапроса(IDКлиента, КлючAPI);
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("update_offer_id", МассивОбъектов, "Массив", Параметры);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Получить структуру товара
// Получает структуру стандартных полей товара
//

View File

@ -3271,11 +3271,12 @@
Ozon_ОбновитьХарактеристикиТоваров(ПараметрыТеста);
Ozon_ПолучитьСтруктуруФильтраТоваров(ПараметрыТеста);
Ozon_ПолучитьСписокТоваров(ПараметрыТеста);
Ozon_ПолучитьИнформациюОТоваре(ПараметрыТеста);
Ozon_ПолучитьИнформациюОТоварах(ПараметрыТеста);
Ozon_ПолучитьКонтентРейтингТоваров(ПараметрыТеста);
Ozon_ПолучитьОписаниеТовара(ПараметрыТеста);
Ozon_ОбновитьИзображенияТовара(ПараметрыТеста);
Ozon_ПроверитьЗагрузкуИзображенийТоваров(ПараметрыТеста);
Ozon_ИзменитьАртикулыТоваров(ПараметрыТеста);
КонецПроцедуры
@ -4152,6 +4153,14 @@
КонецПроцедуры
Процедура Проверка_ОзонТовары(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"]).ИмеетТип("Массив");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["name"]).Заполнено();
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["items"][0]["id"]).Заполнено();
КонецПроцедуры
Процедура Проверка_ОзонЛимиты(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["daily_create"]).Заполнено();
@ -4165,6 +4174,12 @@
КонецПроцедуры
Процедура Проверка_ОзонБезОшибок(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["errors"].Количество()).Равно(0);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@ -12192,19 +12207,19 @@
КонецПроцедуры
Процедура Ozon_ПолучитьИнформациюОТоваре(ПараметрыФункции)
Процедура Ozon_ПолучитьИнформациюОТоварах(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
Артикул = "143210608";
Результат = OPI_Ozon.ПолучитьИнформациюОТоваре(IDКлиента, КлючAPI, , , Артикул);
Результат = OPI_Ozon.ПолучитьИнформациюОТоварах(IDКлиента, КлючAPI, , , Артикул);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТоваре", "Ozon");
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюОТоварах", "Ozon");
Проверка_ОзонТовар(Результат);
Проверка_ОзонТовары(Результат);
КонецПроцедуры
@ -12285,6 +12300,33 @@
КонецПроцедуры
Процедура Ozon_ИзменитьАртикулыТоваров(ПараметрыФункции)
IDКлиента = ПараметрыФункции["Ozon_ClientID"];
КлючAPI = ПараметрыФункции["Ozon_ApiKey"];
СоответствиеАртикулов = Новый Соответствие;
СоответствиеАртикулов.Вставить("143210608", "143210609");
Результат = OPI_Ozon.ИзменитьАртикулыТоваров(IDКлиента, КлючAPI, СоответствиеАртикулов);
// END
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьАртикулыТоваров", "Ozon");
Проверка_ОзонБезОшибок(Результат);
СоответствиеАртикулов = Новый Соответствие;
СоответствиеАртикулов.Вставить("143210609", "143210608");
Результат = OPI_Ozon.ИзменитьАртикулыТоваров(IDКлиента, КлючAPI, СоответствиеАртикулов);
// !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьАртикулыТоваров (обратный)", "Ozon");
Проверка_ОзонБезОшибок(Результат);
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -289,19 +289,23 @@
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоваре";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРЕ";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоварах";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРАХ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Получает информацию о товаре по идентификаторам";
НоваяСтрока.ОписаниеМетода = "Получает информацию о товарах по массиву идентификаторов
|
| Пример указания параметра типа массив:
| --param ""['Val1','Val2','Val3']""
|";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоваре";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРЕ";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоварах";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРАХ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Загрузка и обновление товаров";
@ -310,30 +314,30 @@
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоваре";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРЕ";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоварах";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРАХ";
НоваяСтрока.Параметр = "--productid";
НоваяСтрока.Описание = "Идентификатор товара (необяз. по ум. - Пустое значение)";
НоваяСтрока.Описание = "Идентификаторы товаров (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоваре";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРЕ";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоварах";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРАХ";
НоваяСтрока.Параметр = "--sku";
НоваяСтрока.Описание = "Идентификатор товара в системе Ozon (SKU) (необяз. по ум. - Пустое значение)";
НоваяСтрока.Описание = "Идентификаторы товаров в системе Ozon (SKU) (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоваре";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРЕ";
НоваяСтрока.Метод = "ПолучитьИнформациюОТоварах";
НоваяСтрока.МетодПоиска = "ПОЛУЧИТЬИНФОРМАЦИЮОТОВАРАХ";
НоваяСтрока.Параметр = "--offerid";
НоваяСтрока.Описание = "Идентификатор товара в системе продавца (Артикул) (необяз. по ум. - Пустое значение)";
НоваяСтрока.Описание = "Идентификаторы товаров в системе продавца (Артикул) (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Загрузка и обновление товаров";
@ -649,6 +653,37 @@
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ИзменитьАртикулыТоваров";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬАРТИКУЛЫТОВАРОВ";
НоваяСтрока.Параметр = "--clientid";
НоваяСтрока.Описание = "Идентификатор клиента";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока.ОписаниеМетода = "Изменяет артикулы существующих товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ИзменитьАртикулыТоваров";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬАРТИКУЛЫТОВАРОВ";
НоваяСтрока.Параметр = "--apikey";
НоваяСтрока.Описание = "API ключ";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";
НоваяСтрока.Метод = "ИзменитьАртикулыТоваров";
НоваяСтрока.МетодПоиска = "ИЗМЕНИТЬАРТИКУЛЫТОВАРОВ";
НоваяСтрока.Параметр = "--offers";
НоваяСтрока.Описание = "Артикулы: Ключ > старый, Значение > новый";
НоваяСтрока.Область = "Загрузка и обновление товаров";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "ozon";
НоваяСтрока.Модуль = "OPI_Ozon";