Wiki/Market Trading/Listings & Market Inventory: From Verified to Visible
02Market Trading4 min read

Listings & Market Inventory: From Verified to Visible

How a device goes from your sellable stock to a published listing — and why the row tracks a channel and an availability, not a mood.

Market inventory at /market/inventory is the staging area between your sellable stock and a listing a buyer can act on. A device that clears the sellable gate is eligible for Market — but eligibility is not publication. The seller still picks what goes live, in which batch, and at what price. And the pool is shared: Market and Auction read the same sellable rows, so a device is in one pool, on one channel at a time.

Channel state and availability

Every row carries two facts that are easy to confuse and deliberately kept apart. The channel state says where the device is published: free, on Market, or at Auction; a device committed to a direct sale from Core shows as blocked too. The availability says whether your team wants it sellable at all: available, unavailable (on hold) or destroyed. A row can be free of any channel and still on hold. Batch membership is the third thing the list tracks: a device in a draft or ready batch is reserved for that batch’s channel and leaves the other channel’s normal selection. The filters follow the same model — source, availability, state, batch, archived, tags, price range, manufacturer, status preset, category. The listing itself is draft, published, paused or archived; the batch behind it goes draft, ready, listed, reserved, sold.

Only resale gets projected

Core pushes a device into the sellable layer only while its disposition is resale. Route an already projected device to recycle, scrap, return to client, donate or internal use, and the projection goes on hold with the disposition as the reason; it comes back by itself when the disposition returns to resale. A listed or reserved device cannot change disposition until it leaves the sale. Refurbishment level “As received” is a valid way to sell and blocks nothing. The sellable layer article has the full gate.

Tags and notes

Each row carries internal tags (your taxonomy) and private notes (the kind of things your trader writes to themselves at 2am — “hold for Gregor, he’ll take all of these at list price”). Tags survive across the device’s lifecycle. Private notes are tenant-only — buyers never see them.

Re-sync from Core

When the warehouse re-grades a listed laptop from C to B, that change has to reach Market without overwriting the seller’s price or description. The item page has a Re-sync from Core action: it refreshes the upstream facts and recomputes the quality score, and keeps the market-owned fields — list price, reserve, currency, refurbishment notes, tags, internal notes, channel history — exactly as they were. Whether the new grade deserves a new price stays a human decision.

Taking stock offline

The bulk action on the list is unpublish: tick the rows that are on Market, they come down together, the devices go back to free. Taking stock out of sale is a different act: put the device on hold, which blocks new publication on Market and Auction alike while the stock row stays. Archive exists only for file-imported items and refuses anything currently on a channel. Physical destruction is recorded as destroyed, with date and reason, and the row is kept for provenance and audit. Nothing here is a delete.

Stale cleanup

A daily job pulls the publication of sellable rows whose source has gone quiet: sixty days for file-imported items, seven days for items pushed over the API. Core-sourced items are never touched, because Core is the live source. The listing is archived, a lot is cancelled if still draft, scheduled or live, the channel returns to free, the stock row stays, and your tenant is notified afterwards with the counts. The thresholds are platform-fixed. Nothing kills a marketplace faster than a listing for a laptop somebody already took home in February.

Whose screen is it

/market/listings/[id] is the seller’s page. When a buyer opens somebody else’s listing, the app sends them to /market/browse/[id], where offers, buy, contact and watch actually work. Both pages show the photos of the devices in the listing, and the seller chooses the cover there; the photos article explains what buyers see and how.

Demo and real never meet

A public, published listing is visible to every signed-in tenant — that is the marketplace working as designed. Demo environments are walled off from real trading, both ways: demo tenants see demo listings, real tenants see real listings, and neither side’s stock appears in the other’s browse, lots or photos. A demo counterparty can still trade with a demo seller; a paying customer never sees a pallet that does not exist.