[Non résolu] Url rewriting – Prestashop 1.5 – OVH
Juste après l’installation de Prestashop 1.5, un lien apparait sur le tableau de bord qui encourage à aller paramétrer l’url rewriting (réécriture d’URL).
La première fois que j’ai suivi ce lien, voici le message qui est apparu en rouge :
URL simplifiée : L’URL rewriting (mod_rewrite) n’est pas activé sur votre serveur. Si vous voulez utiliser les URL simplifiées, veuillez activer ce module Apache.
Question
Comment activer le mod_rewrite chez OVH ?
Test qui n’a pas fonctionné :
Solution trouvée sur cette discussion sur le forum support Prestashop.
Ajouter les lignes suivantes dans le fichier .htaccess à la racine du répertoire d’installation de Prestashop :
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# WARNING: PLEASE DO NOT MODIFY THIS FILE MANUALLY. IF NECESSARY, ADD YOUR SPECIFIC CONFIGURATION WITH THE HTACCESS GENERATOR IN BACK OFFICE
# http://www.prestashop.com – http://www.prestashop.com/forums
<IfModule mod_rewrite.c>
# URL rewriting module activation
RewriteEngine on
# URL rewriting rules
RewriteRule ^api/?(.*)$ /webservice/dispatcher.php?url=$1 [QSA,L]
RewriteRule ^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)\-([0-9]+)/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1-$2.jpg [L]
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$1$2.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$ /img/c/$1.jpg [L]
RewriteRule ^([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 [QSA,L]
RewriteRule ^([0-9]+)\-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L]
RewriteRule ^content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L]
RewriteRule ^page-non-trouvee$ /404.php [QSA,L]
RewriteRule ^adresse$ /address.php [QSA,L]
RewriteRule ^adresses$ /addresses.php [QSA,L]
RewriteRule ^authentification$ /authentication.php [QSA,L]
RewriteRule ^meilleures-ventes$ /best-sales.php [QSA,L]
RewriteRule ^panier$ /cart.php [QSA,L]
RewriteRule ^contactez-nous$ /contact-form.php [QSA,L]
RewriteRule ^bons-de-reduction$ /discount.php [QSA,L]
RewriteRule ^suivi-commande-invite$ /guest-tracking.php [QSA,L]
RewriteRule ^historique-des-commandes$ /history.php [QSA,L]
RewriteRule ^identite$ /identity.php [QSA,L]
RewriteRule ^fabricants$ /manufacturer.php [QSA,L]
RewriteRule ^mon-compte$ /my-account.php [QSA,L]
RewriteRule ^nouveaux-produits$ /new-products.php [QSA,L]
RewriteRule ^commande$ /order.php [QSA,L]
RewriteRule ^details-de-la-commande$ /order-follow.php [QSA,L]
RewriteRule ^commande-rapide$ /order-opc.php [QSA,L]
RewriteRule ^avoirs$ /order-slip.php [QSA,L]
RewriteRule ^mot-de-passe-oublie$ /password.php [QSA,L]
RewriteRule ^promotions$ /prices-drop.php [QSA,L]
RewriteRule ^recherche$ /search.php [QSA,L]
RewriteRule ^plan-du-site$ /sitemap.php [QSA,L]
RewriteRule ^magasins$ /stores.php [QSA,L]
RewriteRule ^fournisseurs$ /supplier.php [QSA,L]
</IfModule>
# Catch 404 errors
ErrorDocument 404 /404.php
Configuration Prestashop 1.5 sur mutualisé OVH
Après avoir résolu le petit problème PHP5 d’OVH, j’ai lancé sans problème le beau scrip d’installation de Prestashop.
Tout se passe bien pour le moment mais j’ai 2 warning dont je ne connais pas l’importance sur l’écran de test de compatibilité du système :
- Option PHP register_global désactivée (recommandé) ?
- Option PHP magic_quotes désactivée (recommandé) ?
J’en prend note ici et j’y reviendrai peut-être plus tard.
[Résolu] Message d’erreur Prestashop 1.5 sur OVH – première installation
Après avoir créé une base de données vierge et avoir uploadé la version 1.5.0.9, voici le message d’erreur que j’obtiens quand j’essaie de lancer la script d’installation (en me connectant sur l’accueil).
Parse error: syntax error, unexpected T_OBJECT_OPERATOR in …/index.php on line 29
Erreur lors d’une tentative de connexion sur le répertoire /install :
Parse error: syntax error, unexpected ‘{‘ in …/install/index.php on line 31
Je soupçonne immédiatement un problème de php 5 sur OVH.
Solution :
- Créer un fichier texte
- Y recopier cette ligne : SETENV PHP_VER 5
- L’uploader via FTp sur le répertoire racine de l’installation de Prestashop
- Le renommer .htaccess sur le FTP
Todo list – test Prestashop 1.5
Objectif principal : étudier si Prestashop 1.5 peut être utilisé en production pour un nouveau projet de ecommerce.
TODO
- Faire fonctionner la réécriture d’URL
- Étudier les articles configurables
- Étudier le concept de pack dans prestashop 1.5
Done
- Installer Prestashop 1.5
Débrancher prestashop pendant les vacances
Comme pendant les vacances il n’y aura personne pour livrer les commandes, nous avons choisi d’arrêter la boutique et d’empêcher la prise de commandes plutôt que d’être obligé de les livrer en retard.
- La première solution est de passer la boutique en « mode maintenance » mais dans ce cas les URL ne sont plus accessible et j’ai peur de risquer une désindéxation dans Google.
- Une autre solution est de mettre un message sur la page d’accueil mais qui y fera vraiment attention ?
- Une solution est de supprimer / désactiver provisoirement le module de paiement (Paypal V1.6 chez nous) mais c’est un peu brutal comme solution ?
On doit pouvoir trouver d’autres pistes / options pour arriver au même résultat. Si vous avez une autre idée, ça m’intéresserait de savoir comment vous avez fait. Merci de laisser un commentaire dans ce cas.
Paypal : Erreur de paiement
Normalement, après qu’un client ait payé avec Paypal le statut de la commande passe automatiquement à « paiement accepté » (Prestashop et paypal communiquent ensemble).
Si le client ne paye pas strictement le montant demandé, la commande passe au statut « erreur de paiement ». Ça m’est arrivé avec une différence de 5 centimes entre le montant attendu et le montant payé.
Je ne sais pas ce qui peut causer ce dysfonctionnement et voici la procédure à suivre dans ce cas :
- Dans ce cas l’onglet des commandes indique « en rouge » le montant payé.
- Se connecter à son compte Paypal et voir si le paiement a bien été effectué.
- S’il a bien été effectué, passer manuellement la commande à « paiement accepté »
Nouvelle version Prestashop 1.3
La nouvelle version vient de sortir. Voici le changelog.
Avant de l’utiliser en « production » je vais l’installer sur ma base de test un de ces jours et publier mon compte rendu.
pour l’instant, voici ma « todo » liste (que je vais probablement compéter dans les jours qui viennent) :
- Suivre procédure officielle de mise à jour de Prestashop
- Sauvegarder la base de prod + sauvegarde FTP et la remonter une base de test copie de la prod actuelle.
- Installer la nouvelle version de PrestaShop sur base de test
- Installer le nouveau pack de langue allemande
- Lister les modules utilisés auparavant et mettre à jour les modules.
- Mettre à jour le template pour empêcher la mise au panier depuis l’accueil (voir supprimer bouton « ajouter au panier »)
- Voir s’il faut encore faire quelque chose pour l’affichage des attributs avec Internet Explorer.
- Tester langue
- Tester prise de commande
- Tester inscription d’un nouveau client.
- Tester emails
- Tester l’import des attributs (en vérifiant l’ancien BUG repéré sur l‘importation des atributs)
Gestion des promotions et soldes dans Prestashop
Les promotions se gèrent article par article (produit par produit dans la terminologie Prestashop). Pour un produit, l’ensemble de ses déclinaisons vont apparaitre comme « soldées » dans le front end.
On ne peut apparemment pas gérer les promotions au niveau de la catégorie ou même de l’ensemble du site.
Paramétrage dans prestashop :
- Cocher la case « Affiche « en solde » en icône sur la page produit ainsi qu’en texte sur les pages catégories » dans l’onglet « Infos » de l’article.
- Renseignez un taux de remise sur le même onglet.
- Vérifiez que vous disposez bien des fichiers onsale_lg.gif dans le répertoire /img de votre thème; Avec _lg à remplacer par le code de votre langue (exemple onsale_fr.gif, onsale_de.gif).
- Éventuellement, activez un module (appelé « Bloc Promotions ») pour mettre en avant vos articles en solde sur toutes les pages de votre boutique. Ce sont les articles avec un taux de remise de renseigné qui apparaissent dans ce bloc.
- Testez le front-end de votre boutique pour vérifier que tout va bien.
Google Product Search et Prestashop
Google Product Search
Google Product Search est un service de Google qui permet de trouver des produits et de comparer les prix de ces produits entre différents sites web. Cela ressemble un peu à Kelkoo mais il n’y a apparemment pas de frais d’inscription ni de commissions à verser à Google lorsque l’on utilise ce comparateur de prix.
A l’heure ou j’écris ces lignes, ce service n’est pas disponible en France mais il est disponible pour l’Allemagne (mon pays cible) ainsi que pour les USA et le Royaume Uni. Si un de ces 3 pays se trouve dans votre cible, j’ai l’impression que le service est intéressant.
Information à fournir à Google Product.
Les guidelines de Google Product montrent qu’on peut alimenter Google Product Search avec un fichier de type GoogleBase, un fichier texte séparé par des tabulations, un fichier Excel, un fichier XML, toute sorte de flux RSS, et même une API dédiée.
Module pour Prestashop.
Il existe un module écrit pour alimenter Google Product avec des articles d’une boutique Prestashop. Le module s’appelle Googlebase.
Le problème de ce module est qu’il génère un enregistrement par article dans le fichier XML. Les déclinaisons ne sont pas prises en compte.
Vous pourrez sans doute vous passer de ce module soit en créant le fichier directement à partir d’un ERP soit à partir de quelques requêtes bien foutues sur votre basse de données.
Question des attributs de Prestashop.
Il y a un problème particulier qui se pose avec Prestashop si vous avez utilisé des attributs (aussi appelées déclinaison) pour stocker des articles avec des prix et des caractéristiques différentes.
En effet les guidelines de Google Product Seach indiquent : « Landing pages should list only one item per page » et ce n’est pas ce qui se passe quand vous avez besoin de communiquer vos références stockées dans des attributs de Prestashop.
En effet dans ce cas la « landing page » de Prestashop est la page d’un produit et les déclinaisons ne sont accessible que par une ou plusieurs liste déroulantes. Il n’y a pas d’URL spécifique pour chacune des options…
J’ai déjà écrit un article sur la question des URL d’une liste à options et je n’ai pas encore trouvé de solution satisfaisante.
Contournement pour utiliser Google doc avec des attributs.
J’ai essayé de réfléchir à quelques solutions pour le problème expliqué ci dessus mais aucune n’est satisfaisantes. Voici mes idées :
- Ne référencer que les premières déclinaisons de chaque produit : cal peut fonctionner pour certains mais ce n’est absolument pas satisfaisant pour moi.
- Balancer à Google toutes les déclinaisons même si ont toute la même URL (landing page) : cela ne respecte pas les guidelines de Google et peut-être que Google n’acceptera pas plusieurs articles avec la même URL. Je n’ai pas testé.
- Créer des articles « fictifs » dans Prestashop qui ne serviraient que de « landing page » pour Google Product : c’est peut-être une piste à explorer mais je ne vois pas trop comment faire pour que d’une part ces pages ne soient pas parcourues par des visiteurs humains visitant le site et d’autres part qu’elles permettent de retomber rapidement sur les pages « normales » pour les visiteurs venus par Google Product Search. C’est en fait une sorte de question de « cloaking légitime ».
Commentaires récents