Gestion des promotions et soldes dans Prestashop

mai 18, 2010 9 commentaires

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 :

  1. 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.
  2. Renseignez un taux de remise sur le même onglet.
  3. 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).
  4. É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.
  5. Testez le front-end de votre boutique pour vérifier que tout va bien.
Publicités

Articles à options et accessoires dans Prestashop

avril 21, 2010 7 commentaires

Prestashop permet de gérer des options associées aux articles. Dans le vocabulaire de Prestashop ces options sont appelées « accessoires ».

Lorsque qu’un article est associé à un accessoire, un onglet apparait (dans le thème par défaut) qui permet d’ajouter au panier les options éventuelles.

Mon besoin est de pouvoir associer des terminaisons  particulières (finitions sur boucle épissée) à des cordages.

Limites de Prestashop

  1. On peut ne commander qu’une option sans commander l’article principal. Je n’ai pas trouver comment empêcher de commander seulement une option.
  2. On ne peut pas limiter le nombre d’option par article (exemple commander 3 terminaisons sur un seul cordage).
  3. On ne peut pas gérer des options qui s’excluent mutuellement (genre bouton radio qui demande au client de faire un choix).
  4. Si vous commandez 3 articles différents et 2 fois la même option vous aurez 3 lignes d’articles et une seule ligne avec les 2 options, sans savoir à quel article cela se rapporte.
  5. Avec le thème par défaut, le système d’affichage de l’onglet « accessoires » n’est peut-être pas évident à utiliser si on se place du point de vue des clients. Il me semble que j’aurais préféré voir apparaitre le sélecteur d’option juste en dessous du bouton « ajouter au panier » de l’article principal.

Paramétrage dans Prestashop.

  1. Créer une catégorie pour les options en choisissant de ne pas l’afficher.
  2. Créer des articles dans la catégorie option (stock 0 et pas de message sur rupture). Expliquer le mode d’emploi et les règles dans la description de l’article ?
  3. Associer les articles accessoires aux articles principaux. L’association se fait dans le bas de l’onglet « infos » des articles principaux. On peut ajouter plusieurs options sur un seul article.

Note plus personnelle

  1. Compte tenu de mon cahier des charges il faudrait créer un article d’option par article (et non pas un seul article d’option pour l’ensemble des articles).
  2. Voir aussi le libellé et l’affichage des options, la place disponible dans l’affichage par défaut est assez limitée (seul le résumé s’affiche dans l’onglet options des articles principaux).
  3. Voir comment changer le titre de l’onglet « accessoire » (en jouant sur les traductions)

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.

Message d’erreur : /install/classes/ToolsInstall.php on line 4

mars 5, 2010 3 commentaires

Alors que je suis en train de monter un site de test en 1.3 pour faire des « expériences » sur Prestashop sans toucher à ma base de « prod », voici un extrait du message d’erreur après avoir tenté d’accéder au répertoire/install/ de mon nouveau site :

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in .../install/classes/ToolsInstall.php on line 4

Une solution est donnée sur ce message :

ceci vient du fait que vous faîtes une installation avec un serveur en Php4. vous devez activer le php 5 sur votre serveur.

Vous devez créer (ou ajouter) un fichier .htaccess sur la racine de votre serveur puis tapez la ligne suivante :

AddType application/x-httpd-php5 .php

et logiquement ça devrais fonctionner

Cela ressemble beaucoup (y compris la solution) au « problème » déjà rencontré lors du passage de la version 1.24 à 1.2.5 déjà explique ici.