Bonjour, après avoir creusé un peu de mon coté voilà quelques idées pour creuser : Le calcul des prix des produits avec la reduction associé au groupe est dans classes/Product.php
public static function getPriceStatic($id_product, $usetax = true, $id_product_attribute = NULL, $decimals = 6, $divisor = NULL, $only_reduc = false, $usereduc = true, $quantity = 1, $forceAssociatedTax = false)
{
global $cookie;
// Get id_customer if exists
$id_customer = ((isset($cookie) AND get_class($cookie) == 'Cookie' AND isset($cookie->id_customer) AND $cookie->id_customer)
? intval($cookie->id_customer) : null);
...
// Group reduction
if ($id_customer)
$price *= ((100 - Group::getReduction($id_customer))/100);
...
}
Et le calcul de la commande est son entrée dans la base de données est dans classes/PayementModule.php
function validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false)
{
...
$order->total_paid = floatval(Tools::convertPrice(floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', '')), $currency));
// Amount paid by customer is not the right one -> Status = payment error
if ($order->total_paid != $order->total_paid_real)
$id_order_state = _PS_OS_ERROR_;
...
}
C'est à partir de la que le paiement passe en erreur car le montant réellement payé total_paid_real (avec réduction) du groupe est différent de celui dans total_paid Sachant que la fonction getPriceStatic fonctionne corectement avant le paiement (Cb ou Paypal) et que après elle deconne, la seule variable à traité est $id_customer La variable $id_customer se base uniquement sur le cookie, est ce que le problème ne viendrait t'il pas de là ?