SPIP-Contrib

SPIP-Contrib

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

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

Accueil > Commerce > Prix Objets > Prix Objets

Prix Objets

17 janvier 2018 – par Rainer Müller – commentaires

7 votes

Ce plugin permet d’attacher un prix à un objet SPIP.

Installation

Comme n’importe quel plugin.

il necessite les plugins :
-  Saisies
-  API Prix

Extensions

Les extensions suivants sont disponibles.

Configuration

Vous devez d’abord choisir les objets auxquels vous voulez pouvoir attacher des prix.
Puis choisissez la ou les devises à utiliser (par défaut €).

Si des taxes sont applicables, spécifiez les également puis indiquez s’ils sont compris dans dans les prix. (Il s’agit des données par défaut qui peuvent ensuite être surchargées pour chaque prix)

Si vous utilisez des extensions comme Périodes de prix vous pouvez définir si la fonction prix_par_objet() doit retourner le prix :

  • global (retourne le premier prix correspondants aux critères)
  • prorata (détermine le prix d’une par date, puis en caclule la moyenne)

Attacher un prix à un objet

Pour les objets choisis, il est maintenant possible d’attacher un prix.


Le champ prix est obligatoire, les autres permettent de modifier les données par défaut au sujet des taxes.

Si vous avez configuré plusieurs devises un menu de choix de devises sera proposé vous permettant de définir des prix par devise.

Si vous avez activé des extension, vous pouvez également choisir les extensions applicables à votre prix.

Il est possible changer l’ordre des prix via drag & drop.

Ceci est surtout d ’importance quand il faut établir une priorité des prix comme avec l’extension Périodes de prix.

Ça vous permet également d’intervenir sur l’affichage des prix en triant sur rang_lien

Squelettes

