SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

291 Plugins, 198 contribs sur SPIP-Zone, 70 visiteurs en ce moment

Accueil > Commerce > API Prix > Plugin API Prix

Plugin API Prix

16 juillet 2018 – par JLuc, RastaPopoulos

4 votes

API Prix est un plugin outil de développement à la base des divers outils de gestion de commerce en ligne. Il sert à trouver les prix des objets SPIP lorsqu’ils en ont, ce qui est nécessaire pour que d’autres plugins établissent par exemple des factures ou enregistrent des paiements. Il destiné aux développeur⋅euses qui veulent définir le prix HT et TTC de nouveaux objets.

Principe de base

Lorsque vous créez un nouvel objet ayant un prix, au lieu d’utiliser directement la valeur d’un champ qui contiendrait ce prix, ce plugin propose une API unifiée permettant de sortir le prix HT et le prix TTC toujours de la même manière, que ce soit une simple valeur de champ ou un calcul compliqué en arrière plan.

Implémentation

Pour que cette API fonctionne, vous devez l’implémenter pour le nouvel objet. Pour cela vous devez créer un fichier prix/<objet>.php avec possiblement deux fonctions.

Par exemple pour une patate :

prix_patate_ht_dist($id_patate, $ligne_sql) : cette fonction doit renvoyer la valeur du prix hors taxe pour cet identifiant. Afin de ne pas avoir trop de requête SQL, il y a déjà un argument contenant la ligne SQL de ce contenu, avec tous ses champs. Comme très souvent il s’agit juste de renvoyer le contenu d’un champ prix_ht ou prix, le plugin sait déjà le faire tout seul, et dans ce cas vous n’avez pas à implémenter cette fonction. Elle n’est donc utile que si la valeur n’est pas dans un champ commun, ou bien si vous avez besoin de faire des calculs pour trouver le prix HT, par exemple en multipliant avec une quantité (c’est ce que fait le plugin Commande par exemple).

prix_patate_dist($id_patate, $prix_ht) : cette fonction doit renvoyer le prix toute taxes comprises pour cet identifiant. Elle reçoit aussi le prix HT déjà calculé en amont. Si votre plugin est lié à un système permettant de trouver une ou plusieurs taxes pour votre objet, alors vous devez faire les calculs nécessaires et retourner le prix TTC. Si ce n’est pas le cas, le prix renvoyé au final sera le même que le prix HT.

Utilisation en PHP

Au niveau de l’utilisation, le cœur de l’API est constitué de deux fonctions génériques placées dans inc/prix.php.

inc_prix_ht_dist($type_objet, $id_objet, $arrondi)

  1. // Charger la fonction
  2. $fonction_prix_ht = charger_fonction('ht', 'inc/prix');
  3. // Arrondi après la virgule
  4. $arrondi = 2;
  5. // On trouve le prix HT
  6. $prix_ht = $fonction_prix_ht('patate', $id_patate, $arrondi);

Télécharger

inc_prix_dist($type_objet, $id_objet, $arrondi)

  1. // Charger la fonction
  2. $fonction_prix_ht = charger_fonction('prix', 'inc/');
  3. // Arrondi après la virgule
  4. $arrondi = 2;
  5. // On trouve le prix TTC
  6. $prix_ttc = $fonction_prix('patate', $id_patate, $arrondi);

Télécharger

Utilisation dans les squelettes

À utiliser dans le boucle d’un objet :
-  #PRIX_HT : renvoie le prix HT d’un objet
-  #PRIX : renvoie le prix TTC d’un objet

Les balises de prix sont directement formatées, un filtre leur est appliqué automatiquement, sauf si vous utilisez l’étoile *. Si vous devez formater une autre valeur, ou après un calcul dans un squelette, il s’agit du filtre prix_formater :

  1. Les taxes seules :
  2.  [(#PRIX*|moins{#PRIX_HT*}|prix_formater)]

Télécharger

Si vous avez besoin de trouver le prix d’un objet quelconque dans un squelette, sans le connaitre à l’avance, donc sans boucle, deux filtres permettent cela, qui appellent directement l’API centrale :
-  prix_ht_objet($id_objet, $type_objet)
-  prix_objet($id_objet, $type_objet)

Paramétrage

Deux constantes permettent de gérer la devise utilisée.
On peut les définir dans le fichier mes_options.php :

-  PRIX_DEVISE pour formater les prix selon une langue (séparateur de milliers, de décimal, etc...). Cette valeur est utilisée par la fonction setlocale de PHP pour le paramètre LC_MONETARY.
-  DEVISE_DEFAUT pour indiquer quel texte doit être affiché après les prix pour indiquer la devise utilisée.

Par exemple, pour les dollars canadiens, on définira les valeurs ainsi :

  1. define('PRIX_DEVISE','fr_CA.utf8');    // locale du français Canadien
  2. define('DEVISE_DEFAUT','&nbsp;&dollar; CAN'); // espace insécable + symbole dollar + CAN

Télécharger

Pipelines

Le plugin défini deux pipelines : « prix » et « prix_ht ».

Le plugin n’associe aucun traitement par défaut à ces pipelines, mais il est possible de les définir pour votre site ou plugin, de manière à adapter les prix selon les intentions et besoins. C’est ce que fait notamment ici le plugin ’montants’, par exemple.

Dernière modification de cette page le 16 juillet 2018

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2531 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 256 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Owl Carousel 2

    30 novembre 2017 – 41 commentaires

    Owl Carousel est un diaporama jQuery adaptable aux différentes tailles d’écran, qu’on peut actionner par glisser, il utilise CSS3 mais il est compatible avec les vieux navigateurs, et il est aussi paramétrable. Le présent plugin permet d’utiliser (...)

  • Paiement avec Formidable

    16 février 2015 – 69 commentaires

    Ce plugin « Paiement avec Formidable » permet d’ajouter une étape de paiement à la fin de la saisie d’un formulaire créé par le plugin Formidable. Il le complète et nécessite par ailleurs le plugin bank qui gère l’interface technique avec les prestataires (...)

  • Bouquinerie V2 : guide de l’utilisateur

    3 janvier – 18 commentaires

    Configuration Quels contenus Selon la maquette adoptée pour votre site, vous pouvez décider que certains éléments des livres ou auteurs de livre ne sont pas utilisés. Vous trouverez dans la page de configuration du plugin la possibilité de (...)