3

I'm using Magento 2 CE Version 2.1.2. Facing strange issue. My website is live.

Using Paypal Express Checkout. We are using CDN & SSL.

Out of 100 Customers 10 Customers will face above kind of issue. When i turn on Debug Mode ON

I have below ones in the log.

'L_SHORTMESSAGE0' => 'Shipping Address1 Empty', 'L_LONGMESSAGE0' => 'The field Shipping Address1 is required',

'L_SHORTMESSAGE0' => 'Shipping Address Postal Code Empty', 'L_LONGMESSAGE0' => 'The field Shipping Address Postal Code is required',

'L_SHORTMESSAGE0' => 'Customer must choose new funding sources.', 'L_LONGMESSAGE0' => 'The customer must return to PayPal to select new funding sources.',

When i check Customer Address on Admin they have all the information. We disabled Guest Checkout.

The issue is where is data loss from Paypal to Magento? How can solve this issue 100%, so no user will face this issue.

  • is this issue resolved? – LucScu Mar 8 '18 at 14:18
1

Sending address to Paypal is not working well.

Also, in this similar issue, it seems that Paypal doesn't recommends to send address : Paypal Express Checkout without shipping address

To disable it in Express Checkout, you have to create a plugin :

Declare module - /app/code/Namespace/Module/registration.php :

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Module',
    __DIR__
);

Declare Plugin - /app/code/Namespace/Module/etc/di.xml :

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Paypal\Model\Api\Nvp">
        <plugin sortOrder="1" name="namespaceModuleNvp" type="Namespace\Module\Plugin\Model\Api\NvpPlugin"/>
    </type>
</config>

Plugin file - /app/code/Namespace/Module/Plugin/Model/Api/NvpPlugin.php :

<?php

namespace Webart\Base\Plugin\Model\Api;

/**
 * Class NvpPlugin
 * @package Webart\Base\Plugin\Model\Api
 */
class NvpPlugin
{
    /**
     * @param \Magento\Paypal\Model\Api\Nvp $subject
     * @param callable $proceed
     * @param $methodName
     * @param array $request
     * @return mixed
     */
    public function aroundCall(\Magento\Paypal\Model\Api\Nvp $subject, callable $proceed, $methodName, array $request)
    {
        $request['NOSHIPPING'] = 1; // All this stuff for that ;-)
        return $proceed($methodName, $request);
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.