Odoo Paypal Capture

When a customer buys a product from the odoo website interface, and asks for delivery, sometimes the delivery is more expensive than the product itself, so one of our customers asked to integrate the solution "Paypal Authorize and Capture" in his website (Odoo).


To understand more about this feature, we invite you to do a little research on "Paypal Authorization and Capture".


If a customer places an order for a $ 100 product, then the odoo-based website sends a request to paypal to make a "Capture" of $ 115 (+ 15%). The additional $ 15 is to guarantee that this sale will be profitable even in the case where the cost of delivery is high compared to the cost of the delivered products.

Our client has also chosen to add a second option:

  • Dans le menu "Vente> Paramètres", l'administrateur peut configurer le produit qui constitue le service de livraison. Ce produit sera ajouté par défaut à chaque commande effectuée à partir de l'interface frontale (site Web). Par exemple, si le client a passé une commande de 100 USD et que le prix du service de livraison est de 12 USD, le site Web (odoo) envoie alors une demande à Paypal pour autoriser:
    ($ 100 + $ 12) * 1.15 = $ 128.8. 

  • After the Paypal Authorization, the seller (odoo backend user), estimates the cost of transportation. In the case where the cost is greater than $ 12 (transportation service price) then the seller can make the "Capture" of an amount higher than the original order price. So the amount of the "Capture" can vary between:
    $ 112 (100 + 12) and $ 128.8 ((100 + 12) * 1.15).

    And at this stage (Capture) the amount goes from paypal account of customer to the account of the company (seller).

Execution example:

Le responsable des ventes effectue la configuration du "Produit de livraison" à partir du menu:
Paramètres> Configuration> Vente> Capture Paypal> Produit d'expédition

Le responsable des ventes configure le « pourcentage de capture » de la vue de la forme de la méthode de paiement « Paypal », champ « expédition (%) ».

If a customer creates an order from Front-end (website), the product "Delivery Service" will be added automatically.

The website, displays a message to the client under the button that redirects to the Paypal payment page, to inform him about the process "Authorization and Capture".

After the customer confirms payment from paypal, the "Authorisation" step is done and he will be redirected to a confirmation page of his "Sale Order".

This confirmation message contains the amounts to which there was the "Authorization", it is a bit higher compared to the example described above, because this example contains a 5% Tax: (100 + 12) * 1.05 * 1.15 = 135.24 $

From the Back-end interface, the seller (odoo user), estimates the cost of transportation. In case the cost is higher than the transport service price ($ 12) then the seller can capture a higher amount than the original price by editing the generated order in the back end. So the amount of the "Capture" can vary between:

(100 + 12) * 1.05 = 117.60 and $ (100 + 12) * 1.05 * 1.15 = 135.24 $. 

After the confirmation of the sale order and the generation of Invoice, to make the "Capture" of the amount, the seller must click on the button "Capture Payment" from the form view of the invoice and at this step the amount passes from paypal account of customer to the account of the company (seller).

After the "Capture", a "Paypal Capture" page in the two form views of "Sale Order" and "Invoice" displays useful information to track the payment made.

At the end, the seller sends an email to the customer who contains the invoice and the amount used to make the payment (Capture) which is always greater than or equal to the initial amount of the order, and less than or equal to the authorized amount.