Jump to content

SophieB

Members
  • Posts

    25
  • Joined

  • Last visited

Profile Information

  • Location
    France
  • Activity
    Freelancer

SophieB's Achievements

  1. Bonjour, le sujet a presque 2 ans, mais j'ai exactement le même besoin que vous pour un site B2B: n'autoriser la paiement d'une commande qu'après validation par le commerçant. J'ai trouvé des modules de devis qui permettent de faire une grande partie de cela, mais ils ne bloquent pas les commandes directes... Quelle solution avez-trouvée finalement? Merci de votre réponse Sophie
  2. Bonjour, je me permets de déterrer ce topic assez ancien, car j'ai eu exactement le même problème, avec un presta 1.6.1.17. Comme j'ai trouvé la solution et que cela pourra peut-être être utile à d'autres, je vous indique la solution. Résumé du problème: - impossible de créer des packs de produits : lorsque j'essaie d'enregistrer un produit "pack de produits existant" après avoir sélectionné des produits standard avec le bouton "ajouter un produit dans le pack", j'ai le même message; - ma base de données produits contient déjà des packs (car je viens de migrer le site de 1.5.6.1 vers 1.6.1.17), et lorsque j'édite un de ces produits, et que je l'enregistre (sans avoir rien modifié), j'ai ce même message, mais le pire, c'est que mon produit est enregistré en "produit standard", et les produits composant le pack n'apparaissent plus :-/ => après vérification dans la bdd, cache_is_pack est passé à 0 et le pack n'apparaît plus dans la table ps_pack Solution: J'ai trouvé la solution ici: https://aide.prestashop.click/topic/1032/1-6-1-15-pack-produits-impossible-de-créer-ou-mise-à-jour-supprimant-le-pack Il faut corriger l'erreur dans controllers > admin > AdminProductsController.php, et tout fonctionne à nouveau. Cordialement, Sophie
  3. J'ai enfin résolu mon problème de création de commande qui ne fonctionnait pas depuis le BO. Après des recherches plus poussées, j'ai trouvé l'explication du bug. La voici: - lorsque je supprimais l'override de Cart.php, cela fonctionnait à nouveau... - lorsque je rétrogradais ma version de php de 5.6 à 5.4, cela fonctionnait, même avec l'override de Cart.php présent. En fait, les données renvoyées par la fonction displayAjaxSearchCarts() de AdminCartsController.php provoquaient une erreur json lorsqu'on est en php 5.5+ et que l'override de Cart.php était présent... En comparant ces données, j'ai remarqué que lorsqu'on a l'override de Cart.php, il y a toute une portion de code en plus dans le tableau renvoyé par ajaxReturnVars() (dans AdminCartsController.php, appelée par displayAjaxSearchCarts() ): il y a une entrée supplémentaire 'context' => dans le tableau, et c'est ce qui fait planter la fonction Tools::jsonEncode() quand on est en php 5.5+. Lorsqu'on est en php 5.4, cette entrée est également présente, mais cela ne fait pas planter la fonction Tools::jsonEncode(). Dans l'override de Cart.php , c'est la partie de code suivante qui créait la nouvelle entrée 'context': if (!isset($this->context)) $this->context = Context::getContext(); if (!$this->context->cart) return $summary; Quand je commentais ces lignes, je peux à nouveau créer une commande dans le BO. Avec, l'aide du développeur du module qui utilise cet override, j'ai pu corriger le bug en remplaçant ce code ci-dessus dans l'override de Cart.php par celui-ci: if (!Module::isEnabled('freelivery')) return $summary; if (!isset(Context::getContext()->cart)) return $summary; J'avais le même problème sur une boutique Prestashop 1.6, je l'ai résolu en mettant à jour le module Freelivery Livraison gratuite => version 1.4.2 J'espère que ça pourra être utile à d'autres ;-)
  4. Hello, it's a bit late and you probably found a solution, but if it can help, I give some kind of a solution here , not totally satisfying, but it's better than noting: https://www.prestashop.com/forums/topic/596699-create-an-order-from-this-cart-does-not-work-anymore/?p=2516311 Best regards Sophie
  5. Hello, I had exacttly the same problem, and I also made hours of debugging This is what I found: - I had an override of the Cart.php class, which was added by the module Freedelivery - I didn't have the bug when I the override was not present (I renamed it __Cart.php). Disabling the module was not enough... - I had the bug when the php version was 5.5 or more, but didn't have the bug with php 5.4 => I found out that the override of the function getSummaryDetails() caused the bug, this part of code precisely: if (!isset($this->context)) $this->context = Context::getContext(); if (!$this->context->cart) return $summary; It added a new entry 'context' in the entry 'cart' of the array returned by the function ajaxReturnVars() called by displayAjaxSearchCarts() in AdminCartsController.php This caused the bug when the array was passed to Tools::jsonEncode() function.... I asked the developper of the module if the part of code could be omitted, but unfortunetely I had no answer from him... I'm not skilled enough in Prestashop development to know what these lines are for... So for the moment I just set php 5.4 version, but I think it can only be a temporary solution. I hope it can help you, and would be glad if you would find the solution... Best regards Sophie
  6. Merci pour le tuyau :-) j'ai modifié le code dans tools.js (en mettant: if(!price) price = price.toFixed(6); price = parseFloat(price); parce que j'avais (6) au lieu de (10=) dans le code d'origine... Mais quand je remonte la version de php à 5.6 (et même 5.5), j'ai à nouveau un bug lorsque que je clique sur "choisir", impossible d'afficher les paniers et commandes: Uncaught TypeError: Cannot read property 'found' of null at Object.success (index.php?controller=AdminOrders&addorder&token=6255b76…:803) at o (jquery-1.7.2.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.7.2.min.js:2) at w (jquery-1.7.2.min.js:4) at d (jquery-1.7.2.min.js:4) at Object.send (jquery-1.7.2.min.js:4) at Function.ajax (jquery-1.7.2.min.js:4) at setupCustomer (index.php?controller=AdminOrders&addorder&token=6255b76…:788) at HTMLAnchorElement.onclick (index.php?controller=AdminOrders&addorder&token=6255b76…:1) C'est le bug que je croyais avoir résolu en début de ce post :`( Il n'y aurait pas un autre code pourri qui traine qqpart dans prestashop ? Ou alors c'est dans un module...
  7. Bonsoir, dans Fillezilla, essayez de supprimer le fichier class_index.php dans le dossier cache/ (ne vous inquiétez pas, il sera régénéré ensuite...)
  8. Suite de mes aventures prestasopiennes, au cas où cela intéresserait quelqu'un ;-) L'origine du bug js qui empêchait de lister les paniers et commandes sur la pagre de création de commande depuis le BO était tout simplement due à .... la version de php!!! Il y a quelques mois, je l'avais passé de 5.4 à 5.6, tout me semblait ok, mais en fait non... Je suis donc redescendue à 5.4, et ça fonctionne à nouveau... En espérant que ça n'ait pas cassé autre chose... Du coup, il me vient une question subsidiaire: où peut-on savoir la version maximum (ou minimum) de php nécessaire pour un module donné? Sur la page des addons de prestashop, on indique la/ les versions prestashop compatibles, mais aucune indication sur la version de php...
  9. Bon, j'ai trouvé d'où venait le deuxième problème : Dans AdminCartsController.php dans la fonction getCartSummary(), il manquait ces 2 lignes: $product['numeric_price'] = $product['price']; $product['numeric_total'] = $product['total']; Je ne comprends pas pourquoi elles avaient disparu, pourtant la création de commande depuis le BO avait fonctionné avant... Il me reste maintenant à comprendre pourquoi l'override sur Cart.php bloque l'affichage des paniers et commandes, car j'ai besoin du module Livraison Gratuite...
  10. Well, I found where the problem was: in AdminCartsController.php in the function getCartSummary(), those two lines where missing: $product['numeric_price'] = $product['price']; $product['numeric_total'] = $product['total']; I added them and now i can get the list of products in the cart... It's a very strange issue, I don't know why they disappeared, since before it had worked well... Hope it could help someone else ;-)
  11. Hello, I have an issue that I try to resolve for a few days and I need your help ... My prestashop version: 1.5.6.1 Php version: 5.6.3 Front Office of the shop is working without any problem. The problem is in backoffice: I have a js bug in the BO of Prestahop when I try to use cart to create an order. When I display carts and orders of a client from the "Create an order" page, I have the following error in js console: Uncaught TypeError: Cannot read property 'toFixed' of undefined at formatCurrency (tools.js:64) at Object.<anonymous> (index.php?controller=AdminOrders&addorder&token=6255b76…:977) at Function.each (jquery-1.7.2.min.js:2) at updateCartProducts (index.php?controller=AdminOrders&addorder&token=6255b76…:969) at displaySummary (index.php?controller=AdminOrders&addorder&token=6255b76…:1049) at Object.success (index.php?controller=AdminOrders&addorder&token=6255b76…:685) at o (jquery-1.7.2.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.7.2.min.js:2) at w (jquery-1.7.2.min.js:4) at d (jquery-1.7.2.min.js:4) I had another error before (couldn't display carts and orders when I chose a client), but I managed to solve in (supressed a Cart.php override)... What I tried to do: - deactivated the most recently installed modules (the "add order" used to work before...) - daectivated all modules hooked in backofficeheader position - deactivated overrides... - no CCC - no cache I have the same problem with other navigators (FF and Edge). I was thinking it could be a module conflict or a jquery conflict, but I tried to deactivate modules, and found no solution... Maybe someone experienced a similar issue and can help me? Thank you very much Sophie
  12. Merci pour votre réponse. Donc j'ai désactivé les modules présents dans backofficeheader (et j'en ai profité pour dégreffer 2 modules (ogone et authorized net) qui étaient greffés là mais pas activés), mais le problème en venait pas de là. Par contre, j'ai poussé un peu les recherches sur les overrides. Jusqu'alors je les avais désactivés via le bouton dans Performances; Là j'ai modifié les noms de fichiers d'override en leur ajoutant __ avant le nom, et j'ai trouvé le coupable : un override de la classe Cart.php, qui a été installé pour faire fonctionner le module "Livraison gratuite" d'Emmanuel Marichal et l'affichage du montant restant avant gratuité dans le panier. Voici l'override: <?php class Cart extends CartCore { public $freelivery_remaining = null; public function getSummaryDetails($id_lang = null, $refresh = false) { $summary = parent::getSummaryDetails($id_lang, $refresh); if (!isset($this->context)) $this->context = Context::getContext(); if (!$this->context->cart) return $summary; $ps_free_price = Tools::convertPrice(Configuration::get('PS_SHIPPING_FREE_PRICE'), Currency::getCurrencyInstance($this->context->cart->id_currency)); $total = $summary['total_products_wt']; if ((int)Configuration::get('FREELIVERY_CALCULATION_RULE')) $total += $summary['total_discounts']; $ps_remaining = $ps_free_price - $total; if ($summary['total_shipping'] == 0 || ($total >= $ps_free_price && $ps_free_price > 0)) $summary['free_ship'] = 0; else if ($ps_remaining < $this->freelivery_remaining && $ps_free_price > 0) $summary['free_ship'] = $ps_remaining; else $summary['free_ship'] = (float)$this->freelivery_remaining; return $summary; } } Mais, ça n'a pas tout résolu: j'arrive maintenant à afficher les paniers et commandes, mais c'est la suite qui bloque: - quand je clique sur un des boutons "utiliser ce panier", j'obtiens le message suivant dans la console: Uncaught TypeError: Cannot read property 'toFixed' of undefined at formatCurrency (tools.js:63) at Object.<anonymous> (index.php?controller=AdminOrders&addorder&token=6255b76…:977) at Function.each (jquery-1.7.2.min.js:2) at updateCartProducts (index.php?controller=AdminOrders&addorder&token=6255b76…:969) at displaySummary (index.php?controller=AdminOrders&addorder&token=6255b76…:1049) at Object.success (index.php?controller=AdminOrders&addorder&token=6255b76…:685) at o (jquery-1.7.2.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.7.2.min.js:2) at w (jquery-1.7.2.min.js:4) at d (jquery-1.7.2.min.js:4) - et ça bloque aussi lorsque j'essaie d'ajouter un produit avec le bloc "rechercher un produit": la liste des produits s'affiche quand je commence à taper un nom, mais lorsque je clique sur "ajouter au panier j'ai une erreur: Uncaught TypeError: Cannot read property 'toFixed' of undefined at formatCurrency (tools.js:63) at Object.<anonymous> (index.php?controller=AdminOrders&addorder&token=6255b76…:977) at Function.each (jquery-1.7.2.min.js:2) at updateCartProducts (index.php?controller=AdminOrders&addorder&token=6255b76…:969) at displaySummary (index.php?controller=AdminOrders&addorder&token=6255b76…:1049) at Object.success (index.php?controller=AdminOrders&addorder&token=6255b76…:1117) at o (jquery-1.7.2.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.7.2.min.js:2) at w (jquery-1.7.2.min.js:4) at XMLHttpRequest.d (jquery-1.7.2.min.js:4) formatCurrency @ tools.js:63 (anonymous) @ index.php?controller=AdminOrders&addorder&token=6255b76…:977 each @ jquery-1.7.2.min.js:2 updateCartProducts @ index.php?controller=AdminOrders&addorder&token=6255b76…:969 displaySummary @ index.php?controller=AdminOrders&addorder&token=6255b76…:1049 success @ index.php?controller=AdminOrders&addorder&token=6255b76…:1117 o @ jquery-1.7.2.min.js:2 fireWith @ jquery-1.7.2.min.js:2 w @ jquery-1.7.2.min.js:4 d @ jquery-1.7.2.min.js:4 pourtant, le panier est créé en bdd, car lorsque je reviens sur la page de création de commande, je vois ce nouveau panier dans la liste... Je précise que j'ai essayé après avoir désactivé le module "Livraison gratuite", mais ç an'a rien changé... Merci encore de m'aider sur ce problème bien tordu ;-) Sophie
  13. Bonsoir, j'ai un problème que je tourne dans tous les sens depuis 2 jours sans succès, je viens donc demander vos lumières ;-) Je m'occupe d'un site en prestashop 1.5.6.1 qui tourne bien en frontoffice. La version de php est 5.6.3 Il y a quelques temps, j'ai remarqué que je ne pouvais plus créer une commande depuis le backoffice: - lorsque je recherche un client depuis le formulaire de recherche de clients, j'ai bien la liste des clients avec le bouton "choisir" qui s'affiche (cf capture) - lorsque je clique sur "choisir", cela devrait afficher la liste des paniers et commandes de ce client, mais ça ne fonctionne pas. J'ai une erreur dans la console javascript : Uncaught TypeError: Cannot read property 'found' of null at Object.success (index.php?controller=AdminOrders&addorder&token=6255b76…:803) at o (jquery-1.7.2.min.js:2) at Object.fireWith [as resolveWith] (jquery-1.7.2.min.js:2) at w (jquery-1.7.2.min.js:4) at d (jquery-1.7.2.min.js:4) at Object.send (jquery-1.7.2.min.js:4) at Function.ajax (jquery-1.7.2.min.js:4) at setupCustomer (index.php?controller=AdminOrders&addorder&token=6255b76…:788) at HTMLAnchorElement.onclick (index.php?controller=AdminOrders&addorder&token=6255b76…:1) J'ai remonté toute la chaîne : - le clic sur le bouton appelle la fonction js setupCustomer, - qui fait un appel ajax à la fonction searchCarts dans AdminCartsController - qui va récupérer les paniers et commandes dans la bdd. Jusque là tout va bien. - ce qui cloche, c'est que cette fonction fait appel à Tools::jsonEncode($to_return), et c'est là qu'est l'erreur => cette fonction Tools::jsonEncode renvoie une erreur, d'où le 'property 'found' of null' dans la console... - je suis allée voir cette fonction: public static function jsonEncode($data) { if (function_exists('json_encode')){ return json_encode($data); } else { include_once(_PS_TOOL_DIR_.'json/json.php'); $pear_json = new Services_JSON(); return $pear_json->encode($data); } } elle fait appel à json_encode($data), et cette fonction json_encode renvoie une erreur "recursion detected" j'ai essayé de supprimer le premier if, pour ne laisser que l'appel à l'autre alternative, mais cela me provoque une erreur 500. Et je ne peux pas voir à quoi ça correspond cette erreur, car si j'active le mode define('_PS_MODE_DEV_', true); , je n'ai plus l'erreur js dans la console... Je n'y comprends vraiment rien... Je précise que j'ai vidé le cache, désactivé les CCC, désactivé les modules non natifs et récemment installés, désactivé les override... J'ai le même pb sous Edge et Firefox Cette fonctionnalité fonctionnait il y a quelques mois... J'espère vraiment que quelqu'un aura une idée pour m'aider, car je ne sais plus quoi faire... Peut-être quelqu'un a-t-il déjà résolu ce genre de pb? (j'ai lu beaucoup de topics avec un problème proche du mien, mais jamais de solution :`( Bonne soirée Sophie
  14. Hello, did you find a solution? I have the same issue Sophie
×
×
  • Create New...