Jump to content

[TUTO] Variables Prestashop PS_SHOP


Recommended Posts

Il est possible de récupérer dans les templates (.tpl) des variables Prestashop liés à la boutique
C'est très utile pour les pages telles que mentions.tpl, conditions.tpl, ...

Ces variables sont nommées : $conf.PS_SHOP_XXX

Pour afficher la variable, utiliser la syntaxe suivante :

{$conf.PS_SHOP_XXX}



Vous pouvez effectuer des traitements au moment de l'affichage
Pour convertir au format HTML et en UTF8

{$conf.PS_SHOP_XXX |escape:'htmlall':'UTF-8'}
Même chose mais en ne prenant par exemple que les 20 premiers caractères
{$conf.PS_SHOP_XXX |truncate:20|escape:'htmlall':'UTF-8'}



Vous pouvez tester l'existence d'une variable pour éventuellement l'afficher ainsi que le texte qui l'accompagne

{if $conf.PS_SHOP_XXX}votre texte : {$conf.PS_SHOP_XXX|escape:'htmlall':'UTF-8'}{/if}
Utile pour la 2eme ligne adresse
{if $conf.PS_SHOP_ADDR2}{$conf.PS_SHOP_ADDR2|escape:'htmlall':'UTF-8'}
{/if}



Liste des variables PS_SHOP disponibles

$conf.PS_SHOP_NAME    : nom de la boutique
$conf.PS_SHOP_ADDR1    : adresse
$conf.PS_SHOP_ADDR2    : adresse2
$conf.PS_SHOP_CODE    : code postal
$conf.PS_SHOP_CITY     : ville
$conf.PS_SHOP_COUNTRY    : Pays
$conf.PS_SHOP_DETAILS    : Informations complémentaires



Question subsidiaire... comment récupérer l'adresse email et l'URL de la boutique ?
$conf.PS_SHOP_EMAIL ou $conf.PS_SHOP_URL n'existe pas ...

Link to comment
Share on other sites

Bonjour Ludo

Merci pour cette astuce bien pratique !

Dans la continuité de cela, je ne sais pas s'il existe une sorte de référentiel permettant d'accéder à l'ensemble des valeurs (propriétés) de chaque type d'objet et à ses fonctions dédiées. À l'heure actuelle je procède par "tâtonnements" soit en regardant le code existant, soit en allant voir la tronche de la base de données (on peut généralement accéder à tous les champs des tables en direct) grâce au fameux schéma figurant dans le wiki.

À vouloir toujours travailler dans l'urgence, j'en oublie parfois de me créer de la doc' (ce qui permettrait de la partager ensuite, au passage...)

Link to comment
Share on other sites

  • 9 months later...

Bonjour,

Merci pour cette astuce !

Seulement, cela ne marche pas :
j'essaie de mettre le nom de la boutique dans mon formulaire de contact (.tpl), voici ce que j'ai mis :

{$conf.PS_SHOP_NAME}


mais rien ne s'affiche !

Il faut modifier autre chose ?
Merci pour votre aide

PS : je suis en 1.2.5

Link to comment
Share on other sites

Ha ! Au fait...
Juste comme çà...
je reste calme...
Detentu...
Zen quoi !
Et je pose gentillement la question à la team...
"Elle en est où la documentation de PrestaShop ???
!http://cigalemistralavande.c.i.pic.centerblog.net/i5ao7r0u.jpg!

Link to comment
Share on other sites

Non mais même si on prend la situation avec humour elle est loin d'être drôle.
Après plus de deux ans d'existence Prestashop ne possèdent toujours pas de documentation officielle
A si je me suis trompé ... il y a ça http://www.prestashop.com/wiki/FR_Guide_du_developpeur/


C'est avec des trucs comme ça que les wikis deviennent privés ou en accès restreint.
Link to comment
Share on other sites

Je ne vois pas le rapport entre des bouquins sur Magento et le fait de venir pourrir le wiki. L'absence de documentation n'est pas de la mauvaise volonté, c'est un manque de temps.
Si tu te sens d'écrire un bouquin comme ça sur Presta, ne te prives pas. Certains membres en on déjà émis l'hypothèse. Si tu veux compléter le wiki d'infos intéressantes (comme tes topics en général), lâche toi.

