fxdesca Posted October 2, 2012 Share Posted October 2, 2012 Bonjour, Je suis coincé la dessus depuis un petit moment. Afin de réaliser des test sur la performance des pages produits de mon e-commerce, je voudrais mettre en place en test A/B via google analytics : c'est à dire, créer 2 pages produits (par ex) différentes, et renvoyer 50% du trafic vers la page A, et 50% du trafic vers la page B. Voici le seul début de réponse que j'ai pu trouver : - tu dupliques l’original (le thème) et ne modifie que la page ou morceau de page test - tu intègres une variable dans l’url comme ?testab=b - tu modifies le settings.inc.php : if (ta_condition) { define(‘_THEME_NAME_’, ‘themeA’); } else { define(‘_THEME_NAME_’, ‘themeB’); } Je bloque sur les 2 points affichés en rouge. Comment puis-je concrètement "intégrer une variable" dans l'url ? Merci Link to comment Share on other sites More sharing options...
Ninja Of Web Posted October 2, 2012 Share Posted October 2, 2012 Bonjour, Voici une réponse pour la 1.5 : Si tu veut faire le test uniquement sur la page produit je te suggère de surcharger la méthode iniContent() du fichier "controllers\front\productController.php". Il te suffira d'ajouter cette méthode dans le fichier suivant : "override\controllers\front\productController.php". A la fin de cette méthode du à l'appel au template "product.tpl": $this->setTemplate(_PS_THEME_DIR_.'product.tpl'); modifie ce code en utilisant ta contition : if (ta_condition) $this->setTemplate(_PS_THEME_DIR_.'product-A.tpl'); else $this->setTemplate(_PS_THEME_DIR_.'product-B.tpl'); Note: en 1.4 il s'agit de la méthode "displayContent()" du même fichier. Cordialement, Loïc. 1 Link to comment Share on other sites More sharing options...
fxdesca Posted October 2, 2012 Author Share Posted October 2, 2012 (edited) Bonjour, Voici une réponse pour la 1.5 : Si tu veut faire le test uniquement sur la page produit je te suggère de surcharger la méthode iniContent() du fichier "controllers\front\productController.php". Il te suffira d'ajouter cette méthode dans le fichier suivant : "override\controllers\front\productController.php". A la fin de cette méthode du à l'appel au template "product.tpl": $this->setTemplate(_PS_THEME_DIR_.'product.tpl'); modifie ce code en utilisant ta contition : if (ta_condition) $this->setTemplate(_PS_THEME_DIR_.'product-A.tpl'); else $this->setTemplate(_PS_THEME_DIR_.'product-B.tpl'); Note: en 1.4 il s'agit de la méthode "displayContent()" du même fichier. Cordialement, Loïc. Ok merci beaucoup. Par contre par quoi dois-je remplacer "ta_condition" ? Je suis effectivement en 1.4 Cordialement, PS: Mon dossier override est vide ! Edited October 2, 2012 by fxdesca (see edit history) Link to comment Share on other sites More sharing options...
Ninja Of Web Posted October 2, 2012 Share Posted October 2, 2012 Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php". Pour la condition c'est à vous de la déterminer... Ex de condition: * Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B". * Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B". ... ect Cordialement, Loïc. 1 Link to comment Share on other sites More sharing options...
fxdesca Posted October 2, 2012 Author Share Posted October 2, 2012 Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php". Pour la condition c'est à vous de la déterminer... Ex de condition: * Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B". * Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B". ... ect Cordialement, Loïc. Très bien, je vais de ça pas essayer de mettre en place tout ça. Merci encore pour cette aide précieuse. Cordialement, François Link to comment Share on other sites More sharing options...
fxdesca Posted October 2, 2012 Author Share Posted October 2, 2012 Bon je reviens après une petit phase de test qui n' a pas fonctionné : j'ai modifier le fichier ProductController.php comme cela : public function displayContent() { parent::displayContent(); if($logged) self::$smarty->display(_PS_THEME_DIR_.'product.tpl'); else self::$smarty->display(_PS_THEME_DIR_.'product2.tpl'); } Dans les deux cas, que je sois connecté ou pas, ça m'affiche le template modifié... Link to comment Share on other sites More sharing options...
fxdesca Posted October 2, 2012 Author Share Posted October 2, 2012 Si votre dossier override est vide en 1.4 c'est normal il faut créer votre propre fichier "productController.php". Pour la condition c'est à vous de la déterminer... Ex de condition: * Les clients connectés voit le template "product-A" et que les non-connectés, le template "product-B". * Les clients du groupe A voient le template "product-A" et que les client du groupe B et C voient le template "product-B". ... ect Cordialement, Loïc. J'ai résolu le probème avec ce code public function displayContent() { parent::displayContent(); global $cookie; if ($cookie->isLogged()) self::$smarty->display(_PS_THEME_DIR_.'product.tpl'); else self::$smarty->display(_PS_THEME_DIR_.'product3.tpl'); } Cependant pour réaliser les tests je dois renseigner 2 url différentes, comment puis-je les différencier ? En passant une variable dans l'url ? Mais comment ? Merci pour votre aide Link to comment Share on other sites More sharing options...
Ninja Of Web Posted October 3, 2012 Share Posted October 3, 2012 Bonjour, Je ne pense pas que le paramètre dans une URL soit la meilleure solution. Je vous suggère d'utiliser une requête AJAX dans chaque template. Cordialement, Loïc. Link to comment Share on other sites More sharing options...
fxdesca Posted October 3, 2012 Author Share Posted October 3, 2012 Bonjour, Je suis un noob un AJAX ou PHP. Auriez vous une ligne de code à me faire parvenir que je puisse adapter à mon cas ? Merci François Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now