Skip to main content

2.2 Nouvelles fonctionnalités pour les développeurs et intégrateurs

API REST :

  • NOUVEAU : Endpoint API pour l’historique des prix d’un produit (#38420) : /products/{id}/pricelogs retourne l’historique des prix de vente.
  • NOUVEAU : L’API GET /countries/{id} peut maintenant charger les régions et les états en option (#37715), évitant des appels supplémentaires.
  • NOUVEAU : API Catégories – endpoint pour lister les types de catégories (#38207).
  • NOUVEAU : API Remises – création d’une remise en montant fixe (#37091).
  • NOUVEAU : Meilleure compatibilité API pour les utilisateurs, les tâches et les pièces jointes des tickets (#37644).
  • NOUVEAU : Le champ default_rib (RIB par défaut) est maintenant inclus dans les réponses API des tiers (#38355).

HOOKS :

  • NOUVEAU : Hook dans le label d’une opération comptable (#37838) : hookmanager->executeHooks('addMor ...).
  • NOUVEAU : Hook dans les formulaires de liste du portail web (#36844) : webportal_formlist.
  • NOUVEAU : Hook selectForFormsListUrl dans Form::selectForForms (#37447) : permet de modifier l’URL d’une liste de sélection.
  • NOUVEAU : Hooks dans la fiche réception (#37214).
  • NOUVEAU : Hook dans BonPrelevement::EnregDestinataireSEPA() (#37419).
  • NOUVEAU : Hook dans le formulaire email/message des tickets généré par FormTicket (#37580).
  • NOUVEAU : Hook dans Add Hook for adapting virtual stock dans l’écran de réapprovisionnement (#37290).

Avertissement : Renommage de hook : le hook info_admin a été renommé en messageOfTheDay. Mettez à jour vos modules si vous l’utilisez.

EXTRACHAMPS (extrafields) :

  • NOUVEAU : [RGPD] Ajout de la colonne personal_data dans llx_extrafields (#38194, #38133) : troisième étape du chantier d’anonymisation des extrachamps. Chaque extrachamp peut maintenant être marqué comme “données personnelles” pour faciliter les procédures RGPD (droit à l’oubli, anonymisation).
  • NOUVEAU : L’interface d’administration des extrachamps affiche le flag personal_data et permet de le configurer.
  • NOUVEAU : Option infobulle sur les extrachamps dans getNomUrl (#37431) : un extrachamp peut avoir une infobulle au survol.
  • NOUVEAU : Utilisation du libellé du select (et non de la valeur technique) pour la substitution des extrachamps dans les emails (#37005).
  • NOUVEAU : Support des extrachamps de type chkbxlst (checkbox list) avec des tables contenant jusqu’à 200 000 éléments (#37691) : amélioration des performances pour les très grandes listes.
  • NOUVEAU : L’option MAIN_DISALLOW_UNSECURED_SELECT_INTO_EXTRAFIELDS_FILTER est activée par défaut (sécurité).

MODULE BUILDER :

  • NOUVEAU : Possibilité de spécifier si l’objet gère des lignes dans le Module Builder (#32664) : paramètre pour indiquer qu’un objet personnalisé a des lignes associées.
  • NOUVEAU : Remplacement automatique des occurrences MyObject / MyModule lors de la génération (#38370) : le module builder substitue correctement ces tokens lors de la création du code.

MÉTHODES ET UTILITAIRES :

  • NOUVEAU : Nouvelle méthode calculateVATNumberFromProperties() : calcule automatiquement le numéro de TVA à partir des propriétés d’un objet.
  • NOUVEAU : Nouvelle méthode dolOutputDates() pour afficher des dates de façon normalisée.
  • NOUVEAU : Nouvelle méthode formatLogObject() pour formater un log en une seule ligne (#37135), facilitant la lecture des journaux.
  • NOUVEAU : Méthode addMoreTagsToDefaultTagsInDolPrintHTML() : les modules tiers peuvent ajouter des balises HTML autorisées dans les sorties contrôlées.
  • NOUVEAU : Le cron déverrouille automatiquement les tâches bloquées après un arrêt inattendu du serveur (#37332).
  • NOUVEAU : La debugbar capture maintenant la backtrace lors des échecs de requêtes SQL (#36612), facilitant le diagnostic des erreurs de base de données.
  • NOUVEAU : Déplacement des librairies JS dans htdocs/public/includes (au lieu de htdocs/includes) pour mieux séparer les ressources publiques.
  • NOUVEAU : Le Module Builder peut indiquer qu’un objet gère des lignes (#32664).

SÉCURITÉ DÉVELOPPEURS :

  • NOUVEAU : Une page peut forcer sa propre valeur pour MAIN_SECURITY_CSRF_WITH_TOKEN, permettant à certaines pages de surcharger le niveau de protection CSRF globalement configuré.