New Slang - Création de Site Internet Artisanale

3 astuces pour bien commencer avec Prestashop 1.7

thierry
3 astuces pour bien commencer avec Prestashop 1.7

Au premier abord, Prestashop 1.7 c’est pas la panacée. For de 2 ans de développement depuis sa sortie en novembre 2016, il y a du mieux. Mais un article ne sera pas de trop pour aider à vous dépatouiller avec le CMS. Et bien commencer avec Prestashop 1.7.

Prestashop 1.7, la dernière version majeure d’un des leader du CMS e-commerce, est sortie en 2016. Conspuée par la communauté à cause de ses très nombreux bugs par rapport à une version 1.6 bien plus stable, cette version, 2 ans plus tard, sort gentiment la tête de l’eau.

Si vous venez de l’installer, nous en somme à ce jour à la version 1.7.4.2. Sur la base de cette version, je vous propose d’éclaircir 3 points sur lesquels j’ai eu des difficultés à me découverte de cette version 1.7. Ça vous évitera de vous jeter sur les forums et le GitHub de Prestashop le couteau entre les dents pour exiger des réponses (expérience faite).

1. L’enregistrement des traductions ne fonctionne pas

On commence fort avec une astuce en forme de correction de bug. Si au moment où vous essayez d’enregistrer une traduction dans Prestashop cette bulle n’apparait pas en haut à droite :

Enregistrement des traductions

Il se peut que vous souffriez de ce problème. Je n’entrerai pas dans les détails, vous pouvez allez jeter un œil au ticket de bug que j’ai créé sur le GitHub de Prestashop pour plus d’infos.

En attendant qu’il soit réglé dans une future version, il vous faut en fait activer l’option PHP set_time_limit sur votre serveur pour contourner cette erreur. Cette option permet de limiter l’exécution d’un script à un certain nombre de secondes. Ce qui permet d’éviter de voir des scripts PHP s’exécuter par exemple pendant plusieurs minutes en surchargeant le serveur et en empêchant d’afficher le résultat à l’utilisateur. Prestashop utilise cette fonctionnalité et si elle n’est pas activée, l’opération plante.

Si vous êtes sur un serveur mutualisé, il y a des chances pour que cette option PHP ne soit pas activée par défaut.

Voici comment procéder pour l’activer chez Infomaniak :

  1. Connectez-vous à votre Workspace Infomaniak
  2. Sélectionnez l’hébergement Web (pas Mail, ni Nom de domaine) concerné
  3. Puis dans le menu du gauche allez sous Mes sites > Gestion des sites puis choisissez le site concerné
  4. Dans cette nouvelle vue, cliquez sur Paramètres avancés
  5. Là, rendez-vous dans l’onglet PHP
  6. Activez l’option Set time limit et par la même occasion Allow url fopen qui pourra vous éviter d’autres désagrément sur Prestashop (mises à jour ou autre)
  7. Enregistrez vos modifications
Set time limit
Set time limit

Si vous avez le moindre souci, contactez le support de votre hébergeur, il est là pour ça !

2. Créer une nouvelle traduction

Toujours concernant les traductions, voici comment en ajouter de nouvelles dans Prestashop. On peut penser que ce genre d’informations est suffisamment documenté, mais que nenni ! Si j’ai trouvé quelques infos dans les documentations de Prestashop, rien de clair à ce sujet.

Lorsque je parle d’ajouter une traduction, il s’agit de textes fixes que vous ajouterez aux fichier de template (tpl) de Prestashop. Il s’agit donc de textes appartenant au site et à certaines pages spécifiques. Par exemple l’ajout d’un texte dans le pied de page du site, commun à toutes les pages.

Donc commencez par localiser le fichier auquel vous souhaitez ajouter une traduction dans l’arborescence de Prestashop. Si on reprend l’exemple du pied de page, naviguez dans themes > [nom de votre thème] > templates > _partials > footer.tpl :

Arborescence des dossiers Prestashop

Là entrez votre traduction sous cette forme :

{l s=’Legal notice’ d=’Shop. Montheme’}

