Djust 3.85.0 - Semaine du 29 Sept 2025
Périmètre
API
NEW
Operations
- Modification d’une Opération (métadonnées)
Contexte :
Les opérateurs et les customer users habilités peuvent désormais modifier les métadonnées d’une opération existante, tant qu’elle est en statut DRAFT.
Cette évolution permet de corriger ou d’ajuster les informations planifiées avant la publication d’une opération — par exemple mettre à jour le nom, la description, les dates ou les champs personnalisés.
⚙️ La fonctionnalité est protégée par le Feature Flag global OPERATIONS. 🔒 Elle ne permet pas de modifier les produits, variants ou comptes associés à l’opération.
Fonctionnement métier :
- Opérateur (dj-client: OPERATOR) : peut modifier toute opération en
DRAFT, sans contrainte de store. - Customer User (dj-client: ACCOUNT) :
- doit avoir le droit
OPERATIONS_UPDATE = true, - doit être owner de l’opération (
ownerId = customerUserId), - doit être rattaché au store effectif (
dj-storesi fourni, sinon store par défaut du tenant).
- doit avoir le droit
- Les trois conditions sont cumulatives.
- Les opérations en statut
ACTIVEouINACTIVEne peuvent pas être modifiées. - Si une
endDateest fournie, elle doit être postérieure ou égale àstartDate.
API correspondante :
✏️ Mise à jour d’une opération existante
ADM-OPERATION-200 - PUT /operations/{operationId}
{
"names": {
"en-GB": "Black Friday - Updated",
"fr-FR": "Black Friday - Mis à jour"
},
"descriptions": {
"en-GB": "New details added for this campaign",
"fr-FR": "Nouveaux détails ajoutés pour cette campagne"
},
"startDate": "2025-11-22T00:00:00Z",
"endDate": "2025-11-29T23:59:59Z",
"customFieldValues": [
{
"customFieldId": "cf_1234",
"customFieldValue": "10%"
}
]
}- Suppression d’une Opération
Contexte :
Les opérateurs et les customer users habilités peuvent désormais supprimer une opération, y compris ses métadonnées (nom, type, code), lorsque celle-ci n’est plus utilisée.
Cette action permet de nettoyer les opérations obsolètes ou erronées, tout en garantissant la sécurité des données grâce à des contrôles stricts d’usage et d’accès.
La suppression :
- est définitive et irréversible,
- est protégée par le Feature Flag OPERATIONS,
- n’est autorisée que si l’opération n’est liée à aucun panier ni commande.
Fonctionnement métier :
- Opérateur (dj-client: OPERATOR)
- Peut supprimer toute opération, quel que soit son statut (
DRAFT,ACTIVE,INACTIVE). - Pas de contrainte liée au store.
- Suppression bloquée si l’opération est liée à un panier ou une commande.
- Peut supprimer toute opération, quel que soit son statut (
- Customer User (dj-client: ACCOUNT)
- Doit cumuler les trois conditions suivantes :
- Droit
OPERATIONS_DELETE = true, - Être owner de l’opération (
ownerId = customerUserId), - Être rattaché au store effectif (
dj-storesi fourni, sinon store par défaut du tenant).
- Droit
- Si l’une des conditions n’est pas remplie → accès refusé (403).
- Doit cumuler les trois conditions suivantes :
- Effets en cascade :
- Si la suppression est autorisée, les associations aux produits et aux comptes sont également supprimées automatiquement.
API correspondante :
🗑️ Suppression d’une opération
ADM-OPERATION-300 - DELETE /operations/{operationId}
- Activation / Désactivation d’une Opération
Contexte :
Les opérateurs et les customer users habilités peuvent désormais activer ou désactiver une opération afin de la rendre visible ou non pour les acheteurs concernés.
Cette fonctionnalité offre plus de flexibilité dans la gestion du cycle de vie d’une campagne commerciale, tout en garantissant la cohérence avec les droits d’accès et le Feature Flag OPERATIONS.
- Une opération ACTIVE devient immédiatement visible pour les comptes associés.
- Une opération INACTIVE reste enregistrée, mais n’est plus affichée ni accessible côté acheteur.
- Il est impossible de repasser en DRAFT une fois l’opération publiée.
- Le changement de statut est indépendant des dates (
startDate/endDate). - L’action est soumise au Feature Flag global OPERATIONS.
Fonctionnement métier :
- Opérateur (dj-client: OPERATOR) :
- Peut toujours activer ou désactiver une opération, sans restriction de store.
- Customer User (dj-client: ACCOUNT) :
- Doit disposer du droit
OPERATIONS_UPDATE_STATUS = true, - Être owner de l’opération (
ownerId = customerUserId), - Être rattaché au store effectif (
dj-storesi fourni, sinon store par défaut du tenant). - Les trois conditions sont cumulatives et obligatoires.
- Doit disposer du droit
- Transitions autorisées :
DRAFT → ACTIVEDRAFT → INACTIVEACTIVE → INACTIVEINACTIVE → ACTIVE
❌Aucune opération ne peut redevenir DRAFT après publication. 🔄 Ces transitions sont indépendantes des dates de début et de fin de l’opération.
API correspondante :
✏️ Mise à jour du statut d’une opération
ADM-OPERATION-201 - PATCH /operations/{operationId}
{
"status": "ACTIVE"
}- Suppression de variants d’une Opération
Contexte :
Les opérateurs et les customer users habilités peuvent désormais supprimer un ou plusieurs variants d’une opération, afin de maintenir un assortiment à jour ou corriger des erreurs avant publication.
Cette évolution permet de gérer plus facilement le contenu d’une opération en préparation, sans avoir à recréer l’ensemble de la configuration.
⚙️ L’action est protégée par le Feature Flag OPERATIONS et limitée aux opérations au statut DRAFT. 🔒 La suppression est possible uniquement pour :
- les opérateurs (accès complet, sans contrainte de store),
- les customer users qui cumulent les trois conditions suivantes :
- être owner de l’opération (ownerId = customerUserId),
- disposer du droit
OPERATIONS_UPDATE, - être rattachés au store effectif (
dj-storesi fourni, sinon store par défaut du tenant).
Fonctionnement métier :
- Les variants sont identifiés par leurs identifiants externes (variantIds).
- Les IDs non valides ou non liés à l’opération sont ignorés ; si aucun variant n’est valide, la suppression échoue.
- La suppression ne prend effet que sur les opérations en DRAFT ; une opération active ou inactive ne peut pas être modifiée.
- Cette action n’affecte pas les locales, car elle agit uniquement sur des identifiants techniques.
API correspondante :
🗑️ Suppression d’un ou plusieurs variants d’une opération
ADM-OPERATION-350 - DELETE /operations/{operationId}/lines
[
"VAR-001",
"VAR-002",
"VAR-XYZ"
]