-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mollie integration (#3) #68
base: develop
Are you sure you want to change the base?
Conversation
* Update mollie_settings.py * Update mollie_settings.json * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update stripe_checkout.js * Update mollie_checkout.js * Update stripe_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py
When will this be merged? |
+1 for looking into this. Really important to my company for switching to erpnext |
@trustedcomputer could you pls look into this? |
@torstenhoegel I don't have any write access to the repository. You'll need to find a frappe maintainer to get this moving. |
@NagariaHussain hey, could you please prioritise this? :) thx |
* Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update stripe_checkout.js * Update mollie_checkout.js * Update stripe_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.html * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_checkout.py * Update mollie_settings.py * Update mollie_settings.py * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.html * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.js * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py * Update mollie_checkout.py if payment_status exists, first check for status field in doctype before checking the payment ID in the Mollie API
Can you attach a video of the working flow? |
Only skip if status_field is 'completed'
It is now also compatible with the ability to pay at other moments than only after submitting the web form. This can be used for example in the case where users have a personal account page with "outstanding payments", where you can link them to the checkout page if the payment_status is not "Completed". Also, before todays changes the Mollie payment status was retrieved from the Mollie API, but I changed this to be overrided when the payment_status field is "Completed". This can be used for whatever reason when you want to manually change the payment_status to "Completed" (e.g. user pays via other sources). |
@NagariaHussain see the video below for the showcase. In the video, I change the payment status manually to "Completed", but obviously this happens automatically after payment |
@NagariaHussain @pateljannat @blaggacao when will this be merged? You can find a showcase video above |
There's a refactoring going on, taking shape, being validated over at #53 I haven't updated the PR with the lastest additions and bug fixes from production operation. I think it is worthwhile to hold back on a merge until the new api stabilizes and then refactor. I can try to push more fixes/additions, I planned to do that anyway, but now that I know there's a stakeholder I might be even more motivated to get this done 😄 Thanks for the ping!! These are just my 2 cents from a maintenance perspective. |
PS: If maintenance sharing is less of an issue, for purposes of discoverability, we could add this PR right now to the readme with a caveat. Users can then deploy from this PR/branch and can report their issues here. Because I agree, Mollie is important in EU! |
@blaggacao Thank you for your extensive response. I did not know a refactor was happening, so it makes sense to await the new API. In the meantime, adding it to the readme would indeed help people who need this integration find it easier. |
This would be important for us too! Any updates on when this will be merged? |
@timeo-schmidt As mentioned above, the Payments module is being refactored in #53. When that is stable and the new API is out, this PR needs be be refactored as well and can be merged after. However, you can still manually use this PR to be able to use the Mollie integration. That is also what I did. |
Thanks for submitting this, MrPauwhaan! Just to check (obviously 'no' is fine): do you ever intend to submit something to connect mollie's payment dashboard to the accounting module? |
@0spinboson I was recently thinking about working on that, so yes, the intention is there (especially since the Plaid integration in ERPNext no longer works). However, time is my biggest constraint. I am not great with coding, so I wrote this by making many mistakes and spending a lot of time on it. Please let me know which features you would like to have. I will consider those if/when I will extend this integration to the payment dashboard |
Well, I recently looked into ERPNext because I'm looking for an alternative to our current bookkeeping/CMS/CRM (and perhaps sales) systems (we're a nonprofit membership association). But I didn't get very far because of the Plaid integration being gone, and I at the very least need to be able to generate invoice/debit batches to send to our bank, if we are to ever switch to this for our membership management and dues administration needs. In terms of Mollie, we use it both for sales and incoming donations. I'd like a way to get the payment details mollie has listed so I can properly book all the costs and revenues, as well as any/all donations that come in, since there isn't an easy way to get that info from mollie without manual administration. |
Solves: #29 #58
Added a Mollie integration for Frappe webforms. Mollie is a big payment provider within Europe and, therefore, an essential for many SMEs who want to use Frappe for handling payments
payment_id
where the Mollie Payment ID is stored.Optional: create a
payment_status
field where the status of the payment is automatically stored.Optional: Use Mollie in test mode by using the test api key in the mollie settings page. Mollie automatically recognizes it as a test payment.