# Оформление заказа
## Описание метода

| Шаг                                                          | Описание                                                                                                                                                                  |
| :----------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Клиент - Авторизованный - Получить существующего, ищем по... | Предназначен для поиска клиента в базе данных Mindbox. Поиск может происходить по различным (одному или нескольким) параметрам, которые выбираются из выпадающего списка. |
| Заказ (без процессинга) - Оформление заказа                  | Предназначен для того, чтобы создать в системе заказ без процессинга.                                                                                                     |

Создает новый заказ в системе Mindbox. Если такой заказ уже существует, вернется ошибка 400.

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

Accept: application/xml
Content-Type: application/xml
Authorization: SecretKey {Секретный ключ}

<operation>
  <customer>
    <ids>
    	<webSiteUserId>{Идентификатор клиента}</webSiteUserId>
    </ids>
    <email>{Email}</email>
    <mobilePhone>{Мобильный телефон}</mobilePhone>
  </customer>
  <order>
    <deliveryCost>{Стоимость доставки заказа}</deliveryCost>
    <totalPrice>{Итоговая сумма, полученная от пользователя. Должна учитывать возвраты и отмены. Используется для подсчета среднего чека.}</totalPrice>
     "ids": {
      "mindboxId": "<Идентификатор заказа в Mindbox>",
      "testId": "<Идентификатор заказа TestId>",
      "testID2": "<Идентификатор заказа testID2>"
    
    <lines>
      <line>
        <lineId>{Идентификатор позиции}</lineId>
        <product>
          <ids>
            <websiteId>{Идентификатор продукта на сайте}</websiteId>
          </ids>
        </product>
        <basePricePerItem>{Базовая цена за единицу товара}</basePricePerItem>
        <costPricePerItem>{Себестоимость за единицу продукта}</costPricePerItem>
        <quantity>{Количество товара в линии}</quantity>
        <customFields>
          <Дополнительное поле линии>{Значение дополнительного поля}</Дополнительное поле линии>
        </customFields>
        <discounts>
          <discount>
            <type>externalPromoAction</type>
            <externalPromoAction>
              <ids>
                <externalId>{Идентификатор промоакции}</externalId>
              </ids>
            </externalPromoAction>
            <amount>{Размер скидки в рублях}</amount>
          </discount>
          <discount>
            <type>promoCode</type>
            <promoCode>
              <ids>
                <code>{Промокод}</code>
              </ids>
            </promoCode>
            <amount>{Размер скидки в рублях}</amount>
          </discount>
        </discounts>
      </line>
    </lines>
    <payments>
      <payment>
      	<type>{Идентификатор способа оплаты}</type>
     	 	<amount>{Размер платежа}</amount>
	    </payment>
    </payments>
    <customFields>
      <Дополнительное поле заказа>{Значение дополнительного поля}</Дополнительное поле заказа>
    </customFields>
    <area>
      <ids>
        <externalId>{Идентификатор зоны (региона)}</externalId>
      </ids>
    </area>
    <ids>
      <webSiteId>{Идентификатор заказа во внешней системе}</webSiteId>
    </ids>
    <email>{Email-адрес для транзакционных сообщений по заказу}</email>
    <mobilePhone>{Мобильный телефон для транзакционных сообщений по заказу}</mobilePhone>
  </order>
</operation>
```
   </TabsContent>
  <TabsContent value="json">
```json
POST https://api.mindbox.ru/v3/operations/{синхронная/асинхронная операция}?endpointId={уникальный идентификатор сайта/мобильного приложения/и т.п.}&operation={название операции}&deviceUUID={уникальный идентификатор устройства}

Accept: application/json
Content-Type: application/json
Authorization: SecretKey {Секретный ключ}

{
  "customer": {
    "ids": {
      "webSiteUserId": "<Идентификатор клиента>"
    },
    "email": "<Email>",
    "mobilePhone": "<Мобильный телефон>"
  },
  "order": {
    "deliveryCost": "<Стоимость доставки заказа>",
    "totalPrice": "<Итоговая сумма, полученная от пользователя. Должна учитывать возвраты и отмены. Используется для подсчета среднего чека.>",
    "lines": [
      {
        "lineId": "<Идентификатор позиции>",
        "product": {
          "ids": {
            "websiteId": "<Id продукта в Демонстрационный сайт>"
          }
        },
        "basePricePerItem": "<Базовая цена за единицу товара>",
        "costPricePerItem": "<Себестоимость за единицу продукта>",
        "quantity": "<Количество товара в линии>",
        "customFields": {
          "Дополнительное поле линии": "<Значение дополнительного поля>"
        },
        "discounts": [
          {
            "type": "externalPromoAction",
            "externalPromoAction": {
              "ids": {
                "externalId": "<Идентификатор промоакции>"
              }
            },
            "amount": "<Размер скидки в рублях>"
          },
          {
            "type": "promoCode",
            "promoCode": {
              "ids": {
                "code": "<Идентификатор промокода>"
              }
            },
            "amount": "<Размер скидки в рублях>"
          }
        ]
      }
    ],
    "payments": [
      {
        "type": "<Идентификатор способа оплаты>",
        "amount": "<Размер платежа>"
      }
    ],
    "customFields": {
      "Дополнительное поле заказа": "<Значение дополнительного поля>"
    },
    "area": {
      "ids": {
        "externalId": "<Идентификатор зоны (региона)>"
      }
    },
    "ids": {
      "webSiteId": "<Идентификатор заказа во внешней системе>"
    },
    "email": "<Email-адрес для транзакционных сообщений по заказу>",
    "mobilePhone": "<Мобильный телефон для транзакционных сообщений по заказу>"
  }
}
```
   </TabsContent>
  <TabsContent value="js">
```javascript
mindbox("async", {
  operation: "OneClickOrderCheckout",
  data: {
    "customer": {
      "ids": {
        "webSiteUserId": "<Идентификатор клиента>"
      },
      "email": "<Email>",
      "mobilePhone": "<Мобильный телефон>"
    },
    "order": {
      "deliveryCost": "<Стоимость доставки заказа>",
      "totalPrice": "<Итоговая сумма, полученная от пользователя. Должна учитывать возвраты и отмены. Используется для подсчета среднего чека.>",
      "lines": [
        {
          "product": {
            "ids": {
              "websiteId": "<Id продукта в Демонстрационный сайт>"
            }
          },
          "basePricePerItem": "<Базовая цена за единицу товара>",
          "costPricePerItem": "<Себестоимость за единицу товара>",
          "quantity": "<Количество товара в линии>",
          "customFields": {
            "Дополнительное поле линии": "<Значение дополнительного поля>"
          },
          "discounts": [
            {
              "type": "externalPromoAction",
              "externalPromoAction": {
                "ids": {
                  "externalId": "<Идентификатор промоакции>"
                }
              },
              "amount": "<Размер скидки в рублях>"
            },
            {
              "type": "promoCode",
              "promoCode": {
                "ids": {
                  "code": "<Идентификатор промокода>"
                }
              },
              "amount": "<Размер скидки в рублях>"
            }
          ]
        }
      ],
      "payments": [
        {
          "type": "<Идентификатор способа оплаты>",
          "amount": "<Размер платежа>"
        }
      ],
      "customFields": {
        "Дополнительное поле заказа": "<Значение дополнительного поля>"
      },
      "area": {
        "ids": {
          "externalId": "<Идентификатор зоны (региона)>"
        }
      },
      "ids": {
        "webSiteId": "<Идентификатор заказа во внешней системе>"
      },
      "email": "<Email-адрес для транзакционных сообщений по заказу>",
      "mobilePhone": "<Мобильный телефон для транзакционных сообщений по заказу>"
    }
  },
  onSuccess: function() { },
  onError: function(error) { }
});
```
 </TabsContent>
</Tabs>

<br />

## Описание ответа

<Tabs defaultValue="xml" className="w-full">
    <TabsList className="flex w-max gap-2">
      <TabsTrigger value="xml">Успешный ответ (xml)</TabsTrigger>
      <TabsTrigger value="json">Успешный ответ (json)</TabsTrigger>
      <TabsTrigger value="xml_error">Ошибка (xml)</TabsTrigger>
      <TabsTrigger value="json_error">Ошибка (json)</TabsTrigger>
    </TabsList>
  <TabsContent value="xml">
```xml
<?xml version="1.0" encoding="utf-8"?>
<result>  
  <status>Success</status>
</result>
```
   </TabsContent>
  <TabsContent value="json">
```json
{
    "status": "Success"
}
```
   </TabsContent>
  <TabsContent value="xml_error">
```xml
<?xml version="1.0" encoding="utf-8"?>
<result>
  <status>ProtocolError</status>
  <errorMessage>{Текст ошибки}</errorMessage>
  <errorId>{Идентификатор ошибки}</errorId>
  <httpStatusCode>{HTTP-код ответа}</httpStatusCode>
</result>
```
   </TabsContent>
  <TabsContent value="json_error">
```json 
{
    "status": "ProtocolError",
    "errorMessage": "{Текст ошибки}",
    "errorId": "{Идентификатор ошибки}",
    "httpStatusCode": {HTTP-код ответа}
}
```
   </TabsContent>
</Tabs>