Qui retournera la valeur de traduction demandée si elle existe et où :

  • s=’Legal notice’ est le texte par défaut de la traduction. Si aucune traduction n’est trouvé votre texte sera utilisé. Il s’agira également du texte indicatif affiché dans les traductions. La convention veut que ce texte soit en anglais.
  • d=’Shop.Montheme’ indique le chemin où Prestashop ira chercher la traduction. C’est donc également à cet endroit dans l’arborescence des traductions que Prestashop va créer votre nouvelle traduction. Vous pourriez utiliser un autre chemin existant, mais pour les traductions personnalisées, l’équipe de Prestashop conseil de créer sa propre arborescence, ici Montheme (Shop étant l’arborescence racine).

Ce bout de code retourne donc la traduction. Vous pouvez l’utiliser n’importe où, dans un lien, un titre, etc. :

<h1>{l s='Legal notice' d='Shop. Montheme’}</h1>
<a href="legal-notice" title="{l s='Legal notice' d='Shop. Montheme’}">{l s='Legal notice' d='Shop. Montheme’}</a>

Rendez-vous à la page où vous avez ajouté cette traduction et actualisez-la. Cette partie n’est pas très documenté, mais pour m’assurer qu’elle apparaisse j’effectue cette manipulation avant de retourner dans le back office.

Ensuite dans la gestion des traductions, choisissez la traduction du thème que vous utilisez, et vous devriez voir apparaitre votre nouveau terme de traduction :

Prestashop - Nouvelle traduction
Prestashop – Nouvelle traduction

Magique !

3. Erreur à la mise à jour de Prestashop

Vous le savez surement si vous connaissez un peu Prestashop, contrairement à un CMS comme Wordpress, le système de mise à jour n’est pas géré nativement. Pour mettre à jour le CMS vous devrez commencer par installer le module 1-Click Upgrade développé par Prestashop.

1-click-upgrade

J’ai eu un peu du mal à comprendre l’utilité de devoir installer un module complémentaire gratuit et développé par la même équipe qui s’occupe de Prestashop. Tout ça pour pouvoir utiliser une fonction native à tous les CMS. Mais passons.

Cette partie de mon article, comme le reste, sera peut-être passée de date assez vite, mais lors de cette installation vérifiez que vous ayez au moins la version 4.2.0 du 1-Click Upgrade, mise en ligne le 13.09.2018. C’est impératif !

Dans le doute, vous pouvez télécharger et installer manuellement la même version que j’ai utilisée pour contourner les nombreuses erreurs d’installation dont Prestashop m’a gratifié lors de mes mises à jour : https://github.com/PrestaShop/autoupgrade/archive/v4.2.0.zip.

Une fois le module installé vous devriez le voir apparaitre ici :

Module 1-Click-Upgrade

Dernier conseil : avant une mise à jour, il est indispensable de réaliser une sauvegarde des données et de votre base de données. Prestashop n’est pas Wordpress et il y a des chances, bonnes même, pour qu’une erreur survienne à la mise à jour.

1-Click Upgrade propose de réaliser un snapshot de l’état précédent lors de la mise à jour, mais si le plantage intervient avant cette sauvegarde les carottes sont cuites. Ou comme dirait Philippe, cuitas les bananas.

Donc si vous recevez une erreur du genre :

errorThrown: »  » jqXHR

C’est que vous n’avez pas, au moins, la version 4.2.0 du 1-Click Upgrade. Ou alors qu’un nouveau bug tout neuf vient d’être découvert par vos soins. Dans ce cas là, une seule solution : vous jeter sur les forums et le GitHub de Prestashop le couteau entre les dents pour exiger des réponses.

Conclusion

D’autres articles reviendront sur mes déboires, découvertes, conseils, astuces et développements pour cette nouvelle version de Prestashop qui, je l’espère, permettra de palier un certain manque de documentation et d’aider les novices à passer outre une première impression qui peut être désastreuse.

Parce que malgré ses problèmes, Prestashop reste un CMS robuste, complet et personnalisable qui devrait convenir à la plupart des shops en ligne de petite à moyenne envergure. Et ce n’est déjà pas si mal.

L’e-commerce vous intéresse ? Découvrez les spécificités du marché Suisse et pourquoi j’ai choisi Prestashop pour mes projets dans mon article Les solutions e-commerce pour la Suisse.

Aucun commentaire

Laisser un commentaire

Télécharger cette super ressource gratuite !

Entrez votre adresse e-mail ci-dessous et recevez cette ressource dans votre boîte de réception dans quelques secondes.