Supprimer une boutique PrestaShop

Voici un script qui supprime une boutique PrestaShop. Il suffit de le placer à la racine de sa boutique en FTP ou autre et de le visiter avec son navigateur.

⚠ Le script supprime le répertoire de PrestaShop avec tous ses fichiers et sous répertoires et toutes les tables de la base de données qui ont le préfixe de PrestaShop.

⚠⚠ Le script ne demande pas de confirmation. Vous le lancez, il supprime tout.

 

Remplacer les é dans une table SQL

Je garde ça ici parce que ça arrive mais pas suffisamment souvent pour que je m’en souvienne d’une fois sur l’autre.

Si dans votre table des champs ressemblent à “Très bon produit .J’en suis très satisfaite” c’est qu’il y a eu un soucis à un moment. Un import foireux, un script bugué peu importe.

Pour corriger ça il suffit de lancer les requêtes suivants :

 

“table” et “field” sont à remplacer bien sûr.

Exécuter un script PrestaShop en ligne de commande

Le plus propre pour lancer un script prestashop en ligne de commande est de créer un controller pour ça.

Pour l’appeler voici la syntaxe :

Soit dans mon cas

Ensuite le code du controller

 

Module Prestashop : notFound.org

Faites un meilleur usage de votre page 404.

Au sein de l’Union Européenne, des milliers d’enfants sont portés disparus chaque année. Ensemble, multiplions les chances de les retrouver ! Installez ce module et la photo d’un enfant disparu apparaîtra automatiquement sur chaque « page non trouvée » de votre boutique Prestashop.

Ce module gratuit peut être téléchargé depuis Prestatoolsbox.fr

Créer un accès temporaire à l’administration de Prestashop

En cas de support, il est souvent nécessaire de permettre à une personne extérieure d’accéder temporairement au panneau d’administration de Prestashop.

Création du profil employé

Pour cela il faut tout d’abord créer un profil pour ce type d’accès.

Aller dans Administration > Profils.

Le bouton “Créer” vous amène au formulaire de création de profil.

Choisissez par exemple “Support” comme nom de profil.

Définition des droits

Aller dans Administration > Permissions.

Dans la 1ère colonne choisissez le profil nouvellement créé
(Support)

et dans les autres colonnes les pages et modules auxquels il a accès.

Concernant les modules, si vous donnez l’accès à la configuration d’un ou plusieurs modules, il faut aussi donner accès à la page Modules.

Création du compte employé

Il faut aller dans Administration > Employées.

Le bouton “Créer” vous amène au formulaire de création d’employé.

Vous pouvez utiliser une adresse e-mail en example.org. ce nom de domaine est fait pour les adresses de démonstration. Par exemple support@example.org.

Choisissez le profil de permission nouvellement créé.

Envoi des informations d’accès

Pour accéder au panneau d’administration la personne extérieure a besoin de :

  • L’adresse de votre panneau d’administration
  • L’adresse e-mail de connexion
  • Le mot de passe

Désactivation du compte

Il ne faut pas oublier de désactiver le compte employé après l’intervention.

Aller dans Administration > Employées et sélectionnez le compte. Passez l’état à Non et enregistrez.

Vous pourrez réactiver le compte pour un prochain usage. N’oubliez pas de changer le mot de passe.

La mauvaise foi du sécuritaire chez Prestashop

Je suis déçu par Prestashop 🙁

  • Les erreurs de jeunesse que la solution traîne comme des boulets, je comprend.
  • Les bugs (d’arrondi) gros comme le monde qui durent depuis la version 1, je tolère.
  • Les publicités de plus en plus présentes et agressives dans le panneau d’administration, je n’aime pas mais je comprend

mais là c’est moche, d’une mauvaise foi évidente et joue sur la peur de ses clients au détriment de ses (anciens ou futurs anciens) partenaires.

Note : J’aime Prestashop et Prestashop Addons c’est un beau projet, une belle plateforme que je suis depuis le début. Ils me font vivre et je leur rend pas assez. Mais il y a des comportements qui me sortent par les yeux.

Donc que ce passe-t-il ?

