# Отправка

Данные методы доступны только при использовании JavaScript API метода интеграции.

Пример:

```javascript
o3d.on('submitProgress', function (data) {
    console.log(data.loaded, data.total);
});

o3d.submit(function (data) {
    console.log(data);
});
```

## Методы

### `submit([callback])`

Отправляет заказ.

* `callback` *{*`function (result)`*}* - функция обратного вызова
  * `result` *{*[*SubmitResult*](https://github.com/oasiscatalog/o3d/tree/8b289c36cd104380b99f413ffe27b71f4b912955/submit.html#submitresult)*}*

## События

### `submitStart` *{void}*

Генерируется при начале отправки данных.

### `submitProgress` *{Object}*

Генерируется в процессе отправки данных.

* `loaded` *{integer}* - кол-во отправленных байт
* `total` *{integer}* - общее кол-во байт для отправки
* `lengthComputable` *{boolean}* - известно ли `total`

### `submitAlways` *{*[*SubmitResult*](https://github.com/oasiscatalog/o3d/tree/8b289c36cd104380b99f413ffe27b71f4b912955/submit.html#submitresult)*|Object}*

Генерируется при окончании отправки данных, как при успехе, так и при ошибке.

### `submitDone` *{*[*SubmitResult*](https://github.com/oasiscatalog/o3d/tree/8b289c36cd104380b99f413ffe27b71f4b912955/submit.html#submitresult)*}*

Генерируется при успешном оформлении заказа.

### `submitFail` *{Object}*

Генерируется при ошибке отправки заказа.

## Типы

### `SubmitResult` *{Object}* <a href="#submitresult" id="submitresult"></a>

Результат оформления заказа.

* `orderId` *{integer}* - ID заказа
* `appId` *{integer}* - ID приложения
* `product` *{Object}* - товар
  * `id` *{integer}* - ID товара
  * `id` *{string}* - название товара
* `product` *{Object}* - товар
* `viewHash` *{string}* - хэш для просмотра
* `editHash` *{string}* - хэш для редактирования
* `createdAt` *{string}* - дата и время создания заказа
* `layerImages` *{string\[]}* - массив URL на оригиналы изображений пользователя
* `viewImages` *{string{viewId}}* - массив URL на снимки заказа с ракурсов, отмеченных галочками для отправки
* `areaImages` *{string{areaId}}* - массив URL на изображения композиций слоёв на место нанесение
* `views` *{string{viewId}}* - перечисление используемых ракурсов
* `variants` *{Object{group}}* - используемые варианты товара
  * `id` *{integer}* - ID варианта
  * `title` *{string}* - название варианта
* `areas` *{*[*Area*](https://github.com/oasiscatalog/o3d/tree/8b289c36cd104380b99f413ffe27b71f4b912955/areas.html#area)*{}}* - места нанесения
* `palette` *{Array{areaId}}* - массив выбранных цветов из палитры (если это предполагает тип нанесения)
* `fieldsOrder` *{Object}* - значения пользовательских полей независящих от места нанесения
* `fieldsArea` *{Object{areaId}}* - значения пользовательских полей зависящих от места нанесения