Nous sommes conscients que la doc manque cruellement. Ce n'est pas la peine de remuer le couteau.

Link to comment
Share on other sites

Je ne vois pas le rapport entre des bouquins sur Magento

Magento est très bien documenté, c'est ce qui en fait une des ses plus grandes forces. Pour Prestashop une de ses plus grandes faiblesses.

venir pourrir le wiki.

Complément délirant d'utiliser le terme "pourrir"... Faut se calmer là ! J'explique pour ceux qui aurait pas vu le message qui a du rester pendant 5 bonnes minutes "Disponible après le 13 décembre 2012"... Clin d'œil au blockbuster américain du moment.

L'absence de documentation n'est pas de la mauvaise volonté, c'est un manque de temps.

C'est bien ce qu'on reproche.. de pas y consacrer du temps !!!

Si tu te sens d'écrire un bouquin comme ça sur Presta, ne te prives pas. Certains membres en on déjà émis l'hypothèse. Si tu veux compléter le wiki d'infos intéressantes (comme tes topics en général), lâche toi.

Tu crois pas si bien dire puisqu'avec mon équipe on peut dire qu'on a pondu une des trop rare documentation sur le sujet.. docs téléchargés 7000 fois !

Nous sommes conscients que la doc manque cruellement. Ce n'est pas la peine de remuer le couteau.

Ben si puisque c'est la seul manière d'obtenir un semblant de réaction.

Désolé Zendic je sais que tu es là pour défendre les intérêts de la communauté et de la Team. Mais moi aussi et si j'écris ça c'est pour remuer les choses car je sais que cette situation peut devenir très handicapante pour Prestashop et ne serait perdurer plus longtemps.

Après si Bruno et la team ont besoin d'aide pour écrire une documentation officielle on peut se réunir et envisager la question.. rapidement.
Link to comment
Share on other sites

Bonjour à tous,

c'est vrai que ce n'est pas toujours facile de trouver une info pertinente, une réponse à une question, une solution à un problème, sur ce forum. D'autant plus lorsqu'on est débutant en e-commerce et qu'on n'y connaît pas grand chose en programmation.

Maintenant, je trouve que Prestashop propose vraiment un outil intéressant, fonctionnel, rapide d'utilisation, permettant de créer une boutique en ligne en très peu de temps. C'est un outil gratuit, évolutif, et particulièrrement efficace pour gérer sa 1ère e-boutique.
Certes, il faudra se contenter du design, et des fonctionnalités déjà en place si on débute. Mais avec un peu de pratique, en fouillant un peu, en s'accordant un peu de temps, on arrive toujours à trouver une solution pour améliorer le truc à sa sauce.

En ce qui concerne, la documentation, je comprends que l'équipe n'ait pas le temps. Le produit étant jeune et en évolution permanente, il n'est pas évident de créer une documentation de référence, de l'alimenter et la modifier en continu. Laissons leur le temps....
Il faut aussi comprendre que cette version open source est avant tout une vitrine permettant de commercialiser un produit plus professionnel, plus abouti, avec un réel suivi, et forcément rémunérateur. On ne peut pas reprocher à l'équipe de privilégier ceux qui payent et qui leur permettent d'exister et de proposer une version open source, sans pour autant négliger ceux qui "ne payent pas".

Enfin, je peux comprendre que les questions voire les attaques reçues par l'équipe puissent provoquer chez ses membres un certain énervement parfois.
Néanmoins, lorsqu'on propose un outil de qualité comme Prestashop, je crois qu'on se doit de mettre de côté ses contrariétés et son énervement lorqu'on répond à des utilisateurs eux-mêmes contrariés et énervés, d'autant plus que les réponses apportées sont lues par tous.
Je dis ça parce que, bien que nouveau, j'ai souvent constaté que les réponses de l'équipe à des utilisateurs mécontents étaients limites. Et du coup, ça ne donne pas une image particulièrement sérieuse et responsable, même si je pense que l'équipe fournit un réel boulot de grande qualité.

Pour conclure, un peu de recul de la part de chacun, un peu de patience, surtout de la part de ceux qui profitent d'une solution gratuite et qui en plus exigent un service irréprochable qu'on ne trouve que rarement même quand on paye...

