AlmondTill/G3N API

SalePrice

object type

A sale price: ONE effective-dated price window in the parent InventoryItem schedule — the dated record-set IS the full price history. Windows are half-open [startAt, endAt) with endAt ALWAYS present (far-future = the standing price); past the last endAt with no successor the item is NOT for sale (the LAPSE rule — enforced by the sell path; stores + normalizes). Inserts are splice-normalized: a start falling STRICTLY inside the immediately-preceding window auto-TRIMS that predecessor endAt to the new start (the ONE sanctioned in-place mutation — revisioned + evented); overlap with ANY OTHER record refuses CONFLICT/PRICE_WINDOW_OVERLAP naming the blockers. No past starts. The schedule currency is FIXED by the FIRST record; a mismatch is refused NAMED. Doom cancels a not-yet-effective FUTURE record only. startAt/endAt/price are wire-IMMUTABLE.

Fields

FieldTypeNotes
idID ID!The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it.
sysIdString String!The group-scoped human-facing system id (SP-…).
typeString String!The kind of record — always SalePrice here.
captionString String!The record’s display name — what people see it called.
statusString String!The FSM state: active | doomed.
parentIdID ID!The parent InventoryItem; for a SalePrice parentId!== rootId.
rootIdID ID!The org-group family root.
createdAtString String!When the record was created, as a UTC timestamp.
updatedAtString String!When the record last changed, as a UTC timestamp.
revisionNumInt Int!How many times this record has been edited; the first save is 0.
revisionID ID!The OCC revision token — supply it on every mutation of this record; rotates on every write.
refCaptionsRefCaption [RefCaption!]!The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption.
startAtString String!The window start (INCLUSIVE; UTC ISO-8601) — set at birth (absent in the create input = effective NOW, server-stamped), IMMUTABLE thereafter.
endAtString String!The window end (EXCLUSIVE; UTC ISO-8601; ALWAYS present). Moves ONLY via the system splice trim when a successor starts inside this window.
priceMoneyEntry MoneyEntry!The selling price for the window (the strict decimal-string money grammar; the schedule currency is FIXED by the FIRST record). IMMUTABLE — supersede to change.
markdownPlanIdIDThe MarkdownPlan whose schedule fan-out wrote this window.
markdownStepIndexIntThe 0-based step within the stamping plan's cadence.

Used by