---
title: "Product | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Product-1/"
---

# Product

> - [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent)

## Classes

### Product

#### Extends

#### Constructors

##### Constructor

```ts
new Product(surfaces?): Product;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `surfaces` | [`Surface`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Surface.md#surface)[] | `[]` |

###### Returns

[`Product`](#product)

###### Overrides

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`constructor`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#constructor)

#### Properties

##### defaultDesignLocation

```ts
defaultDesignLocation: PointF;
```

##### id

```ts
id: string;
```

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`id`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#id)

##### palette

```ts
palette: Palette;
```

##### watermarkConfig

```ts
watermarkConfig: WatermarkConfig;
```

#### Accessors

##### defaultCropMarks

###### Get Signature

```ts
get defaultCropMarks(): Collection<CropMark>;
```

###### Returns

[`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`CropMark`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/CropMark.md#cropmark)\>

###### Set Signature

```ts
set defaultCropMarks(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | [`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`CropMark`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/CropMark.md#cropmark)\> |

###### Returns

`void`

##### defaultSafetyLines

###### Get Signature

```ts
get defaultSafetyLines(): Collection<SafetyLine>;
```

###### Returns

[`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`SafetyLine`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/SafetyLine.md#safetyline)\>

###### Set Signature

```ts
set defaultSafetyLines(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | [`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`SafetyLine`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/SafetyLine.md#safetyline)\> |

###### Returns

`void`

##### name

###### Get Signature

```ts
get name(): string;
```

###### Returns

`string`

###### Set Signature

```ts
set name(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | `string` |

###### Returns

`void`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`name`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#name)

##### preferredFonts

###### Get Signature

```ts
get preferredFonts(): string[];
```

###### Returns

`string`[]

###### Set Signature

```ts
set preferredFonts(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | `string`[] |

###### Returns

`void`

##### surfaces

###### Get Signature

```ts
get surfaces(): Collection<Surface>;
```

###### Returns

[`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`Surface`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Surface.md#surface)\>

###### Set Signature

```ts
set surfaces(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | [`Collection`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Collection.md#collection)\<[`Surface`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Surface.md#surface)\> |

###### Returns

`void`

##### tags

###### Get Signature

```ts
get tags(): object;
```

###### Returns

`object`

###### Set Signature

```ts
set tags(value): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `value` | \{ \[`key`: `string`\]: `any`; \} |

###### Returns

`void`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`tags`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#tags)

##### version

###### Get Signature

```ts
get version(): string;
```

###### Returns

`string`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`version`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#version)

#### Methods

##### addPropertyChanged()

```ts
addPropertyChanged(listener): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | (`sender`, `eventArgs`) => `void` |

###### Returns

`void`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`addPropertyChanged`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#addpropertychanged)

##### clone()

```ts
clone(generateNewIds?): Product;
```

###### Parameters

| Parameter | Type | Default value |
| ------ | ------ | ------ |
| `generateNewIds` | `boolean` | `false` |

###### Returns

[`Product`](#product)

##### equals()

```ts
equals(other): boolean;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `other` | [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent) |

###### Returns

`boolean`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`equals`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#equals)

##### generateNewIds()

```ts
generateNewIds(): void;
```

###### Returns

`void`

###### Overrides

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`generateNewIds`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#generatenewids)

##### getAllItems()

```ts
getAllItems(options?): Item[];
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `options` | [`IGetAllItemsOptions`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/IGetAllItemsOptions.md#igetallitemsoptions) |

###### Returns

[`Item`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Item.md#item)[]

##### getSimplifiedObject()

```ts
getSimplifiedObject(omitProperties?): object;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `omitProperties?` | `string` \| `string`[] |

###### Returns

`object`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`getSimplifiedObject`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#getsimplifiedobject)

##### getSurface()

```ts
getSurface(key): Surface;
```

Get surface by name or index.

###### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `key` | `string` | Surface name or index. |

###### Returns

[`Surface`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Surface.md#surface)

##### removePropertyChanged()

```ts
removePropertyChanged(listener): void;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | (`sender`, `eventArgs`) => `void` |

###### Returns

`void`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`removePropertyChanged`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#removepropertychanged)

##### serialize()

```ts
serialize(serializer, forServer?): string;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `serializer` | [`IProductSerializer`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/IProductSerializer.md#iproductserializer) |
| `forServer?` | `boolean` |

###### Returns

`string`

##### toString()

```ts
toString(): string;
```

Returns a string representation of an object.

###### Returns

`string`

###### Inherited from

[`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent).[`toString`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#tostring)
