MrBram Posted May 6, 2010 Share Posted May 6, 2010 Hola,Tengo un problema, no me deja finalizar la compra... me sale el error "Intrusión (Order -> total_paid = xx)" a la hora de pagar contra reemboloso o con tranferencia bancaria.Con el tpv caja rural y con paypal me envía bien, hacemos el pago, pero al volver a la tienda crea el mismo error. He probado desinstalar módulos y volver a intalar, crea nuevo usuario, etc... sin resultados.¿A alguien le ha pasado algo parecido y a podido arreglarlo?Saludos,Abraham.SOLUCIONADORecuperé un backup anterior y a funcionar de nuevo... ¿Por que ha pasado? Ni idea. Link to comment Share on other sites More sharing options...
MrBram Posted May 7, 2010 Author Share Posted May 7, 2010 He activado para que muestre errores y me dice al agregar al carrito: Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '24 <= r.`delimiter2` AND d.`id_carrier` = 47 ORDER BY r.`delimiter1` ASC LIM' at line 5 SELECT d.`price` FROM `ps_delivery` d LEFT JOIN `ps_range_price` r ON d.`id_range_price` = r.`id_range_price` WHERE d.`id_zone` = 1 AND 42,24 <= r.`delimiter2` AND d.`id_carrier` = 47 ORDER BY r.`delimiter1` ASC in /var/www/vhosts/xxxx/classes/MySQL.php on line 57 ¿Que archivo llama o debo tocar para arreglar este error? Link to comment Share on other sites More sharing options...
MrBram Posted May 10, 2010 Author Share Posted May 10, 2010 El error está en que no reconoce la "," es decir cuando el importe no tiene decimales no hay error, salvo al dar a comprar que recoje el valor sin iva y entonces si dá error de nuevo. Leyendo por foros dicen de añadir $ A = str_replace (',', '.', floatval ($ ); pero no entiendo donde exactamente ponerlo ni por que ahora no reconoce las comas.La función entiendo que es está en classes/carriers.php public function getDeliveryPriceByPrice($orderTotal, $id_zone) { if (isset(self::$priceByPrice[$this->id])) return self::$priceByPrice[$this->id]; $result = Db::getInstance()->getRow(' SELECT d.`price` FROM `'._DB_PREFIX_.'delivery` d LEFT JOIN `'._DB_PREFIX_.'range_price` r ON d.`id_range_price` = r.`id_range_price` WHERE d.`id_zone` = '.intval($id_zone).' AND '.floatval($orderTotal).' <= r.`delimiter2` AND d.`id_carrier` = '.intval($this->id).' ORDER BY r.`delimiter1` ASC'); if (!isset($result['price'])) return $this->getMaxDeliveryPriceByPrice($id_zone); return $result['price']; } Seguro que algún gurú dá con la solución....Prestashop 1.2.3 Link to comment Share on other sites More sharing options...
Recommended Posts