Estás leyendo la publicación: Cómo administrar la cantidad personalizada con PayPal en Magento 2
Acepte pagos de PayPal en varias monedas
Ofrezca a sus clientes la facilidad de pagar en sus más de 20 divisas a través de PayPal.
¿Tiene problemas con los montos personalizados al usar el método de pago de PayPal en Magento 2? Lea esta publicación de blog para encontrar el método para .
Magento 2 viene con integración integrada de PayPal, la solución de pasarela de pago internacional más famosa. Esta integración de pasarela de pago incorporada permite a los propietarios de tiendas aceptar pagos desde cualquier rincón del mundo. La integración funciona sin problemas la mayor parte del tiempo y permite a los clientes completar el pago fácilmente a través de PayPal. Anteriormente, uno de mis colegas le mostró la solución al error de factura duplicada de Magento PayPal.
Pero, las cosas salen mal cuando se agrega o se descuenta una cantidad personalizada del subtotal del carrito. Estas pueden ser las tarifas adicionales en Magento 2 o los descuentos adicionales que ofrece a los clientes a través de campos personalizados. Tome el siguiente pedido total, por ejemplo:
El error dice:
El error se produce por no coincidir el importe del pago con el total del pedido. Los campos personalizados, las tarifas adicionales en Magento 2, por ejemplo, no se pasan a PayPal para el cálculo de los totales de los pedidos, lo que produce el error de PayPal #10413b.
Veamos cómo podemos administrar la cantidad personalizada con el pago exprés de PayPal en Magento 2 usando la función addCustomItem().
Método para administrar la cantidad personalizada con PayPal en Magento 2
Para resolver el error anterior, también debe transferir cada uno de los montos personalizados a PayPal para su procesamiento. Siga los pasos que se mencionan a continuación:
Paso 1: Primero, cree un archivo de eventos en aplicación/código/Vendedor/Extensión/etc/eventos.xml con el siguiente código:
|
Paso 2: Ahora, debe crear un observador que pasará los importes personalizados a la pasarela de pago de PayPal mediante la función addCustomItem. Crear un archivo en Proveedor/Extensión/Observador/ con el siguiente código:
pago = $pago; } public function execute(Observador $observador) { $carrito = $observador->getEvent()->getCart(); $presupuesto = $esto->pagar->obtenerPresupuesto(); $tarifa adicional = []; $tarifa adicional[] = $this->serializer->unserialize($quote->getFeesAmount()); if ($tarifa adicional) { foreach ($tarifa adicional as $clave => $tarifas) { $carrito->addCustomItem(‘Tarifa adicional’, 1, $tarifas[$key]); } } devuelve $esto; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 dieciséis 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
espacio de nombres Proveedor\Extensión\Observador; use \Magento\Framework\Event\ObserverInterface; use \Magento\Framework\Event\Observer; use \Magento\Checkout\Model\Session; clase AddPriceToPaypal implementa ObserverInterface { pago público $; función pública __construct(Sesión $pago) { $this->checkout = $checkout; } función pública ejecutar (Observador $ observador) { $carrito = $observador->getEvent()->getCart(); $presupuesto = $esto->pagar->obtenerPresupuesto(); $tarifa adicional = []; $tarifa adicional[] = $this->serializer->unserialize($quote->getFeesAmount()); si ($tarifa adicional) { foreach ($tarifa extra como $clave => $tarifas) { $carrito->addCustomItem(‘Tarifa adicional’, 1, $tarifas[$key]); } } devolver $esto; } } |
Consejo: Puede reemplazar el 1 en (‘Cargo adicional’, 1, $ tarifas[$key]) con -1 si desea que la cantidad se deduzca del subtotal del carrito.
¡y tu estas listo!
Esto resolverá los problemas de pago de precio personalizado con PayPal en Magento 2, es decir, “Transacción rechazada debido a un argumento no válido en PayPal”
Espero que esta publicación lo ayude a agregar una tarifa personalizada al pago exprés de Paypal en Magento 2. 😇
Si todavía tiene alguna duda o consulta con respecto a la solución proporcionada, no dude en preguntar en la sección de comentarios a continuación. Estaría encantado de ayudarle. 🙂
¿Encontró útil esta solución? Compártalo con sus amigos de Magento a través de las redes sociales. 🐱🏍
Gracias por leer…! 🍀
Instale Magento 2 PayPal Multi-Currency y permita que los clientes paguen en su moneda preferida en lugar de la moneda base.