Skip to Content
Menu
This question has been flagged
1 Reply
5284 Views

Hi everyone,


I've been struggling with this all day. I have the Paypal acquirer all setup. It goes smoothly, returns to the customer portal and says the payment was accepted. But it never applies to the SO.


I've been following this bug, and all related links found within, and have tried the solutions listed in there without avail: https://github.com/odoo/odoo/issues/768#issuecomment-215951673


That is, I've tried:

-setting 'return url' in paypal to https://website.com/shop/confirmation

-checked that my web.base.url matches the above URL's, and added the freeze url option as well

-setting language encoding to UTF-8

-adding/removing merchant ID from the payment acquirer in Odoo


The Paypal transactions show up as "Done" in "Payment Transactions" but just won't apply to the SO still.

Or so I don't think so, where would an SO be marked as paid anyways, if there is no invoice created?


Edit: I also noticed that if I go into Account->Dashboard->Customer Invoices->More->Payments Matching and reconcile various payments, they still aren't applied to the invoices.


Suggestions?

Avatar
Discard

The question in your 'edit' is not related to the main question. You should create a new question for it with more details.

Best Answer

Assuming v9e, here are a couple things to know on this topic:

  • The call back from the acquirer is managed by the payment.transaction model. As you pointed, a "Done" status means it was successful. Any other status means it wasn't successful (either because the user killed his browser page before submit, or because he submitted and it didn't go through for some reason).

  • The fact that the quotation gets confirmed into an SO automatically depends on the exact Odoo version you are on. There have been several changes around this.

  • Configuring Paypal (on the Paypal side) is not straightforward. If you want to make sure your Paypal is properly set up, make sure to read all of the following:

    https://www.odoo.com/documentation/user/9.0/accounting/receivables/customer_payments/paypal.html

    https://docs.google.com/document/d/1VwF1Kkhi7jVqUewKGgHaxTTRqyAQRkLrAxqOc7fgDWw/edit#heading=h.6x7as6skj0em

  • As of June 2016, it is not possible to automatically generate an invoice, a payment, and reconcile them in standard when a credit card is processed. This needs to be done manually and it's ok for majority of businesses. Also the statement reconciliation widget makes it very quick (so you can bypass the payment registration and the invoice reconciliation). The automatic generation of invoice, payment, and reconciliation is on the roadmap and should land in an upcoming SaaS release and in v10e. In the meantime, it's all a matter of volume: if you have say less than 100 invoices per month, you can take care of the invoice creation manually without problem; on the other hand if you are an ecommerce merchant with thousands of sales per month, you will probably want to write a short server action to automate this.

  • In v9e, a payment is 'processed' on an SO and is 'registered' on an invoice. The link between the processed payment and the SO is on the model payment.transaction; the link between the registered payment and the invoice is the reconciliation code in the corresponding A/R journal items. It is not possible to process a payment on an invoice (coming in v10e); it is not possible to register a payment on an SO (and it shouldn't considering this is an accounting operation).

  • Payments (transactions, tokens, S2S, recurrence,...) are being revamped for v10e in order to allow for more use cases than what is possible in v9e.

Avatar
Discard
Author

Appreciate the detail you've given here. Sounds like whether we're taking payments from Paypal, credit card, or any other acquirer, Odoo will not automatically mark the invoice as paid. Correct?

That's correct, but there are 2 important takeaways: 1) it will be the case in a couple months, 2) if you decide to take care of your statement reconciliation in Odoo (which is a manual operation anyway), it will mark your invoice as paid automatically without any extra step or click.

Author

Got it. Thank you!