Merci à l'équipe et bravo pour ce super outil !

Link to comment
Share on other sites

Pour conclure, un peu de recul de la part de chacun, un peu de patience, surtout de la part de ceux qui profitent d'une solution gratuite et qui en plus exigent un service irréprochable qu'on ne trouve que rarement même quand on paye...


Tant pis si je repasse pour le méchant de service mais c'est clair que la situation n'est pas du tout envisagé de la meme manière par un ecommercant qui utilise Prestashop pour la première fois et une agence qui "mise" sur cette solution.
Personnellement ça fait plus de 2 ans que je soutient Prestashop. Je ne demandais pas une doc des le premier jour mais 27 mois plus tard on peut pas dire que se soit de l'impatience et du recul je pense que si j'en prend encore un peu plus je vais finir par tomber dans le fossé qui est dans mon dos :).
Link to comment
Share on other sites

Ludo,

mon post n'était pas du tout dirigé contre toi. Je voulais juste calmer un peu le jeu. Et je comprends complètement ton point de vue et ta situation.
Il me semblait juste que les pros avaient des moyens différents qui leur permettent d'accéder à une info de meilleure qualité.

Quoiqu'il en soit, j'ai aussi souvent relevé tes posts, intéressants, faciles à comprendre avec des remarques constructives. ça ne peut que faire avancer le schmilblick...

Link to comment
Share on other sites

Bonjour

Je voulais donc ajouter mon avis afin que d'autres ne tombent pas dans le piège et je comprend que ce n'est pas facile pour la team de PS.

Je fait de l'e-commerce depuis 2004, Oscomm**** et Magen**

J'ai quitté Magen** car on n'obtient quasiment plus de réponse sur le forum, même s'il y a de la doc cette solution est imcompréhensible si l'on est pas développeur confirmé, mais alors vraiment confirmé.
La team de magen** après avoir lancé la version "PRO" à près de 8000.00 euros à sortis plusieurs version open source avec des BUGS récurrent et critiques qui nuisait au fonctionnement d'un site, donc perte de clients, perte de chiffre d'affaires. La team à fait un choix, le payant, et c'est son droit, par contre ce qui a fait son succès c'est l'open source donc a suivre....

Par contre sur un forum même si ce n'est pas évident il faut savoir accepter les critiques, même si ce n'est pas facile et c'est encore moins facile quand on est jeune.

Mon site sous OSC tourne toujours mais il vieillis et je n'y touche plus depuis 2 ans. Pourquoi ???

Allez sur le forum OSC et vous verrez, on ce fait jeter parce que les gens posent toujours la même questions etc... Il faut savoir que les gens oublient très vite comment ils ont commencés, et encore plus vite quand ils ont une boutique qui tourne et qu'il en vivent bien, et oublient que certains débutent dans la galère, chômeur ou rmiste qui veulent s'en sortir et essayent d'apprendre.

Rien que de poser les bons mots clé dans une fonction de recherche d'un forum est loin d'être facile pour un débutant.

Soyons indulgent et restons courtois, pour la team le plus dur sera de gérer un succès grandissant avec le nombre d'utilisateur. Il leur faut trouver des modérateurs qui peuvent gérer leur forum et qui s'y connaissent en dev et PS, sinon il y aura trop de post non résolu sur leur forum et les gens seront déçu.

Ne pas oublier également que beaucoup de solutions open source se créent.

Quelqu'un me disait étant jeune :

Le gros d'une affaire tout le monde sait le faire, quand aux détails, c'est ce qui fera la différence.


Voilà, c'est tout pour aujourd'hui et attention je ne suis sous PS que depuis quelques semaines. Désolé d'être un peu long.
Link to comment
Share on other sites

Bonjour,

Je ne pensais pas en posant une simple question, avoir distribué les fusils avec !

L'objet de ma relance, n'est pas de relancer les foudres à nouveau ! ;)

Mais j'aimerai avoir une réponse par les personnes qui utilisent ces variables pour savoir comment les utiliser concrètement sur mon site.
Alors si une âme généreuse passe par ici...
Merci d'avance pour votre aide.

Link to comment
Share on other sites

  • 3 months later...

