---
title: "Class Product | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product/"
---

# Class Product

> **Inheritance:** `System.Object` -> [Aurigma.DesignAtoms.Model.ModelComponent](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md) -> Product

###### **Namespace**: [Aurigma.DesignAtoms.Model](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model.md)

###### **Assembly**: Aurigma.DesignAtoms.Model.dll

```csharp title="Syntax"
public class Product : ModelComponent, ICloneable
```

## Implements

* `System.ComponentModel.INotifyPropertyChanged`
* `System.ICloneable`

## Inherited Members

* [Aurigma.DesignAtoms.Model.ModelComponent.UserTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#usertagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.WarningTagKey](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#warningtagkey)
* [Aurigma.DesignAtoms.Model.ModelComponent.Tags](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tags)
* [Aurigma.DesignAtoms.Model.ModelComponent.GenerateId()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#generateid)
* [Aurigma.DesignAtoms.Model.ModelComponent.ToString()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#tostring)
* [Aurigma.DesignAtoms.Model.ModelComponent.Equals(Aurigma.DesignAtoms.Model.ModelComponent)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#equals)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone(System.Boolean)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.Clone()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#clone)
* [Aurigma.DesignAtoms.Model.ModelComponent.OnPropertyChanged(System.String)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#onpropertychanged)
* [Aurigma.DesignAtoms.Model.ModelComponent.Version](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#version)
* [Aurigma.DesignAtoms.Model.ModelComponent.Id](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#id)
* [Aurigma.DesignAtoms.Model.ModelComponent.Name](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#name)
* [Aurigma.DesignAtoms.Model.ModelComponent.PropertyChanged](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#propertychanged)
* `System.Object.Equals(System.Object,System.Object)`
* `System.Object.ReferenceEquals(System.Object,System.Object)`
* `System.Object.GetType`
* `System.Object.MemberwiseClone`

## Constructors

### Product

```csharp
public Product(string id = null, string name = "", Collection<Surface> surfaces = null)
```

## Properties

### Surfaces

```csharp
public Collection<Surface> Surfaces { get; }
```

### PreferredFonts

```csharp
public string[] PreferredFonts { get; set; }
```

### WatermarkConfig

```csharp
public WatermarkConfig WatermarkConfig { get; set; }
```

## Methods

### GetSurface

```csharp
public Surface GetSurface(string key)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.String` | *key* |  |

##### Returns

[Aurigma.DesignAtoms.Model.Surface](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Surface.md)

### GetAllItems

```csharp
public IEnumerable<BaseItem> GetAllItems(GetAllItemsOptions options = null)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.GetAllItemsOptions](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/GetAllItemsOptions.md) | *options* |  |

##### Returns

`System.Collections.Generic.IEnumerable<Aurigma.DesignAtoms.Model.Items.BaseItem>`

### DeepClone&lt;TItem&gt;

```csharp
public override TItem DeepClone<TItem>(TItem clone = null, bool keepIds = false)
    where TItem : ModelComponent
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `<TItem>` | *clone* |  |
| `System.Boolean` | *keepIds* |  |

##### Returns

`<TItem>`

##### Overrides

* `Aurigma.DesignAtoms.Model.ModelComponent.DeepClone``1(<TItem>,System.Boolean)`

### Equals

```csharp
protected bool Equals(Product other)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| [Aurigma.DesignAtoms.Model.Product](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/Product.md) | *other* |  |

##### Returns

`System.Boolean`

### Equals

```csharp
public override bool Equals(object obj)
```

##### Parameters

| Type | Name | Description |
|:---|:---|:---|
| `System.Object` | *obj* |  |

##### Returns

`System.Boolean`

##### Overrides

* [Aurigma.DesignAtoms.Model.ModelComponent.Equals(System.Object)](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#equals)

### GetHashCode

```csharp
public override int GetHashCode()
```

##### Returns

`System.Int32`

##### Overrides

* [Aurigma.DesignAtoms.Model.ModelComponent.GetHashCode()](https://customerscanvas.com/docs/on-premises/design-atoms-cs/reference/api/Aurigma.DesignAtoms.Model/ModelComponent.md#gethashcode)

## Fields

### DefaultSafetyLines

```csharp
public IEnumerable<SafetyLine> DefaultSafetyLines
```

### DefaultCropMarks

```csharp
public IEnumerable<CropMark> DefaultCropMarks
```

### DefaultDesignLocation

```csharp
public PointF DefaultDesignLocation
```

### CurrentItem

```csharp
public Item CurrentItem
```
