Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design :

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page detail des Custom fields (Champs personnalisées) : Settings -> Custom fields (offer, customer user, etc.)

Il est désormais possible d'ordonner les valeurs des custom fields grâce au drag and drop.

  • Avant :

  • Après :


Data Hub

Définition d'une adresse de livraison et/ou facturation à l'import

Il est désormais possible de définir si une adresse doit être utilisée pour la livraison (shipping) et/ou la facturation (billing) lors de l’import des comptes clients depuis le data hub.

📘

Si aucune valeur n’est renseignée à l’import, l’adresse sera considérée comme valable pour la livraison et la facturation.

⚠️

Un compte doit avoir au moins une adresse de facturation.

API

📘

NEW

Buying Policies

  • Définition d'une limite de quota minimum par défaut à la plateforme

Contexte :

Les opérateurs peuvent désormais définir un quota de commande minimum global.

Ce quota est utilisé automatiquement pour tous les couples Customer Account × Supplier qui ne disposent pas d’une configuration spécifique.

Il garantit une homogénéité dans le contrôle des commandes et permet de bloquer celles qui ne respectent pas le volume minimum attendu.

Fonctionnement :

  • Si un quota spécifique est défini au niveau du Supplier ou du couple Customer Account × Supplier, celui-ci prévaut.
  • Si aucun quota spécifique n’est défini, la valeur par défaut s’applique.
  • Une valeur de 0 signifie qu’aucune restriction n’est appliquée par défaut.
  • Lors de la création d’un nouvel environnement, la valeur par défaut est initialisée à 0.

APIs correspondantes :

🔍 Consultation du quota par défaut

ADM-BUYING-POLICY-501 - GET /v1/buying-policies/quotas

  • Retourne le statut de la policy (ACTIVE ou INACTIVE), la valeur du quota par défaut et la date de dernière mise à jour.
  • Accessible uniquement avec le header dj-client: OPERATOR.
{
  "status": "ACTIVE",
  "minQuotaValue": 1000,
  "updatedAt": "2025-07-03T09:00:00Z"
}

✏️ Mise à jour du quota par défaut

ADM-BUYING-POLICY-205 - PATCH /v1/buying-policies/quotas/min-value

  • Permet de modifier la valeur globale appliquée.
{
  "minQuotaValue": 1500
}

  • Activation / désactivation globale de la policy de quotas

Contexte :

Les opérateurs peuvent désormais activer ou désactiver globalement la buying policy de quotas.

Cette règle permet de contrôler si les commandes doivent être bloquées en fonction d’un quota minimum configuré (spécifique ou par défaut).

Elle est particulièrement utile en phase de migration ou de test, ou encore pour ajuster rapidement le niveau de contrôle sans modifier la configuration des comptes ou des suppliers.

  • Quand la policy est ACTIVE : toutes les commandes sont validées selon les règles de quota (valeurs définies au niveau du Supplier ou valeur par défaut si absente).
  • Quand la policy est INACTIVE : aucune vérification ni blocage n’est appliqué.
  • Par défaut, lors de la création d’un environnement, la policy est initialisée à INACTIVE.

APIs correspondantes :

🔍 Consultation de la configuration globale

ADM-BUYING-POLICY-501 - GET /v1/buying-policies/quotas

  • La route est commune entre la gestion des statuts et des quotas par défaut.
  • Retourne l’état actuel de la policy (ACTIVE ou INACTIVE), la valeur du quota minimum par défaut (minQuotaValue) et la date de dernière mise à jour.

✏️ Mise à jour de l’état de la policy

ADM-BUYING-POLICY-204 - PATCH /v1/buying-policies/quotas

  • La route est commune entre la gestion des statuts et des quotas par défaut.
  • Permet d’activer ou désactiver la policy via l’attribut status (ACTIVE ou INACTIVE).

Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design :

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page de gestion des tags produits : Settings -> Product Tags.
  • Page de creation/mise à jour des restrictions de catalogues : Product -> Catalog Views.

Affichage du statut Online/Offline en page liste offres