Bonjour,
est-ce que près de 4 mois après quelqu'un apportera une réponse à cette même question?
J'ai tellement l'impression de déterrer des vieux posts restés sans réponses à chaque recherche sur le forum....
Bref.
Bonne journée,
Adrien

Link to comment
Share on other sites

Bonjour,
cela concernait la création et l'utilisation de variable.
Je pense avoir résolu mon problème en allant me documenter au niveau smarty en fait, mais je vous remercie de votre sollicitude :)
Bonne journée

Adrien

Link to comment
Share on other sites

Vous souhaitez savoir quelles variables sont utilisables dans une page "x".
Il vous suffit d'ajouter {debug} dans le tpl de la page et de lancer cette dernière.

Vous allez voir apparaitre une liste de variables, exploitables pour votre boutique.

Il vous suffira de copier la variable et de la coller dans votre tpl à l'endroit où vous souhaitez afficher l'info.

exemple : {$base_dir} qui vous donnera l'url de votre boutique avec un /

ce qui vous permettra de faire des liens vers une page de votre boutique dans votre TPL ou vous le souhaitez, dans un menu par exemple...

V++

Atch

  • Thanks 1
Link to comment
Share on other sites

Bonjour

Merci pour cette réponse.
Sinon concernant mon problème plus loin : voir #9
Pourquoi cela ne marche pas ?


Bah votre réponse est dans ma réponse...

Avec {debug} vous trouvez la variable {$shop_name} pour le nom de votre boutique.... essayez.

V++

Atch
Link to comment
Share on other sites

ok merci Atch, effectivement cela fonctionne !!! super comme info !

Cependant, sauf erreur, je ne peux voir que les variables utilisées pour ce .tpl ? Donc pas toutes les variables de la boutique ?

Par exemple, je voulais intégrer dans les mentions légales, le formulaire de contact, les conditions générales de vente : le nom de la boutique, l'adresse... RCS... Or je ne trouve pas ces variables dans la page de debug. Est-ce qu'il y a un moyen de récupérer des infos de la base ?

Merci pour ton aide.

Link to comment
Share on other sites

Bonjour,

Bah si la variable n'est pas dispo c'est que lorsque tu es dans la page cms.php la demande d'affichage des variables (manquantes) n'est pas provoquée.
Pour cela il te faut modifier le fichier cms.php pour ajouter une fonction ( class peut etre) qui appelle ces variables.
Là je peux moins t'aider c'est pas mon domaine...

{debug} t'affiche seulement les variables récupérables en fonction de ce qui est demandé dans le fichier php....

V++

Atch

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour à tous,
j'ai une question sur ces variables.
Dans le module blockuserinfo, je souhaite récupérer le contenu du panier afin de faire un affichage personnalisé.
J'ai donc adapté le fichier blockuserinfo.php en ajoutant une assignation de sorte que:

   /**
   * Returns module content for header
   *
   * @param array $params Parameters
   * @return string Content
   */
   function hookTop($params)
   {
       global $smarty, $cookie, $cart;
       $smarty->assign(array(
           'cart' => $cart,
           'cart_qties' => $cart->nbProducts(),
           'logged' => $cookie->isLogged(),
           'customerName' => ($cookie->logged ? $cookie->customer_firstname.' '.$cookie->customer_lastname : false),
           'firstName' => ($cookie->logged ? $cookie->customer_firstname : false),
           'lastName' => ($cookie->logged ? $cookie->customer_lastname : false),
           'productNumber' => $cart->nbProducts(),
           'shippingCost' => $cart->getOrderTotal(true, 5),
           'shippingCostTaxExc' => $cart->getOrderTotal(false, 5),
           'summary' => $cart->getSummaryDetails()
           ));

                       /*  AJOUT LIGNE AU DESSUS */


       return $this->display(__FILE__, 'blockuserinfo.tpl');
   }    




J'ai placé {debug} dans le même fichier, et les variables qui m'intéressent apparaissent.


{$summary}    
Array (16)
delivery => Address Object (21)
  ->id_customer = "2"
  ->id_manufacturer = "0"
  ->id_supplier = "0"
  ->id_country = "8"
  ->id_state = "0"
  ->country = "France"
  ->alias = "Mon adresse"
  ->company = "xx"
  ->lastname = "dzz"
  ->firstname = "Adrien"
  ->address1 = "8 rue "
  ->address2 = ""
  ->postcode = "75000"
  ->city = "dzz"
  ->other = ""
  ->phone = ""
  ->phone_mobile = ""
  ->date_add = "2010-02-23 14:03:31"
  ->date_upd = "2010-02-23 14:03:31"
  ->deleted = "0"
  ->id = 3
