Products
Products represent the goods and services available in your CRM's product catalog. They are used as line items on activities such as Quotes, Sales Orders, and Invoices via Product Lines (ProductLine).
Use the Product endpoint to query your product catalog.
Endpoints
List Products
GET
/v1/odata/ProductSingle Product
GET
/v1/odata/Product({id})Create Product
POST
/v1/odata/ProductUpdate Product
PUT
/v1/odata/Product({id})Delete Product
DELETE
/v1/odata/Product({id})Fields
Product Fields
| Field | Type | Description |
|---|---|---|
Name | String | Product name |
LocalizedName | String | Localized product name |
Code | String | Product code / SKU |
Description | String | Product description |
SalesPrice | Double | Sales price |
PurchasePrice | Double | Purchase / cost price |
StockLevel | Double | Current stock level |
IsVatIncluded | Boolean | Whether the sales price includes VAT |
IsInactive | Boolean | Whether the product is inactive |
IsDividable | Boolean | Whether the product can be split into partial quantities |
IsPriceEditable | Boolean | Whether the price can be changed on a product line |
IsVatEditable | Boolean | Whether the VAT group can be changed on a product line |
IsDescriptionEditable | Boolean | Whether the description can be changed on a product line |
Relationships
| Relationship | Target Entity | Cardinality | Description |
|---|---|---|---|
| ProductGroup | ProductGroup | N:1 | Product group / category |
| Unit | Datastore.Unit | N:1 | Unit of measure (e.g., piece, hour, kg) |
| VatGroup | Datastore.VatGroup | N:1 | VAT group |
| GeneralLedgerAccount | Datastore.GeneralLedgerAccount | N:1 | General ledger account |
| RepeatInterval | DateInterval | N:1 | Repeat interval (for recurring products) |
| Price | Price | 1:N | Price list entries |
| ProductLine | ProductLine | 1:N | Product lines referencing this product |
Expanding Relationships
GET
/v1/odata/Product({id})?$expand=ProductGroupNavigating Relationships
GET
/v1/odata/Product({id})/ProductGroupFiltering Examples
GET
/v1/odata/Product?$filter=Name eq '{Name}'&$top={top}GET
/v1/odata/Product?$filter=contains(Name, '{Name}')&$top={top}GET
/v1/odata/Product?$filter=SalesPrice gt {SalesPrice}&$top={top}GET
/v1/odata/Product?$filter=IsInactive eq {IsInactive}&$top={top}GET
/v1/odata/Product?$filter=Code eq '{Code}'&$top={top}