Listings et market inventory : de vendable à visible
Comment un appareil passe de votre stock vendable à une listing publiée — et pourquoi la ligne suit un channel et une disponibilité, pas une humeur.
Le market inventory, sur /market/inventory, est la zone de staging entre votre stock vendable et une listing sur laquelle un buyer peut agir. Un appareil qui passe le sellable gate devient éligible pour Market — mais l’éligibilité n’est pas une publication. Le seller choisit encore ce qui passe live, dans quel batch et à quel prix. Et le pool est partagé : Market et Auction lisent les mêmes sellable rows, donc un appareil est dans un seul pool, sur un seul channel à la fois.
Channel state et disponibilité
Chaque ligne porte deux faits faciles à confondre et volontairement tenus séparés. Le channel state dit où l’appareil est publié : libre, sur Market ou en Auction ; un appareil engagé dans une vente directe depuis Core apparaît lui aussi comme bloqué. La disponibilité dit si votre équipe veut le vendre tout court : disponible, indisponible (en attente) ou détruit. Une ligne peut être libre de tout channel et malgré tout en attente. L’appartenance à un batch est la troisième chose que la liste suit : un appareil dans un batch draft ou ready est réservé au channel de ce batch et quitte la sélection normale de l’autre channel. Les filtres suivent le même modèle — source, disponibilité, state, batch, archivé, tags, fourchette de prix, fabricant, preset de statut, catégorie. La listing elle-même est draft, published, paused ou archived ; le batch derrière elle passe par draft, ready, listed, reserved, sold.
Seule la resale est projetée
Core ne pousse un appareil dans la sellable layer que tant que sa disposition est resale. Réorientez un appareil déjà projeté vers recycle, scrap, retour client, don ou usage interne, et la projection passe en attente avec la disposition comme motif ; elle revient d’elle-même quand la disposition redevient resale. Un appareil listed ou reserved ne peut pas changer de disposition tant qu’il n’est pas sorti de la vente. Le niveau de refurbishment « Tel que reçu » est une manière valable de vendre et ne bloque rien. L’article sur la sellable layer décrit le gate complet.
Tags et notes
Chaque ligne porte des internal tags (votre taxonomie) et des private notes (le genre de chose que votre trader s’écrit à 2 h du matin — « garder pour Gregor, il prendra tout au prix affiché »). Les tags survivent à tout le cycle de vie de l’appareil. Les private notes sont tenant-only — les buyers ne les voient jamais.
Resynchroniser depuis Core
Quand le warehouse re-grade un laptop listed de C vers B, ce changement doit arriver sur Market sans écraser le prix ni la description du seller. La page de l’item a une action Resynchroniser depuis Core : elle rafraîchit les faits amont et recalcule le quality score, et garde les champs qui appartiennent au market — prix de liste, réserve, devise, notes de refurbishment, tags, notes internes, historique de channel — exactement tels quels. Savoir si le nouveau grade mérite un nouveau prix reste une décision humaine.
Retirer du stock de la vente
L’action de masse sur la liste, c’est Dépublier : cochez les lignes qui sont sur Market, elles descendent ensemble, les appareils redeviennent libres. Sortir du stock de la vente est un autre geste : mettez l’appareil en attente, ce qui bloque toute nouvelle publication sur Market comme en Auction pendant que la stock row reste. L’archivage n’existe que pour les items importés par fichier et refuse tout ce qui se trouve sur un channel. La destruction physique est enregistrée comme détruit, avec date et motif, et la ligne est conservée pour la provenance et l’audit. Rien ici n’est une suppression.
Nettoyage du stock dormant
Un job quotidien retire la publication des sellable rows dont la source s’est tue : soixante jours pour les items importés par fichier, sept jours pour ceux poussés via l’API. Les items venant de Core ne sont jamais touchés, parce que Core est la source vivante. La listing est archivée, un lot est annulé s’il est encore draft, scheduled ou live, le channel repasse à libre, la stock row reste, et votre tenant est notifié après coup avec les compteurs. Les seuils sont fixés par la plateforme. Rien ne tue une marketplace plus vite qu’une listing pour un laptop que quelqu’un a déjà emporté en février.
À qui appartient l’écran
/market/listings/[id] est la page du seller. Quand un buyer ouvre la listing de quelqu’un d’autre, l’app l’envoie sur /market/browse/[id], là où les offres, l’achat, le contact et le suivi fonctionnent vraiment. Les deux pages montrent les photos des appareils de la listing, et c’est là que le seller choisit la couverture ; l’article sur les photos explique ce que voient les buyers, et comment.
Démo et réel ne se croisent jamais
Une listing publique et publiée est visible par chaque tenant connecté — c’est la marketplace qui fonctionne comme prévu. Les environnements de démo sont murés à l’écart du trading réel, dans les deux sens : les tenants démo voient des listings démo, les tenants réels des listings réelles, et le stock d’un côté n’apparaît jamais dans le browse, les lots ou les photos de l’autre. Une contrepartie démo peut toujours traiter avec un seller démo ; un client payant ne voit jamais une palette qui n’existe pas.