Listing Lifecycle Spec
Purpose
This document defines the client-facing listing lifecycle and visibility model.
Clients need to handle two dimensions:
- workflow state
- visibility state
These are separate on purpose.
Workflow States
draftin_reviewactivesoldarchived
Meaning:
draftwork in progressin_reviewwaiting for approval or reviewactivelive operational listingsoldno longer available for salearchivedretained but off the active selling flow
Visibility States
privateunlistedpublic
Meaning:
privatenot publicly accessibleunlisteddirect-link access without normal browse visibilitypublicnormal marketplace browse and listing-detail visibility
Default Direction
- new listings start as
draft + private - activated listings normally become
active + public unlistedis a manual choice, not the default
Client Rules
- do not collapse workflow and visibility into one UI field
- only
activelistings should be treated as normal publicly discoverable inventory - raw state values are API logic values, not always final display copy
- when the API provides matching label fields, use those labels in UI
Common Valid Combinations
draft + privatein_review + privateactive + privateactive + unlistedactive + publicsold + publicarchived + private
Clients should not assume every theoretical state combination is valid.
Seller Availability Actions
Common seller-facing actions map to lifecycle combinations:
Unlistactive + unlistedHide completelyactive + privateDelete listingretained removal, not destructive deletionarchived + privateRestore privatelyactive + privateRestore to marketplaceactive + public
Public Read Rule
For public client work, use the durable public listing routes and handle workflow and visibility according to the API payload rather than guessing from older compatibility behavior.