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:
draftin_reviewactivesoldarchived
- work in progress
- waiting for approval or review
- live operational listing
- no longer available for sale
- retained but off the active selling flow
---
Visibility States
privateunlistedpublic
Meaning:
privateunlistedpublic
- not publicly accessible
- direct-link access without normal browse visibility
- normal 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:
UnlistHide completelyDelete listingRestore privatelyRestore to marketplace
- active + unlisted
- active + private
- retained removal, not destructive deletion - archived + private
- active + private
- active + 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.