Product
One good or service the business sells, makes, buys or stocks, described once.
A Product is a thing or a piece of work the business sells, described once: a good, a menu item, an equipment model, a spare part, a digital license, a service program or a consulting hour. Product Type* says which. A service is a Product with no stock; stock, purchase cost and recipes are facts of Inventory, not columns here. Who sells it and at what price is an Offer. BDS type: schema:Product.
Fields
Identity
| Field | Storage | Meaning |
|---|---|---|
| Name* | Text | Trade name, without size or packaging |
| Product # | Auto-number | Local sequence; match by Name* and SKU°, not by number |
| Description° | Long text | What the product is, for someone who never saw it |
| SKU° | Text | Our own stock code; the vendor’s code belongs to the vendor quote |
| GTIN° | Text | Barcode digits printed on the product |
| Image° | Attachments | Photos; the first one is the one shown |
| URL° | URL | Manufacturer or vendor page |
| Documents° | Attachments | Manuals and spec sheets |
Classification
| Field | Storage | Meaning |
|---|---|---|
| Product Type* | Single choice | Good, Menu Item, Ingredient, Equipment Model, Part, Retainer, Subscription, Project, Hourly, Digital |
| Kind | Formula | Service, Digital or Good, derived from Product Type* |
| Category° | Linked records | Product Category; one category |
| Brand° | Linked records | Brand; one brand, blank for unbranded goods |
| Intake Step | Formula | Routes Draft or blank-status rows to their next creation step; blank for Active and Archived |
| Product Check | Formula | Name* and Product Type* are filled |
| Tags° | Linked records | Tags (mirror); optional |
Who makes it and whose catalog it is in
| Field | Storage | Meaning |
|---|---|---|
| Provider° | Linked records | Organization (mirror); the company that makes the good or delivers the service |
| Owner° | Linked records | Organization (mirror); the one group company whose catalog holds it; blank means shared |
Composition, offers and substitutes
| Field | Storage | Meaning |
|---|---|---|
| Components | Linked records | Lines in Product Component where this product is the whole |
| Component Of | Linked records | Lines where this product is the part |
| Offers | Linked records | Offers that sell this product |
| Alternative To° | Linked records | On a substitute, the main product it can replace |
| Alternatives | Linked records | Inverse: products that can replace this one |
State and audit
| Field | Storage | Meaning |
|---|---|---|
| Lifecycle Status* | Single choice | Draft, Active, Archived |
| Created At | Created time | When the row was created |
Reference grid captured on 2026-10-28, before the intake views and label updates. Use the current view names in this guide.
Calculated rules
Kind
IF(OR({Product Type*} = "Retainer", {Product Type*} = "Subscription", {Product Type*} = "Hourly", {Product Type*} = "Project"), "Service",
IF({Product Type*} = "Digital", "Digital",
IF(LEN({Product Type*} & "") = 0, "", "Good")))
A Service row is also a schema:Service. Kind is blank while Product Type* is blank.
Links and cardinality
One product can have many offers, many component lines as the whole and many as the part. The field descriptions ask for exactly one Category°, Brand°, Provider° and Owner°, but every link field accepts several records; no formula checks that. The Provider is not the seller: a group company can sell a program another company delivers.
Intake routing
The creation intake uses these local formulas. Active and Archived records leave the routed steps; lifecycle changes remain manual.
Product Check
IF(LEN(TRIM({Name*} & "")) = 0, "⚠ No product name. ", "") & IF(LEN({Product Type*} & "") = 0, "⚠ No product type. ", "")
Intake Step
IF(OR({Lifecycle Status*} = "Draft", {Lifecycle Status*} = BLANK()), IF(LEN(TRIM({Name*} & "")) = 0, "Create - 1", IF(LEN({Product Type*} & "") = 0, "Create - 2", "Create - 3")), "")
Lifecycle
Create this record through the intake.
Start every new row as Draft. Set Active when it is in the catalog today. Set Archived to retire it; never delete a row that something points at. Archiving a product does not archive its offers or component lines; do that on each row.
Example
A fictitious program: Name* = Example Program, Product Type* = Retainer, Kind = Service, Category° = Reputation Management, Provider° = the group company that delivers it, Lifecycle Status* = Active. Components lists eight lines; Offers lists one offer at 2600 per month.
Next steps
Add a product and its offer · Compose a product · All entities
