Jump to content

rapirapinou

Members
  • Posts

    59
  • Joined

  • Last visited

Contact Methods

Profile Information

  • Activity
    Freelancer

rapirapinou's Achievements

Newbie

Newbie (1/14)

4

Reputation

  1. Merci. J'ai déjà essayé de supprimer le fichier class_index.php, pas de résultat. J'ai supprimé tous les overrides, idem. Pour les permissions, je ne trouve pas sur Windows 7 comment modifier les CHMOD.
  2. Bonjour à tous, Je me décide à poster ici car je ne trouve pas de solution. En vue d'upgrader ma boutique de la version 1.5.2.0 à la 1.6.1.12 (depuis le temps ^^), j'ai réinstallé WampServer sur mon PC pour m'en occuper en local. Donc WampServer installé, ftp et base de données transférés, j'ai mis en mode maintenance, désactivé cache et réécriture d'url, et désactivé les modules tiers. Problème, j'arrive bien à accéder au Back Office, mais impossible d'accéder au Front Office : page blanche. Je regarde avec Firebug : erreur 500. J'active les erreurs PHP et j'obtiens ceci : ( ! ) Notice: Undefined index: IndexControllerCore in C:\wamp64\www\prestashop-ancien\classes\Autoload.php on line 113 Call Stack # Time Memory Function Location 1 0.0000 238904 {main}( ) ...\index.php:0 2 0.0460 5572096 DispatcherCore->dispatch( ) ...\index.php:29 3 0.0480 5664504 ControllerCore::getController( ) ...\Dispatcher.php:342 4 0.0480 5664856 spl_autoload_call ( ) ...\Dispatcher.php:129 5 0.0480 5664888 Autoload->load( ) ...\Dispatcher.php:129 6 0.0490 5666960 require_once( 'C:\wamp64\www\prestashop-ancien\override\controllers\front\IndexController.php' ) ...\Autoload.php:108 7 0.0490 5667232 spl_autoload_call ( ) ...\Autoload.php:4 8 0.0490 5667272 Autoload->load( ) ...\Autoload.php:4 ( ! ) Warning: require(C:\wamp64\www\prestashop-ancien): failed to open stream: Permission denied in C:\wamp64\www\prestashop-ancien\classes\Autoload.php on line 113 Call Stack # Time Memory Function Location 1 0.0000 238904 {main}( ) ...\index.php:0 2 0.0460 5572096 DispatcherCore->dispatch( ) ...\index.php:29 3 0.0480 5664504 ControllerCore::getController( ) ...\Dispatcher.php:342 4 0.0480 5664856 spl_autoload_call ( ) ...\Dispatcher.php:129 5 0.0480 5664888 Autoload->load( ) ...\Dispatcher.php:129 6 0.0490 5666960 require_once( 'C:\wamp64\www\prestashop-ancien\override\controllers\front\IndexController.php' ) ...\Autoload.php:108 7 0.0490 5667232 spl_autoload_call ( ) ...\Autoload.php:4 8 0.0490 5667272 Autoload->load( ) ...\Autoload.php:4 ( ! ) Fatal error: require(): Failed opening required 'C:\wamp64\www\prestashop-ancien/' (include_path='.;C:\php\pear') in C:\wamp64\www\prestashop-ancien\classes\Autoload.php on line 113 Call Stack # Time Memory Function Location 1 0.0000 238904 {main}( ) ...\index.php:0 2 0.0460 5572096 DispatcherCore->dispatch( ) ...\index.php:29 3 0.0480 5664504 ControllerCore::getController( ) ...\Dispatcher.php:342 4 0.0480 5664856 spl_autoload_call ( ) ...\Dispatcher.php:129 5 0.0480 5664888 Autoload->load( ) ...\Dispatcher.php:129 6 0.0490 5666960 require_once( 'C:\wamp64\www\prestashop-ancien\override\controllers\front\IndexController.php' ) ...\Autoload.php:108 7 0.0490 5667232 spl_autoload_call ( ) ...\Autoload.php:4 8 0.0490 5667272 Autoload->load( ) ...\Autoload.php:4 Merci de votre aide.
  3. Oui, c'est parce que de la manière dont on a procédé, la nouvelle variable est créée dans la fonction "getPackageShippingCost" qui ne retourne que $shipping_cost. Il faudrait à la fin de la fonction modifier ça : return $shipping_cost; par ça : return array( 'shipping_cost' => $shipping_cost, 'handling_charges' => $handling_charges, );
  4. C'est la bonne piste il me semble oui, regarde dans php ce que veut dire le signe =+ pour comprendre comment adapter ton code. Je ne suis pas allé voir le code en détail, mais à priori, dans le fichier php il faudrait : - Supprimer le code cité plus haut. - Créer un nouvelle variable du type : $handling_charges = (float)$configuration['PS_SHIPPING_HANDLING']; Pour ensuite l'afficher dans le fichier tpl correpondant.
  5. Bonjour, En fait tout se situe dans le fichier AdminHomeController.php (répertoire controllers/admin). Je ne me sens pas le courage ce soir de tout détailler mais voici mes modifs perso qui devraient pouvoir t'aiguiller : public function getMonthlyStatistics() { $moisprecedent = date("m")-1; $currency = Tools::setCurrency($this->context->cookie); $resultm = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT IFNULL(SUM(`total_paid_tax_excl` / conversion_rate), "0") as total_sales, COUNT(*) as total_orders FROM `'._DB_PREFIX_.'orders` WHERE valid = 1 AND `invoice_date` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\' '.Shop::addSqlRestriction(Shop::SHARE_ORDER).' '); $resultavoirsmttc = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT SUM(`amount`) as total_avoirs, COUNT(*) as nombre_avoirs FROM `'._DB_PREFIX_.'order_slip` WHERE `date_add` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\' '); $resultavoirsm = $resultavoirsmttc['total_avoirs'] / 1.2; $resultfinalm = ($resultm['total_sales'] - $resultavoirsn); $resultfinalordersm = ($resultm['total_orders'] - $resultavoirsm['nombre_avoirs']); $resultmmoinsun = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT IFNULL(SUM(`total_paid_tax_excl` / conversion_rate), "0") as total_sales, COUNT(*) as total_orders FROM `'._DB_PREFIX_.'orders` WHERE valid = 1 AND `invoice_date` BETWEEN \''.date('Y').'-'.($moisprecedent).'-01 00:00:00\' AND \''.date('Y').'-'.($moisprecedent).'-31 23:59:59\' '.Shop::addSqlRestriction(Shop::SHARE_ORDER).' '); $resultavoirsmmoinsunttc = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT SUM(`amount`) as total_avoirs, COUNT(*) as nombre_avoirs FROM `'._DB_PREFIX_.'order_slip` WHERE `date_add` BETWEEN \''.date('Y').'-'.($moisprecedent).'-01 00:00:00\' AND \''.date('Y').'-'.($moisprecedent).'-31 23:59:59\' '); $resultavoirsmmoinsun = $resultavoirsmmoinsunttc['total_avoirs'] / 1.2; $resultfinalmmoinsun = ($resultmmoinsun['total_sales'] - $resultavoirsmmoinsun); $resultfinalordersmmoinsun = ($resultmmoinsun['total_orders'] - $resultavoirsmmoinsun['nombre_avoirs']); $resultinscription = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT COUNT(`id_customer`) AS total_registrations FROM `'._DB_PREFIX_.'customer` c WHERE c.`date_add` BETWEEN \''.date('Y-m').'-01 00:00:00\' AND \''.date('Y-m').'-31 23:59:59\' '.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER).' '); $jourdumois = date("d"); $cajour = ($resultfinalm / $jourdumois); $commandejour = ($resultfinalordersm / $jourdumois); $jourstotalmois = date("t"); $previsionmensuelle = ($cajour * $jourstotalmois); $paniermoyen = ($resultm['total_sales'] / $resultm['total_orders'] * 1.2); $paniermoyenmmoinsun = ($resultmmoinsun['total_sales'] / $resultmmoinsun['total_orders'] * 1.2); $evolutionventes = number_format(($previsionmensuelle - $resultfinalmmoinsun) / $resultfinalmmoinsun * 100, 2); $evolutionpaniermoyen = number_format(($paniermoyen - $paniermoyenmmoinsun) / $paniermoyenmmoinsun * 100, 2); $content = '<div class="table_info"> <h5><a href="index.php?tab=AdminStats&token='.Tools::getAdminTokenLite('AdminStats').'">'.$this->l('View more').'</a> '.$this->l('This month\'s activity').' </h5> <table class="table_info_details" style="width:100%;"> <colgroup> <col width=""> <col width="80px"> </colgroup> <tr class="tr_odd"> <td class="td_align_left"> '.$this->l('Sales').' HT </td> <td> ' .Tools::displayPrice($resultfinalm, $currency) .' </td> </tr> <tr> <td class="td_align_left"> Prévisionnel HT mois en cours </td> <td> '.Tools::displayPrice($previsionmensuelle, $currency).' </td> </tr> <tr class="tr_odd"> <td class="td_align_left"> Ventes M-1 </td> <td> '.Tools::displayPrice($resultfinalmmoinsun, $currency).' </td> </tr> <tr> <td class="td_align_left"> Evolution ventes </td> <td> '.($evolutionventes).' % </td> </tr> <tr class="tr_odd"> <td class="td_align_left"> Panier moyen TTC </td> <td> '.Tools::displayPrice($paniermoyen, $currency).' </td> </tr> <tr> <td class="td_align_left"> Panier moyen M-1 </td> <td> '.Tools::displayPrice($paniermoyenmmoinsun, $currency).' </td> </tr> <tr class="tr_odd"> <td class="td_align_left"> Evolution panier moyen </td> <td> '.($evolutionpaniermoyen).' % </td> </tr> <tr> <td class="td_align_left"> '.$this->l('Total registrations').' </td> <td> '.(int)($resultinscription['total_registrations']).' </td> </tr> <tr class="tr_odd"> <td class="td_align_left"> '.$this->l('Total orders').' </td> <td> '.(int)($resultfinalordersm).' </td> </tr> <tr> <td class="td_align_left"> CA / jour </td> <td> '.Tools::displayPrice($cajour, $currency).' </td> </tr> <tr class="tr_odd"> <td class="td_align_left"> Commandes / jour </td> <td> '.(int)($commandejour).' </td> </tr> </table> </div>'; return $content; } Il faut sortir le total des ventes, puis le total des avoirs, pour finalement calculer la différence des deux. Dans le code, il y a quelques stats utiles dans mon domaine d'activité, à implémenter ou non dans ton cas. J'ai intégré le taux de TVA à 20% en dur dans le code, il faudrait voir pour récupérer la variable du taux de taxe pour quelque chose de pérenne à long terme, mais pas le temps de m'en occuper dans l'immédiat. Have fun
  6. Si tu modifies le premier code par le second en faisant un copier/coller, aucun risque de tout planter Il faut simplement vérifier que ton compte Google Analytics est passé sur Universal Analytics, et que dans le module tu aies coché la case "Universal Analytics Active". Aucun talent de développeur requis, si c'est la longueur de mon post qui fait peur, il ne faut pas, j'ai fait un pâté juste pour les curieux qui veulent comprendre le fonctionnement plutôt que simplement copier le code Je suis intéressé par ton retour si tu utilises cette méthode, voir si ça fonctionne également chez d'autres utilisateurs et remonter l'info à Prestashop le cas échéant. ++
  7. Bonjour, Je me suis penché sur le problème des objectifs GA ce jour, voici la cause du problème et sa solution : Je pars du postulat suivant : Vous utilisez le module Google Analytics natif de Prestashop, configuré avec Universal Analytics (comme votre compte Google Analytics). Il y a une erreur sur le module, depuis le passage à la version Universal Analytics, la façon de renommer les pages envoyées à GA n'est plus la même. Bien que la nouvelle version du module prenne bien en compte le nouveau code Universal Analytics, il contient une erreur sur la partie qui nous intéresse dans le cas présent. Dans le fichier header.tpl (répertoire modules/ganalytics/views/templates/hook), voici ce qu'on a de base : ga('create', '{$ganalytics_id|escape:'htmlall':'UTF-8'}'{if isset($pageTrack)}, '{$pageTrack|escape:'htmlall':'UTF-8'}'{/if}); {if $isOrder eq true} ga('require', 'ecommerce', 'ecommerce.js'); {else} ga('send', 'pageview'); {/if} Pour piger le fonctionnement : A cause notamment des URL réécrites dans Prestashop, il faut donner une URL de tracking personnalisée à chacune des pages du tunnel de commande pour qu'elles soient bien prises en compte dans GA. Sur le code précédent, l'URL de tracking personnalisée de la page est la variable $pageTrack, qui attribue automatiquement les URL qu'on connait tous : order/step0.html, order/step1.html, etc... Le problème est que la variable n'est pas au bon endroit, elle ne doit pas être dans le 'create' mais dans le 'send'. Voici le code correct pour remplacer le précédent : ga('create', '{$ganalytics_id|escape:'htmlall':'UTF-8'}'); {if $isOrder eq true} ga('require', 'ecommerce', 'ecommerce.js'); {else} {if $page_name == 'order-confirmation'} ga('send', 'pageview', {ldelim}'page': '/order-confirmation.php'{rdelim}); {else} ga('send', 'pageview'{if isset($pageTrack)}, {ldelim}'page': '{$pageTrack|escape:'htmlall':'UTF-8'}'{rdelim}{/if}); {/if} {/if} Lors de mes tests, je me suis rendu compte que même en mettant $pageTrack au bon endroit, il ne réécrivait pas l'URL de la page de confirmation de commande, ce qui explique la condition supplémentaire if $page_name. Avec ce nouveau code, vous pourrez désormais paramétrer et analyser vos objectifs sur le tunnel de commande. Attention, valable uniquement pour les modules de paiement qui renvoient sur index.php?controller=order-confirmation (vérifié avec chèque, virement, payzen, les autres à tester...). Je sais que Paypal renvoie sur une page spécifique du type module/paypal/submit, mais je ne l'ai pas activé sur ma boutique pour pouvoir vérifier. Si jamais le code ne renvoie pas l'URL de tracking personnalisée pour cette page, il faudra récupérer le $page_name grâce à la console SMARTY_DEBUG et adapter le code en conséquence. A priori un truc du genre : {if $page_name == 'order-confirmation' || $page_name == 'XXXpageNamePaypalXXX'} Avec tout ça, vous devriez vous en sortir. En espérant vous être utile et vous faire économiser un peu de ce temps si précieux qui nous manque tous ++
  8. Le code est dans mon message précédent. Il faut l'adapter à ta page, mais l'essentiel est là. Ce sont des éléments de base en CSS, si tu ne maitrises pas le sujet je te conseille de fouiner un peu sur le net pour apprendre le CSS, ça te servira par la suite
  9. Il faut jouer sur le CSS comme sur le bloc juste en dessous (Ajout de texte). Float:right sur le premier bloc (Oui - Tête / Chapeau) Float:left sur le deuxième bloc (Chargez un fichier (upload)) Float:right sur le bloc ([Ajouter 20,00 €]) Ensuite jouer sur les width et margin des différents blocs pour ajuster leur placement. Egalement ajouter un width:100% (ou un peu moins) sur le contenant, actuellement à 497px en dur dans le html.
  10. Bonsoir, Un lien pour accéder à la page stp ? Pour voir comment elle est construite, ce sera plus simple.
  11. Bonjour, Je suis en train d'expérimenter les tests A/B sur ma boutique, mais je suis embêté avec le tunnel de commande. J'aimerais tester un élément sur la page du panier. Seulement dans la configuration du test dans Google Analytics, celui-ci n'accepte pas l'url http://www.monsite.com/order/step0.html (comme dans la configuration des objectifs par exemple). Il faut lui indiquer l'url qui s'affiche sur le navigateur, soit http://www.monsite.com/commande Le problème, c'est que la page de l'étape frais de port a la même url http://www.monsite.com/commande Ainsi il est impossible d'accéder à la dernière étape du tunnel de commande une fois le test A/B en route : à l'étape frais de port, au clic sur le bouton "commander", on est systématiquement redirigé sur la page panier de départ. Pas trouvé de début de réponse dans GA ni ailleurs sur le net. Peut-être une âme charitable pour venir m'aider ici ? Merci.
  12. Bonjour, Tu peux effectivement le déplacer en ajoutant un hook à ton module, par contre il faudra refaire toute la mise en page du module car tu passes d'un format horizontal à vertical. Comme l'a indiqué Jacques, je privilégierais également d'installer un nouveau bloc dans ta sidebar, tu pourras d'ailleurs ajouter plus d'infos et plus détaillées. Un exemple de ce que j'ai fait sur un site si ça peut te donner des idées : http://www.tubenco.com/41-chambre-a-air-135-145-13-tr13.html.
  13. Effectivement, je n'avais pas remarqué pour l'ajout de nouveaux produits, je les intègre par import csv. Merci pour le retour.
  14. Ca fonctionne nickel ! Pour ma part j'ai commenté l'ensemble de la fonction : /* product_tabs['Seo'] = new function(){ var self = this; this.onReady = function() { copy2friendlyURL(); // Enable writing of the product name when the friendly url field in tab SEO is loaded $('.copy2friendlyUrl').removeAttr('disabled'); displayFlags(languages, id_language, allowEmployeeFormLang); if (display_multishop_checkboxes) ProductMultishop.checkAllSeo(); }; } */ Ne pas oublier d'effacer le cache et recompiler ensuite pour que ce soit pris en compte Merci de l'info, sined79.
×
×
  • Create New...