Aller au contenu

October 15, 2013

1

Leçon 2: La structure de prestashop

Dans ce petit tutoriel je vais vous expliquer la structure des fichiers nécessaires au fonctionnement de prestashop et leurs fonctions.

Avant de commencer, je vous invite à vous munir de la dernière version de prestashop disponible ICI.

Dirigeons nous dans le dossier “prestashop”, soit la racine de votre site web.

Ici se trouve différents dossiers et fichiers :

dossier admin

dossier classes

dossier config

dossier css

dossier download

dossier img

dossier js

dossier mails

dossier modules

dossier themes

dossier tools

dossier translations

dossier upload

php icon et pleins de fichier php ! (+ le htaccess)

Explications :

dossier Admin

Le dossier admin contient tout les fichiers nécessaires à l’administration, cette partie ne fonctionne pas avec le framework “smarty”. “Hein ? Quesako ?” me direz-vous. Je vous expliquerez ce qu’est smarty dans un prochain tutoriel.

C’est donc grâce à tous les fichiers contenus dans ce dossier que vous pouvez gérer votre e-commerce.

dossier Classe

Si vous connaissez la programmation orientée objet, alors vous devez savoir à quoi sert ce dossier. Il contient toutes les classes de prestashop. Ces classes permettent de créer des entitées, des objets comme par exemple la classe “product” qui permet de créer des produits et leurs attribuer des données tel qu’un nom, un prix, une description ect.. Je ne vous ferais pas un court de Programmation Orientée Objet maintenant ^^.

dossier Config

Le dossier “config” est très important, en effet il contient les fichiers nécessaires pour la connexion à la base de donnée mais aussi la définition des variables globales qui pourrons êtres utilisées dans n’importe quelle page de votre site, nous verrons pas la suite que ces variables sont très utiles.

dossier Css

Quelques bases en développement web et vous comprendrez vite ce qu’est le “css”. Les fichiers avec l’extension “.css” permettent de gérer l’affichage, le design de votre site, toutefois ce dossier contient des fichiers css que vous n’aurez surement pas besoin de modifier, d’autres css sont disponibles dans le dossier correspondant à votre thème et ce sont ces derniers que vous aurez à modifier.

dossier Download

Vous remarquerez que ce dossier est vide, il contiendra des fichier que vous mettrez à la disposition de vos visiteurs pour qu’il puissent les télécharger (ex: des documents pdf).

dossier Img

Vos produits, vos catégories ect… possèderont des images et c’est dans ce dossier  et ses sous-dossiers qu’elles seront stockées, tout simplement.

dossier Js

Tout vos fichiers javascript devront être placés dans ce dossier, vous y trouverez déjà des fichier JQuery, une librairie javascript très puissante et très utilisée dans prestashop, vous verrez qu’on pourra créer des modules très sympa grâce à celui-ci.

dossier Mails

En tant que commerçant sur le net, vous vous devrez de communiquer avec vos clients par mails, tous ces mails possèdent un template qui structure ces derniers, c’est dans le dossier “mails” qu’ils se trouvent, en plusieurs langues.

dossier Modules

Mon dossier préféré :D . Prestashop possède de nombreuses fonctionnalités, celles-ci se distinguent sous forme de modules. 1 sous-dossier par module. Pour améliorer et ajouter de nouvelles fonctions à votre e-commerce, c’est ici que ça se passera. J’aurais l’occasion de vous proposer des modules que je développerai dans le futur, n’hésitez pas à me faire des propositions !

dossier Themes

Section importante de votre prestashop, ce dossier contient votre thème, l’aspect visuel de votre site. Vous allez passer beaucoup de temps dans cette partie dans le but de customiser votre site à l’image de votre commerce. On retrouvera des dossier “img”, “css” ou encore “js” histoire de bien ranger tout vos fichiers de thème :D

dossier Tools

Outils en français, ici sera répertoriées les libraires utilisées telles que le fameux smarty ou encore fpdf.

dossier Translations

Si vous projetez de vendre à l’international, c’est ici que se trouverons vos traductions.

dossier Upload

Lorsque vos clients doivent uploader des fichiers sur votre serveur, ces derniers doivent être orientés vers ce dossier. Des droits spéciaux seront attribués à ce dossier.

php icon Beaucoup de fichiers .php sont présents à la racine de votre site, ce sont tout simplement les différentes pages, à savoir qu’elle n’affichent pas toujours la même chose en fonction des données qu’on leur envoi.

