Product
A Product is what a Customer gets from a Startup, with a promise the Customer can rely on.
- Read as
- GuideSpec
An Offer sells it at a Price; the Product itself carries none.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
name | string | required | The name of the Product. |
promise | text | required | What the Customer can rely on. |
status | string | required | One of draft, selling or retired, set by its Offers. |
Object
{
"$id": "https: //api.sb/ routewise.dev/ products/ product_1",
"$type": "Product",
"name": "RouteWise",
"promise": "A route plan for 500 stops in under two seconds.",
"status": "draft"
}Relationships
- A Product builds into many Products: a Product composes other Products; a change to a part reaches every Product built from it.
buildsInto, inversebuiltFrom. - A Product is built from many Products: a Product composes other Products; a change to a part reaches every Product built from it.
builtFrom, inversebuildsInto. - A Product draws on many Sources: a Product keeps its promise with Sources it did not build: owned, wrapped, or recruited.
drawsOn, inversesupplies. - A Product has many Implementations: an Implementation runs an Interface, System or Verb of one Product.
implementations, inverseruns. - A Product is included in many Offers: each Offer sells one Product; one Product sits inside many Offers at different prices and terms.
includedIn, inverseincludes. - A Product is made by one Startup: each Product belongs to exactly one Startup, which builds it and stands behind its promise.
madeBy, inversemakes. - A Product has one Publication: a Product reaches its Customers through one Publication; nothing inside it names the platform.
publication, inversepublishes. - A Product is reached via many Interfaces: each Interface exposes one Product; a Product is reached through many Interfaces.
reachedVia, inversereaches.
Lifecycle
| State | Meaning | Moves to |
|---|---|---|
draft (first) | Defined, with no published Offer selling it. | selling on Offer.published when the Offer is the first published Offer on this Product |
selling | At least one published Offer sells it. | retired on Offer.withdrawn when the last published Offer on this Product is withdrawn |
retired | No published Offer sells it; Customers keep what their Orders and Subscriptions bought. | selling on Offer.published when an Offer on this Product is published again |
Verbs
createCreates a Product.POST /{namespace}/productsgetReturns one Product by id.GET /{namespace}/products/{id}listReturns Products, newest first, one page at a time.GET /{namespace}/productsupdateChanges the given properties of a Product.PATCH /{namespace}/products/{id}deleteDeletes a Product; its history is kept.DELETE /{namespace}/products/{id}
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Product.create | Yes | Yes | Yes | No |
Product.get | Yes | Yes | Yes | Yes |
Product.list | Yes | Yes | Yes | Yes |
Product.update | Yes | Yes | Yes | No |
Product.delete | Yes | Yes | Yes | No |
Call it
Add a product to LedgerLark.Example
A certified translation is a Product whose promise reads "accepted by the receiving agency within 48 hours, or redone free." Two Offers sell it: $40 a page, and $300 a month for 10 pages.