Personnalisation des documents de vente envoyés sur le site
Robot Vaisonet
Modifié le : Lun, 21 Sept., 2026 à 11:51 H
Il est possible d'envoyer les documents de vente de votre logiciel de gestion commerciale dans l'espace client.
Cet article explique comment personnaliser la mise en forme de ces documents.
Cas avec EBP Gestion commerciale
Tout d'abord, si vous utilisez EBP, E-connecteur va utiliser le PDF par défaut d'EBP. Il faut donc que vous personnalisiez dans votre logiciel de gestion commerciale le modèle PDF. Voici le lien vers la documentation EBP à ce sujet.
Seuls les documents en français sont gérés.
Pour les autres logiciels de gestion
Pour les autres logiciels de gestion commerciale (Sage 100, Sage 50 / Ciel), les documents sont envoyés au format HTML et doivent être personnalisés avant utilisation. Un graphiste web, ou l'équipe Vaisonet, peuvent vous proposer des prestations de personnalisation grâce à cette documentation.
Avec Sage 100c, lorsque Sage a lui-même produit le PDF d'une pièce, c'est ce PDF qui est envoyé : le modèle HTML n'est utilisé que si ce PDF n'existe pas.
Version d'E-connecteur à utiliser
Utilisez E-connecteur 8.1.70 ou supérieur. Cette version ajoute de nombreuses variables pour Sage 100 et corrige plusieurs valeurs : taux de TVA des lignes d'avoir, dates non renseignées, montants décimaux.
Dans la suite de cet article, les variables signalées (Sage 100) ne sont disponibles qu'avec Sage 100. Les autres fonctionnent avec tous les logiciels envoyant des documents HTML.
Système de template
E-connecteur utilise le système de template Twig largement utilisé par les systèmes de templates des sites web. Avant d'aller plus loin, vous devriez avoir des bases en Twig. Voici le lien vers la documentation officielle : https://twig.symfony.com/doc/3.x/templates.html.
Les modèles de templates se trouvent dans C:\Program Files (x86)\Vaisonet\Connecteur\app\data\templates.
Chaque type de document a son dossier, dont le nom est un code numérique :
- 20 : devis
- 21 : commandes
- 12 : préparations de livraison
- 22 : bons de livraison
- 23 : factures
- 24 : factures comptabilisées et/ou avoirs
Le template est le fichier document.fr_FR.html.
Vous devez copier le template modifié dans le dossier C:\ProgramData\Vaisonet\Connecteur\templates\xx, où xx est le code numérique du type de pièce, comme mentionné précédemment. Créez un modèle pour chaque type de document que vous envoyez : si le modèle d'un type est absent, ses documents ne sont pas générés.
Syntaxe Twig utilisable
Twig tient en trois écritures :
{{ ... }}affiche une valeur ;{% ... %}exécute une instruction : boucle, condition, variable de travail ;{# ... #}est un commentaire, absent du document final.
Les filtres les plus utiles :
{{ commande.total_paid | number_format(2, ',', ' ') }} → 1 234,50
{{ commande.date_add | date('d/m/Y') }} → 18/06/2026
{{ commande.total_paid | abs }} → valeur sans signe
{{ facturation.company | upper }} → en majuscules
{{ facturation.vat_number | default('-') }} → valeur de repli si vide
{{ p.glossaire | nl2br }} → conserve les retours à la ligne
{{ produits.produit | length }} → nombre de lignesLes filtres filter, map, reduce et join permettent aussi de calculer sur les lignes, par exemple un total :
{% set total_ht = produits.produit | reduce((somme, p) => somme + p.montant_ht, 0) %}Les filtres format_currency, format_number, format_date, format_datetime, markdown_to_html et les filtres u.* ne sont pas disponibles : les utiliser empêche la génération du document entier. Pour les montants, utilisez number_format suivi d'un « € ». Pour la même raison, date('F') affiche les mois en anglais : préférez date('d/m/Y').
Variables Twig disponibles
Le type de document :
{{ type }}: code du type de document (20, 21, 22, 23, 24)
Le client :
{{ client.code_erp }}: code du client dans la gestion commerciale
Les informations de livraison :
{{ livraison.company }}: raison sociale, ou nom complet pour un particulier{{ livraison.lastname }}{{ livraison.firstname }}{{ livraison.address1 }}{{ livraison.address2 }}{{ livraison.postcode }}{{ livraison.city }}{{ livraison.pays }}{{ livraison.phone }}{{ livraison.phone_mobile }}{{ livraison.email }}
Les informations de facturation :
{{ facturation.company }}: raison sociale, ou nom complet pour un particulier{{ facturation.lastname }}{{ facturation.firstname }}{{ facturation.address1 }}{{ facturation.address2 }}{{ facturation.postcode }}{{ facturation.city }}{{ facturation.pays }}{{ facturation.phone }}{{ facturation.phone_mobile }}{{ facturation.email }}{{ facturation.vat_number }}: numéro de TVA intracommunautaire
Avec Sage 100, le nom est presque toujours dans company, y compris pour un particulier : lastname et firstname sont généralement vides.
Les informations de commande :
{{ commande.id }}: numéro de la pièce{{ commande.date_add }}: date de la pièce{{ commande.total_paid }}: total TTC{{ commande.total_paid_HT }}: total HT{{ commande.total_tva }}: total des taxes{{ commande.solde_du }}: net à payer{{ commande.net_a_payer }}(Sage 100) : net à payer, même valeur quesolde_dusous un nom plus explicite{{ commande.port_ht }}: frais de port HT{{ commande.total_discount }}: taux d'escompte, en pourcentage{{ commande.currency }}(Sage 100) : code de la devise, par exemple EUR
Un exemple pour formater un nombre :
{{ commande.total_discount | round(2, 'common') }}La liste complète des filtres est disponible dans la documentation Twig.
Le total de la pièce inclut les frais de port et l'escompte : il n'est donc pas toujours égal à la somme des lignes.
La variable commande.pdf existe aussi, mais contient le document lui-même encodé : ne l'affichez jamais.
La liste des produits :
{% for p in produits.produit %}
{{ p.product_name }}
{% endfor %}Dans la boucle, chaque ligne p propose :
{{ p.product_reference }}: référence de l'article{{ p.product_name }}: désignation{{ p.product_quantity }}: quantité{{ p.product_price }}: prix unitaire HT{{ p.discount_rate }}: remise de la ligne{{ p.tva_rate }}: taux de TVA, recalculé à partir des montants (valeur approchée){{ p.montant_ttc }}: total TTC de la ligne{{ p.montant_ht }}(Sage 100) : total HT de la ligne, remise déduite{{ p.product_gamme1 }}et{{ p.product_gamme2 }}(Sage 100) : déclinaisons de l'article (taille, couleur…){{ p.code_tva }}(Sage 100) : code du taux de TVA de la ligne dans Sage{{ p.ecotaxe }}(Sage 100) : montant de l'écotaxe de la ligne, en euros{{ p.glossaire }}(Sage 100) : texte du glossaire rattaché à la fiche article (voir plus bas)
Les variables code_tva, ecotaxe et glossaire dépendent des données enrichies décrites ci-dessous : sans elles, elles restent vides.
Vous pouvez vous inspirer du modèle fourni avec E-connecteur, qui montre un cas d'utilisation.
Données enrichies (Sage 100)
Avec Sage 100, E-connecteur complète chaque document avec les informations lues directement dans votre dossier Sage.
Elles sont regroupées sous sage :
sage.docentete: l'en-tête complet de la pièce ;sage.client: la fiche client complète ;sage.contacts.contact: les contacts de la fiche client ;sage.lignes.ligne: le détail complet des lignes ;sage.echeances.echeance: l'échéancier de règlement.
Chacun de ces blocs contient toutes les colonnes de la fiche Sage correspondante, champs libres compris, sous leur nom Sage. La liste complète figure en annexe, à la fin de cet article. Quelques exemples utiles :
{{ sage.docentete.DO_Ref }}: référence de la pièce, par exemple la référence de la commande du site{{ sage.docentete.DO_DateLivr }}: date de livraison prévue{{ sage.docentete.DO_Coord01 }}à{{ sage.docentete.DO_Coord04 }}: consignes saisies sur la pièce{{ sage.docentete.lib_transporteur }}: transporteur{{ sage.docentete.lib_depot }}: dépôt{{ sage.client.CT_Siret }}: SIRET du client{{ sage.client.CT_Identifiant }}: numéro de TVA intracommunautaire{{ sage.client.lib_mode_reglement }}: conditions de règlement{{ sage.client.lib_representant }}: représentant{{ sage.client.lib_cattarif }}: catégorie tarifaire{{ contact.CT_Nom }},{{ contact.CT_Prenom }},{{ contact.CT_EMail }},{{ contact.lib_typecontact }}: dans une boucle sursage.contacts.contact{{ ligne.DL_Taxe1 }}: taux de TVA exact de la ligne{{ ligne.lib_taxe1 }}: libellé du taux de TVA, par exemple « TVA collectée 20 % »{{ ligne.DL_Remise01REM_Type }}: 1 si la remise est un pourcentage, autre valeur si c'est un montant{{ ligne.DL_PoidsNet }}: poids net{{ echeance.DR_Date }},{{ echeance.DR_Montant }},{{ echeance.DR_Libelle }}: dans une boucle sursage.echeances.echeance
Les champs libres créés dans Sage apparaissent avec leur nom débarrassé des accents, espaces et ponctuation, et privé des chiffres de tête. Par exemple, un champ nommé « Mise à jour le : » s'écrit sage.client.Misejourle.
Les montants de ce bloc sont bruts, avec six décimales (227.380000) : passez-les toujours par number_format.
Ces données ne sont présentes que pour les documents générés en HTML, et si E-connecteur accède à la base SQL Server de Sage. Encadrez donc toujours leur utilisation par une condition, pour que votre modèle fonctionne dans tous les cas :
{% if sage is defined %}
Règlement : {{ sage.client.lib_mode_reglement }}
{% endif %}Il est possible de les désactiver en ajoutant efv_enrichir_sql = 0 dans la section [erp] du fichier de configuration.
Les glossaires d'article :
Chaque ligne d'article reçoit les glossaires rattachés à sa fiche dans Sage (description longue, fiche technique, garantie…) :
{{ p.glossaire }}: le texte d'un seul glossaire, prêt à afficher. Si le paramètreglossairede la section[param]désigne un intitulé, c'est ce glossaire-là, ou rien si l'article ne l'a pas ; sinon, le premier glossaire de la fiche.p.glossaires.glossaire: tous les glossaires de l'article, avec notammentGL_Intitule,GL_Text,GL_TextLangue1etGL_TextLangue2(traductions) ; liste complète en annexe.
Les retours à la ligne saisis dans Sage doivent passer par le filtre nl2br :
{% if p.glossaire is defined and p.glossaire %}
<div class="glossaire">{{ p.glossaire | nl2br }}</div>
{% endif %}Points d'attention
Les lignes de commentaire. Une pièce contient souvent des lignes de texte libre (titres, mentions, renvois, lignes vides) en plus des articles. Elles figurent dans produits.produit, sans référence ni montant. Pour n'afficher que les articles :
{% for p in produits.produit | filter(p => p.product_reference) %}Les montants d'un avoir sont négatifs, quantités comprises. Si le titre du document indique déjà « Avoir », affichez les nombres avec le filtre abs.
Une liste d'un seul élément n'est pas une liste. produits.produit est toujours une liste. En revanche, lorsque les contacts, les lignes détaillées, les échéances ou les glossaires d'un article ne contiennent qu'un seul élément, ils ne sont pas présentés sous forme de liste. Pour boucler dessus sans erreur, normalisez-les d'abord :
{% set ech = sage.echeances is iterable ? sage.echeances.echeance : null %}
{% set echeances = ech is not iterable ? [] : (ech[0] is defined and ech[0] is iterable ? ech : [ech]) %}
{% for e in echeances %}
{{ e.DR_Date | date('d/m/Y') }} : {{ e.DR_Montant | number_format(2, ',', ' ') }} €
{% endfor %}Les dates non renseignées sont vides. Testez-les avant de les formater : {% if sage.docentete.DO_DateLivr %}...{% endif %}.
Le taux de TVA p.tva_rate est approché : il est recalculé à partir des montants arrondis, si bien qu'une TVA à 5,5 % peut apparaître à 5,48. Pour afficher un taux exact, utilisez ligne.DL_Taxe1 des données enrichies ; pour regrouper ou conditionner un affichage, utilisez p.code_tva.
La remise n'est pas toujours un pourcentage. p.discount_rate peut être un montant en euros : ne le faites pas suivre d'un « % » sans vérifier ligne.DL_Remise01REM_Type. p.montant_ht est juste dans tous les cas, la remise y étant déjà déduite.
Une variable mal orthographiée ne provoque aucune erreur : la case reste simplement vide. C'est la première chose à vérifier quand une information n'apparaît pas.
Comment tester ?
Il faut lancer E-connecteur en ligne de commande avec le paramètre --testpdf : un document de test sera enregistré et l'emplacement sera affiché dans l'interface E-connecteur. Attention : ce paramètre ne remplace pas l'envoi, les documents sont aussi envoyés normalement vers le site.
Pour connaître toutes les variables disponibles sur un document précis, avec leurs valeurs, placez temporairement {{ dump() }} dans votre modèle et lancez le test : le document produit affiche tout son contenu. Retirez-le ensuite.
Annexe : liste complète des variables Sage 100
Cette annexe liste toutes les variables des données enrichies. Elle a été établie sur plusieurs dossiers Sage 100 de versions différentes : les variables marquées (selon la version de Sage) n'existent que dans certaines versions. Les champs libres propres à votre dossier ne figurent pas ici ; ils s'ajoutent à cette liste sous le nom décrit plus haut.
Types : texte ; entier (souvent un code ou un numéro) ; nombre (montant ou quantité, avec six décimales, à passer par number_format) ; date (au format AAAA-MM-JJ, vide si non renseignée).
sage.docentete : en-tête de la pièce
Une seule occurrence par document. 111 variables.
sage.docentete.lib_transporteur(texte) : libellé du transporteur (mode d'expédition)sage.docentete.lib_depot(texte) : libellé du dépôtsage.docentete.DO_Domaine(entier) : domaine de la pièce (0 = vente)sage.docentete.DO_Type(entier) : type de pièce dans Sage (0 devis, 1 commande, 2 préparation, 3 livraison, 6 facture, 7 facture comptabilisée)sage.docentete.DO_Piece(texte) : numéro de la piècesage.docentete.DO_Date(date) : date de la piècesage.docentete.DO_Ref(texte) : référence de la pièce (par exemple la référence de la commande du site)sage.docentete.DO_Tiers(texte) : code du clientsage.docentete.CO_No(entier) : numéro du représentantsage.docentete.DO_Period(entier)sage.docentete.DO_Devise(entier) : numéro de la devisesage.docentete.DO_Cours(nombre) : cours de la devisesage.docentete.DE_No(entier) : numéro du dépôtsage.docentete.LI_No(entier) : numéro de l'adresse de livraisonsage.docentete.CT_NumPayeur(texte) : code du tiers payeursage.docentete.DO_Expedit(entier) : numéro du mode d'expéditionsage.docentete.DO_NbFacture(entier)sage.docentete.DO_BLFact(entier)sage.docentete.DO_TxEscompte(nombre) : taux d'escompte, en pourcentagesage.docentete.DO_Reliquat(entier) : reliquatsage.docentete.DO_Imprim(entier) : pièce déjà imprimée (1) ou non (0)sage.docentete.CA_Num(texte) : code affairesage.docentete.DO_Coord01(texte) : information complémentaire n° 1sage.docentete.DO_Coord02(texte) : information complémentaire n° 2sage.docentete.DO_Coord03(texte) : information complémentaire n° 3sage.docentete.DO_Coord04(texte) : information complémentaire n° 4sage.docentete.DO_Souche(entier) : souche de numérotationsage.docentete.DO_DateLivr(date) : date de livraison prévue (vide si non renseignée)sage.docentete.DO_Condition(entier) : numéro de la condition de livraisonsage.docentete.DO_Tarif(entier) : numéro de la catégorie tarifairesage.docentete.DO_Colisage(entier)sage.docentete.DO_TypeColis(entier)sage.docentete.DO_Transaction(entier)sage.docentete.DO_Langue(entier) : langue de la piècesage.docentete.DO_Ecart(nombre)sage.docentete.DO_Regime(entier)sage.docentete.N_CatCompta(entier) : numéro de la catégorie comptablesage.docentete.DO_Ventile(entier)sage.docentete.AB_No(entier)sage.docentete.DO_DebutAbo(date)sage.docentete.DO_FinAbo(date)sage.docentete.DO_DebutPeriod(date)sage.docentete.DO_FinPeriod(date)sage.docentete.CG_Num(texte) : compte généralsage.docentete.DO_Statut(entier) : statut de la piècesage.docentete.DO_Heure(texte) : heure de la piècesage.docentete.CA_No(entier)sage.docentete.CO_NoCaissier(entier)sage.docentete.DO_Transfere(entier)sage.docentete.DO_Cloture(entier)sage.docentete.DO_NoWeb(texte)sage.docentete.DO_Attente(entier)sage.docentete.DO_Provenance(entier) : origine de la pièce (0 normale, 1 retour, 2 avoir)sage.docentete.CA_NumIFRS(texte)sage.docentete.MR_No(entier) : numéro du modèle de règlementsage.docentete.DO_TypeFrais(entier)sage.docentete.DO_ValFrais(nombre) : frais d'expéditionsage.docentete.DO_TypeLigneFrais(entier)sage.docentete.DO_TypeFranco(entier)sage.docentete.DO_ValFranco(nombre) : seuil de franco de portsage.docentete.DO_TypeLigneFranco(entier)sage.docentete.DO_Taxe1(nombre)sage.docentete.DO_TypeTaux1(entier)sage.docentete.DO_TypeTaxe1(entier)sage.docentete.DO_Taxe2(nombre)sage.docentete.DO_TypeTaux2(entier)sage.docentete.DO_TypeTaxe2(entier)sage.docentete.DO_Taxe3(nombre)sage.docentete.DO_TypeTaux3(entier)sage.docentete.DO_TypeTaxe3(entier)sage.docentete.DO_MajCpta(entier)sage.docentete.DO_Motif(texte) : motifsage.docentete.CT_NumCentrale(texte)sage.docentete.DO_Contact(texte) : contact de la piècesage.docentete.DO_FactureElec(entier)sage.docentete.DO_TypeTransac(entier)sage.docentete.DO_DateLivrRealisee(date) : date de livraison réalisée (vide si non renseignée)sage.docentete.DO_DateExpedition(date) : date d'expédition (vide si non renseignée)sage.docentete.DO_FactureFrs(texte)sage.docentete.DO_PieceOrig(texte) : numéro de la pièce d'originesage.docentete.DO_GUID(texte)sage.docentete.DO_EStatut(entier)sage.docentete.DO_DemandeRegul(entier)sage.docentete.ET_No(entier)sage.docentete.DO_Valide(entier) : pièce validée (1) ou non (0)sage.docentete.DO_Coffre(entier)sage.docentete.DO_CodeTaxe1(texte)sage.docentete.DO_CodeTaxe2(texte)sage.docentete.DO_CodeTaxe3(texte)sage.docentete.DO_TotalHT(nombre) : total HTsage.docentete.DO_StatutBAP(entier)sage.docentete.DO_Escompte(entier)sage.docentete.DO_DocType(entier)sage.docentete.DO_TypeCalcul(entier)sage.docentete.DO_FactureFile(texte)sage.docentete.DO_TotalHTNet(nombre) : total HT netsage.docentete.DO_TotalTTC(nombre) : total TTCsage.docentete.DO_NetAPayer(nombre) : net à payersage.docentete.DO_MontantRegle(nombre) : montant déjà réglésage.docentete.DO_RefPaiement(texte) : référence de paiementsage.docentete.DO_AdressePaiement(texte)sage.docentete.DO_PaiementLigne(entier)sage.docentete.DO_MotifDevis(entier)sage.docentete.DO_Conversion(entier)sage.docentete.DO_TVADebit(entier) (selon la version de Sage)sage.docentete.EB_No(entier) (selon la version de Sage)sage.docentete.DO_RefExterne(texte) (selon la version de Sage)sage.docentete.CFAR_No(entier) (selon la version de Sage)sage.docentete.FAC_No(entier) (selon la version de Sage)sage.docentete.DO_Exclure(entier) (selon la version de Sage)sage.docentete.DO_CodeService(texte) (selon la version de Sage)
sage.client : fiche client
Une seule occurrence par document : le client de la pièce. 137 variables.
sage.client.lib_cattarif(texte) : libellé de la catégorie tarifairesage.client.lib_mode_reglement(texte) : libellé des conditions de règlementsage.client.lib_representant(texte) : nom du représentantsage.client.CT_Num(texte) : code du clientsage.client.CT_Intitule(texte) : raison socialesage.client.CT_Type(entier) : type de tiers (0 = client)sage.client.CG_NumPrinc(texte) : compte général principalsage.client.CT_Qualite(texte) : qualité (SARL, SA…)sage.client.CT_Classement(texte) : abrégé de classementsage.client.CT_Contact(texte) : contactsage.client.CT_Adresse(texte) : adressesage.client.CT_Complement(texte) : complément d'adressesage.client.CT_CodePostal(texte) : code postalsage.client.CT_Ville(texte) : villesage.client.CT_CodeRegion(texte) : régionsage.client.CT_Pays(texte) : payssage.client.CT_Raccourci(texte) : raccourcisage.client.BT_Num(entier)sage.client.N_Devise(entier)sage.client.CT_Ape(texte) : code APE / NAFsage.client.CT_Identifiant(texte) : numéro de TVA intracommunautairesage.client.CT_Siret(texte) : numéro SIRETsage.client.CT_Statistique01(texte)sage.client.CT_Statistique02(texte)sage.client.CT_Statistique03(texte)sage.client.CT_Statistique04(texte)sage.client.CT_Statistique05(texte)sage.client.CT_Statistique06(texte)sage.client.CT_Statistique07(texte)sage.client.CT_Statistique08(texte)sage.client.CT_Statistique09(texte)sage.client.CT_Statistique10(texte)sage.client.CT_Commentaire(texte) : commentairesage.client.CT_Encours(nombre) : encours autorisésage.client.CT_Assurance(nombre) : plafond d'assurance créditsage.client.CT_NumPayeur(texte) : code du tiers payeursage.client.N_Risque(entier)sage.client.CO_No(entier) : numéro du représentantsage.client.N_CatTarif(entier) : numéro de la catégorie tarifairesage.client.CT_Taux01(nombre) : taux de remise n° 1sage.client.CT_Taux02(nombre)sage.client.CT_Taux03(nombre)sage.client.CT_Taux04(nombre)sage.client.N_CatCompta(entier) : numéro de la catégorie comptablesage.client.N_Period(entier)sage.client.CT_Facture(entier)sage.client.CT_BLFact(entier)sage.client.CT_Langue(entier)sage.client.N_Expedition(entier)sage.client.N_Condition(entier)sage.client.CT_Saut(entier)sage.client.CT_Lettrage(entier)sage.client.CT_ValidEch(entier)sage.client.CT_Sommeil(entier) : client en sommeil (1) ou actif (0)sage.client.DE_No(entier) : numéro du dépôtsage.client.CT_ControlEnc(entier) : contrôle de l'encourssage.client.CT_NotRappel(entier)sage.client.N_Analytique(entier)sage.client.CA_Num(texte) : code affairesage.client.CT_Telephone(texte) : téléphonesage.client.CT_Telecopie(texte) : télécopiesage.client.CT_EMail(texte) : adresse e-mailsage.client.CT_Site(texte) : site internetsage.client.CT_Coface(texte)sage.client.CT_Surveillance(entier)sage.client.CT_SvDateCreate(date)sage.client.CT_SvFormeJuri(texte)sage.client.CT_SvEffectif(texte)sage.client.CT_SvCA(nombre)sage.client.CT_SvResultat(nombre)sage.client.CT_SvIncident(entier)sage.client.CT_SvDateIncid(date)sage.client.CT_SvPrivil(entier)sage.client.CT_SvRegul(texte)sage.client.CT_SvCotation(texte)sage.client.CT_SvDateMaj(date)sage.client.CT_SvObjetMaj(texte)sage.client.CT_SvDateBilan(date)sage.client.CT_SvNbMoisBilan(entier)sage.client.N_AnalytiqueIFRS(entier)sage.client.CA_NumIFRS(texte)sage.client.CT_PrioriteLivr(entier)sage.client.CT_LivrPartielle(entier)sage.client.MR_No(entier) : numéro du modèle de règlementsage.client.CT_NotPenal(entier)sage.client.EB_No(entier)sage.client.CT_NumCentrale(texte)sage.client.CT_DateFermeDebut(date)sage.client.CT_DateFermeFin(date)sage.client.CT_FactureElec(entier)sage.client.CT_TypeNIF(entier)sage.client.CT_RepresentInt(texte)sage.client.CT_RepresentNIF(texte)sage.client.CT_EdiCodeType(entier)sage.client.CT_EdiCode(texte)sage.client.CT_EdiCodeSage(texte)sage.client.CT_ProfilSoc(entier)sage.client.CT_StatutContrat(entier)sage.client.CT_DateMAJ(date)sage.client.CT_EchangeRappro(entier)sage.client.CT_EchangeCR(entier)sage.client.PI_NoEchange(entier)sage.client.CT_BonAPayer(entier)sage.client.CT_DelaiTransport(entier)sage.client.CT_DelaiAppro(entier)sage.client.CT_LangueISO2(texte)sage.client.CT_AnnulationCR(entier)sage.client.CT_Facebook(texte)sage.client.CT_LinkedIn(texte)sage.client.CT_ExclureTrait(entier)sage.client.CT_GDPR(entier)sage.client.CT_Prospect(entier) : prospect (1) ou client (0)sage.client.CT_OrderDay01(entier)sage.client.CT_OrderDay02(entier)sage.client.CT_OrderDay03(entier)sage.client.CT_OrderDay04(entier)sage.client.CT_OrderDay05(entier)sage.client.CT_OrderDay06(entier)sage.client.CT_OrderDay07(entier)sage.client.CT_DeliveryDay01(entier)sage.client.CT_DeliveryDay02(entier)sage.client.CT_DeliveryDay03(entier)sage.client.CT_DeliveryDay04(entier)sage.client.CT_DeliveryDay05(entier)sage.client.CT_DeliveryDay06(entier)sage.client.CT_DeliveryDay07(entier)sage.client.CAL_No(entier)sage.client.CT_FEAssujetti(entier) (selon la version de Sage)sage.client.CT_FEAutreIdentifType(entier) (selon la version de Sage)sage.client.CT_FEAutreIdentifVal(texte) (selon la version de Sage)sage.client.CT_FEEntiteType(entier) (selon la version de Sage)sage.client.CT_FEEmission(entier) (selon la version de Sage)sage.client.CT_FEApplication(entier) (selon la version de Sage)sage.client.CT_FEDateSynchro(date) (selon la version de Sage)sage.client.CT_ModeTest(entier) (selon la version de Sage)sage.client.CT_Confiance(entier) (selon la version de Sage)sage.client.DN_Id(texte) (selon la version de Sage)
sage.contacts.contact : contacts du client
Liste, dans une boucle {% for contact in sage.contacts.contact %} (voir « Une liste d'un seul élément n'est pas une liste »). 17 variables.
contact.lib_typecontact(texte) : libellé du type de contactcontact.CT_Num(texte) : code du clientcontact.CT_Nom(texte) : nomcontact.CT_Prenom(texte) : prénomcontact.N_Service(entier) : numéro du servicecontact.CT_Fonction(texte) : fonctioncontact.CT_Telephone(texte) : téléphonecontact.CT_TelPortable(texte) : téléphone portablecontact.CT_Telecopie(texte) : télécopiecontact.CT_EMail(texte) : adresse e-mailcontact.CT_Civilite(entier) : civilité (0 Monsieur, 1 Madame, 2 Mademoiselle)contact.N_Contact(entier) : numéro du type de contactcontact.CT_No(entier) : numéro du contactcontact.CT_Facebook(texte)contact.CT_LinkedIn(texte)contact.CT_Skype(texte)contact.DN_Id(texte) (selon la version de Sage)
sage.lignes.ligne : détail des lignes
Liste, dans une boucle {% for ligne in sage.lignes.ligne %}. Les lignes sont dans le même ordre que produits.produit. Chaque ligne d'article porte aussi ligne.glossaire et ligne.glossaires, décrits plus bas. 91 variables.
ligne.lib_depot(texte) : libellé du dépôtligne.lib_taxe1(texte) : libellé du taux de TVAligne.lib_taxe2(texte) : libellé de la taxe n° 2ligne.lib_taxe3(texte) : libellé de la taxe n° 3ligne.DO_Domaine(entier) : domaine de la pièce (0 = vente)ligne.DO_Type(entier) : type de pièce dans Sage (0 devis, 1 commande, 2 préparation, 3 livraison, 6 facture, 7 facture comptabilisée)ligne.CT_Num(texte) : code du clientligne.DO_Piece(texte) : numéro de la pièceligne.DL_PieceBC(texte) : numéro du bon de commande d'origineligne.DL_PieceBL(texte) : numéro du bon de livraison d'origineligne.DO_Date(date) : date de la pièceligne.DL_DateBC(date) : date du bon de commande d'origineligne.DL_DateBL(date) : date du bon de livraison d'origineligne.DL_Ligne(entier) : rang de la ligne dans la pièceligne.DO_Ref(texte) : référence de la pièce (par exemple la référence de la commande du site)ligne.DL_TNomencl(entier)ligne.DL_TRemPied(entier)ligne.DL_TRemExep(entier)ligne.AR_Ref(texte) : référence de l'articleligne.DL_Design(texte) : désignationligne.DL_Qte(nombre) : quantitéligne.DL_QteBC(nombre) : quantité commandéeligne.DL_QteBL(nombre) : quantité livréeligne.DL_PoidsNet(nombre) : poids netligne.DL_PoidsBrut(nombre) : poids brutligne.DL_Remise01REM_Valeur(nombre) : valeur de la remise n° 1ligne.DL_Remise01REM_Type(entier) : type de la remise n° 1 (1 = pourcentage)ligne.DL_Remise02REM_Valeur(nombre) : valeur de la remise n° 2ligne.DL_Remise02REM_Type(entier) : type de la remise n° 2ligne.DL_Remise03REM_Valeur(nombre) : valeur de la remise n° 3ligne.DL_Remise03REM_Type(entier) : type de la remise n° 3ligne.DL_PrixUnitaire(nombre) : prix unitaire HTligne.DL_PUBC(nombre) : prix unitaire du bon de commandeligne.DL_Taxe1(nombre) : taux de TVA exact de la ligneligne.DL_TypeTaux1(entier) : nature de la taxe n° 1 (0 = pourcentage)ligne.DL_TypeTaxe1(entier)ligne.DL_Taxe2(nombre) : taxe n° 2 (écotaxe le cas échéant)ligne.DL_TypeTaux2(entier) : nature de la taxe n° 2 (0 = pourcentage)ligne.DL_TypeTaxe2(entier)ligne.CO_No(entier) : numéro du représentantligne.AG_No1(entier)ligne.AG_No2(entier)ligne.DL_PrixRU(nombre) : prix de revient unitaireligne.DL_CMUP(nombre) : coût moyen unitaire pondéréligne.DL_MvtStock(entier)ligne.DT_No(entier)ligne.AF_RefFourniss(texte)ligne.EU_Enumere(texte) : unité de venteligne.EU_Qte(nombre)ligne.DL_TTC(entier)ligne.DE_No(entier) : numéro du dépôtligne.DL_NoRef(entier)ligne.DL_TypePL(entier)ligne.DL_PUDevise(nombre)ligne.DL_PUTTC(nombre) : prix unitaire TTCligne.DL_No(entier) : numéro de la ligneligne.DO_DateLivr(date) : date de livraison prévue (vide si non renseignée)ligne.CA_Num(texte) : code affaireligne.DL_Taxe3(nombre) : taxe n° 3ligne.DL_TypeTaux3(entier) : nature de la taxe n° 3 (0 = pourcentage)ligne.DL_TypeTaxe3(entier)ligne.DL_Frais(nombre)ligne.DL_Valorise(entier)ligne.AR_RefCompose(texte)ligne.DL_NonLivre(entier)ligne.AC_RefClient(texte)ligne.DL_MontantHT(nombre) : total HT de la ligne, remise déduiteligne.DL_MontantTTC(nombre) : total TTC de la ligneligne.DL_FactPoids(entier)ligne.DL_Escompte(entier)ligne.DL_PiecePL(texte)ligne.DL_DatePL(date)ligne.DL_QtePL(nombre)ligne.DL_NoColis(texte)ligne.DL_NoLink(entier)ligne.RP_Code(texte)ligne.DL_QteRessource(entier)ligne.DL_DateAvancement(date)ligne.PF_Num(texte)ligne.DL_CodeTaxe1(texte) : code du taux de TVAligne.DL_CodeTaxe2(texte) : code de la taxe n° 2ligne.DL_CodeTaxe3(texte) : code de la taxe n° 3ligne.DL_PieceOFProd(entier)ligne.DL_PieceDE(texte)ligne.DL_DateDE(date)ligne.DL_QteDE(nombre)ligne.DL_Operation(texte)ligne.DL_NoSousTotal(entier)ligne.CA_No(entier)ligne.DO_DocType(entier)ligne.DL_RefExterne(texte) (selon la version de Sage)
sage.echeances.echeance : échéancier de règlement
Liste, dans une boucle {% for echeance in sage.echeances.echeance %}. 19 variables.
echeance.DR_No(entier) : numéro de l'échéanceecheance.DO_Domaine(entier) : domaine de la pièce (0 = vente)echeance.DO_Type(entier) : type de pièce dans Sage (0 devis, 1 commande, 2 préparation, 3 livraison, 6 facture, 7 facture comptabilisée)echeance.DO_Piece(texte) : numéro de la pièceecheance.DR_TypeRegl(entier) : type de règlementecheance.DR_Date(date) : date d'échéanceecheance.DR_Libelle(texte) : libellé (mode de règlement)echeance.DR_Pourcent(nombre) : part de l'échéance, en pourcentageecheance.DR_Montant(nombre) : montant de l'échéanceecheance.DR_MontantDev(nombre) : montant de l'échéance en deviseecheance.DR_Equil(entier)echeance.EC_No(entier)echeance.DR_Regle(entier) : échéance réglée (1) ou non (0)echeance.N_Reglement(entier) : numéro du mode de règlementecheance.CA_No(entier)echeance.DO_DocType(entier)echeance.DR_RefPaiement(texte)echeance.DR_AdressePaiement(texte)echeance.DO_PieceAcompte(texte) (selon la version de Sage)
glossaires d'article
Liste, dans une boucle {% for gl in p.glossaires.glossaire %}, disponible sur produits.produit comme sur sage.lignes.ligne. 10 variables.
gl.AGL_Num(entier) : rang du glossaire sur la fiche articlegl.GL_No(entier) : numéro du glossairegl.GL_Domaine(entier) : domaine du glossairegl.GL_Intitule(texte) : intitulé du glossairegl.GL_Raccourci(texte) : code courtgl.GL_PeriodeDeb(date) : début de validité (vide si non renseignée)gl.GL_PeriodeFin(date) : fin de validité (vide si non renseignée)gl.GL_Text(texte) : texte du glossaire (à afficher avec nl2br)gl.GL_TextLangue1(texte) : texte traduit, 1re languegl.GL_TextLangue2(texte) : texte traduit, 2e langue
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article