Publié par
Plus d'articles pour la catégorie Tutoriels
18 Commentaires Poster un commentaire
  1. Jun 4 2011

    Bonjour Emilien,

    Tout d’abord merci pour ton site : tes explications sont claires et utilisables. Super !

    J’ai une boutique Prestashop en construction (adresse ci-dessus).
    J’utilise des “caractéristiques” personnalisées pour afficher des données sur mes produits (fournitures industrielles).
    J’utilise le module “import” pour intégrer les produits.

    Mon souci est que Prestashop stocke ces caractéristiques dans le désordre (voir catégorie “6300 par ex.).

    Je voudrais effectuer un tri sur la clef “id_feature” pour remettre un peu d’ordre.
    J’ai tenté de le faire dans le template (product-list.tpl) mais apparemment smarty ne permet pas de faire de tri et je ne maîtrise pas les échanges de variables entre smarty et php.

    Il me semble que ce serait plutôt dans “product.php” qu’il faudrait le faire, mais je me perds dans le code (manque d’expérience) …

    Un array_multisort serait-il faisable ?
    A quel endroit du code (getFeaturesStatic () – ligne 2282 par ex. ) ?

    Merci d’avance pour ton aide.
    François

    Reply
    • eMizZ
      Jun 5 2011

      Salut François !

      Tu peux trier le tableau qui contient tes données en modifiant directement la requête SQL dans la classe Product.php

      Par exemple ligne 2272:

      SELECT id_feature, id_product, id_feature_value
      FROM `'._DB_PREFIX_.'feature_product`
      WHERE `id_product` = '.(int)$id_product);

      où tu peux rajouter une ligne pour le tri

      SELECT id_feature, id_product, id_feature_value
      FROM `'._DB_PREFIX_.'feature_product`
      WHERE `id_product` = '.(int)$id_product.' ORDER BY id_feature');

      Si tu veux les trier par nom, tu peux faire une jointure dans la requête avec la table ps_feature_lang et trier sur “name”.

      En espérant t’avoir éclairé.

      Reply
      • Jun 18 2011

        Bonjour Emilien,

        Merci pour ta réponse, mais j’avais essayé et ça ne marchait pas. Peut-être une mauvaise syntaxe.

        J’ai finalement intégré un peu de code dans Product.php à la ligne 2708, dans
        public static function getFrontFeaturesStatic($id_lang, $id_product) :

        $tmp = Array();
        foreach(self::$_frontFeaturesCache[$id_product.'-'.$id_lang] as &$rf)
        $tmp[] = &$rf["id_feature"];
        array_multisort($tmp, self::$_frontFeaturesCache[$id_product.'-'.$id_lang]);

        et ça marche.
        Qu’en penses-tu : plus gourmand en ressources ? moins rapide ?

        Merci et encore bravo pour ton site.
        François

        Reply
  2. May 29 2012

    Bonjour Monsieur Malbranche,

    J’ai un problème pour insérer une meta de type og:image afin de pouvoir partager une fiche produit sur facebook.

    J’ai intégrer le lien image avec une variable suivante :

    {$link->getImageLink($product->link_rewrite, $cover.id_image, ‘large’)}

    le problème est que la variable est à zéro concernant l’image.
    J’ai parcouru les forums mais je n’ai pas trouvé la solution.
    Néanmoins, je pense avoir compris la raison.
    Cette variable a été récupéré sur le fichier product.tpl.Donc après le fichier interprétant la variable.
    Le fichier du header où je veux récupérer la valeur de la variable, en revanche doit être positionner avant le fichier interprétant cette variable.

    Tout d’abord, mon analyse est-elle bonne et si oui, comment faire.
    Je ne suis pas à l’aise en développement.

    (P.S : Désolé pour cette explication un peu chaotique)

    Merci d’avance Mr Malbranche

    Pierre Roche

    Reply
  3. Akiki Zacarya
    Jun 30 2012

    Bonjour,

    Je suis vos tutoriel depuis un moment mais je suis tombé dans une impasse depuis quelque temps, je vous explique.

    J’ai fait l’acquisition de deux noms de domaine( a & b) que je gère avec Filzilla mais j’aurais aimé transférer la totalité d’un nom de domaine(a) dans l’autre(b)(qui est vide) sans pour autant changé le nom de domaine.
    Est-ce possible ? Et si oui, pourriez-vous m’indiquer la manipulation à suivre ?
    Mon patron me met la pression alors je reste à votre disposition pour tout autre renseignement.

    Cordialement,

    Reply
  4. Kapi
    Jul 23 2012

    Bonjour,

    Je cherche en vain à modifier la méthode d’upload des fichiers à télécharger pour les produits pour la raison simple c’est que ces fichiers font environ 75 Mo et que mon serveur permet l’upload pour des fichiers de 8 Mo max.

    J’ai bien cherché manuellement à uploader via FTP les fichiers en question dans le répertoire download… mais le problème est qu’ils ne sont pas reconnus dans l’interface de Prestashop (en raison du changement dynamique de nom).

    Il faut donc s’attaquer à la méthode d’upload des fichiers (.zip). J’ai cherché en vain… questionné sur le forum Prestashop… mais silence radio.

    Merci par avance.

    Cdlt.

    Reply
  5. Michael
    Jul 23 2012

    Désolé, je ne peux pas m’empêcher ….
    de corriger un Professeur (j’en ai toujours rêvé)

    en fonction des données qu’ont leur envoi ==> qu’on leur envoiE

    BRAVO pour votre site !

    Michael

    Reply
  6. Jul 26 2012

    Il manque “Controllers” dans le listing

    Reply
  7. Pakital
    Oct 22 2012

    salut je vois qu’ici les gens trouvent généralement leur réponse et j’espère trouver la mienne avec ton aide.
    j’ai créer un nouveau module d’identification client que j’ai accroché au header of page seulement je sais pas ou donner de la tête pour écrire le code de connexion ou même rattacher le formulaire au code existant de prestashop! Merci d’avance!

    Reply
  8. Nov 13 2012

    Super vos tutoriel M. Malbranche.
    Bien expliqué, en VRAI français et pas une faute d’orthographe (3 choses rares pour un pro de l’info).

    J’ai un webhost qui fait l’auto-installation de prestashop (entre autre).
    Je ne sais pas vraiment comment on fait de A à Z l’installation et si l’auto-install n’oublie pas des choses…

    J’ai 2 soucis :

    1) Les prix de mes articles ne s’affichent pas. Pourtant le prix figurent dans le back-office.

    2) Je ne trouve pas le ficher index.html. Je voudrais tout garder, l’exact réplique de mon site pour des fins de backup.

    Merci d’avance pour vos lumières

    Reply
  9. kevin
    Dec 28 2012

    Bonjour,

    Tout d’abord merci pour la leçon ! J’aimerai juste savoir si tu avais du temps pour mettre à jour ta leçon sur les nouveaux fichiers ajouter sur les dernières versions de pretashop ( cache, controllers …etc)

    Reply
  10. Mar 19 2013

    bonsoir emilien

    je suis heureux d’avoir trouver ce site avec tes explications
    car depuis que je ne vois plus un ami qui avait fait mon site
    j ai queques soucis d utilisation
    et j aimerai faire les mises a jour mais j ai peur de tout bloquer
    car j ai deja un soucis avec la page d administration de prestashop vis a vis de mesmodules
    je peux te faire une capture d ecran pour voir de suite le probleme
    j espere avoir une aide et merci d avance
    bien amicalement
    Bruno

    Reply
    • Mar 25 2013

      Pourquoi ne pas tenter de faire les mises à jour sur une version de développement de votre boutique en local ?

      Reply
  11. godin
    May 3 2013

    je souhaiterais avoir une explication sur comment mettre des articles sous prestashop
    et savoir si vous avez des tutos d’explicatifs

    merci par avance

    Reply
  12. Enygmagic
    Jul 6 2013

    Bonjour,

    je suis sur prestashop 1.5 et je souhaiterais intégrer un mode d’emploi dans ma boutique en ligne. Je suis néophile donc j ai besoin d’explications détaillées s’il vous plait.
    J ai tenté de mettre un pdf dans la rubrique documents joints du back office la mise a jour est ok mais je ne vois nulle part le document en front???
    Merci pour votre réponse

    Reply
  13. hicham
    Jul 7 2013

    Bonjour ,

    je suis en train de développer un site web e-commerce avec prestashop et je vous ajouter une étape pour les étapes Récapitulatif de la commande :

    étape est permet à un clients de upload sa fichiers(pdf,img…..)

    c’est urgent : merci pour votre aide.

    Reply
  14. Pap
    Nov 21 2013

    Bjr à tous!
    Je vous demande de l’aide, j’ai ajouté une bannière dans le header.tpl de mon site qui apparaît correctement. Par contre lorsque je clique sur un produit pour l’afficher, la bannière disparaît et il ya un cadre avec un (?). Je suis à mon premier test avec prestatshop et je ne comprend rien, je suis bloqué. Aidez-moi svp. Merci d’avance

    Reply

Partagez votre opinion, postez un commentaire.

(requis)
(requis)

Note: Le HTML est autorisé. Votre e-mail (ne sera pas publié).

S'abonner aux commentaires


+ 6 = 7