> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SuperOffice.WebApi.Data.Product

# <a id="SuperOffice_WebApi_Data_Product" /> Class Product

Namespace: [SuperOffice.WebApi.Data](SuperOffice.WebApi.Data.md)\
Assembly: SuperOffice.WebApi.dll

Carrier object for Product.
Information about a Product from the ERP system. This may be fetched from SuperOffice Product table through the SO Connector

```csharp theme={null}
public class Product : Carrier
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ←
[Carrier](SuperOffice.WebApi.Data.Carrier.md) ←
[Product](SuperOffice.WebApi.Data.Product.md)

#### Inherited Members

[Carrier.TableRight](SuperOffice.WebApi.Data.Carrier.md#SuperOffice_WebApi_Data_Carrier_TableRight),
[Carrier.FieldProperties](SuperOffice.WebApi.Data.Carrier.md#SuperOffice_WebApi_Data_Carrier_FieldProperties),
[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring),
[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)),
[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)),
[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals),
[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode),
[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype),
[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)

## Examples

Get Product 123 using the WebApi client:
<pre><code class="lang-csharp">var configuration = new WebApiConfiguration(url);
var agent = new QuoteAgent(configuration);
var product = agent.GetProduct( 123 );</code></pre>

## Remarks

Use <xref href="SuperOffice.CRM.Services.ArchiveAgent?text=Archive+agent" data-throw-if-not-resolved="false" />:
All Product: <pre><code class="lang-csharp">"Product"</code></pre>

## Constructors

### <a id="SuperOffice_WebApi_Data_Product__ctor" /> Product()

Default constructor - defaults any enum props to 0.

```csharp theme={null}
public Product()
```

## Properties

### <a id="SuperOffice_WebApi_Data_Product_Code" /> Code

The product code / article number in the product supplier system.

```csharp theme={null}
public virtual string Code { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_DefaultSubscriptionQuantity" /> DefaultSubscriptionQuantity

The default number of SubscriptionUnits to suggest when creating quote lines from this product

```csharp theme={null}
public virtual double DefaultSubscriptionQuantity { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_Description" /> Description

The description to use, with potentially several lines. Will be used as tool-tip to use in the list user interface too.

```csharp theme={null}
public virtual string Description { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ERPPriceListKey" /> ERPPriceListKey

Foreign key to the price list that this product is a part of, or the primary key of the pricelist if this is a built-in pricelist.

```csharp theme={null}
public virtual string ERPPriceListKey { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ERPProductKey" /> ERPProductKey

Reference/foreign key to the product in the given pricelist in the product supplier system, if it exists there.

```csharp theme={null}
public virtual string ERPProductKey { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraField1" /> ExtraField1

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

```csharp theme={null}
public virtual string ExtraField1 { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraField2" /> ExtraField2

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

```csharp theme={null}
public virtual string ExtraField2 { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraField3" /> ExtraField3

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

```csharp theme={null}
public virtual string ExtraField3 { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraField4" /> ExtraField4

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

```csharp theme={null}
public virtual string ExtraField4 { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraField5" /> ExtraField5

This a simple field for adding information that the Connector can provide, and that the qoute document need to display.

```csharp theme={null}
public virtual string ExtraField5 { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ExtraInfo" /> ExtraInfo

Extra information, supplied by QuoteConnector, used by a future dynamic GUI extension

```csharp theme={null}
public virtual ProductExtraDataField[] ExtraInfo { get; set; }
```

#### Property Value

[ProductExtraDataField](SuperOffice.WebApi.Data.ProductExtraDataField.md)\[]

### <a id="SuperOffice_WebApi_Data_Product_InAssortment" /> InAssortment

True for products that should currently be offered, false when the product is discontinued and should not ordinarily be offered. When false the product no longer appears in search results.

```csharp theme={null}
public virtual bool InAssortment { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="SuperOffice_WebApi_Data_Product_InStock" /> InStock

Negative numbers will be interpreted as how many is ordered. Might not be available.

```csharp theme={null}
public virtual double InStock { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_IsSubscription" /> IsSubscription

Is this a subscription product, sold in repeating intervals/amounts?

```csharp theme={null}
public virtual bool IsSubscription { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="SuperOffice_WebApi_Data_Product_ItemNumber" /> ItemNumber

Line item number, NOR: «Postnummer». Specific numbers from some hierarchy, for instance “1.4.3.2P”. Typically used to sort the items in the quote by some standard way.

```csharp theme={null}
public virtual string ItemNumber { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_Name" /> Name

The name to use in the user interface.

```csharp theme={null}
public virtual string Name { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_PriceUnit" /> PriceUnit

What is the unit (meter, ton, bushel, microsecond, gradus, τρυβλίον, 五合枡, دونم or whatever); read-only for lines that originate in defined products

```csharp theme={null}
public virtual string PriceUnit { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ProductCategoryKey" /> ProductCategoryKey

Either a List id to an id from a connector provided list, or, if the connection doesn’t support lists, a text with the actual product category.

```csharp theme={null}
public virtual string ProductCategoryKey { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ProductFamilyKey" /> ProductFamilyKey

Either a List id to an id from a connector provided list, or, if the connection doesn't support lists, a text with the actual product family.

```csharp theme={null}
public virtual string ProductFamilyKey { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_ProductId" /> ProductId

Primary key

```csharp theme={null}
public virtual int ProductId { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="SuperOffice_WebApi_Data_Product_ProductTypeKey" /> ProductTypeKey

Either a List id to an id from a connector provided list, or, if the connection doesn’t support lists, a text with the actual product type.

```csharp theme={null}
public virtual string ProductTypeKey { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_QuantityUnit" /> QuantityUnit

What is the unit (meter, ton, bushel, microsecond, gradus, τρυβλίον, 五合枡, دونم or whatever); Connector handles conversion relative to PriceUnit if they are different

```csharp theme={null}
public virtual string QuantityUnit { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_RawExtraInfo" /> RawExtraInfo

Read-only extra information in plain text, supplied by QuoteConnector, used by a future dynamic GUI extension

```csharp theme={null}
public virtual string RawExtraInfo { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_Rights" /> Rights

Field1=right\&Field2=right, etc. of any fields that have non-standard field access rights. Rights can be one of: N (=None or Hidden), R (=Read-only), W (=Writeable), M (=Mandatory). The fields will mostly be from the Quoteline table, but some added fields that are conceptually part of the quoteline, like Image will also be possibly to set rights on. Will be used by SuperOffice to control the user interface when showing the record.

```csharp theme={null}
public virtual string Rights { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_Rule" /> Rule

The names of one or more calculation rules that are in effect for this line, comma-separated case-insensitive. Will NOT be used by SuperOffice.

```csharp theme={null}
public virtual string Rule { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_SubscriptionUnit" /> SubscriptionUnit

Either a List id to an id from a connector provided list, or, if the connection doesn’t support lists, a text with the actual subscription unit.

```csharp theme={null}
public virtual string SubscriptionUnit { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_Supplier" /> Supplier

In SuperOffice, an id from the contact table, when saved as an ERP cache, the name of the supplier

```csharp theme={null}
public virtual string Supplier { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_SupplierCode" /> SupplierCode

Suppliers part code/number or other key-like field

```csharp theme={null}
public virtual string SupplierCode { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_UnitCost" /> UnitCost

The cost price. Might not be given, use Decimal.MinValue to signal this.

```csharp theme={null}
public virtual double UnitCost { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_UnitListPrice" /> UnitListPrice

(Basic Price, normal price, standard price.) This is the basic price from which the discount is computed from. The ListPrice will stay the same even when a larger amount is ordered.

```csharp theme={null}
public virtual double UnitListPrice { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_UnitMinimumPrice" /> UnitMinimumPrice

The minimum price this salesman can offer to his customer. This might be cost price if there is no policy. Might not be given, use Decimal.MinValue to signal this.

```csharp theme={null}
public virtual double UnitMinimumPrice { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_Url" /> Url

URL to product information web page.

```csharp theme={null}
public virtual string Url { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="SuperOffice_WebApi_Data_Product_VAT" /> VAT

Tax/VAT if available from ERP system. THIS IS A PERCENTAGE. In the Superoffice product register, this field is available in the product admin GUI.

```csharp theme={null}
public virtual double VAT { get; set; }
```

#### Property Value

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="SuperOffice_WebApi_Data_Product_VATInfo" /> VATInfo

A field for putting VATInfo you need to show in the final quoteDocument, like the VAT type that is used. Not used in any business logic in SuperOffice; available to document templates.

```csharp theme={null}
public virtual string VATInfo { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

## See Also

[QuoteAgent](SuperOffice.WebApi.Agents.QuoteAgent.md),
[ArchiveAgent](SuperOffice.WebApi.Agents.ArchiveAgent.md),


## Related topics

- [SuperOffice.WebApi.Data.ProductCategory](/en/api/reference/webapi/SuperOffice.WebApi.Data.ProductCategory.md)
- [SuperOffice.WebApi.Data.ProductFamily](/en/api/reference/webapi/SuperOffice.WebApi.Data.ProductFamily.md)
- [SuperOffice.WebApi.Data.ProductType](/en/api/reference/webapi/SuperOffice.WebApi.Data.ProductType.md)
- [SuperOffice.WebApi.Data.ProductExtraDataField](/en/api/reference/webapi/SuperOffice.WebApi.Data.ProductExtraDataField.md)
- [SuperOffice.WebApi.Data.Quote RemoveProductRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Quote_RemoveProductRequest.md)
- [SuperOffice.WebApi.Data.Quote FindProductRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Quote_FindProductRequest.md)
