---
title: "Interface: IUpdateSurfaceOptionsByProduct | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptionsByProduct/"
---

# Interface: IUpdateSurfaceOptionsByProduct

> - [`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md)

## Extends

## Properties

### updateRevertData?

> `optional` **updateRevertData?**: `boolean`

If `true`, the new print areas or surfaces are stored as ones to restore when the product is reverted. Otherwise, the previously stored ones are restored on product revert. The default value is `true`.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`updateRevertData`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#updaterevertdata)

***

### preserveUserChanges?

> `optional` **preserveUserChanges?**: `boolean`

If `true`, the changes made by a user are restored in the new print areas or surfaces if it is possible. Otherwise, all changes made by the user are wiped. The default value is `true`.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`preserveUserChanges`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#preserveuserchanges)

***

### preserveSafetyLines?

> `optional` **preserveSafetyLines?**: `boolean`

If `true`, the current safety lines, if any, are restored in new print areas. If `false`, safety lines from new print areas are applied. The default value is `true`.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`preserveSafetyLines`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#preservesafetylines)

***

### replaceAll?

> `optional` **replaceAll?**: `boolean`

If `true`, design elements whose names do not match move to the new print area in a random order according to their types. If `false`, only design elements with the same names are moved to the new print area. The default value is `false`.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`replaceAll`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#replaceall)

***

### updateSurfaceSize?

> `optional` **updateSurfaceSize?**: `boolean`

If `true`, changes the surface size to match the new print area or surface. If it's `false` and a mockup is defined, then the surface size remains unchanged. By default, `updateSurfaceSize` is `false`, and the surface size changes only if no mockups are specified.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`updateSurfaceSize`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#updatesurfacesize)

***

### clearRemovedItems?

> `optional` **clearRemovedItems?**: `boolean`

If `true`, the design elements deleted by a user are deleted from the new print areas or surfaces as well, so that the deletion survives the replacement. If `false`, such elements come back with the new design. The default value is `false`.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`clearRemovedItems`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#clearremoveditems)

***

### surfaces?

> `optional` **surfaces?**: `number`[]

An array of surfaces in the current product to be removed.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`surfaces`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#surfaces)

***

### newProductSurfaces?

> `optional` **newProductSurfaces?**: `number`[]

An array of surfaces in the new product to be inserted.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`newProductSurfaces`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#newproductsurfaces)

***

### updateBehavior?

> `optional` **updateBehavior?**: [`UpdateSurfaceBehavior`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/enums/ObjectModel.UpdateSurfaceBehavior.md)

Defines how new surfaces will replace existing surfaces in the product. If `changeSurfaceLength`, removes all pages in the product and replaces them with pages of the new product.

#### Inherited from

[`IUpdateSurfaceOptions`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md).[`updateBehavior`](https://customerscanvas.com/docs/on-premises/design-editor/iframe-api/reference/design-editor-iframe/interfaces/ObjectModel.IUpdateSurfaceOptions.md#updatebehavior)

***

### transferProductJson

> **transferProductJson**: `string`
