Domaines fonctionnels

Enchères

Les enchères permettent aux acheteurs autorisés de proposer un prix sur un lot pendant une vente ouverte. TARS contrôle la validité de chaque enchère avant de l'accepter.

Enchères

Les enchères permettent aux acheteurs autorisés de proposer un prix sur un lot pendant une vente ouverte. TARS contrôle la validité de chaque enchère avant de l'accepter.

Notions

NotionDéfinition
BidEnchère placée par un acheteur
Proxy bidMontant maximum que l'acheteur accepte, la plateforme enchérit progressivement pour lui
Prix courantPrix actuellement en tête
IncrémentMontant minimal d'augmentation
Limite d'enchèreMontant maximum autorisé pour une organisation
DépôtGarantie ou empreinte bancaire exigée avant d'enchérir
GagnantOrganisation ou personne en tête à la clôture

Conditions avant enchère

ConditionPourquoi
Utilisateur connectéIdentifier l'acheteur
Organisation activeSavoir pour qui l'acheteur agit
Vente ouverteÉviter les enchères hors période
Lot éligibleLe lot doit accepter les enchères
Acheteur autoriséL'organisation ne doit pas être bloquée ou exclue
Montant valideRespect du prix courant, de l'incrément et des limites
Dépôt valideSi requis, la garantie doit être présente

Règles de gestion

  • Le vendeur ne doit pas enchérir sur son propre lot.
  • Une enchère doit respecter l'incrément.
  • Une enchère peut prolonger la fin de vente si elle arrive trop près de la clôture.
  • Un proxy bid peut faire monter automatiquement le prix sans dépasser le maximum fixé.
  • Une organisation peut avoir une limite d'enchère.
  • Les informations des enchérisseurs concurrents restent confidentielles.
  • L'historique des enchères doit rester auditable.

Barème d'incrément et paramètres de la boutique

Chaque boutique définit sa propre grille d'enchères (shop.meta.auctionParameters), un tableau de paliers { prix de départ du palier, incrément }. Le palier applicable à un instant donné est celui dont le seuil de départ est le plus élevé tout en restant inférieur ou égal au prix courant du lot: l'incrément exigé peut donc changer automatiquement à mesure que le prix grimpe. Cette grille est propre à chaque boutique; aucun montant n'est universel.