L'état d’une offer est désormais affiché (à la manière des produits) au niveau de la colonne de statut.

Celui-ci n'est affiché que si le feature flag SEARCH_V2 est actif


API

📘

NEW

Opérations

Une nouvelle entité "Opérations" en cours de développement devrait voir le jour courant septembre. Voici les premiers éléments qui sont livrés dans cette version (d'autres suivront sur les releases futures).

  • Pilotage de la feature Opérations via Feature Flag

Un nouveau Feature Flag OPERATIONS permet désormais d’activer ou de désactiver dynamiquement l’ensemble de la feature Opérations (endpoints, jobs et pricing override associés).

Quand OPERATIONS = false :

  • Tous les endpoints /admin/operations/** et /shop/operations/** deviennent inaccessibles.
  • Toutes les règles de pricing spécifiques liées aux opérations sont ignorées.
    • Le fallback de prix est alors appliqué selon la hiérarchie standard :
      Account → Customer Tags → Public

Par défaut, la feature est désactivée, l'activation se fait via les équipes CSM et Support.


👍

UPDATE

Orders

  • Ajouter de champs supplémentaires dans l’export order par API

Les champs suivants ont été ajoutés dans l'export order API du Data Hub :

  • productAttributeValues
  • confirmedPrice
  • itemPerPack
  • type (offerPriceType)
  • typeValue (offerPriceTypeValue)
  • priceWithTaxes
  • itemPriceWithoutTaxes
  • productTaxAmount
  • shippingPriceWithTaxes
  • shippingPriceWithoutTaxes
  • shippingTaxAmount
  • taxLegalNotice
  • totalPriceWithTaxes
  • totalPriceWithoutTaxes
  • totalProductTaxAmount
  • totalTaxAmount
  • quantity
  • externalId (adresse shipping)
  • externalId (variant)
  • sku (variant)
  • externalId (customer user)
  • id, externalId (order logistic)
  • id (order line)
  • orderCommercialId
  • OrderCommercialReference

Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design :

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page de creation d'un produit / variant : Product -> Create.
  • Page de creation/mise à jour des clients d'interfaces pour le DataHub : Data Hub -> Client -> Create/Update.

API

📘

NEW

Buying Policies

  • Récupération des raisons de blocage des commandes

Un nouvel endpoint d’administration permet aux opérateurs de récupérer la liste des buying policies ayant bloqué une ou plusieurs commandes logistiques.

L’objectif est de faciliter le diagnostic et la résolution des blocages, sans surcharger les réponses standard de l’API Orders.

🔍 Récupération des raisons de blocage

ADM-BUYING-POLICY-552 - GET /v1/buying-policies/blocking-reasons

Renvoie, pour chaque commande logistique fournie, la liste des buying policies qui ont empêché sa validation (ex. CREDIT_CONTROL, QUOTA, MANUAL_VALIDATION).

Query parameters :

  • logisticOrderIds (requis) : liste des IDs des commandes logistiques concernées
  • idType (optionnel, défaut REFERENCE) : type d’identifiant (DJUST_ID, EXTERNAL_ID, REFERENCE)
ℹ️

Règles :

  • Si un ID est invalide, il est ignoré
  • Si aucune policy ne bloque une commande, le tableau blockingPolicies est vide
  • Maximum 20 policies retournées par commande
{
  "blockingReasons": [
    {
      "logisticOrderId": "ORD-001",
      "blockingPolicies": [
        {
          "type": "MANUAL_VALIDATION",
          "id": "BP-MANUAL-001"
        }
      ]
    }
  ]
}

👍

UPDATE

Orders x Buying Policies

  • Filtrage des commandes par type de buying policy

La route d’administration POST /v1/logistic-orders permet désormais de filtrer les commandes bloquées par un ou plusieurs types spécifiques de buying policies.

Cette évolution complète le filtre blockedByBuyingPolicy en permettant de cibler uniquement certaines policies.

🔍 Filtrer par type de buying policy

Nouveau paramètre facultatif : blockingPolicyTypes (array)

  • Permet de lister un ou plusieurs types de buying policies pour restreindre la recherche.
  • Les valeurs fonctionnent en OU : si au moins une policy correspond, la commande est incluse dans le résultat.
{
  "blockedByBuyingPolicy": true,
  "blockingPolicyTypes": ["CREDIT_CONTROL", "MANUAL_VALIDATION"]
}

Valeurs possibles :

  • CREDIT_CONTROL
  • QUOTA
  • MANUAL_VALIDATION
ℹ️

Règles importantes :

  • Le filtre blockingPolicyTypes n’est pris en compte que si blockedByBuyingPolicy = true.
  • Si blockedByBuyingPolicy est false ou absent, blockingPolicyTypes est ignoré.
  • Le statut de commande doit être BLOCKED_BY_POLICY pour que le filtre soit appliqué.

Comme énoncé ci-dessus, un nouveau statut a été ajouté dans le workflow de commande : BLOCKED_BY_POLICY. Il est présent sur les routes suivantes :

GET /v1/logistic-orders
POST /v1/logistic-orders
POST /v1/logistic-orders/export
GET /v1/logistic-orders/{orderLogisticId}
GET /v1/logistic-orders/{orderLogisticId}/approvals
GET /v1/logistic-orders/{orderLogisticId}/history
GET /v1/supplier-quotes/{supplierQuoteId}/orders

ORDER-560 - GET /v1/shop/commercial-orders
ORDER-100 - POST /v1/shop/commercial-orders
ORDER-500 - GET /v1/shop/commercial-orders/{commercialOrderId}
ACCOUNT-550 - GET /v1/shop/customer-accounts/orders
ACCOUNT-555 - GET /v1/shop/customer-accounts/organisations/{organisationId}/orders
N/A - GET /v1/shop/logistic-orders
ORDER-550 - POST /v1/shop/logistic-orders
ORDER-501 - GET /v1/shop/logistic-orders/{orderLogisticId}
ORDER-205 - PATCH /v1/shop/logistic-orders/{orderLogisticId}
ORDER-200 - PUT /v1/shop/logistic-orders/{orderLogisticId}/approve
ORDER-556 - GET /v1/shop/logistic-orders/{orderLogisticId}/approvers
ORDER-201 - PUT /v1/shop/logistic-orders/{orderLogisticId}/cancel
ORDER-203 - PUT /v1/shop/logistic-orders/{orderLogisticId}/confirm-reception
ORDER-204 - PUT /v1/shop/logistic-orders/{orderLogisticId}/disapprove
ORDER-107 - POST /v2/shop/supplier-quotes/{supplierQuoteId}/initialize-orders

Offers

  • Remontée de l'information online/offline sur les offres

Afin de savoir si une offre est live ou non, l'information online est remontée sur l'ensemble des APIs d'administration d'offres suivantes :

GET /v1/offer-inventories
PATCH /v1/offer-inventories
POST /v1/offer-inventories
GET /v1/offer-inventories/{offerInventoryId}
PUT /v1/offer-inventories/{offerInventoryId}
PATCH /v1/offer-inventories/{offerInventoryId}/offer-prices
POST /v1/offer-inventories/{offerInventoryId}/offer-prices
PUT /v1/offer-inventories/{offerInventoryId}/offer-prices

Orders

  • Ajout de la date de dernière synchronisation du panier (lastSyncAt)

Un nouveau champ lastSyncAt a été ajouté à la Commercial Order.

Il indique la date et l’heure de la dernière synchronisation réussie du panier (nouvelle API qui sera déployée dans la prochaine version).

Le format est ISO 8601 (ex. "2025-07-22T14:30:00Z").

La modification est visible dans la réponse de l'appel à :

ORDER-107 - POST /v2/shop/supplier-quotes/{supplierQuoteId}/initialize-orders
ORDER-560 - GET /v1/shop/commercial-orders
ORDER-100 - POST /v1/shop/commercial-orders
ORDER-500 - GET /v1/shop/commercial-orders/{commercialOrderId}

  • Ajout d’un champmetadata

Un nouveau champ metadata est désormais disponible dans la route API :

ORDER-561 - PUT /v2/shop/commercial-orders/{commercialOrderId}/lines

Ce champ permet d’associer, à chaque ligne, sous la forme de paires clé/valeur libres, des données contextuelles (ex. : localisation, informations logistiques, unité de vente etc.) qui seront transmises à l’API externe dans le cadre du Real-Time Pricing qui sera déployé prochainement.

Périmètre

BackOffice Djust

BO – Transcodings sur les pages des jobs d’import

Il est désormais possible de configurer des transcodings sur les jobs d’import afin de convertir automatiquement des valeurs sources en valeurs cibles lors de l’import de données.

  • Pour chaque champ mappé, vous pouvez définir des règles de conversion (ex. : “John” → “Jean”).
  • Ces conversions sont appliquées automatiquement au moment de l’import.
  • Les transcodings peuvent être activés ou désactivés individuellement.

📩 Fonctionnalité disponible uniquement sur demande. Contactez l’équipe support pour l’activer sur votre environnement.



API

📘

NEW

Buying Policies

  • Nouvelle Buying Policy de définition d'un quota minimum d'achat

Trois nouveaux endpoints permettent désormais aux opérateurs de consulter et mettre à jour l'état global de la buying policy de quotas ainsi que le quota minimum par défaut appliqué par cette buying policy. Ce quota permet de contrôler la quantité minimale par commande pour un fournisseur donné.

Ce quota global est utilisé pour tous les couples Customer Account × Supplier ne disposant pas d’une configuration individuelle.

🔍 1. Consultation de la configuration de la buying policy de quotas

ADM-BUYING-POLICY-501 - GET /v1/buying-policies/quotas

Permet de récupérer la configuration globale de la policy de quotas, incluant :

  • Son statut d’activation (ACTIVE ou INACTIVE)
  • La valeur actuelle du quota minimum par défaut (minQuotaValue)
  • La date de dernière mise à jour
{
  "status": "ACTIVE",
  "minQuotaValue": 1000,
  "updatedAt": "2025-07-03T09:00:00Z"
}
ℹ️

Si aucun quota spécifique n’est défini pour un fournisseur ou un couple Customer Account × Supplier, la valeur globale par défaut est appliquée.
⚠️ Par défaut, cette valeur est 0 lors de l’initialisation d’un environnement.

✏️ 2. Mise à jour du quota minimum par défaut

ADM-BUYING-POLICY-205 - PATCH /v1/buying-policies/quotas/min-value

Permet de modifier la valeur globale appliquée lorsque qu’aucun quota spécifique n’est configuré pour un fournisseur ou un couple Customer Account × Supplier.

{
  "minQuotaValue": 1500
}
ℹ️

La valeur doit être supérieure ou égale à 0
Un 0 signifie qu’aucune restriction de quota n’est appliquée par défaut

✏️ 3. Activation / désactivation de la policy

ADM-BUYING-POLICY-204 - PATCH /v1/buying-policies/quotas

Permet d’activer ou de désactiver globalement la policy de quotas.

{
  "status": "INACTIVE"
}

Valeurs acceptées pour le status :

  • ACTIVE → contrôle des quotas appliqué à toutes les commandes
  • INACTIVE → quotas ignorés, aucune commande bloquée

👍

UPDATE

Incidents

  • Filtrage par motif d’incident :

    Afin de pouvoir réduire le nombre d’incidents à traiter en front et de faciliter la recherche, un filtre par motif d’incident est ajouté.

    Il fonctionne de la même manière que le filtre customerAccountIds, il s'agit d'une liste d'id de reasons passées en query param sur la route ORDER-559 - GET /v1/shop/incidents

    Le param reasonCodes ajouté prendra en entrée une liste d’ID de reasons et fonctionne via un OU logique entre chaque valeur.

Périmètre

API

👍

UPDATE

Djust PAY

  • Modification des attributs de paiement

    • A la création et la validation d'une commande dans un contexte, il est désormais obligatoire de renseigner les deux champs suivants:

      • paymentOption
      • paymentProvider

      ⚠️

      Attention

      L'objet paymentInfo n'est pas obligatoire, seuls les attributs enfants paymentOption et paymentProvider le sont lorsque celui-ci est utilisé.

      Les routes concernées sont :

      ORDER-100 - POST /v1/shop/commercial-orders
      ORDER-212 - PUT /v1/shop/commercial-orders/{orderCommercialId}/created

Incidents

  • Filtrage par valeur de Custom Fields d’incident :

    Afin de pouvoir réduire le nombre d’incidents à traiter en front et de faciliter la recherche, un filtre par custom field value d’incident est ajouté.

    Le but dans ce cas est de pouvoir rechercher dans les valeurs de CF à l’incident (order line ou order).

    Ainsi on ajoutera le param customFields qui prendra en entrée une liste d’ID de CF croisés avec les valeurs à rechercher.

    Le format attendu est le suivant :

    customFields=CF_ID1|CF_Value1,CF_ID2|CF_Value2…

Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design :

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page de creation d'un fournisseur : Suppliers.
  • Page détail d'un utilisateur fournisseur.
  • Page de creation d'un job d'export : Data Hub -> Create a new job -> Export.
  • Page de detail d'un job d'export : Data Hub -> Export -> Configure job.

Filtrage des comptes clients :

Page liste des comptes clients : Customers > Accounts

  • Le champ de filtre "ID compte" utilise maintenant l’ID externe et l’ID interne.

API

📘

NEW


Buying policies

  • Montants de tolerance de crédit

Quatre nouveaux endpoints ont été ajoutés au module Buying Policies, permettant aux utilisateurs opérateurs de consulter et modifier l’état global des montants de tolerance de crédit sur la plateforme.

⚠️

Attention

Ces routes de gestion des buying policies ne sont disponibles que pour les utilisateur BackOffice opérateurs.


  • Consultation des montants de tolérance de crédit :

ADM-BUYING-POLICY-551 - GET /v1/buying-policies/credit-control/grace-amounts

Permet de de récupérer toutes les montants de tolérance de crédit configurées.
Chaque tolérance est définie par :

  • un montant ajouté au crédit disponible,
  • une période d’application (début obligatoire, fin facultative),
  • un ou plusieurs comptes associés.

Exemple de réponse :

{
  "content": [
    {
      "accountId": "string",
      "amount": 0,
      "createdAt": "2025-07-21T11:58:16.925Z",
      "endDate": "2025-07-21T11:58:16.925Z",
      "graceAmountId": "string",
      "startDate": "2025-07-21T11:58:16.925Z",
      "updatedAt": "2025-07-21T11:58:16.925Z"
    }
  ],
 ...

  • Creation des montants de tolérance de crédit:

ADM-BUYING-POLICY-151 - POST /v1/buying-policies/credit-control/grace-amount

Permet de créer un ou plusieurs montants de tolérance qui augmentent temporairement la disponibilité du crédit pour les comptes clients sélectionnés.

Contenu de la requête :

[
  {
    "accountId": "string",
    "amount": 0,
    "endDate": "string",
    "startDate": "string"
  }
]

⚠️ startDate et amount sont obligatoires. endDate est facultatif.

Exemple de réponse :

{
  "singleWarningReportDtos": [
    {
      "detail": "string",
      "id": "string"
    }
  ]
}

  • Mise à jour des montants de tolérance de crédit:

ADM-BUYING-POLICY-203 - PUT /v1/buying-policies/credit-control/grace-amounts/{graceAmountId}

Permet de mettre à jour l’intégralité du contenu de la tolérance existante pour le compte client.
Vous pouvez mettre à jour le montant, la startDate et/ou la endDate.

Contenu de la requête :

{
  "amount": 0,
  "endDate": "2025-06-30T23:59:59Z",
  "startDate": "2025-06-10T00:00:00Z"
}

  • Suppression des montants de tolérance de crédit

ADM-BUYING-POLICY-301 - DELETE /v1/buying-policies/credit-control/grace-amounts/{graceAmountId}

Supprime une seule blocage/tolérance existante en fonction de son identifiant (ID).



Mirakl settings

⚠️

Attention

Ce changement s'applique uniquement aux utilisateurs qui utilisent le connecteur Mirakl.

  • Mise à jour des paramètres du connecteur Mirakl:

Un nouveaux endpoint a été ajouté au module Settings, permettant aux utilisateurs opérateurs qui utilisent le connecteur Mirakl de consulter et modifier l’état global des montants de tolerance de crédit sur la plateforme.

ADM-SETTINGS-200 - PATCH /v1/settings/mirakl}

  • Permet de mettre à jour les paramètres du connecteur Mirakl, tels que les clés API, l’URL de l’hôte ou la zone de livraison.

⚠️ Seuls les champs fournis dans le body de la requête seront mis a jour. Les autres champs resteront inchangés.



👍

UPDATE

Search V2

  • Support des intervalles de valeurs pour les attributs

    • Les attributs peuvent désormais fonctionner en tant qu'intervalles de valeurs. Ainsi toutes les routes d'administration suivantes voient apparaître la nouvelle propriété searchableRange au niveau des attributeSettings

      GET /v1/catalog-views/{id}/products
      GET /v1/classification-categories
      POST /v1/classification-categories
      GET /v1/classification-categories/{classificationCategoryId}
      PATCH /v1/classification-categories/{classificationCategoryId}
      PATCH /v1/classification-categories/{classificationCategoryId}/attribute-settings
      PUT /v1/classification-categories/{classificationCategoryId}/attribute-settings
      GET /v1/classification-categories/{classificationCategoryId}/parent-tree
      PUT /v1/navigation-categories/{navigationCategoryId}/classification-categories
      GET /v1/offer-inventories
      PATCH /v1/offer-inventories
      GET /v1/offer-inventories/{offerInventoryId}
      GET /v1/products
      PATCH /v1/products
      POST /v1/products
      PUT /v1/products/back-office/{productId}
      GET /v1/products/catalog-views/{id}
      GET /v1/products/with-count
      GET /v1/products/{id}
      PUT /v1/products/{productId}
      GET /v1/products/{productId}/related-products
      PUT /v1/products/{productId}/related-products/{relatedProductId}

    • L'ajout d'un nouveau paramètre attributesRange dans l'API PRODUCT-552 permet - grâce à la nouvelle configuration des attributs - désormais de filtrer les produits selon un intervalle de valeurs.
      Par exemple, il est possible de rechercher des produits dont la taille est comprise entre 38 et 42.

    Exemple de query :

    GET/v2/shop/search?locale=en-GB&currency=USD&taille_externalID|min|38&taille_externalID|max|42

Périmètre

BackOffice Djust

Améliorations sur l'affichage et le filtrage des comptes clients :

Page liste des comptes clients : Customers > Accounts

  • L’ID externe du compte client est désormais affiché à côté du nom dans le tableau des comptes clients.
  • Le champ de filtre "ID compte" utilise maintenant l’ID externe au lieu de l’ID interne.

Améliorations graphiques et optimisations de design :

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page détail des catalogues produits : Catalog > Catalog views.
  • Page détail des paramètres du moteur de recherche : Settings > Search engine settings.

Affichage des champs de mappings disponibles pour l’export des commandes :

La configuration du mapping des jobs d’export est désormais disponible directement dans le Data Hub, via l’interface du Back Office.

Champs disponibles pour le mapping :

  • Order reference
  • Order id
  • Account External Id
  • Supplier External Id
  • Order Creation Date
  • Order Lines :
    • Order Line Id
    • Offer External Id
    • Variant External Id
    • Quantity Per Unit
    • Variant GTIN
    • Order Line Quantity

API

📘

NEW

Orders [DJUST PAY]

  • Nouveau endpoint
    • L'ajout d'un nouveau endpoint POST /v1/logistic-orders/{logisticOrderId}/refunds
    • Initialise un processus de remboursement pour une commande logistique donnée. Le remboursement sera appliqué au(x) paiement(s) associé(s) à cette commande.
  • Ajout d'un nouveau statut de paiement:

Le statut de paiement REFUND_FAILED a été ajouté sur les commandes logistiques ainsi que sur les lignes de commande.

⚠️

Attention

Ce changement concerne exclusivement les utilisateurs du module DJUST-PAY.
Les autres moyens de paiement (PSP) ne sont pas affectés.

Périmètre

API

📘

NEW

Buying Policies

  • Contrôle d’activation de la policy de contrôle d’encours:

Deux nouveaux endpoints ont été ajoutés au module Buying Policies, permettant aux utilisateurs opérateurs de consulter et modifier l’état global de la policy de contrôle d’encours sur la plateforme.

⚠️

Attention

Ces routes de gestion des buying policies ne sont disponibles que pour les utilisateur BackOffice opérateurs.

  • Consultation du statut de la policy d’encours :

ADM-BUYING-POLICY-500 - GET /v1/buying-policies/credit-control

Permet de récupérer l’état d’activation actuel de la policy de contrôle d’encours ainsi que la limite de crédit par défaut.

Exemple de réponse :

{
  "status": "ACTIVE",
  "creditLimit": 10000,
  "updatedAt": "2025-06-06T14:15:22Z"
}

  • Activation / désactivation de la policy d’encours :

ADM-BUYING-POLICY-200 - PATCH /v1/buying-policies/credit-control

Permet d’activer ou de désactiver globalement l’application de la policy (ACTIVE ou INACTIVE).

Contenu de la requête :

{
  "status": "INACTIVE"
}
🗒️

Notes

ℹ️ Lorsque la policy est en statut INACTIVE, les commandes ne sont plus bloquées en cas de dépassement d’encours.
⚠️ Par défaut, la policy est désactivée (INACTIVE) dans les environnements nouvellement initialisés.


  • Définition d’une limite de crédit par défaut:

La policy de contrôle d’encours peut désormais s’appuyer sur une valeur de crédit par défaut, configurable globalement depuis l’API d’administration. Cette valeur s’applique à tous les comptes clients qui n’ont pas de limite de crédit personnalisée définie. Deux endpoints sont disponibles :

  • Consultation de la configuration de la policy d’encours:

Cf. ci-dessus, il s'agit de la même route ADM-BUYING-POLICY-500

ℹ️ Si un account ne dispose pas de limite de crédit spécifique, c’est la valeur par défaut qui est utilisée pour valider les commandes.
Si un account possède un crédit personnalisé (via un champ custom), cette valeur surcharge celle par défaut.

  • Mise à jour de la limite de crédit par défaut:

ADM-BUYING-POLICY-201 - PATCH /v1/buying-policies/credit-control/credit-limit

Permet de modifier la valeur globale appliquée aux comptes sans configuration individuelle.

Contenu de la requête :

{
  "creditLimit": 15000
}

⚠️ La valeur transmise doit être supérieure ou égale à 0.
⚠️ Par défaut, la valeur initiale est 0 lors de la création d’un nouvel environnement.


Accounts

  • Nouvelle structure de configuration des encours via des champs custom des comptes clients:

Les éléments de définition de l’encours sont désormais portés par des Custom Fields associés aux comptes clients (Customer Accounts). Cette évolution permet de rendre la gestion plus flexible, centralisée et pilotable via les APIs d’Account Management (et prochainement le BackOffice Djust).

Nouveau rôle (associé à un CF Account)TypeDescription
Limite de créditNumberMontant maximal autorisé. Si vide, la limite par défaut définie dans la buying policy est appliquée.
EncoursNumberMontant total des commandes non payées. Valeur synchronisée depuis les systèmes de gestion externe.
⚠️

Attention

Contrairement à la logique actuelle, un Custom Field associé à un rôle n’est plus automatiquement requis : la mécanique de validation a été assouplie.

  • Ces champs sont utilisés par la buying policy d’encours lors de la validation des commandes.
  • La logique de validation distingue clairement les valeurs personnalisées (au niveau du compte) et les valeurs par défaut (définies globalement).
  • La valeur du crédit disponible est désormais calculée dynamiquement selon la formule suivante :
🔎

crédit disponible = (limite crédit - encours) + tolérance

  • En cas d’absence de valeur dans les champs "Limite de crédit" ou "Encours", la logique applique :
    • la valeur par défaut (buying policy) pour la limite,
    • un blocage de sécurité si l’encours est inconnu, pour éviter tout risque de dépassement.
  • Les valeurs des champs "Limite de crédit" et "Encours" doivent être synchronisées régulièrement via les jobs de Data Hub.
  • Aucun fetch temps réel depuis les ERP n’est prévu pour cette première version.

Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page détail des assortiments produits : Catalog > Assortments.
  • Page détail des organisations : Customers > Organisations.
  • Page de configuration des devises : Settings > Currencies.


API

📘

NEW

Buying Policies

Nouvelle fonctionnalité de gestion des comptes en backoffice permettant de bloquer temporairement ou définitivement un ou plusieurs comptes clients afin d’empêcher toute validation de commande, indépendamment de leur encours ou de leur limite de crédit.

Ainsi, voici les nouveaux endpoints API correspondants :

  • Récupération des blocages en cours ou programmés :

ADM-BUYING-POLICY-550 - GET /v1/buying-policies/credit-control/holds

  • Création de blocages manuels sur un ou plusieurs comptes :

ADM-BUYING-POLICY-150 - POST /v1/buying-policies/credit-control/holds

  • Modification d’un blocage existant, avec règles de cohérence sur les dates :

ADM-BUYING-POLICY-202 - PUT /v1/buying-policies/credit-control/holds/{creditHoldId}

  • Suppression d’un blocage actif ou futur :

ADM-BUYING-POLICY-300 - DELETE /v1/buying-policies/credit-control/holds/{creditHoldId}



👍

UPDATE

Incidents

Filtrage des incidents par supplier :

Chaque commande logistique liée à un incident possède un fournisseur.

Pour pouvoir filtrer par fournisseur, un paramètre supplémentaire de filtre suppliers qui prend en entrée une liste d’external ID de suppliers est ajouté à la route ORDER-559 - GET /v1/shop/incidents.

Son fonctionnement reste similaire au filtre par customerAccountIds.

En résultat, on remonte l’ensemble des incidents liés à une commande/ligne de commande correspondant à au moins un des id de fournisseur passé en paramètre.

Si aucune correspondance n’est trouvée, aucun résultat n’est remonté.


Customer Accounts

Suppression de la contrainte d’unicité sur le nom des comptes clients

Il est désormais possible de créer plusieurs comptes clients portant le même nom, que ce soit via les APIs d'administration, Frontend ou les imports (FTP/API).

  • Les traitements ne s’appuient plus sur le nom pour identifier un compte, mais uniquement sur son identifiant technique (customerAccountId).
  • La recherche par nom retourne tous les comptes correspondants, même en cas d’homonymie.
  • Les processus d’import (FTP ou API) n’échouent plus lorsqu’un doublon de nom est détecté.

Les APIs suivantes ont été mises à jour :

POST /v1/customer-accounts
PUT /v1/customer-accounts/{customerAccountId}

ACCOUNT-100 - POST /v1/shop/customer-accounts
ACCOUNT-201 - PUT /v1/shop/customer-accounts

📌 Aucune action corrective sur les données existantes : les noms précédemment uniques restent valides et modifiables.


Data Hub

Exposition des mappings disponibles à l’export pour les commandes

Il est désormais possible d’interroger par API les mappings utilisables pour l’export des commandes via l’endpoint GET /jobout/mappings?type=ORDER

Périmètre

BackOffice Djust

Améliorations graphiques et optimisations de design

Dans la continuité de la refonte globale du Back Office de Djust, un redesign des pages suivantes a été apporté afin de simplifier l'expérience utilisateur.

  • Page de détail des utilisateurs fournisseurs (Portail fournisseur uniquement) : Users.
  • Page de recherche des produits/variants : Catalog > Product list.
  • Page de détail et de création des utilisateurs front : Customers > Customer users.