Installation
Comme n’importe quel plugin.
Extensions
Les extensions suivants sont disponibles.
- Déclinaisons Prix : permet de définit plusieurs types de prix.
- Périodes de prix : permet de définir des périodes de prix (p.ex. prix pour saison haute/basse)
Configuration
Objets
Vous devez d’abord choisir les objets auxquels vous voulez pouvoir attacher des prix.
Devises
Puis choisissez la ou les devises à utiliser (par défaut €).
Taxes
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)

Mode de calcul
Si vous utilisez des extensions comme Périodes de prix vous pouvez définir si la fonction
prix_par_objet($objet, $id_objet, $contexte, $type = 'prix_ht', $options = array())
doit retourner le prix :
- global (retourne le premier prix correspondants aux critères)
- prorata (détermine le prix par date, puis en calcule la moyenne)
Ceci est surchargeable avec la variable $options['mode']
.
Attacher un prix à un objet
Pour les objets choisis, il est maintenant possible d’attacher un prix.

Prix
Le champ prix est obligatoire
Taxe
Permet d’adapter les valeurs par défait, définit dans la configuration.
Devise
Si vous avez configuré plusieurs devises un menu de choix de devises sera proposé vous permettant de définir des prix par devise.

Extensions
Si vous avez activé des extension, vous pouvez également choisir les extensions applicables à votre prix.
Il est possible de 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
Boucle
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).
<BOUCLE_prix_evenement(PRIX_OBJETS){id_objet=#ID_EVENEMENT}{objet=evenement}{par rang_lien}>
#PRIX
#PRIX_HT
</BOUCLE_prix_evenement>
Filtres
Le filtre filtres_prix_formater (du plugin API Prix) permet d’afficher le prix avec sa devise selon à la langue du contexte.
Donc
[(#PRIX|filtres_prix_formater)]
donnerait en français 200 € et €200 en Anglais par exemple.
le filtre prix_par_objet
/**
* Donne le prix pour un objet
*
* @param string $objet
* Objet dont on cherche le prix
* @param string $id_objet
* Identifiant de l'objet dont on cherche le prix
* @param array $contexte
* Les variables de l'environnement utilisées dans le calcul du prix.
* @param string $type
* prix (ttc) ou prix_ht
* @param array $options
*
* @return string Le prix applicable.
*/
prix_par_objet($objet, $id_objet, $contexte, $type = 'prix_ht', $options = array())
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)
<BOUCLE_prix_article(PRIX_OBJETS){id_objet=#ID_ARTICLE}{objet=article}>
<a href="[(#URL_ACTION_AUTEUR{remplir_panier, prix_objets-#ID_PRIX_OBJET, #SELF})]"><:paniers:action_ajouter:></a>
</BOUCLE_prix_article>
Discussions by date of activity
6 discussions
Une version pour spip 4.2 est elle prévue ?
Reply to this message
Bonjour, j’ai une erreur avec ce plugin dont je me sers pour des produits
(https://plugins.spip.net/produits.html), dans le cadre du jeu de plugins commerce (panier, commande...). Voici l’erreur :
Reply to this message
Hello Rainer,
Pour info, je viens de faire la mise à jour du plugin Prix (v1.3) et manifestement, cette dernière version n’est plus compatible avec la v3 de ton plugin Prix Objet.
En revenant à la version v1.2.11 de Prix, c’est de nouveau bon.
Peut être mettre une borne supérieur en attendant de comprendre/corriger ?
Je m’en occupe si tu veux…
Take care
P
Salut Peetdu,
je vois que cette fonction a été enlevé pour la 1.3.0. Oui, met la borne en attendant que je puisse l’adapter à la nouvelle version de prix. Si tu as le temps de faire la correction, vas-y également :).
Merci
Rainer
Yopi,
je viens de fixer une borne supérieur de compatibilité avec API Prix.
voir 3a64cc57a0
Merci Peetdu
La version 3.1.0 corrige le problème
Ça marche nickel.
Merci Rainer.
Reply to this message
Bonjour,
et grand merci pour ce plugin bien pratique !
Cependant, j’ai un souci avec l’implémentation de Livraison (https://github.com/nursit/livraison), qui me remonte systématiquement le prix forfaitaire au lieu des tarifs reposant sur le poids (ou le volume), qui sont renseignés dans la fiche produit (du plugin Produits).
En allant dans la base commandes_details, l’objet lié est prix_objets. Vu avec tcharlss (sur le forum,
il semblerait alors que, dans cet usage, Prix-objets ne soit pas compatible avec Livraison... :’(
Dans le projet que j’ai mis en place, l’un comme l’autre sont particulièrement pratiques... Verriez-vous une solution ?
Merci.
Bonjour lussye,
Le prix de prix objets est stocké dans la table ’spip_prix_objets’ qui stocke les données de l’objet original (’objet’, ’id_objet’).
Dans la table “spip_commandes_details” tu trouves “id_objet” ce qui correspond à “id_prix_objet” dans la table ’spip_prix_objets’. En prenant “objet” et “id_objet” correspondant à l’’ “id_prix_objet” tu retrouve ton objet original.
Je sais pas comment fonctionne livraison, mais je suis sûr que tu arrives à surcharger des squelettes de livraison ou d’intervenir via une pipeline
As tu vérifie comment livraison calcule les tarifs?
Rainer
Bonjour Rainer, merci !
tcharlss m’a en effet aidée à y voir plus clair côté forum, et le problème viendrait de ma façon d’avoir adapté le squelette panier je pense...
En effet, livraison calcule à partir des poids et dimensions contenus dans spip_produits (https://github.com/nursit/livraison/blob/master/mesure/defaut.php#L31).
Or, pour ajouter une déclinaison au panier, j’ai adapté comme suit ma fiche produit :
Mes compétences étant assez limitées, j’ai fait ça un peu le nez au vent, avec quelques petits réglages jusqu’à bonne prise en compte dans le panier et dans spip_commandes_details. Et à l’usage, ça fonctionne, jusqu’au calcul des frais de livraison.
Si j’ai bien compris, il faudrait donc que j’arrive à faire le lien entre spip_prix_objets et spip_produits ? Mais à part ce potentiel constat, je me sens bien démunie.
Verrais-tu une solution ? Déclinaison Prix colle totalement aux besoins de mon projet, et je serais déçue d’avoir à me passer de Livraison, qui permet de calculer les frais au plus juste pour les clients, et ça aussi c’est important pour moi...
Reply to this message
Pour
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
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
Cela me parait plutôt être une (la ?) bonne solution :)
Merci pour tes retours, je vais regarder comme améliorer l’enregistrement des prix.
Concernant
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?
En fait il n’y a que 2 langues (fr et en) et un petit menu de 2 liens du type
C’est pas le mieux mais sur ce site ce n’est pas de mon fait :)
Dans multilingue facil je le fais de cette manière:
donc
Ah ouai, intéressant, je le note et me le garde dans un coin, merci :)
je viens d’adapter le plugin (v2.3.0 112990) pour qu’il sauvegarde le balises multi dans le titre du prix. Contrairement à ce que nous avons discuté, je garde les balises multi n’importe la gestion multilinguisme du site.
Dis moi si ça résout ton problème
Merci pour le retour :)
A vue d’oeil, en ayant testé vite fait, pas grand chose de différent.
Je prendrais un peu plus le temps de tester proprement pour pouvoir te faire retours plus sérieux.
Les liste des prix dans le formulaire le balises multi sont filtrées, donc c’est normal que tu ne voie pas de différence. Regarde dans la BD
Reply to this message
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 !
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 ?
Reply to this message
Add a comment
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Follow the comments:
|
