Enchères
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
| Notion | Définition |
|---|---|
| Bid | Enchère placée par un acheteur |
| Proxy bid | Montant maximum que l'acheteur accepte, la plateforme enchérit progressivement pour lui |
| Prix courant | Prix actuellement en tête |
| Incrément | Montant minimal d'augmentation |
| Limite d'enchère | Montant maximum autorisé pour une organisation |
| Dépôt | Garantie ou empreinte bancaire exigée avant d'enchérir |
| Gagnant | Organisation ou personne en tête à la clôture |
Conditions avant enchère
| Condition | Pourquoi |
|---|---|
| Utilisateur connecté | Identifier l'acheteur |
| Organisation active | Savoir pour qui l'acheteur agit |
| Vente ouverte | Éviter les enchères hors période |
| Lot éligible | Le lot doit accepter les enchères |
| Acheteur autorisé | L'organisation ne doit pas être bloquée ou exclue |
| Montant valide | Respect du prix courant, de l'incrément et des limites |
| Dépôt valide | Si 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ôle | Règle vérifiée |
|---|---|
| Montant minimal | prix courant (ou prix de départ pour la toute première enchère) + incrément du palier applicable |
| Montant maximal | plafond 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 |
| Format | entier, strictement positif, sans centimes (les deux derniers chiffres du montant en centimes doivent être 00, donc un multiple exact de l'euro) |
| Type | STATIQUE (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)
- Le dépôt n'est contrôlé que si la boutique a activé
depositConfiguration.enabled. - Une organisation peut être dispensée de dépôt sur une boutique donnée si son empreinte bancaire (
bankImprint) porte un indicateurbypasspour cette boutique. - 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. - 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). - Le montant enchéri ne doit pas dépasser cette limite (
BID_REQUEST_DEPOSIT_BID_LIMIT_EXCEEDEDsinon). - 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 (statutWAITINGchez 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écanisme | Déclencheur | Effet |
|---|---|---|
| Prolongation sur enchère | Une 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ère | Un lot OUVERT, de type enchère, visible, pas encore marqué extended, atteint sa date de fin sans avoir reçu la moindre enchère | Sa 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.
Documents et conformité
Les documents servent à justifier une identité, une organisation, une facture, une autorisation, un paiement, une vente ou une obligation de conformité.
Factures et paiement
Les factures et paiements couvrent les sommes dues après une vente, des frais acheteur, des services, des commissions ou des opérations liées au shop. Ce domaine détermine ce qui peut être facturé, payé, annulé, remboursé ou soldé.