Djust 3.58.0 - Semaine du 31 Mars 2025

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 de la page des product tags a été revu afin de simplifier l'expérience utilisateur.
Cette page est accessible via l’interface de Settings > Product Tags.


API

📘

NEW

Djust PAY

  • Ajout de la prise en charge du 3DS dans les paiements CB :

Le contrat de la route d'initialisation de paiement évolue pour prendre en compte des éléments supplémentaires nécessaires au bon fonctionnement de transaction 3DS.

La route concernée par ce nouveau workflow est :

PAY-101 - POST /v1/shop/payments

Query parameterRequiredTypeDescription
customerUserIPstringAdresse IP du customer user connecté qui passe la commande.
browserInfoobjectL’objet browserInfo contient l’ensemble des éléments issus du browser du client. Il provient de l’élément state.data.browserInfo du widget de Drop-In.

Le body devient :

{
	"referenceType": "string", 
	"reference": "string",
	"paymentMethodData":
		{
			// Filled with drop-in paymentMethod object
		},
	"returnUrl": "string",
	
	// 3DS additional parameters
	"customerUserIP": "string",
	"browserInfo":
		{
			// Filled with drop-in browserInfo object
		}
}

Une fois le retour effectué du parcours 3DS, il est nécessaire de vérifier les informations liées à la transaction afin de terminer le workflow de paiement. Pour obtenir ces informations, une nouvelle route a été ajoutée :

PAY-102 - POST /v1/shop/payments/details

Il n'existe qu'un seul paramètre à envoyer dans le body :

Query parameterRequiredTypeDescription
detailsstringRésultat de l’authentification encodée en base64

La réponse du POST est la suivante, elle est similaire au /payments hors 3DS :

{
 "resultCode": "Authorised",
 "pspReference": "V4HZ4RBFJGXXGN82"
}

👍

UPDATE

Orders

  • Ajout de la gestion des mentions légales d'exonération de taxes :

L’ensemble des APIs de gestion de commande évolue avec l’ajout de l’attribut taxLegalNotice à la ligne de commande.

L’utilisation de ce champ reflète la nécessité d’apposer une mention légale d’exonération de TVA dans le cas où celle-ci ne doit pas être payée par l’acheteur au vendeur, la facture s’effectuant ainsi hors-taxe.

Le cas le plus courant est celui d’une livraison intracommunautaire.

Le nouveau champ taxLegalNotice est ajouté dans l’objet taxInformation déjà existant au niveau des prix de chaque ligne.

"taxInformation": {
	"productTaxAmount": 0,
	"productTaxCode": "string",
	"productTaxRate": 0,
	"shippingTaxAmount": 0,
	"shippingTaxCode": "string",
	"shippingTaxRate": 0,
	"taxLegalNotice": "string" // NEW tax legal notice
}
📘

Note

Afin de respecter une contrainte de décomissionnement d’Octobat chez Mirakl, il sera possible d’alimenter cet attribut depuis le front office via les APIs de Cart v1 uniquement.
En effet, le Cart v2 et les nouvelles routes de gestion des commandes sans panier passeront à terme par un traitement back pour alimenter ces informations.

En conséquence, les routes de modifications de panier suivantes sont impactées :

CART-200 - PUT /v1/shop/carts/{cartId}/lines

L’attribut taxLegalNotice est ajouté à l’objet tax du body.


CART-500 - GET /v1/shop/carts
POST /v1/shop/carts
PUT /v1/shop/carts/{cartId}
PUT /v1/shop/carts/{cartId}/lines

L’attribut taxLegalNotice est ajouté à l’objet tax de la réponse.


Les routes d'orders sont également touchées avec l'ajout de l'attribut taxLegalNotice dans le snapshot des offer prices des lignes de commandes :

GET /v1/logistic-orders
POST /v1/logistic-orders
GET /v1/logistic-orders/{orderLogisticId}
GET /v1/logistic-orders/{orderLogisticId}/approvals
GET /v1/logistic-orders/{orderLogisticId}/lines
PATCH /v1/logistic-orders/{orderLogisticId}/lines/{orderLogisticLineId}
PUT /v1/logistic-orders/{orderLogisticId}/lines/{orderLogisticLineId}

ORDER-560 - GET /v1/shop/commercial-orders
ORDER-100 - POST /v1/shop/commercial-orders
ORDER-561 - GET /v1/shop/commercial-orders/{commercialOrderId}/lines
ORDER-500 - GET /v1/shop/commercial-orders/{orderCommercialId}
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-555 - GET /v1/shop/logistic-orders/{orderLogisticId}/lines
ORDER-206 - PATCH /v1/shop/logistic-orders/{orderLogisticId}/lines/{orderLogisticLineId}
ORDER-107 - POST /v2/shop/supplier-quotes/{supplierQuoteId}/initialize-orders

L’attribut taxLegalNotice est facultatif et n’est pas soumis à une vérification de format. Le front est responsable de la donnée injectée.


  • Ouverture de la modification des quantités de lignes :

Un nouveau droit est ajouté pour pouvoir modifier les quantités des lignes de commande en tant qu’utilisateur non propriétaire.

Le nom du droit sera : ORDER_UPDATE_LINES_ON_ALL_ACCOUNT. Il s’applique sur les commandes au statut DRAFT_ORDER ou DRAFT_ORDER_ON_HOLD.

Ainsi, la route d’update globale suivante est ouverte à modification si l’utilisateur qui en fait la demande possède ce droit :

ORDER-250 - PUT /v1/shop/logistic-orders/{orderLogisticId}/lines


  • Modification des commandes groupées par un utilisateur différent de celui qui a créé la commande :

Afin de pouvoir modifier les CF des commandes d’autres utilisateurs en tant que customer user, un nouveau droit a été créé et est déjà en place sur ORDER-205 : ORDER_UPDATE_CF_ON_ALL_ACCOUNT

Ce droit doit s’appliquer désormais à l’ensemble des commandes de l’account du customer user au statut DRAFT_ORDER_ON_HOLD et permet la modification des custom fields des commandes sur la route ORDER-250.

⚠️

Attention

Le droit ORDER_UPDATE_CF_ON_ALL_ACCOUNT permet la modification de CF de toutes les commandes de TOUS les accounts auxquels le customer user est rattaché.


Suppliers

La possibilité de filtrer l’api SUPPLIER-550 - GET /v1/shop/suppliers avec les externals IDs des CFs au supplier a été ajoutée.

⚠️

Attention

Les customs fields supportés sont les suivants :

  • Text
  • Long text
  • Boolean
  • List

Search

La route d'administration pour la récupération des informations des jobs d'indexation a été enrichie :

GET /v1/jobs

Cette modification permet de connaitre le statut de l’indexation mais aussi la date de début et de fin d’une indexation. Il sera aussi possible de connaitre la durée de cette indexation.

Le statut de l'indexation est disponible dans l'attribut jobStatus. Les valeurs possibles sont :

  • SUCCESS
  • 🆕 IN_PROGRESS
  • FAILED

La durée de l'indexation se trouve quant à elle dans l'attribut durationInMillis et contient donc la durée de l'indexation en millisecondes.