Philippe83000 Posted January 20, 2015 Share Posted January 20, 2015 Bonjour Tout nouveau sur le forum, j'ai installé il y a une quinzaine de jours la version 1.6.0.9 et j'ai commencé la configuration de la boutique et ajouté des produits. Le bug que je signale aujourd'hui n'existait pas. Une mise à jour vers la version 1.6.0.11 m'a été proposée par le module 1-Click Upgrade il y a quelques jours, mais je n'ai pas testé les pages publiques immédiatement. Or maintenant, sur la page de détails d'un produit, le prix affiché est toujours 0, quelle que soit la quantité ou la déclinaison choisie. J'ai tout d'abord incriminé un thème acheté sur addons.prestashop.com (Fashion Shop Responsive), mais le souci est le même avec le thème default-bootstrap, tous caches vidés (smarty et navigateur) Dans le code source de la page, je trouve bien le prix : <span id="our_price_display" itemprop="price">59,99 €</span> (et aussi ses déclinaisons dans les variables js) mais dans le DOM (code source généré) cette valeur est à 0 (sans même le €) <span id="our_price_display" itemprop="price">0</span> Changer de quantités comme de déclinaisons n'actualise pas ce montant affiché. Toutefois, si on choisit une quantité ou une déclinaison et qu'on ajoute le produit au panier, le prix est correctement calculé et affiché dans le panier. C'est visible ici : http://www.plantes-tropicales.com/prestashop/bougainvilliers/12-bougainvillier-spectroglabra.html Merci pour toute suggestion. J'ai bien pensé faire un Rollback proposé par le plugin 1-Click Upgrade, mais je n'en mesure pas le risque et préfèrerais être à jour Link to comment Share on other sites More sharing options...
samyha Posted January 20, 2015 Share Posted January 20, 2015 Bonjour, Par curiosité, as-tu configuré des quantités pour tes produits ? Link to comment Share on other sites More sharing options...
Philippe83000 Posted January 20, 2015 Author Share Posted January 20, 2015 Merci de ta curiosité Oui, il y a bien des produits disponibles, et on peut les ajouter au panier qui calcule correctement les prix. Le souci est l'affichage du prix sur la page produit qui est toujours 0, quel que soit le nombre de produits ou leur déclinaisons, comme on peut le voir sur le lien que j'ai donné Link to comment Share on other sites More sharing options...
Philippe83000 Posted January 20, 2015 Author Share Posted January 20, 2015 J'ai activé le mode debug de prestashop. Une des premières erreurs que je trouve en partie publique est Notice: Constant _PS_PRICE_DISPLAY_PRECISION_ already defined in /../www/prestashop/config/config.inc.php on line 115 Cette ligne contient define('_PS_PRICE_DISPLAY_PRECISION_', Configuration::get('PS_PRICE_DISPLAY_PRECISION')); J'ai cru comprendre que la gestion des arrondis a changé avec la version 1.6.0.11, cela est-il lié et savez-vous comment le corriger ? Côté admin, le mode debug affiche pas mal d'erreurs mais toujours la Notice comme ci-dessus Link to comment Share on other sites More sharing options...
Philippe83000 Posted January 21, 2015 Author Share Posted January 21, 2015 Après une mise à jour manuelle (upload et écrasement des fichiers) vers la 1.6.0.11 une partie du bug est résolue. Il semble qu'il y ait eu un souci pendant le 1-Click Upgrade (?) et que certains fichiers n'aient pas été mis à jour. Quoi qu'il en soit, le prix est maintenant correctement affiché, et modifié lors d'un changement de déclinaison. Toutefois il n'est pas modifié lors d'un ajout de quantité (le panier calcule correctement le prix, ce n'est qu'une question d'affichage sur la page produit), est-ce normal ? Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 Bonjour, le même bug se présente pour moi. je suis en presta 1.6.0.9 et j'ai voulu faire un update vers 1.6.0.11 qui n'a pas marché (?). Bref, j'ai également cette erreur : Notice: Constant _PS_PRICE_DISPLAY_PRECISION_ already defined in /home/euromatik/www/config/config.inc.php on line 115 qui s'affiche et je ne comprend pas bien pourquoi... j'ai éssayé d'aller jeter un oeil dans le fichier spécifié mais sans succès. Quelqu'un a t'il découvert un début de quelque chose là dessus? Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Après une mise à jour manuelle (upload et écrasement des fichiers) vers la 1.6.0.11 une partie du bug est résolue. Il semble qu'il y ait eu un souci pendant le 1-Click Upgrade (?) et que certains fichiers n'aient pas été mis à jour. Quoi qu'il en soit, le prix est maintenant correctement affiché, et modifié lors d'un changement de déclinaison. Toutefois il n'est pas modifié lors d'un ajout de quantité (le panier calcule correctement le prix, ce n'est qu'une question d'affichage sur la page produit), est-ce normal ? Le prix n'est pas modifié lors du changement de quantités sur les thèmes basiques. Il faut rajouter une fonction js pour cela ^^ Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Bonjour, le même bug se présente pour moi. je suis en presta 1.6.0.9 et j'ai voulu faire un update vers 1.6.0.11 qui n'a pas marché (?). Bref, j'ai également cette erreur : Notice: Constant _PS_PRICE_DISPLAY_PRECISION_ already defined in /home/euromatik/www/config/config.inc.php on line 115 qui s'affiche et je ne comprend pas bien pourquoi... j'ai éssayé d'aller jeter un oeil dans le fichier spécifié mais sans succès. Quelqu'un a t'il découvert un début de quelque chose là dessus? Pouvez-vous regarder si votre fichier /config/defines.inc.php contient cette ligne svp ? define('_PS_PRICE_DISPLAY_PRECISION_', 2); Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 (edited) oui il contient bien cette ligne. je viens de la commenter donc il ne m'affiche plus le message de notification mais je ne fais que contourner le problème de cette façon... Edited February 16, 2015 by kingfaya (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 ben voilà... mise à jour foireuse. Veuillez remplacer le contenu de ce fichier par ceci <?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ /* Debug only */ if (!defined('_PS_MODE_DEV_')) define('_PS_MODE_DEV_', false); /* Compatibility warning */ define('_PS_DISPLAY_COMPATIBILITY_WARNING_', false); if (_PS_MODE_DEV_ === true) { @ini_set('display_errors', 'on'); @error_reporting(E_ALL | E_STRICT); define('_PS_DEBUG_SQL_', true); } else { @ini_set('display_errors', 'off'); define('_PS_DEBUG_SQL_', false); } define('_PS_DEBUG_PROFILING_', false); define('_PS_MODE_DEMO_', false); $currentDir = dirname(__FILE__); if (!defined('PHP_VERSION_ID')) { $version = explode('.', PHP_VERSION); define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2])); } if (!defined('_PS_VERSION_') && (getenv('_PS_VERSION_') || getenv('REDIRECT__PS_VERSION_'))) define('_PS_VERSION_', getenv('_PS_VERSION_') ? getenv('_PS_VERSION_') : getenv('REDIRECT__PS_VERSION_')); if (!defined('_PS_HOST_MODE_') && (getenv('_PS_HOST_MODE_') || getenv('REDIRECT__PS_HOST_MODE_'))) define('_PS_HOST_MODE_', getenv('_PS_HOST_MODE_') ? getenv('_PS_HOST_MODE_') : getenv('REDIRECT__PS_HOST_MODE_')); if (!defined('_PS_ROOT_DIR_') && (getenv('_PS_ROOT_DIR_') || getenv('REDIRECT__PS_ROOT_DIR_'))) define('_PS_ROOT_DIR_', getenv('_PS_ROOT_DIR_') ? getenv('_PS_ROOT_DIR_') : getenv('REDIRECT__PS_ROOT_DIR_')); /* Directories */ if (!defined('_PS_ROOT_DIR_')) define('_PS_ROOT_DIR_', realpath($currentDir.'/..')); if (!defined('_PS_CORE_DIR_')) define('_PS_CORE_DIR_', realpath($currentDir.'/..')); define('_PS_ALL_THEMES_DIR_', _PS_ROOT_DIR_.'/themes/'); /* BO THEMES */ if (defined('_PS_ADMIN_DIR_')) define('_PS_BO_ALL_THEMES_DIR_', _PS_ADMIN_DIR_.'/themes/'); define('_PS_CACHE_DIR_', _PS_ROOT_DIR_.'/cache/'); define('_PS_CONFIG_DIR_', _PS_CORE_DIR_.'/config/'); define('_PS_CLASS_DIR_', _PS_CORE_DIR_.'/classes/'); define('_PS_DOWNLOAD_DIR_', _PS_ROOT_DIR_.'/download/'); define('_PS_MAIL_DIR_', _PS_CORE_DIR_.'/mails/'); if (!defined('_PS_MODULE_DIR_')) define('_PS_MODULE_DIR_', _PS_ROOT_DIR_.'/modules/'); if (!defined('_PS_OVERRIDE_DIR_')) define('_PS_OVERRIDE_DIR_', _PS_ROOT_DIR_.'/override/'); define('_PS_PDF_DIR_', _PS_CORE_DIR_.'/pdf/'); define('_PS_TRANSLATIONS_DIR_', _PS_ROOT_DIR_.'/translations/'); define('_PS_UPLOAD_DIR_', _PS_ROOT_DIR_.'/upload/'); define('_PS_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/'); define('_PS_ADMIN_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/admin/'); define('_PS_FRONT_CONTROLLER_DIR_', _PS_CORE_DIR_.'/controllers/front/'); define('_PS_TOOL_DIR_', _PS_CORE_DIR_.'/tools/'); define('_PS_GEOIP_DIR_', _PS_TOOL_DIR_.'geoip/'); define('_PS_PEAR_XML_PARSER_PATH_', _PS_TOOL_DIR_.'pear_xml_parser/'); define('_PS_SWIFT_DIR_', _PS_TOOL_DIR_.'swift/'); define('_PS_TAASC_PATH_', _PS_TOOL_DIR_.'taasc/'); define('_PS_TCPDF_PATH_', _PS_TOOL_DIR_.'tcpdf/'); define('_PS_IMG_DIR_', _PS_ROOT_DIR_.'/img/'); if (!defined('_PS_HOST_MODE_')) define('_PS_CORE_IMG_DIR_', _PS_CORE_DIR_.'/img/'); else define('_PS_CORE_IMG_DIR_', _PS_ROOT_DIR_.'/img/'); define('_PS_CAT_IMG_DIR_', _PS_IMG_DIR_.'c/'); define('_PS_COL_IMG_DIR_', _PS_IMG_DIR_.'co/'); define('_PS_EMPLOYEE_IMG_DIR_', _PS_IMG_DIR_.'e/'); define('_PS_GENDERS_DIR_', _PS_IMG_DIR_.'genders/'); define('_PS_LANG_IMG_DIR_', _PS_IMG_DIR_.'l/'); define('_PS_MANU_IMG_DIR_', _PS_IMG_DIR_.'m/'); define('_PS_ORDER_STATE_IMG_DIR_', _PS_IMG_DIR_.'os/'); define('_PS_PROD_IMG_DIR_', _PS_IMG_DIR_.'p/'); define('_PS_SCENE_IMG_DIR_', _PS_IMG_DIR_.'scenes/'); define('_PS_SCENE_THUMB_IMG_DIR_', _PS_IMG_DIR_.'scenes/thumbs/'); define('_PS_SHIP_IMG_DIR_', _PS_IMG_DIR_.'s/'); define('_PS_STORE_IMG_DIR_', _PS_IMG_DIR_.'st/'); define('_PS_SUPP_IMG_DIR_', _PS_IMG_DIR_.'su/'); define('_PS_TMP_IMG_DIR_', _PS_IMG_DIR_.'tmp/'); /* settings php */ define('_PS_TRANS_PATTERN_', '(.*[^\\\\])'); define('_PS_MIN_TIME_GENERATE_PASSWD_', '360'); if (!defined('_PS_MAGIC_QUOTES_GPC_')) define('_PS_MAGIC_QUOTES_GPC_', get_magic_quotes_gpc()); define('_CAN_LOAD_FILES_', 1); /* Order statuses Order statuses have been moved into config.inc.php file for backward compatibility reasons */ /* Tax behavior */ define('PS_PRODUCT_TAX', 0); define('PS_STATE_TAX', 1); define('PS_BOTH_TAX', 2); define('PS_TAX_EXC', 1); define('PS_TAX_INC', 0); define('PS_ORDER_PROCESS_STANDARD', 0); define('PS_ORDER_PROCESS_OPC', 1); define('PS_ROUND_UP', 0); define('PS_ROUND_DOWN', 1); define('PS_ROUND_HALF_UP', 2); define('PS_ROUND_HALF_DOWN', 3); define('PS_ROUND_HALF_EVEN', 4); define('PS_ROUND_HALF_ODD', 5); /* Backward compatibility */ define('PS_ROUND_HALF', PS_ROUND_HALF_UP); /* Registration behavior */ define('PS_REGISTRATION_PROCESS_STANDARD', 0); define('PS_REGISTRATION_PROCESS_AIO', 1); /* Carrier::getCarriers() filter */ // these defines are DEPRECATED since 1.4.5 version define('PS_CARRIERS_ONLY', 1); define('CARRIERS_MODULE', 2); define('CARRIERS_MODULE_NEED_RANGE', 3); define('PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE', 4); define('ALL_CARRIERS', 5); /* SQL Replication management */ define('_PS_USE_SQL_SLAVE_', 0); /* PS Technical configuration */ define('_PS_ADMIN_PROFILE_', 1); /* Stock Movement */ define('_STOCK_MOVEMENT_ORDER_REASON_', 3); define('_STOCK_MOVEMENT_MISSING_REASON_', 4); /** * @deprecated 1.5.0.1 * @see Configuration::get('PS_CUSTOMER_GROUP') */ define('_PS_DEFAULT_CUSTOMER_GROUP_', 3); define('_PS_CACHEFS_DIRECTORY_', _PS_ROOT_DIR_.'/cache/cachefs/'); /* Geolocation */ define('_PS_GEOLOCATION_NO_CATALOG_', 0); define('_PS_GEOLOCATION_NO_ORDER_', 1); define('MIN_PASSWD_LENGTH', 8); define('_PS_SMARTY_NO_COMPILE_', 0); define('_PS_SMARTY_CHECK_COMPILE_', 1); define('_PS_SMARTY_FORCE_COMPILE_', 2); define('_PS_SMARTY_CONSOLE_CLOSE_', 0); define('_PS_SMARTY_CONSOLE_OPEN_BY_URL_', 1); define('_PS_SMARTY_CONSOLE_OPEN_', 2); define('_PS_JQUERY_VERSION_', '1.11.0'); Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 ça marche nickel merci ^^ juste pour ma culture perso: quel était le truc qui coinçait? Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Et bien dans votre version précédente la constante _PS_PRICE_DISPLAY_PRECISION_ était définie dans ce fichier(defines.inc.php), ce qui n'est plus le cas dans la 1.6. Lors de votre mise à jour, ce fichier aurait dû être écrasé par le nouveau, ce qui n'a pas été le cas. Du coup la définition de cette constante dans l'autre fichier (config.inc.php) entrainait un avertissement disant que cette constante est déjà définie. Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 (edited) Ok... donc si je me base la dessus, est il possible que ce fichier ne soit pas le seul ayant ce genre de "défaut"? comment puis-je pister ces fichier "défectueux"? merci encore pour votre disponibilité et votre réactivité. La communauté prestashop est vraiment soudée et ça fait plaisir à voir Edited February 16, 2015 by kingfaya (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Un check dans le BO paramètres avancés -> Informations vous donnera la liste des fichiers modifiés (en bas de la page) Cet utilitaire compare les fichiers de votre boutique avec ceux de la version officielle. Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 oui j'avais remarqué ce détail. Et donc les fichiers qui sont indiqués dans cette partie, il faut les remplacer par des fichiers de la version officielle du site c'est bien cela? Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Oui et non, cela dépend comment votre ancienne boutique a été "customisée". Si vous ne savez pas ce que vous faites, évitez de modifier quoi que ce soit. La liste est longue ? Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 (edited) longue...pas vraiment... mais je ne sais pas si ça peut avoir son importance Fichiers modifiés (7) classes/Configuration.php classes/Link.php classes/ObjectModel.php classes/Tools.php config/config.inc.php config/defines.inc.php js/tinymce.inc.js edit: ça me fait un peu peur de voir les fichiers ObjectModel.php, Tools.php, Configuration.php et config.inc.php dans cette liste mais a vrai dire je ne sais pas dans quelle mesure ils sont "erronés" par rapport a ma version de prestashop. Edited February 16, 2015 by kingfaya (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 En théorie vous devriez pouvoir remplacer tous ces fichiers. Si vous avez des overrides sur ces classes, installés par des modules, ils risquent de ne plus fonctionner (voir si des maj existent) Ce qui est curieux c'est que je vous ai donné le contenu de /config/defines.inc.php depuis le dernier zip officiel (1.6.0.11), il ne devrait donc pas apparaitre ici... Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 Je suis sous presta 1.6.0.9 c'est probablement pour cette raison qu'il trouve que le fichier est différent de ce qu'il devrait être... Donc! si je comprend bien, j'ai "juste" à récupérer des fichiers "propres" dans une nouvelle install de presta et remplacer mes fichiers "erronés" par ceux-ci. (pas vraiment envie de refaire une install après tout le taff que j'ai déjà fait sur ce site ^^) Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 Une mise à jour vers la version 1.6.0.11 m'a été proposée par le module 1-Click Upgrade il y a quelques jours, mais je n'ai pas testé les pages publiques immédiatement. Euh vous dites avoir fait la mise à jour et vous êtes toujours en 1.6.0.9 ??? Pour les fichiers, pas besoin de refaire une install, juste récupérer les fichier dans le zip correspondant (https://www.prestashop.com/fr/versions-developpeurs en bas de page) Link to comment Share on other sites More sharing options...
Dissitou Posted February 16, 2015 Share Posted February 16, 2015 Le prix n'est pas modifié lors du changement de quantités sur les thèmes basiques. Il faut rajouter une fonction js pour cela ^^ Merci pour cette précision. Saurais-tu me donner une piste pour ajouter cette fonction? En effet je me débrouille bien en js et pourrais y parvenir, mais si quelqu'un l'a déjà fait et a partagé sa solution, je préfèrerais ne pas tout ré-inventer Link to comment Share on other sites More sharing options...
kingfaya Posted February 16, 2015 Share Posted February 16, 2015 non ce post n'est pas de moi... ^^ cependant j'ai tenté de faire la mise a jour vers 1.6.0.11 mais cela n'a pas marché... celle-ci s'est interrompue en plein milieu et m'a fait planter tout le site (j'ai beaucoup pleuré ^^) j'ai donc repris une sauvegarde du site que j'avais mais qui date d'un mois auparavant (ça m'apprendra a faire des sauvegardes plus régulièrement...) donc maintenant je corrige toutes les erreurs susceptibles de se présenter et je passerais peut être en 1.6.0.11 plus tard (un peu frustré que cela n'ait pas fonctionné tout de même) Link to comment Share on other sites More sharing options...
Eolia Posted February 16, 2015 Share Posted February 16, 2015 il faut le mettre à plusieurs endroits. Au moment du changement de combinaison Au moment du changement de quantité. Ouvrez le fichier product.js de votre thème (le contenu peut varier suivant les versions) Trouvez le bloc function findCombination(firstTime) et Commentez la 3ème ligne //$('#quantity_wanted').val(1); Dans le bloc function updatedisplay() modifiez la ligne our_price = formatCurrency(productPriceDisplay, currencyFormat, currencySign, currencyBlank); par our_price = formatCurrency(productPriceDisplay*$('#quantity_wanted').val(), currencyFormat, currencySign, currencyBlank); Dans le bloc //To do after loading HTML $(document).ready(function() repérez les 2 fonctions liées au + et - de l'input Quantity ($('.plus_op').click(function() et $('.minus_op').click(function() ) et rajoutez à chacune avant le return false; updateDisplay(); Enfin, si le client tape lui-même la quantité au lieu d'utiliser les boutons + et - ajoutez dans product.tpl, dans le bloc <!-- quantity wanted --> la même fonction pour l'input: <input type="text" name="qty" id="quantity_wanted" class="text" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}" size="2" maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if}onkeyup="updateDisplay();" /> 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