La boucle PRIX_OBJETS et les critères id_objet et objet permettent d’obtenir les prix total et hors taxe (et les autres infos du prix, évidemment).

  1. <BOUCLE_prix_evenement(PRIX_OBJETS){id_objet=#ID_EVENEMENT}{objet=evenement}{par rang_lien}>
  2. #PRIX
  3. #PRIX_HT
  4. </BOUCLE_prix_evenement>

Télécharger

Le filtre filtres_prix_formater (surcharge du même filtre du plugin API Prix) permet d’afficher le prix avec sa devise. Si vous votre serveur dispose de PECL intl (https://pecl.php.net/package/intl - apparement compris d’office à partir de php 5.3) le prix sera formaté selon à la langue du contexte.

Donc

  1. [(#PRIX|filtres_prix_formater)]

donnerait en français 200 € et €200 en Anglais par exemple.

le filtre prix_par_objet

  1. /**
  2.  * Donne le prix pour un objet
  3.  *
  4.  * @param string $objet
  5.  *              Objet dont on cherche le prix
  6.  * @param string $id_objet
  7.  *              Identifiant de l'objet dont on cherche le prix
  8.  * @param array $contexte
  9.  *              Les variables de l'environnement utilisées dans le calcul du prix.
  10.  * @param string  $type
  11.  *          prix (ttc) ou prix_ht
  12.  * @param array $options
  13.  *
  14.  * @return string Le prix applicable.
  15.  */
  16. prix_par_objet($objet, $id_objet, $contexte, $type = 'prix_ht', $options = array())

Télécharger

permet de calculer le prix pour un objet déterminé en tenant compte des extensions choisis qui calculent les prix selon des variabales du contexte, comme Périodes de prix.

Compatibilité avec d’autres plugins

Le plugin est intégré dans Réservation d’événements et utilisable tel quel.

Pour ajouter un prix à un panier (plugin Panier)

  1. <BOUCLE_prix_article(PRIX_OBJETS){id_objet=#ID_ARTICLE}{objet=article}>
  2.   <a href="[(#URL_ACTION_AUTEUR{remplir_panier, prix_objets-#ID_PRIX_OBJET, #SELF})]"><:paniers:action_ajouter:></a>
  3. </BOUCLE_prix_article>

Télécharger

Voir en ligne : https://plugins.spip.net/prix_objets

Dernière modification de cette page le 5 décembre 2018

Retour en haut de la page

Vos commentaires

  • Le 5 décembre à 14:20, par Chourak En réponse à : Prix Objets

    Pour

    Actuellement, si tu utilises des tags multi dans le titre de la déclinaison, la traduction de l’environnement (langue de l’espace privé) sera pris en compte. Est-ce que j’ai bien compris ta question ?

    Je me doutais que ca fonctionnait comme cela.

    Mon problème est :
    -  un champ multi sur le titre de l’article
    -  un champ multi sur le titre des mes déclinaisons
    -  et tous les objets dans un une seule langue (fr par défaut) et les traductions gérées simplement en

    1. <multi>[fr]titre[en]title</multi>

    et en fait je voudrais qu’ajouter un prix sur l’article génère un titre de prix_objet qui reprendrait le balisage multi du titre de l’article et du titre de la déclinaison, peu importe le contexte de langue.

    Je me suis débrouillé autrement pour ressortir des chaines de trad dans mes squelettes public et ca fonctionne pas mal.

    Ce qui m’a amené aussi à surcharger la fonction filtres_prix_formater pour tester la variable lang de l’url pour pouvoir formater mon affichage prix correctement (le cookie spip_lang ou la langue du site est toujours "fr").
    Ce qui induit aussi de passer un filtre floatval à mes prix.

    Et

    Il faudrait probablement d’abord tester si l’objet auquel est attaché le prix contient un champ « lang », si oui il faudrait prendre cette langue, sinon laisser les tags multi ? Qu’est-ce que tu en penses ?

    Cela me parait plutôt être une (la ?) bonne solution :)

    • Le 5 décembre à 15:08, par Rainer Müller En réponse à : Prix Objets

      Merci pour tes retours, je vais regarder comme améliorer l’enregistrement des prix.

      Concernant

      1. filtres_prix_formater

      Le filtre regarde d’abord s’il y a un cookie de lang spip. Ce cookie est posé par le menu de sélection de langue native de spip. Comment tu changes te langues dans ton site ?

    • Le 6 décembre à 09:21, par Chourak En réponse à : Prix Objets

      En fait il n’y a que 2 langues (fr et en) et un petit menu de 2 liens du type

      1. [<a href="#SELF|parametre_url{lang,fr})">Français</a>]
      2. [<a href="#SELF|parametre_url{lang,en})">English</a>]

      Télécharger

      C’est pas le mieux mais sur ce site ce n’est pas de mon fait :)

    • Le 6 décembre à 10:38, par Rainer Müller En réponse à : Prix Objets

      Dans multilingue facil je le fais de cette manière :

      1. [(#SET{langues,[(#CONFIG{langues_utilisees}|explode{','}|serialize)]})]
      2.                 <B_langue_possibles>
      3.                         <div class="traductions formulaire_menu_lang">
      4.                         <BOUCLE_langue_possibles(POUR){tableau #GET{langues}}{'|'}>
      5.                         [(#TOTAL_BOUCLE|>{1}|oui)
      6.                                 <span lang="#VALEUR" xml:lang="#VALEUR" dir="#LANG_DIR"[(#ENV{lang}|=={#VALEUR}|oui) class="on"]>
      7.                                         [(#ENV{lang}|=={#VALEUR}|non)
      8.                                         <a
      9.                                                 href="[(#URL_ACTION_AUTEUR{
      10.                                                         'converser',
      11.                                                         '',
      12.                                                         [(#SELF|parametre_url{lang,'','&'})]}
      13.                                                                 |parametre_url{arg,''}
      14.                                                                 |parametre_url{var_lang,#VALEUR})]"
      15.                                                 rel="alternate"
      16.                                                 hreflang="#VALEUR">
      17.                                                 [(#VALEUR|traduire_nom_langue)]
      18.                                         </a>
      19.                                         ]
      20.                                         [(#ENV{lang}|=={#VALEUR}|oui)
      21.                                                 [(#VALEUR|traduire_nom_langue)]
      22.                                         ]
      23.                                 </span>
      24.                                 ]
      25.                                 </BOUCLE_langue_possibles>
      26.                         </div>
      27.                 </B_langue_possibles>

      Télécharger

      donc

      1. <a
      2.   href="[(#URL_ACTION_AUTEUR{
      3.    'converser',
      4.     '',
      5.    [(#SELF
      6.     |parametre_url{lang,'','&'})]}
      7.      |parametre_url{arg,''}
      8.      |parametre_url{var_lang,#LANG})]"
      9.   rel="alternate"
      10.   hreflang="#LANG">
      11.   [(#LANG|traduire_nom_langue)]
      12. </a>

      Télécharger

    • Le 6 décembre à 17:02, par Chourak En réponse à : Prix Objets

      Ah ouai, intéressant, je le note et me le garde dans un coin, merci :)

    Répondre à ce message

  • Le 5 décembre à 10:16, par Chourak En réponse à : Prix Objets

    Bonjour,

    Petite question : y’a t’il moyen que le titre enregistré lors de la génération du prix prenne en compte les informations de langue existantes de l’objet et des extensions (déclinaisons par ex.)

    Merci !

    • Le 5 décembre à 13:49, par Rainer Müller En réponse à : Prix Objets

      Actuellement, si tu utilises des tags multi dans le titre de la déclinaison, la traduction de l’environnement (langue de l’espace privé) sera pris en compte. Est-ce que j’ai bien compris ta question ?

      Ceci dit, ce n’est pas vraiment une solution optimale. Il faudrait probablement d’abord tester si l’objet auquel est attaché le prix contient un champ « lang », si oui il faudrait prendre cette langue, sinon laisser les tags multi ? Qu’est-ce que tu en penses ?

    Répondre à ce message

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

  • Le Couteau Suisse

    4 mai 2007 – 1861 commentaires

    Ce plugin propose d’introduire facilement de simples fonctionnalités supplémentaires à SPIP et qui s’avèrent rapidement indispensables ! Par exemple : le contrôle de nombreuses variables « cachées » de SPIP, des améliorations ou facilités typographiques, (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 2533 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 (...)

  • Plugin Bank

    12 juin 2015 – 88 commentaires

    Le plugin Bank prend en charge l’interface technique de paiement avec de nombreux prestataires de paiement par Carte Bleue, SEPA… Il prend également en charge la conservation de l’historique des transactions de paiement et de leur état et offre une (...)

  • Owl Carousel 2

    30 novembre 2017 – 42 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 (...)

  • 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 (...)