invoice => Address Object (21)
  ->id_customer = "2"
  ->id_manufacturer = "0"
  ->id_supplier = "0"
  ->id_country = "8"
  ->id_state = "0"
  ->country = "France"
  ->alias = "Mon adresse"
  ->company = "xx"
  ->lastname = "dzz"
  ->firstname = "Adrien"
  ->address1 = "8 rue "
  ->address2 = ""
  ->postcode = "75000"
  ->city = "dzz"
  ->other = ""
  ->phone = ""
  ->phone_mobile = ""
  ->date_add = "2010-02-23 14:03:31"
  ->date_upd = "2010-02-23 14:03:31"
  ->deleted = "0"
  ->id = 3
carrier => Carrier Object (10)
  ->id_tax = null
  ->name = null
  ->url = null
  ->delay = null
  ->active = true
  ->deleted = 0
  ->shipping_handling = true
  ->range_behavior = null
  ->is_module = null
  ->id = null
products => Array (1)
 0 => Array (44)
   id_product_attribute => "0"
   id_product => "46"
   cart_quantity => "1"
   name => "BOUCLES D'OREILLES "Guimauve""
   description_short => "
"GUIMAUVE"
""
   available_later => ""
   id_category_default => "2"
   id_supplier => "0"
   id_manufacturer => "0"
   id_tax => "1"
   on_sale => "0"
   ecotax => "0.00"
   quantity => 1
   price => "6.688963"
   reduction_price => "0.00"
   reduction_percent => "0"
   reduction_from => "2010-03-12"
   reduction_to => "2010-03-12"
   weight => "0.0020000000949949"
   out_of_stock => "2"
   active => "1"
   date_add => "2010-03-12 16:22:35"
   date_upd => "2010-03-18 22:00:33"
   tax => "TVA 19.6%"
   rate => "19.6"
   price_attribute => null
   quantity_attribute => null
   ecotax_attr => null
   id_image => "46-161"
   legend => "Boucles d'oreilles mini épingle à n..."
   link_rewrite => "boucles-d-oreilles-mini-epingle-a-nou..."
   category => "bijoux"
   unique_id => "460"
   reference => "orei120310-6"
   supplier_reference => ""
   weight_attribute => "0.0020000000949949"
   ean13 => ""
   stock_quantity => 1
   price_wt => "8.000000"
   total => 6.688963
   total_wt => 8
   allow_oosp => 0
   features => Array (0)
discounts => Array (0)
total_discounts => "0.00"
total_discounts_tax_exc => "0.00"
total_wrapping => "0.00"
total_wrapping_tax_exc => "0.00"
total_shipping => "1.65"
total_shipping_tax_exc => "1.65"
total_products_wt => "8.00"
total_products => "6.69"
total_price => "9.65"
total_tax => "1.31"
total_price_without_tax => "8.34"




Cependant, impossible de les exploiter...?!

Comment accéder par exemple au nom de l'article à partir de la page blockuserinfo.tpl SVP?



{$summary.product->name}

{$summary->name}

{$summary.product.name}


Aucun de ces appels ne marche... :'(

Je prends toute aide avec plaisir.

Adrien

Link to comment
Share on other sites

Bonsoir,

Les variables et moi ça fait 2, mais il manque id_cart dans ta liste pour que ça marche. Pour savoir comment la récupérer ?, Essaye firebug sur un profil client loggué et regarde quel tpl ou php est appelé pour la récupérer (ou alors toujours avec firebug balade toi sur ton panier...

C'est une piste... pas une certitude de ma part

Link to comment
Share on other sites

Héhé, l'import par csv marche du premier coup! (ou presque :P)
Tout ne peux pas toujours foirer ;)
Je verrais ça ce soir, car je vois des TPL partout à force de bosser :o:D
Merci encore Emraud, et bonne journée, je vous tiens au courant.
Adrien

Link to comment
Share on other sites

