Merge pull request #355 from odoo/12.0-ECOMMERCE-PAYPAL-JUB

[IMP]Ecommerce:Paypal
This commit is contained in:
Julien B 2019-05-13 11:33:09 +02:00 committed by GitHub
commit 1372c3ed13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 146 additions and 109 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,155 +1,192 @@
=========================== =============================
How to get paid with Paypal Configure your Paypal account
=========================== =============================
Paypal is the easiest online payment acquirer to configure. Paypal is available and popular worldwide. It doesnt charge any
It is also the only one without any subscription fee. subscription fee and creating an account is very easy. Thats why we
We definitely advise it to any starter. definitely recommend it for starters in Odoo. It works as a seamless
flow where the customer is routed to Paypal website to register the
payment.
Paypal account
==============
A business account is needed to get paid with Paypal. Create a `Paypayl Business Account <https://www.paypal.com/us/merchantsignup/applicationChecklist?signupType=CREATE_NEW_ACCOUNT&productIntentId=wp_standard>`__ or upgrade your Personal account to a Business account. Go to the Paypal settings and click on *Upgrade to a Business account*. Then follow the few configuration steps.
Set up your Paypal account Settings in Paypal
========================== ==================
* Create a `Paypal Business Account <https://www.paypal.com>`__ | First, lets see how to set up your Paypal account in order to build a
or upgrade your account to *Business account* if you have a basic account. seamless customer experience with Odoo.
| Log in and open the settings. Go to *Products & Services > Website
payments* and click *Update* on *Website preferences*.
* Log in to `Paypal <https://www.paypal.com>`__ .. image:: media/paypal01.png
and open the settings of your **Profile**.
.. image:: media/paypal_profile.png
:align: center :align: center
* Now enter the menu **My selling tools**. Auto Return
-----------
.. image:: media/paypal_selling_tools.png *Auto Return* automatically redirects your customers to Odoo once the
payment is processed. Check *Auto Return* and enter your domain name
"/shop/confirmation" as *Return URL* (e.g.
https://yourcompany.odoo.com/shop/confirmation).
This URL is requested in Paypal but not used in practice as Odoo
transmits it at each transaction. Dont worry if you manage several
sales channels or Odoo databases.
.. image:: media/paypal02.png
:align: center :align: center
* Let's start with the **Website Preferences**. Payment Data Transfer (PDT)
---------------------------
* Turn on **Auto Return** and enter the **Return URL**: *Payment Data Transfer* delivers the payment confirmation to Odoo as
<odoo_instance_url>/shop/confirmation. soon as it is processed. Without it, Odoo cannot end the sales flow.
Verify that this address uses the correct protocol (HTTP/HTTPS). This setting must be activated as well. When saving, an *Identity
Token* is generated. You will be later requested to enter it in Odoo.
.. image:: media/paypal_auto_return.png .. image:: media/paypal03.png
:align: center :align: center
* Turn on **Payment Data Transfer**. Paypal Account Optional
When saving, an **Identity Token** is generated.
You will be later requested to enter it in Odoo.
.. image:: media/paypal_data_transfer.png We advise you to not prompt customers to log in with a Paypal account
when they get to pay. Let them pay with debit/credit cards as well, or you might lose some deals. Make sure this setting is turned on.
.. image:: media/paypal04.png
:align: center :align: center
* Then, get back to your profile to activate the Instant Payment Notification (IPN)
**Instant Payment Notification (IPN)** in *My selling tools*. ----------------------------------
Enter the **Notification URL**: <odoo_instance_url>/payment/paypal/ipn PDT sends order confirmations once and only once. As a result, your site
must be running when it happens; otherwise, it will never receive the
message. Thats why we advise to activate the *Instant Payment
Notification* (IPN) on top. With IPN, delivery of order confirmations
is virtually guaranteed since IPN resends a confirmation until your site acknowledges receipt.
.. image:: media/paypal_ipn_setup.png | To activate IPN, get back to *Website payments* menu and click
*Update* in *Instant Payment Notification*.
| The *Notification URL* to set is your domain name +
“payment/paypal/ipn” (e.g.
https://yourcompany.odoo.com/payment/paypal/ipn).
.. image:: media/paypal05.png
:align: center :align: center
* Now you must change the encoding format of the payment request sent by Odoo Payment Messages Format
to Paypal. To do so, get back to *My selling tools* and click -----------------------
**PayPal button language encoding** in *More Selling Tools* section.
.. image:: media/paypal_button_encoding.png Finally make sure the encoding format of payment messages is correctly
set. Go to *PayPal button language encoding*.
.. image:: media/paypal06.png
:align: center :align: center
Then, click *More Options* and set the two default encoding formats as **UTF-8**. Click *More Options* and set the two default encoding formats as
*UTF-8*.
.. image:: media/paypal_more_options.png .. image:: media/paypal07.png
:align: center :align: center
.. image:: media/paypal_encoding_options.png .. image:: media/paypal08.png
:align: center :align: center
.. tip:: If you want your customers to pay without creating a Paypal account, Your Paypal account is ready!
**Paypal Account Optional** needs to be turned on.
.. image:: media/paypal_account_optional.png
:align: center
Settings in Odoo
Set up Odoo
===========
* Open Paypal setup form in :menuselection:`Website or Sales or Accounting
--> Settings --> Payment Acquirers+`. Enter both your **Email ID**
and your **Merchant ID** and check **Use IPN**.
.. image:: media/paypal_credentials.png
:align: center
They are both provided in your Paypal profile,
under :menuselection:`My business info`.
* Enter your **Identity Token** in Odoo (from *Auto Return* option).
To do so, open the *Settings* and activate the **Developer Mode**.
.. image:: media/paypal_debug.png
:align: center
Then, go to :menuselection:`Settings --> Technical --> Parameters --> System Parameters`
and create a parameter with following values:
* Key: payment_paypal.pdt_token
* Value: your Paypal *Identity Token*
.. image:: media/paypal_identity_token.png
:align: center
Go live
=======
Your configuration is now ready!
You can make Paypal visible on your merchant interface
and activate the **Production mode**.
.. image:: media/paypal_live.png
:align: center
Transaction fees
================ ================
You can charge an extra to the customer to cover the transaction fees Paypal charges you. Activation
Once redirected to Paypal, your customer sees an extra applied to the order amount. ----------
To activate this, go to the *Configuration* tab of Paypal config form in Odoo Activate *Paypal* from the config bar of Sales, Invoicing and
and check *Add Extra Fees*. Default fees for US can be seen here below. eCommerce apps, or from the configuration menu of *Payment Acquirers*.
.. image:: media/paypal_fees.png Credentials
-----------
Odoo requires three Paypal credentials:
- *Email ID* is your login email address in Paypal.
- *Merchant ID* can be found in the settings of your Paypal account, in *Profile > About the business*.
- *Paypal PDT Token* is given in *Website payments* configuration as explained here above.
.. image:: media/paypal09.png
:align: center :align: center
To apply the right fees for your country, please refer to Transaction fees
`Paypal Fees <https://www.paypal.com/webapps/mpp/paypal-fees>`__. ----------------
You can charge extra fees to your customers for paying with Paypal;
This to cover the transaction fees Paypal charges you. Once redirected to Paypal, your customer sees an extra applied to the order amount.
Test the payment flow To activate this, go to the Configuration tab of Paypal configuration in
===================== Odoo and check *Add Extra Fees*.
You can test the entire payment flow thanks to Paypal Sandbox accounts. .. image:: media/paypal10.png
:align: center
* Log in to `Paypal Developer Site <https://developer.paypal.com>`__ You can refer to `Paypal Fees <https://www.paypal.com/webapps/mpp/paypal-fees>`__ to set up
with your Paypal credentials. fees.
This will create two sandbox accounts:
* A business account (to use as merchant, e.g. pp.merch01-facilitator@example.com). ..note:: `Traders in the EU <https://europa.eu/youreurope/citizens/consumers/shopping/pricing-payments/index_en.htm>`__
* A default personal account (to use as shopper, e.g. pp.merch01-buyer@example.com). are not allowed to charge extra fees for paying with credit cards.
* Log in to `Paypal Sandbox <https://www.sandbox.paypal.com>`__ Go live!
with the merchant account and follow the same configuration instructions. ========
* Enter your sandbox credentials in Odoo and make sure Paypal is Your configuration is ready to roll. Make sure *Production* mode is
still set on *Test* mode. on. Then publish the payment method by clicking the *Published* button right next to it.
Also, make sure the confirmation mode of Paypal is not
*Authorize & capture the amount, confirm the SO and auto-validate
the invoice on acquirer confirmation*.
Otherwise a confirmed invoice will be automatically generated when
the transaction is completed.
* Run a test transaction from Odoo using the sandbox personal account. .. image:: media/paypal11.png
:align: center
.. seealso:: .. image:: media/paypal12.png
:align: Center
* :doc:`payment` Paypal is now available in your payment form available in eCommerce,
* :doc:`payment_acquirer` Sales and Invoicing apps. Customers are redirected to Paypal website
when hitting *Pay Now*. They get back to a confirmation page in Odoo
once the payment is processed.
.. image:: media/paypal13.png
:align: center
Test environment
================
You can test the entire payment flow in Odoo thanks to Paypal Sandbox accounts.
Log in to `Paypal Developer Site <https://developer.paypal.com/>`__ with your Paypal credentials.
This will create two sandbox accounts:
- A business account
(to use as merchant, e.g.
`pp.merch01-facilitator@example.com <mailto:pp.merch01-facilitator@example.com>`__).
Log in to `Paypal Developer Site <https://developer.paypal.com/>`__ with your Paypal credentials.
- A default personal account
(to use as shopper, e.g.
`pp.merch01-buyer@example.com <mailto:pp.merch01-buyer@example.com>`__).
Log in to Paypal Sandbox with the merchant account and follow the same configuration instructions.
Enter your sandbox credentials in Odoo and make sure Paypal is still
set on *Test Environment*. Also, make sure the automatic invoicing
is not activated in your eCommerce settings, to not generate invoices
when a fictitious transaction is completed.
Run a test transaction from Odoo using the sandbox personal account.
See also
`How to manage orders paid with payment acquirers <https://www.odoo.com/documentation/user/12.0/ecommerce/shopper_experience/payment.html>`__
`How to manage orders paid with payment acquirers <https://www.odoo.com/documentation/user/12.0/ecommerce/shopper_experience/payment_acquirer.html>`__