Archive

Archive for the ‘3 Problèmes’ Category

[Non résolu] Url rewriting – Prestashop 1.5 – OVH

avril 13, 2012 11 commentaires

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.comhttp://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

 

 

 

Publicités

[Résolu] Message d’erreur Prestashop 1.5 sur OVH – première installation

avril 13, 2012 6 commentaires

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 :

  1. Créer un fichier texte
  2. Y recopier cette ligne : SETENV PHP_VER 5
  3. L’uploader via FTp sur le répertoire racine de l’installation de Prestashop
  4. Le renommer .htaccess sur le FTP

 

Débrancher prestashop pendant les vacances

juillet 30, 2010 9 commentaires

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.

Catégories :3 Problèmes Étiquettes : ,

Google Product Search et Prestashop

mars 25, 2010 1 commentaire

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 ».

URL d’une valeur dans une liste à option en HTML

mars 25, 2010 4 commentaires

Problème Prestashop et Google Product :

Pour indexer mes articles dans « Google Product Search« , j’ai besoin de fournir à Google une URL correspondant à une référence précise (prix, caractéristiques…). Dans les guidelines de Google cela s’exprime ainsi : « Landing pages should list only one item per page ».

Le problème est que mes articles se trouvent dans des listes déroulantes (mes articles sont des attributs ou des déclinaisons dans le vocabulaire de Prestashop) et que je ne sais pas s’il est possible de transmettre à Google une URL différente pour chaque valeur de la liste à options.

Problème HTML.

Voici le code HTML de la liste à options sur une page produit :
<select name="group_1" id="group_1" onchange="javascript:findCombination();">
<option value="5">6mm rot / blau pro Meter</option>
<option value="6">6mm blau / rot pro Meter</option>
</select>

Ce que je voudrais obtenir à partir de ce type de liste, c’est l’URL d’une des valeurs de la liste. J’ai essayé de voir si des paramètres d’ancre pouvait être interprété dans l’URL avec des URL du genre :
http://monsite.tld/mapage.html#5

Mais cela n’est pas interprété et je n’ai pas trouvé de références et de documentation laissant à penser que l’on puisse réaliser une liste déroulante avec un lien vers chaque option en langage HTML.

J’ai essayé d’utiliser les attributs html « id » avec la syntaxe suivante :
<option value="5" id="aaaa">
Mais sans plus de succès.

Appel à l’aide

Si quelqu’un passe par ici, en cherchant une solution, ce serait sympa qu’il y repasse APRES avoir trouvé comment résoudre ce problème et qu’il indique une piste dans les commentaires. Merci d’avance.

Problème avec l’import des attributs

mars 15, 2010 2 commentaires

Contexte

J’utilise la dernière version stable de Prestashop 1.2.5.0 et comme je gère le stock avec les attributs, je réimporte régulièrement tous mes attributs pour synchroniser le stock entre Prestashop et notre ERP.  Lors de ces imports, je coche toujours « Supprimer les attributs avant l’import ? ».

Vous pouvez aussi consulter ma procédure d’import telle qu’elle est écrite pour les utilisateurs.

Problème

Lorsque des clients ont des paniers en cours, plusieurs zones sont mises à jour à tort :

Voici la liste des zones mises à jour qui ne devraient pas l’être :

  • le prix unitaire
  • la référence
  • Les montant totaux

C’est très dangereux pour des clients qui seraient en train de constituer leurs paniers et qui pourraient se voir livrer des articles qu’ils n’ont pas commandés si les magasiniers se fient à la référence pour préparer les expéditions.

L’anomalie est visible quand on observe les paniers (dans BO/Clients/paniers) et même les paniers déjà livrés sont mis à jour. Je n’ai pas poussé dans l’étude des statistiques qui sont potentiellement impactées elles aussi.

Ce qui fonctionne

Par contre, pour les commandes validées (celles qui sont visible depuis l’interface « commandes » du BO) les références et montant ne sont heureusement pas mis à jour.

Solution

Pour contourner ce problème j’ai mis en place, dans l’urgence, plusieurs mesures :

  • Ne pas enregistrer les paniers entre les sessions (dans BO/préférences/ »sauvegarde du panier »)
  • Ne pas faire d’import des attributs s’il y a des clients connectés

J’ai fait une petite recherche dans les forum de Prestashop avant d’écrire ces lignes mais je n’ai pas trouvé de référence à ce problème. J’ai soumis mon problème dans cette discussion.

[Résolu] panier qui se vide sans raison

mars 12, 2010 9 commentaires

Mon problème.

Sur ma base de test, alors que j’ai réussi une première fois à créer un panier avec plusieurs produits et à aller jusqu’au paiement, je n’arrive plus à utiliser le panier.

J’arrive à ajouter un article au panier mais quand je veux en ajouter un autre, le panier se vide systématiquement.

Par ailleurs je constate que le pavé « derniers articles consulté » ne se met plus à jour.

Ma solution.

Comme la boutique sur laquelle je fait mes test est une boutique basée sur la base de données de ma boutique en production, je suis allé jeter un coup d’oeil, via phpMyAdmin dans les tables de ma base.

Dans la table des paramètres de la boutique, j’ai constaté que la table ps_configuration contenait le champ CANONICAL_URL et que la valeur dans ce champ était celle de mon site de prod. Le changement du nom de domaine ne se fait évidement pas automatiquement dans ce cas…

Dans le BO, j’ai trouvé l’endroit où l’on modifie ce paramètre : c’est dans modules / tools / URL canonique

Je ne suis pas sûr que ce soit ce changement qui empêche le panier de se vider mais en tout cas tout fonctionne maintenant avec le bon paramètre et quel que soit le navigateur utilisé (IE, Firefox). Si vous avez rencontré le même problème et l’avez, vous aussi, résolu de cette manière, merci de me laisser un commentaire.