Depuis la version 1.6.0.9 (dernière à ce jour) si on veut installer un module non présent sur Prestashop Addons, un gros (GROS) message s’affiche avec des couleurs alarmantes, un bouton de validation rouge et un message qui fait trembler :

Le module “XXX” n’a pas pu être identifié en toute sécurité par PrestaShop.

Ceci se produit généralement lorsque le module n’est pas distribué via notre place de marché officielle PrestaShop Addons, ou quand votre serveur n’arrive pas à communiquer avec PrestaShop Addons.

Comme vous n’avez pas téléchargé le module depuis PrestaShop Addons nous ne pouvons pas certifier qu’il est conforme à nos exigences de sécurité (notamment, nous ne pouvons pas certifier qu’il n’ajoute pas de fonctionnalités cachées comme un cheval de troie, des publicités, des liens cachés, du spam, etc.). Vous l’utilisez à vos propres risques.

blablabla peur blablabla vous avez eu tord blablabla Achetez chez nous

Image prise chez webbax qui parle du même sujet : https://www.webbax.ch/2014/08/27/prestashop-alerte-module-non-verifie/

Le message est (presque) vrai, on ne peut rien en dire sauf qu’il est d’une mauvaise foi dégoulinante. Un peu comme quand vous cliquez sur un lien externe sur Facebook : “Attention, vous allez dans le côté obscur du web, là où les pédonazies mangent des chatons en fumant dans les halls de gare. Vous feriez mieux de rester chez nous.”

Pourquoi est-ce de la mauvaise foi ?

  1. Un module malveillant n’attendra pas d’être installé pour faire ses petites affaires. Si vraiment il a besoin d’être installé il peut le faire sans vous. A partir du moment ou il s’affiche dans la liste des modules c’est mort. Donc si vraiment le module est vilain ce message ne sert à rien.
  2. Contourner l’affichage de ce message est trivial. Dans pas longtemps les modules honnêtes mais non présents sur Addons le feront pour ne pas effrayer les commerçants.
  3. Le but n’est pas de protéger le commerçant (cf 1) mais de rediriger vers Addons, C’est évident, c’est moche c’est crade. On accuse le commerçant ( “Comme vous n’avez pas téléchargé” ) de mal agir et que tout sera sa faute ( “Vous l’utilisez à vos propres risques.” ) après l’avoir bardé de mots qui font peur. Ensuite plus sereinement on explique qu’un module similaire existe surement sur Addons et qu’on peut revenir à la sécurité (ouf)

Quel est le vrai but ?

  1. Vendre des modules c’est évident mais pas que.
  2. Supprimer les modules gratuits indépendants. Avez vous remarqué qu’il y a de moins en moins de modules gratuits sur Addons ? ça fait un moment qu’on ne peut plus en ajouter mais les anciens restaient. Pourtant récemment deux des miens ont été effacés car “Pas assez de ventes” (héhéhé). Donc les modules gratuits ne sont plus validés par Addons et auront tous ce message. Mais pas d’inquiétude un payant existe surement sur Addons
  3. Supprimer la concurrence et faire plaisir aux partenaires. Il y a plein de boutiques de modules indépendantes et quelques autres places de marché dédiées. Evidemment le message apparaîtra si leurs modules ne sont pas sur Addons. Mais pourquoi ? Par exemple il est impossible de déposer sur Addons un module de paiement (Crédit Agricole, LCL…) Prestashop a déjà les siens ou un module similaire à un de leurs partenaires (qui payent pour être mis en avant sur Addons). Mais des modules de paiements indépendant il y en a plein (et même des gratuits) et ça c’est pas bon pour les affaires.

Conclusion

Je comprend tout à fait la position de Prestashop et d’Addons.

Addons est ce qui rapporte des sous à Prestashop. Il faut le mettre en avant. La solution gratuite n’est (commercialement parlant) qu’un appel à l’achat sur la plateforme. Pas de problème avec ça. Tuer la concurrence, c’est du commerce. Oui oui ok. Les partenaires veulent un retour sur l’investissement, les vrais clients c’est eux. Normal.

Mais jouer sur la peur des commerçants, et en plus trop tard, quand même c’est crade. A côté de ça les pubs cachées de “Expertise Prestashop” passent pour des enfantillages.

