Xelp59 Posted September 16, 2016 Share Posted September 16, 2016 (edited) Bonjour, Dans le cadre de la mise en place d'une plateforme de PRE-PROD pour un site qui est déjà en production, j'ai récupéré un Prestashop en ligne et le passer sous WAMP. Version de Prestashop : 1.5.6.1Version du serveur : Apache/2.4.9 (Win32) OpenSSL/1.0.1g PHP/5.5.12 J'ai paramétré mon Wamp afin d'avoir une config la plus proche de celle de production, nommé les bases de données ont de façon identique. J'utilise le hostname de ma machine pour accéder au Presta et non "Localhost" afin que les autres personnes qui travaillent avec moi puisse y accéder. J'ai également vidé les dossiers cache\smarty\compile et \cache\smarty\cache La partie Admin fonctionne partiellement, j'ai parfois quelques erreurs. Quand à la partie Front, impossible d'y accéder, voici le message d'erreur en PJ pour la partie front. ( ! ) Fatal error: Call to undefined method Cart::getBaseOrderTotal() in C:\wamp\www\_xxxxx\modules\blockcart\blockcart.php on line 118 Call Stack # Time Memory Function Location 1 0.0005 139480 {main}( ) ..\index.php:0 2 0.0686 4368232 DispatcherCore->dispatch( ) ..\index.php:29 3 0.0731 4765560 ControllerCore->run( ) ..\Dispatcher.php:348 4 0.0950 7373192 IndexControllerCore->initContent( ) ..\Controller.php:169 5 0.0951 7373416 FrontControllerCore->initContent( ) ..\IndexController.php:37 6 0.2491 13722688 HookCore::exec( ) ..\FrontController.php:436 7 0.2528 13765096 BlockCart->hookTop( ) ..\Hook.php:475 8 0.2528 13765152 BlockCart->hookRightColumn( ) ..\blockcart.php:228 9 0.2529 13766024 BlockCart->assignContentVars( ) ..\blockcart.php:188 Auriez vous quelques conseils s'il vous plait ? Par avance, merci =) Edited September 16, 2016 by Xelp59 (see edit history) Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 16, 2016 Share Posted September 16, 2016 Bonjour, Certains diront tout d'abord de passer en 1.6. Mais parfois il y a des contraintes. Si tu as essayé de faire un quasi iso-prod, force est quand même de constater que tu es en windows. Quid du serveur originel ? As tu vérifié les directives php du serveur originel et qu'elles soient iso sur ton windows ? Puisque on a une version en prod, peut être au moins installer sur ta machine la 1.5.6.3 ? (https://github.com/PrestaShop/PrestaShop-1.5) Enfin, pourrais tu STP mettre un copier coller du code de modules/blockcart/blockcart.php des lignes 102 à 126. Y'a un truc bizarre... Merci Link to comment Share on other sites More sharing options...
Xelp59 Posted September 16, 2016 Author Share Posted September 16, 2016 Merci Arnaud pour ta réponse, En effet, au début j'étais parti sur un serveur Linux meme virtuel avec un VWMARE par exemple mais on m'a suggéré WAMP ... J'avais fais un petit point sur la config du serveur distant avec par exemple : Linux #1 SMP Debian 3.2.60-1+deb7u3 x86_64 par exemple. Concernant l'évolution du PS, ca n'est pas à l'ordre du jour à la DSI ... Voici les lignes demandées : $this->smarty->assign(array( 'products' => $products, 'customizedDatas' => Product::getAllCustomizedDatas((int)($params['cart']->id)), 'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_, 'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_, 'discounts' => $cart_rules, 'nb_total_products' => (int)($nbTotalProducts), 'shipping_cost_base' => $shipping_cost_base, 'shipping_cost' => $shipping_cost, 'shipping_cost_float' => $shipping_cost_float, 'show_wrapping' => $wrappingCost > 0 ? true : false, 'show_tax' => (int)(Configuration::get('PS_TAX_DISPLAY') == 1 && (int)Configuration::get('PS_TAX')), 'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency), 'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'total' => Tools::displayPrice($totalToPay, $currency), 'total_wt' => Tools::displayPrice($params['cart']->getBaseOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING), $currency), 'order_process' => Configuration::get('PS_ORDER_PROCESS_TYPE') ? 'order-opc' : 'order', 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false, 'static_token' => Tools::getToken(false), 'smallSize' => Image::getSize('small_default'), 'static_token' => Tools::getToken(false) Merci encore =) Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 16, 2016 Share Posted September 16, 2016 Le conseil Wamp n'est à mon avis pas le plus judicieux, mais le DSI décide ! Sinon, le bloc a été retouché : tu as ça : 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false, 'static_token' => Tools::getToken(false), 'smallSize' => Image::getSize('small_default'), 'static_token' => Tools::getToken(false) Avec 2 fois le static_token d'ailleurs, et un shipping_cost_base ajouté (entre autres détails) au lieu de ça : 'ajax_allowed' => (int)(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false, 'static_token' => Tools::getToken(false) Sinon, en 118, c'est al récup d'un paramètre, rien d'exceptionnel, mais juste avant on a bien ton getBaseOrderTotal. Où est cette fonction ? Cherche là, elle devrait être dansclasses/Cart.php, en toute logique... Si non, alors faire une recherche dans les classes qui ont été modifiées, via une recherche windows Link to comment Share on other sites More sharing options...
Xelp59 Posted September 19, 2016 Author Share Posted September 19, 2016 (edited) Merci pour ta réponse, Entre temps j'ai pu faire quelques corrections suite à la constatation d'un autre bug dans le back office Maintenant j'ai ceci : [PrestaShopDatabaseException]Erreur de syntaxe près de 'AND fs.id_shop=1' à la ligne 1 SELECT fvl.value, fv.id_feature FROM ps_feature_value_lang AS fvl INNER JOIN ps_feature_value AS fv ON fvl.id_feature_value=fv.id_feature_value INNER JOIN ps_feature_product AS fp ON fp.id_feature_value=fvl.id_feature_value INNER JOIN ps_feature_shop AS fs ON fs.id_feature=fv.id_feature WHERE fvl.id_lang=1 AND fp.id_product= AND fs.id_shop=1 at line 613 in file classes/db/Db.php 607. WebserviceRequest::getInstance()->setError(500, '[SQL Error] '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97); 608. } 609. else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) 610. { 611. if ($sql) 612. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>'); 613. throw new PrestaShopDatabaseException($this->getMsgError()); 614. } 615. } 616. 617. /** La fonction dont tu parles est dans \override\classes\cart.php ... public function getBaseOrderTotal($with_taxes = true, $type = Cart::BOTH, $products = null, $id_carrier = null, $use_cache = true) { if (!$this->id) return 0; $type = (int)$type; $array_type = array( Cart::ONLY_PRODUCTS, Cart::ONLY_DISCOUNTS, Cart::BOTH, Cart::BOTH_WITHOUT_SHIPPING, Cart::ONLY_SHIPPING, Cart::ONLY_WRAPPING, Cart::ONLY_PRODUCTS_WITHOUT_SHIPPING, Cart::ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING, Cart::ONLY_PRODUCTS_WITHOUT_NEGATIVE ); Edited September 19, 2016 by Xelp59 (see edit history) Link to comment Share on other sites More sharing options...
Arnaud_69 Posted September 22, 2016 Share Posted September 22, 2016 Bonjour, retour après quelques jours de "je suis malade !" Ton erreur sql : "=1 AND fp.id_product= AND fs.id"... Tu as perdu la valeur de id_product !"fp.id_product= quoi ?" 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