Jump to content

PayPal, (multiplica por 10000, diez mil) [SOLUCIONADO]


Recommended Posts

Hola,
he instalado el módulo que comentáis y tengo un problema. La cantidad de los artículos me salen mal. Cuando debería ser una unidad me dice 1000. ¿Alguna idea?

Esto es lo que me sale:

(PC) LOS SIMS 3:ED.CONMEMORATIVA €59,16 1000 €59.160,00
Paypal Surcharge €2,30 1 €2,30
Total artículos: €59.162,30

Envío y manejo: €5,90

Total: €59.168,20 EUR


Me pasa exactamente lo mismo con la versión 3.0 de prestashop y la versión del módulo de Paypal 1.6, pero a mí las unidades se me multiplican por 10000 y el precio también, en cambio, el transporte no, se queda en el precio correcto. Supongo que las unidades y el total del producto se pasan con los decimales mal, y el transporte no.

Pues he mirado en el módulo paypal y el fichero paypal.php tiene 4 lineas con el formato de las monedas (las marco en negrita):

foreach ($products as $key => $product)

{

$products[$key]['name'] = str_replace('"', '\'', $product['name']);

if (isset($product['attributes']))

$products[$key]['attributes'] = str_replace('"', '\'', $product['attributes']);

$products[$key]['name'] = htmlentities(utf8_decode($product['name']));

$products[$key]['paypalAmount'] = number_format(Tools::convertPrice($product['price_wt'], $currency), 2, '.', '');

}

$smarty->assign(array(

'address' => $address,

'country' => new Country(intval($address->id_country)),

'customer' => $customer,

'business' => $business,

'header' => $header,

'currency' => $currency,

'paypalUrl' => $this->getPaypalUrl(),

// products + discounts - shipping cost

'amount' => number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 4), $currency), 2, '.', ''),
// shipping cost + wrapping

'shipping' => number_format(Tools::convertPrice(($params['cart']->getOrderShippingCost() + $params['cart']->getOrderTotal(true, 6)), $currency), 2, '.', ''),

'discounts' => $params['cart']->getDiscounts(),

'products' => $products,

// products + discounts + shipping cost

'total' => number_format(Tools::convertPrice($params['cart']->getOrderTotal(true, 3), $currency), 2, '.', ''),

'id_cart' => intval($params['cart']->id),

'goBackUrl' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id;_cart='.intval($params['cart']->id).'&id;_module='.intval($this->id),

'notify' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'modules/paypal/validation.php',

'cancelUrl' => 'http://'.htmlspecialchars($_SERVER['HTTP_HOST'], ENT_COMPAT, 'UTF-8').__PS_BASE_URI__.'index.php',

'this_path' => $this->_path

));


return $this->display(__FILE__, 'paypal.tpl');

}


Si cambio el '.' por ',', al pasarlo a la página de PayPal responde que el formato de moneda que se ha pasado es incorrecto.
¿Qué es lo que hay que modificar entonces para pasarle el formato correcto a PayPal?

Gracias a todos,
NZB
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...