Bonjour Waata,

Heureux que tu es trouvé une solution; mais peux-tu laisser quelques lignes pour l'expliquer ?

Je ne cherche pas à personnaliser mon panier, seulement à y ajouter une variable et un calcul, aussi toute piste serait la bienvenue. Pour l'heure, je fouille le forum pour établir mon cahier des charges et arrèter un processus qui touche le moins possible au core. J'ai peur qu'à force de bidouille, je n'alourdisse le systême ou de créer un ENORME trou dans la sécurité de PS.

En deux mots, si tu as une piste concernant le processus suivant par rapport à tes recherches dis le moi :
1) Un visiteur est automatiquement renvoyé sur une page spéciale (type authentification) ou un CMS l'invitant à renseigner son code département (ou code postal...). Mémorisation de l'info via $cookie comme pour logged.
2) Selon département affectation du client à un type de transport (states et non zone), la valeur du cooki étant rapprochée de cette valeur State jusqu'à ce qu'il se loggue.(j'ai déniché un hack indonésien qui permet d'affecter les transporteur à State et non à Zone) - Si certains sont interessé, je ferai un EDIT et posterai. (Je ne le fais pas tout de suite pour que vos poste fasse un petit up du sujet) ;)
3) Conservation de cette info tout le temps de la visite, avec affichage du coût transport via Stiffcarrier (Par exemple car il existe d'autres hack très bien fait aussi) par produit. Affichage dans le panier ou sur la fiche produit de x € du m² (via le calcul que je cherche à faire)- selon mes recherches, il me faut utiliser (après modification du type " float") des variables EAN13 et LOCATION qui, dans mon cas, n'ont pas d'utilité, sinon création d'une nouvelle variable pour renseigner dans la fiche produit (unité de vente = x m²) d'où Prix de vente au m² = $Price/x...
4) Le poids est perdu dans ma méthode car pour affecter correctement les coûts transport, je transforme Weight (kg) en mètre linéaire (ex. une palette EUROPE = 1). Aussi pour conserver mon info Poids utilisation de l'autre variable dispo $ean ou $location pour le poids de mon unité de vente = y kg. Dans mon panier : nouveau calcul ou renvoie info (1 palette = y Kg), sinon quantityXy = Poids de la commande...

Sur BL, possibilité d'ajouter EAN (aussi pour Poids je prendrai plustôt EAN), Julien à livrer dans un poste la méthode.

Bien entendu, ceci ne règle pas le problème multifournisseur (nombre de cas de figure reste très nombreux selon les produits) mais permet de passer outre le problème Poids et Prix trop restrictif pour les frais de Ports....

J'espère avoir été suffisamment claire dans ma présentation ci dessus.

Petit mot à la Team et aux modérateurs (et à tous les contributeurs) :
Un grand merci pour vos postes qui m'ont permis d'envisager une solution pour cet épineux problème de transport. Toutefois, ayant passé de nombreuses heures à scruter, chercher, lire, tester des modules, post et hack, je soulève un point qui à mon sens mériterait d'être étudié...

Il y a une rubrique "référencement", pourquoi pas ajouter une rubrique "logistique"... Je veux bien aider les modérateurs à remettre les bon post dedans (j'ai fais un subscribe sur tous ceux des 6 derniers mois qui touchent à ce problème de transport).

Que ceux qui me lise et sont du même avis poste un petit mot pour attirer l'attention de la Team.

Nous sommes, je pense, de plus en plus nombreux à nous intéresser à la solution PS mais sans distribuer via colissimo. La logistique me semble être un sujet à part entière :)

Merci de me lire (et surtout de réagir).

Bon WE de Paques et bonne chasse à l'oeufs :):)

Link to comment
Share on other sites

Bonjour,

dans blockuserinfo.tpl

$summary.products.0.id_product
$summary.products.0.link_rewrite
$summary.products.0.category
$summary.products.0.link_rewrite
$summary.products.0.id_image
$summary.products.0.name

avec 0 selon l'id du produit à afficher.

Et dans blockuserinfo.php,

assigner la fonction $cart->getSummaryDetails() à une variable summary qui s'affichera dans le template du même nom.

Bon WE!

Adrien

Link to comment
Share on other sites

  • 4 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...