Appearance
ProductState
Type: Object
A priced catalogue entry — what a customer is sold and charged for. Referenced by estimate and order lines, which take their price, quantity and kinds from it. Distinct from product_template, which is the manufacturing blueprint describing how a job is built: a product says what to charge, a template says what to make.
Fields
| Name | Type | Args | Description | Deprecated |
|---|---|---|---|---|
| basePrice | Float | List price charged to the customer, before any per-customer override. Null when the product is always quoted bespoke. | ||
| category | String | Free-text grouping used to organise the catalogue; not a managed resource. | ||
| costPrice | Float | What the product costs to produce or buy in. Used for margin reporting; never shown to a customer. | ||
| createdAt | String! | Creation timestamp (ISO8601) | ||
| currency | CurrencyISO | ISO currency that basePrice and costPrice are denominated in. | ||
| defaultCommercialKind | String | Commercial kind seeded onto a line created from this product. Overridable per line. | ||
| defaultProductionKind | String | Production kind seeded onto a line created from this product, so a quote starts with the right manufacturing route. Overridable per line. | ||
| defaultQuantity | Int | Quantity pre-filled when this product is added to an estimate or order line. | ||
| description | String | Free-text description of what is being sold; surfaced on quotes and orders. | ||
| id | ProductID! | Unique identifier | ||
| isActive | Boolean! | Whether the product is offered. Inactive products are kept for historical lines but are not selectable on new ones. | ||
| name | String! | Human-readable name shown when picking the product on an estimate or order line. | ||
| notes | String | Internal notes about the product; not shown to customers. | ||
| productType | ProductType! | Whether this is a STANDARD catalogue line, a CUSTOM one-off, or a TEMPLATE used as the basis for quick reorders. | ||
| sku | String! | Catalogue code for this product. A product_template may carry the same SKU to link a priced catalogue entry to the blueprint that builds it, but nothing enforces the pairing — the two resources are independent. | ||
| tags | [String!] | Free-text labels for searching and filtering the catalogue. | ||
| updatedAt | String! | Last update timestamp (ISO8601) |