ContrôleRègle vérifiée
Montant minimalprix courant (ou prix de départ pour la toute première enchère) + incrément du palier applicable
Montant maximalplafond bidLimits.maxAmountCents de la boutique; tout dépassement est refusé
Montant "trop haut"si le montant dépasse le prix de référence multiplié par le multiplicateur configuré de la boutique, l'enchère est acceptée mais avec un avertissement fonctionnel, pas un refus
Formatentier, strictement positif, sans centimes (les deux derniers chiffres du montant en centimes doivent être 00, donc un multiple exact de l'euro)
TypeSTATIQUE (montant fixe saisi) ou DYNAMIQUE (le système calcule le montant réel à partir du prix courant et de l'incrément)

Ce qui est implémenté

  • Une enchère crée une trace d'audit avec organisation, personne, IP, montant, type et identifiant d'enchère.
  • Le montant doit être entier, positif et sans centimes.
  • Le type d'enchère accepté est statique ou dynamique.
  • Le lot doit exister, être une enchère, être ouvert, avoir démarré (date de début passée) et ne pas être terminé (date de fin non dépassée).
  • Le vendeur du lot ne peut pas enchérir sur son propre lot (comparaison de l'organisation associée avec le rôle vendeur).
  • Le shop doit exister et fournir des paramètres d'enchère et un plafond de mise (bidLimits.maxAmountCents); en leur absence, l'enchère est bloquée par une erreur technique plutôt que silencieusement acceptée.
  • Le montant doit respecter le prix courant, le prix de départ et l'incrément du shop.
  • Un montant supérieur à la limite maximale du shop est refusé.
  • Un montant supérieur au multiplicateur configuré peut être accepté avec avertissement.
  • L'organisation doit avoir une limite d'enchère disponible.
  • Sans limite d'enchère, ou avec limite épuisée, l'enchère est refusée.
  • La limite d'enchère par organisation est mise en cache (Redis); elle peut être réinitialisée par une action dédiée d'administration.
  • L'autorisation de participation est vérifiée avant enchère.
  • Un refus d'autorisation de participation crée une trace d'audit SALE_AUTHORIZATION.
  • Un dépôt peut être exigé selon le shop, le contrat du lot et les droits de contournement de l'organisation.
  • Si un dépôt est requis, TARS cherche un dépôt valide avec un montant suffisant pour le palier attendu.
  • Le droit d'enchérir est vérifié dans le contexte du shop courant, et non par un simple indicateur global.
  • Le formulaire d'enchère reste visible sur la fiche lot avant connexion: un clic dessus redirige vers la connexion, sans afficher à tort un bouton de demande d'autorisation à un visiteur non connecté.

Détail de la chaîne de dépôt (garantie bancaire)

  1. Le dépôt n'est contrôlé que si la boutique a activé depositConfiguration.enabled.
  2. Une organisation peut être dispensée de dépôt sur une boutique donnée si son empreinte bancaire (bankImprint) porte un indicateur bypass pour cette boutique.
  3. Si le lot (ou, à défaut, son contrat) désactive explicitement l'empreinte bancaire (bankImprintEnabled), aucun dépôt n'est exigé pour ce lot précis.
  4. Sinon, l'organisation doit disposer d'une limite de mise par boutique (bidLimitsByShop); en son absence, le dépôt est obligatoirement refusé (BID_REQUEST_DEPOSIT_REQUIRED).
  5. Le montant enchéri ne doit pas dépasser cette limite (BID_REQUEST_DEPOSIT_BID_LIMIT_EXCEEDED sinon).
  6. Le montant de dépôt requis est déterminé par un barème de paliers propre à la boutique (depositConfiguration.tiers, du plus bas plafond au plus élevé); un dépôt valide (statut WAITING chez le prestataire de paiement) d'un montant au moins égal à ce palier doit exister, sinon l'enchère est refusée.

Prolongations et clôture automatique

Deux mécanismes distincts prolongent la vente, tous deux paramétrés par boutique:

MécanismeDéclencheurEffet
Prolongation sur enchèreUne enchère arrive alors que le temps restant avant auctionEndDate est inférieur ou égal à auctionExtendTimeInMinutes (minutes, configurable par boutique)La fin de vente est repoussée à l'heure de l'enchère + auctionExtendTimeInMinutes; le lot est marqué extended. Peut se répéter à chaque nouvelle enchère tardive (prolongation glissante).
Prolongation sans enchèreUn lot OUVERT, de type enchère, visible, pas encore marqué extended, atteint sa date de fin sans avoir reçu la moindre enchèreSa fin de vente est repoussée une seule fois de auctionExtendTimeInMinutesWithNoBid minutes (valeur observée en exemple: 20 minutes), et il est marqué extended pour ne plus être reprolongé par ce mécanisme

À la clôture d'un lot sans aucune enchère (et sans offre à prix fixe gagnante), le statut devient directement Invendu.

Mécanique du proxy bid

Un proxy bid (mise maximale confiée à la plateforme) ne réagit que lorsqu'un concurrent enchérit; il ne s'affiche jamais comme mise directe tant qu'il n'est pas sollicité.

  • Une organisation sans proxy bid actif qui enchérit contre un proxy existant d'une autre organisation: si sa mise reste sous le maximum du proxy, la plateforme rejoue automatiquement une enchère au palier d'incrément suivant au nom du détenteur du proxy, qui reste en tête.
  • Si l'incrément suivant dépasserait le maximum du proxy, la plateforme place le proxy à son maximum exact, désactive le proxy bid (il est "atteint") et laisse la nouvelle enchère gagner si elle est supérieure.
  • Une organisation qui enchérit sur son propre proxy bid existant (avec une mise statique) peut désactiver son proxy si sa nouvelle mise atteint ou dépasse le maximum déjà fixé.
  • Une enchère dont le montant dépasse déjà le maximum du proxy adverse gagne directement à hauteur de sa propre mise (ou, en dynamique, au palier d'incrément suivant au-dessus du proxy adverse).
  • Une mise strictement inférieure à la meilleure enchère existante est toujours refusée (BID_AMOUNT_IS_LOWER_THAN_BEST_BID), y compris implicitement via un proxy bid.

Workflow

flowchart TD
  action["Acheteur clique enchérir"] --> session["Contrôle session et organisation"]
  session --> vente["Contrôle vente ouverte"]
  vente --> droits["Contrôle autorisation acheteur"]
  droits --> depot["Contrôle dépôt ou limite"]
  depot --> montant["Contrôle montant et incrément"]
  montant --> accepte{"Enchère acceptée ?"}
  accepte -->|Oui| maj["Prix, gagnant et historique mis à jour"]
  accepte -->|Non| refus["Message de refus"]

Effets d'une enchère acceptée

  • Le prix courant peut changer.
  • Le meilleur enchérisseur peut changer.
  • Le lot peut être ajouté automatiquement aux suivis.
  • La fin de vente peut être prolongée.
  • L'espace personnel de l'acheteur est mis à jour.
  • L'admin peut consulter l'historique.
  • Les rapports d'enchères tiennent compte de l'action.
Copyright © 2026