Prestashop tu vaux mieux que ça.

P.S. un cheval de Troie (majuscule, c’est une ville) n’est pas une fonction cachée mais un camouflage, le module peut être un cheval de Troie mais pas en cacher un. Mais bon fallait placer des mots qui parlent aux gens et qui font peur. “Tremmmblez devant les liens cachés, bhooooo”

Dur de trouver un éditeur Markdown

J’ai récemment décidé d’utiliser Bitbucket pour gérer mes projets.

Je l’utilisai déjà comme dépôt Mercurial pour quelques modules Prestashop histoire d’avoir une sauvegarde (en plus) mais l’offre gratuite de Bitbucket propose aussi un wiki et un gestionnaire de bug qui sont accessibles même si le dépôt est privé.

J’ai déjà un wiki global pour la documentation de mes modules mais il est super lourd et les seuls personnes qui l’éditent sont moi et les bots de spam.
De plus les wikis de Bitbucket sont des dépôts Mercurial, donc je peux les modifier hors ligne et synchroniser quand c’est bon.

C’est là que ça bloque. J’ai passé des heures à chercher un éditeur bureau Markdown (l’un des formats supportés par le wiki) correct.

J’aurais voulu un éditeur qui :

  1. Affiche un aperçu formaté
  2. Affiche les images
  3. Permet d’ouvrir les pages liées comme sur un wiki

Pour le 3 aucun éditeurs ne le fait 🙁

J’ai essayé :

MarkdownPad

Aperçu de MarkdownPad

Les moins :

  • Ne gère pas les images locales.

MarkPad

Aperçu de MarkPad

Les moins :

  • L’éditeur et l’aperçu ne sont pas synchronisés et surtout dès qu’on fait défiler l’éditeur, l’aperçu se remet au début du document. Ingérable.

MdCharm (mort)

Les plus :

  • Gère les projets (dossiers avec plusieurs fichiers dedans)

Les moins :

  • L’affichage des images locales bug dans les projets

ReText

Les moins :

  • Installation très longue car il a fallut installer Python et toutes les dépendances.
  • Ne gère pas l’UTF-8 ?? ou je n’ai pas trouvé comment.

Haroopad

Aperçu de Haroopad

Mon préféré pour l’instant

Les plus :

  • Interface propre et bien pensée
  • Permet d’envoyer le texte par e-mail. Pratique pour Tumblr

Les moins :

  • Pas d’onglet, c’est moins facile pour s’y retrouver

Conclusion

Pour l’instant j’utilise Haroopad même s’il ne fait pas tout ce que je voulais.

Qu’est ce que ce fichier « signature.asc » que vous m’avez envoyé ?

Depuis quelque temps, tous les e-mails que j’envoie sont accompagnés d’un fichier “signature.asc”.
Il s’agit d’un fichier qui prouve que le message que vous avez reçu est le même que celui que je vous ai envoyé.

Pourquoi faire ?

Signer un e-mail permet de le dater, de vérifier son émetteur et de s’assurer que son contenu n’a pas été modifié.

Il faut savoir que entre l’émetteur et le destinataire d’un email, celui-ci passe par plusieurs ordinateurs qui le lisent tous (pour savoir vers qui l’acheminer par exemple).
La possibilité que le message soit modifié existe, c’est déjà arrivé :

Qu’est ce que vous devez faire ?

Rien si vous vous en fichez. C’est un truc de parano.

Par contre si votre vie privée vous tient à cœur et que vous n’avez pas confiance en vos intermédiaires (cf ci-dessus) vous pouvez vérifier l’intégrité du message reçu.

Le plus simple est d’installer Enigmail sur Thunderbird ou un dérivé (perso j’utilise PostBox) ou Gpg4Win pour Outlook. Il y en a surement plein d’autre.

Sous Chrome/Firefox Mailvelope

Pour plus d’information sur la signature Gpg : www.gnupg.org

Comment ça marche ?

Lorsque le message est écrit, la signature est générée en fonction de son contenu au moyen de ma clé privée (il n’y a que moi qui peux l’utiliser).

