{"id":137929,"date":"2018-08-10T15:35:24","date_gmt":"2018-08-10T15:35:24","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=137929"},"modified":"2024-02-22T11:21:37","modified_gmt":"2024-02-22T11:21:37","slug":"magento-2-custom-charge-error-fixed-with-paypal-in-custom-module","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/","title":{"rendered":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module"},"content":{"rendered":"\n<p>If you want to add a custom charge to your module you can check this blog\u00a0<a href=\"https:\/\/webkul.com\/blog\/add-custom-pricefee-order-total-magento2\/\" target=\"_blank\" rel=\"noopener\">Custom Price Fee<\/a><\/p>\n\n\n\n<p>In Magento 2 Paypal is implemented with the module name Paypal, If the customer selects the Paypal method for the payment then Magento\\Paypal\\Model\\Cart will call instead of Magento\\Payment\\Model\\Cart used for collecting items and amount and validate the info collected before sending to PayPal.<br>Now if in an order you added some custom amount, and want to pay the payment by Magento&#8217;s default PayPal payment method, then it throws the error that, the amount is not the same as the order amount.<\/p>\n\n\n\n<p>I have described here how to solve this issue in our custom Magento2 Modules.<\/p>\n\n\n\n<p>1) <strong>you need to create the plugin, go to NameSpace\/ModuleName\/etc\/di.xml :<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?xml version=&quot;1.0&quot;?&gt;\n&lt;config xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:framework:ObjectManager\/etc\/config.xsd&quot;&gt;\n    &lt;type name=&quot;Magento\\Paypal\\Model\\Cart&quot;&gt;\n        &lt;plugin name=&quot;webkul_update_paypal_custom_fee_order&quot; type=&quot;NameSpace\\ModuleName\\Plugin\\Model\\UpdateCustomFeeForOrderPayPal&quot;\/&gt;\n    &lt;\/type&gt;\n&lt;\/config&gt;<\/pre>\n\n\n\n<p>2) Now, Define this plug-in at the path <strong>NameSpace\\ModuleName\\Plugin\\Model\\UpdateCustomFeeForOrderPayPal.php<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\nnamespace NameSpace\\ModuleName\\Plugin\\Model;\nclass UpdateCustomFeeForOrderPayPal\n{\n    \/**\n     * @var \\Magento\\Checkout\\Model\\Session\n     *\/\n    protected $_checkoutSession;\n    const AMOUNT_SUBTOTAL = &#039;subtotal&#039;;\n    public function __construct(\n        \\Magento\\Checkout\\Model\\Session $checkoutSession\n    ) {\n        $this-&gt;_checkoutSession = $checkoutSession;\n    }\n\n    public function afterGetAmounts($cart,$result)\n    {\n        $quote = $this-&gt;_checkoutSession-&gt;getQuote();\n        $paymentMethod = $quote-&gt;getPayment()-&gt;getMethod();\n        $paypalMethodList = &#091;\n            &#039;payflowpro&#039;,\n            &#039;payflow_link&#039;,\n            &#039;payflow_advanced&#039;,\n            &#039;braintree_paypal&#039;,\n            &#039;paypal_express_bml&#039;,\n            &#039;payflow_express_bml&#039;,\n            &#039;payflow_express&#039;,\n            &#039;paypal_express&#039;,\n            &#039;paypal_billing_agreement&#039;,\n            &#039;hosted_pro&#039;,\n            &#039;payflowpro_cc_vault&#039;\n        ];\n\n        \/\/ to check the paypal payment method\n        if (in_array($paymentMethod, $paypalMethodList)) {\n            $result&#091;self::AMOUNT_SUBTOTAL] = $result&#091;self::AMOUNT_SUBTOTAL] + $quote-&gt;getCustomfee();\n        }\n\n        return $result;\n    }\n}<\/pre>\n\n\n\n<p>Here, we check after plugin, if you want to check how to create the plugin in Magento, You can check this blog\u00a0<a href=\"https:\/\/webkul.com\/blog\/magento2-use-plugins\/\">Magento 2 Create &amp; uses Of Plugins<\/a><br>Here,\u00a0afterGetAmounts we check if the payment method is PayPal\u00a0then we add the custom fee\u00a0with the subtotal.<br>Hope it will help you. Thank You.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you want to add a custom charge to your module you can check this blog\u00a0Custom Price Fee In Magento 2 Paypal is implemented with the module name Paypal, If the customer selects the Paypal method for the payment then Magento\\Paypal\\Model\\Cart will call instead of Magento\\Payment\\Model\\Cart used for collecting items and amount and validate the <a href=\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":171,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[302],"tags":[3011,7263,7262,2460],"class_list":["post-137929","post","type-post","status-publish","format-standard","hentry","category-magento2","tag-custom-fee","tag-custom-fee-order-total","tag-custom-fee-with-paypal","tag-magento-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"If you want to add a custom charge to your module you can check this blog\u00a0Custom Price Fee In Magento 2 Paypal is implemented with the module name Paypal, If the customer selects the Paypal method for the payment then MagentoPaypalModelCart will call instead of MagentoPaymentModelCart used for collecting items and amount and validate the [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-10T15:35:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-22T11:21:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anuj Gupta\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anuj Gupta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\"},\"author\":{\"name\":\"Anuj Gupta\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/8b6a9038345794233c3cf41b15a330c4\"},\"headline\":\"Magento 2 Custom Charge Error fixed With PayPal in Custom Module\",\"datePublished\":\"2018-08-10T15:35:24+00:00\",\"dateModified\":\"2024-02-22T11:21:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\"},\"wordCount\":209,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"keywords\":[\"custom fee\",\"custom fee order total\",\"custom fee with paypal\",\"Magento 2\"],\"articleSection\":[\"Magento2\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\",\"url\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\",\"name\":\"Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"datePublished\":\"2018-08-10T15:35:24+00:00\",\"dateModified\":\"2024-02-22T11:21:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Magento 2 Custom Charge Error fixed With PayPal in Custom Module\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/8b6a9038345794233c3cf41b15a330c4\",\"name\":\"Anuj Gupta\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a46d5e8da91ff0fecc16beee97bfb7b3a8ed158c64c69f50ddc3c1ce7d532e97?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a46d5e8da91ff0fecc16beee97bfb7b3a8ed158c64c69f50ddc3c1ce7d532e97?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Anuj Gupta\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/anuj-gupta701\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/","og_locale":"en_US","og_type":"article","og_title":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog","og_description":"If you want to add a custom charge to your module you can check this blog\u00a0Custom Price Fee In Magento 2 Paypal is implemented with the module name Paypal, If the customer selects the Paypal method for the payment then MagentoPaypalModelCart will call instead of MagentoPaymentModelCart used for collecting items and amount and validate the [...]","og_url":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2018-08-10T15:35:24+00:00","article_modified_time":"2024-02-22T11:21:37+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-og.png","type":"image\/png"}],"author":"Anuj Gupta","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Anuj Gupta","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/"},"author":{"name":"Anuj Gupta","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/8b6a9038345794233c3cf41b15a330c4"},"headline":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module","datePublished":"2018-08-10T15:35:24+00:00","dateModified":"2024-02-22T11:21:37+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/"},"wordCount":209,"commentCount":2,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"keywords":["custom fee","custom fee order total","custom fee with paypal","Magento 2"],"articleSection":["Magento2"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/","url":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/","name":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"datePublished":"2018-08-10T15:35:24+00:00","dateModified":"2024-02-22T11:21:37+00:00","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/magento-2-custom-charge-error-fixed-with-paypal-in-custom-module\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Magento 2 Custom Charge Error fixed With PayPal in Custom Module"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/8b6a9038345794233c3cf41b15a330c4","name":"Anuj Gupta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a46d5e8da91ff0fecc16beee97bfb7b3a8ed158c64c69f50ddc3c1ce7d532e97?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a46d5e8da91ff0fecc16beee97bfb7b3a8ed158c64c69f50ddc3c1ce7d532e97?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Anuj Gupta"},"url":"https:\/\/webkul.com\/blog\/author\/anuj-gupta701\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/137929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/171"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=137929"}],"version-history":[{"count":12,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/137929\/revisions"}],"predecessor-version":[{"id":423836,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/137929\/revisions\/423836"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=137929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=137929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=137929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}