Jump to content

[Validation de panier] Commande qui se crée sans les produits


Recommended Posts

Bonjour,

 

Plusieurs topic se référent à ce soucis, cela dit sans aller au bout des chose, j'aimerai donc approfondir le sujet.

 

Le soucis est le suivant: Lors de validations de certaines commandes (environ 1 sur 5) la commande ne copie pas la liste des produits du panier qu'importe le système de paiement.

 

Lors de mes recherches j'ai trouves les indices suivant:

1. Sur le post suivant (https://www.prestashop.com/forums/topic/503993-commande-sans-produits/) on trouve deux réponses:

  • La première parle d'avoir activé/désactivé/réactivé la gestion des stocks ce qui crée des doublons à supprimer dans la table ps_order_detail (ce n'est pas mon cas la table est clean)
  • La seconde parle d'avoir ces deux ligne dans le fichier Core/Business/Stock/Core_Business_Stock_StockManager.php l.126 (mis en place et ne marche pas chez moi)
$stockAvailable->id_product = (int)$product->id;
$stockAvailable->id_product_attribute = (int)$id_product_attribute;

2. Dans mes fichiers de log j'ai l'erreur suivante qui se produit:

[Thu Sep 07 17:46:36 2017] [error] [client 46.253.32.125] PHP Fatal error:  Uncaught exception 'PrestaShopException' with message 'Property OrderDetail->product_price is not valid' in /srv/web/www/xxx/classes/ObjectModel.php:909
Stack trace:
#0 /srv/web/www/xxx/classes/ObjectModel.php(246): ObjectModelCore->validateFields()
#1 /srv/web/www/xxx/classes/ObjectModel.php(487): ObjectModelCore->getFields()
#2 /srv/web/www/xxx/classes/order/OrderDetail.php(802): ObjectModelCore->add(true, false)
#3 /srv/web/www/xxx/classes/ObjectModel.php(445): OrderDetailCore->add(true, false)
#4 /srv/web/www/xxx/classes/order/OrderDetail.php(653): ObjectModelCore->save()
#5 /srv/web/www/xxx/classes/order/OrderDetail.php(678): OrderDetailCore->create(Object(Order), Object(Cart), Array, 2, 0, true, 0)
#6 /srv/web/www/xxx/classes/PaymentModule.php(364): OrderDetailCore->createList(Object(Order), Object(Cart), 2, Array, 0, true, 0)
#7 /srv/web/www/xxx/modules/paypal/paypal.php(2428): PaymentModuleCore->validateOrder(641, 2, 75.99, 'PayPal', 'Payment accep 
in /srv/web/www/xxx/classes/ObjectModel.php on line 909, referer: http://xxx.fr/module/paypal/confirm?get_confirmation=1


3.  Sur le post (https://www.prestashop.com/forums/topic/556386-frontcontrollerinit-cart-cannot-be-loaded-or-an-order-has-already-been-placed-using-this-cart/) traitant d'un soucis légèrement lié une réponse à ce temps y fait figure dans un post:

 

 

Pour les commandes vides, c'est un problème sur un module hooké sur le validateorder, donc rien à voir avec le paiement. (S'il y avait un souci avec le paiement en retour, la commande ne serait pas créée)

 

Regardez donc du côté des modules, il y en a au moins un qui doit générer une erreur dans le error.log d'Apache aux dates et heures des dites commandes.

 

Pour ma part je n'ai que le module 'Colissimo Simplicité' et 'Expertise Prestashop' et ni l'un ni l'autre ne sont concerné par l'erreur.

 

Version Presta: 1.6.1.3

 

J'espère qu'il sera possible de trouver une solution clair pour tout le monde :)

Link to comment
Share on other sites

Déjà, à moins d'avoir un besoin irrépréhensible de reconnaissance infantile, vire ce module "expertise prestashop". Il consomme une puissance colossale pour te donner des petites images de gratification (totalement inutile). Son nom réel: gamification (en faire un jeu: tout un programme)

 

L'erreur est claire une des ligne produit tente d'injecter un prix invalide dans la table order_detail (ce qui arrive aprés la création de la commande enveloppe - prestashop ne sait pas faire des mises à jours atomiques!!)

 

Selon le code, product_price est controllé par:

    public static function isPrice($price)
    {
        return preg_match('/^[0-9]{1,10}(\.[0-9]{1,9})?$/', $price);
    }

Et aussi que cette valeur n'est pas nulle.

 

Donc, soit une override retourne un prix qui n'est pas un nombre, soit ne retourne rien, soit ton système est mal configuré est converti les . en , dans les nombres

Link to comment
Share on other sites

Merci de ta réponse,

 

Je suis d'accord avec toi pour le module expertise, mais ça plait généralement bien aux clients ^^

 

Sinon ta réponse m’éclaire bien, j'utilise un module 'productbysize' avec lequel j'ai eu beaucoup de problèmes et je le soupçonne de ne pas avoir la bonne pour les prix.

il me reste à trouver ou checker ça et voir si c'est le cas.

Sinon j'ai régulièrement sur les commandes des produits a 0€ mis en cadeau, mais cela passe sur beaucoup de commande donc le cas n'est pas générique.

 

 

- prestashop ne sait pas faire des mises à jours atomiques!!

Sinon, penses-tu que la maj de presta corrige ça ?!

Link to comment
Share on other sites

Merci de ta réponse,

 

Je suis d'accord avec toi pour le module expertise, mais ça plait généralement bien aux clients ^^

 

Sinon ta réponse m’éclaire bien, j'utilise un module 'productbysize' avec lequel j'ai eu beaucoup de problèmes et je le soupçonne de ne pas avoir la bonne pour les prix.

il me reste à trouver ou checker ça et voir si c'est le cas.

Sinon j'ai régulièrement sur les commandes des produits a 0€ mis en cadeau, mais cela passe sur beaucoup de commande donc le cas n'est pas générique.

 

Sinon, penses-tu que la maj de presta corrige ça ?!

 

ça plaît au client d'avoir une pokéball plutôt qu'un boutique fonctionnelle ? Qu'ils retournent vendre des frites!

je suis surpris que tu sois un agence. je m'attendais à plus de connaissance de la part d'un prestataire.

 

Prestashop corrigera le problème des update atomique .... le lendemain de la fin de l'univers. Ils ne savent sûrement même pas de quoi il s'agit. En plus atomique = nucléaire et le nucléaire ça fait peur

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...