Cette signature peut être lue seulement avec ma clé public (ci-dessous).

Donc :

  • Si le message reçu est modifié la signature n’est plus valide.
  • Si l’émetteur n’est pas moi (mais a utilisé mon adresse email) il ne peut pas le signer en mon nom. Si vous recevez un message de ma part non signé, c’est louche.

T’es parano ?

Oui vous devriez aussi.

L’étape suivante est de chiffrer le message. Dans ce cas non seulement le message ne peut être modifié mais il ne peut pas non plus être lu par quelqu’un d’autre que son destinataire. C’est en gros ce qu’on espère quand on envoi un courrier à quelqu’un.

Ce n’est pourtant pas le cas : http://www.framablog.org/index.php/post/2013/12/15/Votre-courrier-gratuit-Schnail-Mail

Cela implique que le destinataire a un moyen de déchiffrer le message. Si c’est votre cas faite le moi savoir.

Ma signature public

que vous pouvez retrouvez ici : http://pgp.mit.edu/pks/lookup?op=get&search=0xF4CDE46E1A49C659

Un souhait pour Prestashop 2

Prestashop 2 est prévue pour bientôt ou pas, quoi qu’il en soit il y a un truc qu’il faudra absolument améliorer, c’est le système de messages utilisateur (erreur, confirmation, alerte).

Actuellement ça se passe ainsi :

  1. On clique sur un lien d’action. par exemple http://…?send_mail&id_client=42 pour envoyer un mail à un client
  2. on arrive sur la page qui fait l’action (page d’action)
  3. si ça marche, on est redirigé sur une page qui affiche une confirmation http://…?conf=33 conf étant l’id du message de confirmation
  4. si ça échoue, on reste sur la page et on affiche les erreurs.

La redirection est importante car si on restait sur la page d’action, il suffirait de la recharger pour exécuter de nouveau l’action ou de laisser l’onglet ouvert avant de fermer le navigateur. Pour un mail c’est pas trop grave, pour une suppression plus.

Donc tant que qu’il n’y a pas d’erreur ça marche (bin oui) mais sinon on reste sur la page d’action et c’est mal.

Vous allez dire que c’est pas grave puisque ça marche pas, il n’y a pas de risque que le mail soit envoyé si je recharge la page et si ça marche bin c’est cool c’est ce que je voulais.

Non. déjà ça peut être une erreur temporaire donc ça peut très bien fonctionner la seconde fois.

Ensuite on ne sait pas à quel moment ça a échoué. Si il fallait supprimer une commande puis envoyer un mail au client en rechargeant la page vous pouvez supprimer 3 commandes et à chaque fois ne pas réussir à envoyer les mails.

Bref le système est bancal.

En plus il est très limité :

  • Il y a un id de message de confirmation donc il y a une liste prédéfinie de message (31 dans la classe AdminControllerCore) donc si vous voulez utiliser une confirmation personnalisée ça devient compliqué.
  • Vous ne pouvez avoir qu’un seul message. Pour reprendre l’exemple on ne peut pas dire “la commande est supprimée” et “le mail est envoyé” et bien sûr on ne mixe pas (“la commande est supprimée” et “Erreur, le mail n’est pas envoyé”)
  • Si je recharge la page, j’ai de nouveau le message ce qui peut être perturbant et pas joli.

Ce qu’il faudrait c’est un vrai gestionnaire de message.

Quand quelque chose fait une action il dit “Faudra dire à untel/tout le monde/personne que j’ai fait ça” ou “Faudra dire qu’il y a cet erreur/alerte/information” comme pour un système de log (c’est la même chose en fait).

Par exemple

(bon là y a des if partout mais c’est l’idée)
et au prochain affichage d’une page on montre les messages en attente.

Ce serait utile pour les modules aussi. Le module Ebay par exemple met à jour la fiche produit sur ebay.com à chaque fois qu’on en modifie un sur Prestashop mais il peut pas le dire, l’info est perdue à la redirection. Là il pourrait mettre en attente “tel produit est à jour/désactivé/supprimé sur ebay.com” ou “impossible de contacter ebay.com”.

Donc tout ça pour dire que ce serait un truc super pratique.