Adresses
Adresses
Les adresses servent à identifier les lieux utiles aux parcours: siège, facturation, retrait, livraison, visite, rendez-vous ou informations contractuelles.
Types d'adresses
Techniquement, une adresse ne porte que quatre types possibles (champ indexedMeta.type):
| Type (valeur technique) | Libellé | Usage |
|---|---|---|
BILLING | Adresse de facturation | Facturation; seule une adresse de ce type peut devenir adresse principale de facturation ou siège social |
DELIVERY | Adresse de livraison | Livraison ou expédition d'un lot |
REMOVAL | Adresse de retrait | Retrait d'un lot, et adresse des rendez-vous de retrait ou de visite |
OTHER | Autre adresse | Tout autre usage, dont adresse de contact |
Le « siège social », l'« adresse de contact » et l'« adresse de visite » ne sont donc pas des types techniques distincts:
- Siège social: un indicateur porté par l'organisation (
organisation.meta.headquartersAddressShortId), positionnable uniquement sur une adresse de typeBILLING. - Adresse principale de facturation: un indicateur similaire (
organisation.meta.billingInformation.addressShortId), lui aussi réservé aux adressesBILLING. - Contact: n'importe quelle adresse peut porter une liste de contacts (utilisateurs, champ
meta.contactShortIds), quel que soit son type. - Visite: un rendez-vous de type visite (
appointmentType: VISIT) utilise, comme un retrait (PICKUP), une adresse de typeREMOVAL; c'est le rendez-vous qui porte la distinction visite/retrait, pas l'adresse.
Workflow adresse
flowchart TD
besoin["Besoin d'adresse"] --> proprietaire["Toujours rattachée à une organisation"]
proprietaire --> saisie["Sélection via autocomplétion ou saisie manuelle"]
saisie --> controle["Contrôle du type et de la complétude"]
controle --> valide{"Adresse utilisable ?"}
valide -->|Non| correction["Demander correction"]
valide -->|Oui| usage{"Usage"}
usage --> facturation["Adresse principale de facturation (type Facturation uniquement)"]
usage --> siege["Siège social (type Facturation uniquement)"]
usage --> selection["Sélection pour un lot, une vente ou un rendez-vous"]
selection --> groupe["Adresses de l'organisation active + adresses des organisations liées du groupe"]
usage --> visibilite["Visibilité marketplace (rendez-vous, option 'Adresse visible')"]
Règles de gestion
- Toute adresse est rattachée à une organisation (
organisationShortIdobligatoire, pas de rattachement direct à une personne). Un lot, une vente ou un rendez-vous référence une adresse existante de l'organisation; il ne la crée pas et n'en devient pas propriétaire. - La création ou la modification exige un type et un pays; l'intitulé est pré-rempli à partir du type si l'utilisateur ne le renseigne pas. Le numéro, la rue, le code postal et la ville sont soit renseignés automatiquement par la sélection d'une suggestion (autocomplétion Google Places), soit obligatoires en saisie manuelle.
- Seule une adresse de type
BILLINGpeut être définie comme adresse principale de facturation ou comme siège social de l'organisation. - À l'inscription de l'organisation et lors de la vérification KYB, une adresse « principale » doit être configurée: elle sert à la fois de siège social et d'adresse principale de facturation. Tant qu'elle n'est pas définie, l'étape ne peut pas être validée (message affiché: « Avant de poursuivre la vérification de votre organisation, sélectionnez l'adresse de son siège social. Elle sera également utilisée comme adresse principale de facturation. »). La première adresse créée lors de l'onboarding se voit automatiquement attribuer ces deux rôles.
- Lors du choix d'une adresse pour un lot, une vente ou un rendez-vous, les adresses proposées sont regroupées par organisation: celles de l'organisation active sont filtrées sur le type requis (ex.
REMOVALpour un rendez-vous), tandis que celles des organisations liées du groupe (parentes et filiales) sont toutes proposées, sans filtre de type. - Un rendez-vous de retrait ou de visite utilise une adresse de type
REMOVAL. Sa visibilité sur la marketplace est décidée au cas par cas via l'option « Adresse visible » (désactivée par défaut à la création); même visible, seuls le code postal, la ville et le pays sont affichés publiquement — jamais le numéro ni la rue. - Une adresse peut être associée à des contacts (utilisateurs) choisis parmi les organisations du groupe de l'organisation propriétaire.
- La création, la modification, la définition en adresse principale ou en siège, et la suppression sont réservées aux utilisateurs disposant du droit
ORGANISATION.ADDRESS.MANAGE.
Ce qui est implémenté
- Une adresse peut être créée, lue, mise à jour ou supprimée via l'API dédiée (
POST/GET/PUT/DELETE /addresses). - La liste des adresses d'une organisation exige toujours un filtre par organisation (
organisationShortId); la lecture d'une adresse unique se fait par son identifiant (addressShortId). - Un endpoint dédié (
/addresses/grouped) retourne les adresses de l'organisation et de son groupe (parentes et filiales), utilisé par les parcours de sélection d'adresse (lot, vente, rendez-vous). - Le filtrage par type fonctionnel (facturation, retrait, livraison, autre) est appliqué côté front sur la liste retournée par l'API, pas par un paramètre serveur dédié.
- La définition de l'adresse principale de facturation et celle du siège social sont deux actions distinctes, chacune mettant à jour les métadonnées de l'organisation, toutes deux limitées aux adresses de type
BILLING. - La couche commune front (shared-business) contient les composants, formulaires et actions d'adresse partagés entre les frontaux (création, édition, suppression, sélection groupée).
- Les parcours d'inscription et de vérification KYB de l'organisation imposent la configuration d'une adresse principale (siège + facturation) avant de continuer.
- Les rendez-vous (retrait, visite) référencent une adresse existante de l'organisation et portent leur propre indicateur de visibilité publique (
addressVisible).
Résolu: la « suppression » d'une adresse (vérifiée dans le service backend
auctelia/addresses) n'efface jamais la ligne en base. L'appelDELETEdétache simplement l'adresse de son organisation (organisationShortIdmis ànull); la ligne elle-même subsiste. C'est pour cela qu'aucun contrôle « adresse encore utilisée par un lot ou un rendez-vous actif » n'est nécessaire ni observé: un lot ou un rendez-vous qui référence déjà l'adresse continue de fonctionner, seule sa réapparition dans les listes de l'organisation disparaît.
Impact frontaux
| Frontal | Usage |
|---|---|
| Marketplace | Localisation générale du lot ou lieu public de visite/retrait si applicable |
| Espace personnel | Gestion des adresses utilisateur et organisation, suivi retrait/livraison |
| Admin | Vérification, correction, support, rendez-vous, facturation |
Accès et autorisations
Les accès déterminent ce qu'un utilisateur peut voir ou faire. Dans TARS, une autorisation dépend de la personne, de son organisation active, de ses rôles, des contrats, du shop, du statut de l'objet et parfois de droits plus fins.
Audit trail
L'audit trail est l'historique des actions importantes. Il permet de comprendre ce qui s'est passé, qui a agi, quand, sur quel objet et avec quel résultat.