Estoy teniendo problemas con los pagos en Paypal, hay un pequeño desajuste en el total que me acarrea problemas en la facturación. Pero este desajuste sólo se produce cuando el cliente utiliza un cupon descuento, si no lo utiliza no hay problema alguno en el total. Adjunto mensaje que me manda Paypal, este es un pedido dónde el total es 52.73.
"During a paypal transaction on your site the received amount didn't match the order total.
Order ID: 38.
Order Number: 86_e87c0bebce3d92e243414c49fdc44.
The amount received was: 52.12 EUR.
It should be: 52.73 EUR."
Me imagino que el error estará en la aplicación del IVA en algún apartado, pero no consigo dar con la tecla.
Perdonar si este tema ha sido posteado, pero no lo he encontrado en la búsqueda.
Gracias
(edito: la web es esta por si os hace falta: www.vaporyvida.es)
Hola Tania,
¿Que versión de Virtuemart tienes instalada? ¿Estás usando el sistema de cupones que lleva Virtuemart, o el de algún componente de terceros como puede se AWOcoupon.
Comentan en el foro de Virtuemart este tema:
http://forum.virtuemart.net/index.php?topic=82808.0
http://forum.virtuemart.net/index.php?topic=58724.0
Saludos,
Hola Jordi, la version de virtuemart es 1.1.8 y el sistema de cupones es el que viene por defecto en virtuemart.
Hola,
Es posible que se trate de un problema con los impuestos de los portes de envío. Para comprobar esto edita tus portes de envío y quita el impuesto. Después comprueba si entonces los importes coinciden.
Hola Jordi, ya miré esos hilos pero no encontré cómo solucionarlo.
Pablo, he probado quitando los impuestos del envío y tampoco.
Os detallo a continuación, un ejemplo de lo que me va saliendo, primero sin aplicar cupón de descuento:
Pantalla de pedido:
.- Artículo 6,50 €
.- Subtotal: 6,50 €
--------------------------------------------------------------------------------
Total: 6,50 €
Impuesto Total: 0,99 €
Pantalla terminar pedido:
.- Artículo 6,50 €
.- Subtotal: 6,50 €
.-Porte : 3.50€
--------------------------------------------------------------------------------
Total: 10,00 €
Impuesto Total: 1,52 €
Pantalla primera de Paypal:Resumen de su pedido
Número de Pedido: 48
Precio del artículo: €7,03
Cantidad:1
Importe total €7,03
Envío y manejo €2,97
Total €10,00 EUR
2º APLICANDO CUPÓN DESCUENTO (7%) SOBRE EL MISMO PEDIDO:
Pantalla de pedido:
.- Artículo 6,50 €
.- Subtotal: 6,50 €
--------------------------------------------------------------------------------
Total: 6,50 €
Impuesto Total: 0,99 €
Pantalla terminar pedido:
.- Artículo 6,50 €
.- Subtotal: 6,50 €
.- Descuento de cupon: -0.46€
.- Porte : 3.50€
--------------------------------------------------------------------------------
Total: 9,46 €
Impuesto Total: 1,45 €
Pantalla primera de Paypal:Resumen de su pedido
Número de Pedido: 48
Precio del artículo: €6,50
Cantidad:1
Importe total €6,50
Envío y manejo €2,97
Total €9,47 EUR
Los impuestos del envio, los tengo marcados al 18%. Probé a quitar los impuestos y no funcionó.
En la configuración de virtuemart, en el apartado de impuestos tengo marcado: impuestos virtual, impuesto basado en la dirección del vendedor, permitir múltiples tarifas de impuesto, y restar el descuento del pago antes del IVA/envío. (esta última opción la desmarqué, pero tampoco funcionó).
Saludos
Hola,
Una posible solución podría pasar por modificar el código que se envía desde Virtuemart a Paypal, de forma que se pueda simplificar y solo se le indique el total a pagar, sin hacer el desglose de portes de los portes.
Péganos en este post el código que se está usando ahora para tu pago con Paypal. Para ello, vete a la administración de Virtuemart y en el menú lateral de administración vete a Tienda->Listar formas de Pago. Se mostrará el listado de formas de pago. Edita el pago Paypal pulsando sobre él. Después, vete a la pestaña Configuración y péganos el código que viene en Información de pago extra.
Gracia Jordi y Pablo por vuestra ayuda..vamos a ver si lo conseguimos.
Pego la configuración de Paypal:
country."' ORDER BY country_2_code ASC"; $db1->query($q); $url = "https://www.paypal.com/cgi-bin/webscr"; $tax_total = $db->f("order_tax") + $db->f("order_shipping_tax"); $discount_total = $db->f("coupon_discount") + $db->f("order_discount"); $post_variables = Array( "cmd" => "_ext-enter", "redirect_cmd" => "_xclick", "upload" => "1", "business" => PAYPAL_EMAIL, "receiver_email" => PAYPAL_EMAIL, "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"), "order_id" => $db->f("order_id"), "invoice" => $db->f("order_number"), "amount" => round( $db->f("order_subtotal")+$tax_total-$discount_total, 2), "shipping" => sprintf("%.2f", $db->f("order_shipping")), "currency_code" => $_SESSION['vendor_currency'], "address_override" => "1", "first_name" => $dbbt->f('first_name'), "last_name" => $dbbt->f('last_name'), "address1" => $dbbt->f('address_1'), "address2" => $dbbt->f('address_2'), "zip" => $dbbt->f('zip'), "city" => $dbbt->f('city'), "state" => $dbbt->f('state'), "country" => $db1->f('country_2_code'), "email" => $dbbt->f('user_email'), "night_phone_b" => $dbbt->f('phone_1'), "cpp_header_image" => $vendor_image_url, "return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"), "notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php", "cancel_return" => SECUREURL ."index.php", "undefined_quantity" => "0", "test_ipn" => PAYPAL_DEBUG, "pal" => "NRUBJXESJTY24", "no_shipping" => "1", "no_note" => "1" ); if( $page == "checkout.thankyou" ) { $query_string = "?"; foreach( $post_variables as $name => $value ) { $query_string .= $name. "=" . urlencode($value) ."&"; } vmRedirect( $url . $query_string ); } else { echo ''; echo ''; foreach( $post_variables as $name => $value ) { echo ''; } echo ''; } ?>
Hola,
Prueba con el siguiente código:
country."' ORDER BY country_2_code ASC"; $db1->query($q); $url = "https://www.paypal.com/cgi-bin/webscr"; $post_variables = Array( "cmd" => "_ext-enter", "redirect_cmd" => "_xclick", "upload" => "1", "business" => PAYPAL_EMAIL, "receiver_email" => PAYPAL_EMAIL, "item_name" => $VM_LANG->_('PHPSHOP_ORDER_PRINT_PO_NUMBER').": ". $db->f("order_id"), "order_id" => $db->f("order_id"), "invoice" => $db->f("order_number"), "amount" => round( $db->f("order_total"), 2), "currency_code" => $_SESSION['vendor_currency'], "address_override" => "1", "first_name" => $dbbt->f('first_name'), "last_name" => $dbbt->f('last_name'), "address1" => $dbbt->f('address_1'), "address2" => $dbbt->f('address_2'), "zip" => $dbbt->f('zip'), "city" => $dbbt->f('city'), "state" => $dbbt->f('state'), "country" => $db1->f('country_2_code'), "email" => $dbbt->f('user_email'), "night_phone_b" => $dbbt->f('phone_1'), "cpp_header_image" => $vendor_image_url, "return" => SECUREURL ."index.php?option=com_virtuemart&page=checkout.result&order_id=".$db->f("order_id"), "notify_url" => SECUREURL ."administrator/components/com_virtuemart/notify.php", "cancel_return" => SECUREURL ."index.php", "undefined_quantity" => "0", "test_ipn" => PAYPAL_DEBUG, "pal" => "NRUBJXESJTY24", "no_shipping" => "1", "no_note" => "1" ); if( $page == "checkout.thankyou" ) { $query_string = "?"; foreach( $post_variables as $name => $value ) { $query_string .= $name. "=" . urlencode($value) ."&"; } vmRedirect( $url . $query_string ); } else { echo ''; echo ''; foreach( $post_variables as $name => $value ) { echo ''; } echo ''; } ?>
Lo que he hecho es cambiar los datos que se pasan a Paypal para enviar el total de la compra y nada más, quitando importe de los portes de envío, descuentos o impuestos. Estos datos ya los ve el usuario y en el resumen del pedido antes de la finalización y el mail de confirmación que recibe una vez completado el pedido.
Comprueba si con este nuevo código todo cuadra. Guarda una copia del que tenías por si acaso.
SOS, al seleccionar Paypal y terminar proceso de pedido me sale la página de error 404:componente no encontrado...
He vuelto a poner el código que tenía anteriormente, y el mismo error...socorro!
Hola Tania,
Si habías realizado una copia del fichero original, sustituye por el modificado para hacer que todo funcione como al principio.
Saludos,
Hola; perdonar por tardar en contestar para cerrar este hilo. Al final contraté vuestros servicios, y aproveché para arreglar algunas problemillas que tenía pendientes de configuración.
Desde entonces todo funciona perfectamente. Muchas gracias por vuestra atención y vuestros servicios.