# Обновление информации о продукте
## Описание работы метода

При вызове метода происходит обновление данных о продукте, переданных в методе.\
Если ранее не было информации о продукте, то создается новый продукт с данными переданными в методе.

## Описание метода

Осуществляется с помощью POST-запроса. Название операции настраивается в системе Майндбокс. Подробней про вызов метода можно прочитать [здесь](https://developers.mindbox.ru/docs/v3).

<Tabs defaultValue="1" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="1">XML</TabsTrigger>
      <TabsTrigger value="2">JSON</TabsTrigger>
    </TabsList>
  
  <TabsContent value="1">
  ```xml 
POST https://api.mindbox.ru/v3/operations/{синхронная/асинхронная операция}?endpointId={уникальный идентификатор сайта/мобильного приложения/и т.п.}&operation={название операции}&deviceUUID={уникальный идентификатор устройства}


Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey {Секретный ключ, обязательность уточнить у менеджера}

<operation>
  <product>
    <ids>
      <{Наименование идентификатора}>{Идентификатор продукта в системе }</{Наименование идентификатора}>
    </ids>
    <categories>
      <category>
        <ids>
          <{Наименование идентификатора}>{Идентификатор категории в системе }</{Наименование идентификатора}>
        </ids>
      </category>
    </categories>
    <name>{Наименование продукта}</name>
    <description>{Описание SKU}</description>
    <isAvailable>{Доступность продукта: true/false}</isAvailable>
    <price>{Текущая цена}</price>
    <oldPrice>{Старая цена}</oldPrice>
    <minPrice>{Минимальная цена продукта}</minPrice>
    <arrivalDateTimeUtc>{Дата и время поступления продукта в формате UTC}</arrivalDateTimeUtc>
    <manufacturerName>{Название производителя}</manufacturerName>
    <shelfLife>{Срок годности продукта (количество дней)}</shelfLife>
    <url>{Ссылка на страницу продукта}</url>
    <pictureUrl>{Ссылка на картинку продукта}</pictureUrl>
    <customFields>
      <{Дополнительное поле продукта}>{Значение доп. поля продукта}</{Дополнительное поле продукта}>
    </customFields>
  </product>
</operation>
```
  </TabsContent>
  <TabsContent value="2">
    ```json
    POST https://api.mindbox.ru/v3/operations/{sync/async}?endpointId={Идентификатор точки интеграции}&operation={название операции}


    Content-Type: application/json; charset=utf-8
    Accept: application/json
    Authorization: Mindbox secretKey="{Секретный ключ}"

    {
      "product": {
        "name": "<Наименование>",
        "description": "<Описание продукта>",
        "isAvailable": "<Доступен для заказа>",
        "barcode": "<Штрихкод>",
        "oldPrice": "<Цена до скидки>",
        "price": "<Текущая цена>",
        "minPrice": "<Минимальная цена продукта>",
        "arrivalDateTimeUtc": "<Дата и время поступления продукта в формате UTC>",
        "manufacturerName": "<Название производителя>",
        "shelfLife": "<Срок годности>",
        "vendorCode": "<Код производителя>",
        "url": "<Ссылка на страницу с описанием>",
        "pictureUrl": "<Ссылка на картинку>",
        "ids": {
          "base1C": "<Id продукта в База1С>"
        },
        "categories": [
          {
            "ids": {
              "base1C": "<Id категории продукта в База1С>"
            }
          },
          {
            "ids": {
              "base1C": "<Id категории продукта в База1С>"
            }
          }
        ],
        "customFields": {
          "type": "<Тип>"
        }
      }
    }
    ```
  </TabsContent>
</Tabs>

## Пример операции

<Tabs defaultValue="1" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="1">Пример вызова XML</TabsTrigger>
      <TabsTrigger value="2">Пример вызова JSON</TabsTrigger>
    </TabsList>
  
  <TabsContent value="1">
  ```xml 
    POST https://api.mindbox.ru/v3/operations/sync?endpointId=MindboxRu&operation=SaveProduct


    Accept: application/xml
    Content-Type: application/xml
    Authorization: SecretKey D061p764m85bklq


    <operation>
      <product>
        <ids>
          <webSiteId>1</webSiteId>
        </ids>
        <category>
          <ids>
            <webSiteId>1</webSiteId>
          </ids>
        </category>
        <name>Продукт 1</name>
        <description>Описание</description>
        <isAvailable>true</isAvailable>
        <price>1000</price>
        <oldPrice>800</oldPrice>
        <minPrice>600</minPrice>
        <arrivalDateTimeUtc>2025-01-27 16:40:16.404</arrivalDateTimeUtc>
        <manufacturerName>Производитель</manufacturerName>
        <shelfLife>90</shelfLife>
        <url>https://mindbox.ru</url>
        <pictureUrl>https://mindbox.ru</pictureUrl>
        <customFields>
          <customField1>1</customField1>
        </customFields>
      </product>
    </operation>
    ```
  </TabsContent>
  <TabsContent value="2">
  ```json 
    POST https://api.mindbox.ru/v3/operations/async?endpointId=backend.karnaukhov.ru&operation=SaveProduct


    Content-Type: application/json; charset=utf-8
    Accept: application/json
    Authorization: SecretKey arTthYenInIep09QNuyk

    {
      "product": {
        "name": "Мороженое",
        "description": "Очень подробное описание",
        "isAvailable": false,
        "barcode": 1620205705,
        "oldPrice": 5741324.89,
        "price": 21247085.82,
        "minPrice": 334142.47,
        "arrivalDateTimeUtc": "2025-01-27 16:40:16.404",
        "manufacturerName": "Производитель",
        "shelfLife": "14:11:12.8254751",
        "vendorCode": "",
        "url": "http://aaptizcpiy.com/bhpfbzykb?cnry=oJiK&qepy=A7Eha",
        "pictureUrl": "http://zxhpldv.com/tipouynyv?hyady=2roB&bwwq=HnWUqfV4Z",
        "ids": {
          "base1C": "1456345919"
        },
        "categories": [
          {
            "ids": {
              "base1C": "62583060"
            }
          },
          {
            "ids": {
              "base1C": "1288663337"
            }
          }
        ],
        "customFields": {
          "type": "Бестселлер"
        }
      }
    }
    ```
  </TabsContent>
</Tabs>

## Ответ

<Tabs defaultValue="1" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="1">XML</TabsTrigger>
      <TabsTrigger value="2">JSON</TabsTrigger>
    </TabsList>
  
  <TabsContent value="1">
  ```xml 
  <result>
    <status>Success</status>
  </result>
  ```
  </TabsContent>
  <TabsContent value="2">
  ```json
    {
        "status": "Success"
    }
  ```
  </TabsContent>
</Tabs>
