NOTE: if you are unable to write your own code to create an orders table (or use a plugin that handles this) this plugin will not be of use to you. This plugin is not a shoppingcart it does not create an order, it only handles payments for orders.
This plugin only adds a payment gateway to your own projects. You will have to create your own table and write your own code to create orders first. You only add this plugin after you have created this functionality yourself.
This plugin works great with my Room Booking Pro plugin and Members Pro plugin
Features
- A standardized way to add online payments using Omnipay (https://omnipay.thephpleague.com/)
- You can (re)use this standardized plugin to handle your online payments for many different projects
- This is just a payment gateway, you will first have to create the orders in the database yourself
Supported Payment Service Providers (PSP's)
- Mollie - iDeal, creditcard, PayPal, Bitcoin, SEPA Direct Debit, etc.
- PayPal Express - PayPal and creditcard
- Stripe (code your own components)
- ... (please contact me if you would like others)
This plugin automatically includes the following packages for you through composer.json when installed from the marketplace:
{ "require": { "league/omnipay": "^3", "omnipay/paypal": "^3.0", "omnipay/mollie": "^5.0", "omnipay/stripe": "^3.0" } }
Requirements for using the default components
- After you create and store your order yourself you redirect users to a page on your website using the $_GET['id'] parameter to identify the order ID.
- You have to create the table you use to store orders in. It should have at least columns with the following functions (the actual column names can be mapped in Settings > Omnipay):
Column | Function |
---|---|
id (int) | unique incremented ID (e.g. 132) |
paymentid (varchar) | set by PSP |
description (varchar) | description of what is purchased |
currency (varchar) | currency (e.g. EUR) |
amount (decimal) | amount (e.g. 100.00) |
ispaid (boolean) | if the order is paid (e.g. 1) |
A word about payment process flow (and Stripe)
Online payments should be handled by a Payment Service Provider (PSP). The PSP is the only one who needs to know your creditcard details. This is how Mollie and PayPal are designed.
- Collect order details on your website (products, pricing, shipping information)
- Save the order in your database
- Prepare the payment using the API of an PSP (e.g. request and store a paymentid in your database)
- Redirect the user to the website of the PSP (e.g. include the orderid)
- Pay on the website of the PSP
- Redirect the user back to your website (e.g. include the orderid)
- Check if the order is paid using the API of an PSP (e.g. check the status of the order using the paymentid)
- Mark the order as paid in your database
- Provide feedback to the users
- If the order was not paid use a webhook to periodically check if the order is paid
Some Payment Service Providers like Stripe actually do collect creditcard details on your site. Yes, I know these details do not have to be stored on your server and are send over SSL but I personally have a problem with this as there is no way for the visitors of your website to be sure that you do not store creditcard details anyway (for whatever reason).
The point being that as a visitor of your website I now do not only have to trust you to send me the items that I purchased on your site (creditcards are insured against this scenario) but I also have to trust that you do not store or transmit my creditcard details in a manner that is potentially insecure (even if you do not need to store creditcard details yourself you could if you wanted to). 50% of those fears would instantly go away by only asking for creditcard details on the website of the PSP. Stripe currently does not offer this possibility.
I have included Stripe but you will have to code your own components.
NOTE: PayPal Express also supports guest checkout using creditcards for visitors who do not have a PayPal account. You enter creditcard details on the website of PayPal.
Support
Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.
IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates
Like this plugin?
If you like this plugin, you can help me to develop it further, provide support for it or make new plugins by making a donation with PayPal (left side of the page) or giving this plugin a good review :).
My other plugins include:
- CRM Pro (Customer Relation Management)
- Room Booking Pro (Room Booking engine)
- Members Pro (Member subscriptions)
- Invoice Pro (Invoicing)
- Webmail Lite (Webmail)
This plugin is also included into the following bundles
CRM Pro
The professional Customer Relations Manager (CRM) for October
CRM Pro
The professional Customer Relations Manager (CRM) for October
- CRM Pro
- Pageguide Beta [DEPRECATED]
- Webmail Beta [DEPRECATED]
- Workflow Beta [DEPRECATED]
- + 4 more
Room Booking Engine
The best Room Booking plugin for October CMS (accept online payments & synchronise bookings)
Room Booking Engine
The best Room Booking plugin for October CMS (accept online payments & synchronise bookings)
- Room Booking Pro
- Room Booking
- Omnipay Lite
- Gallery Lite [DEPRECATED]
- + 2 more
Plugin Megapack
All my commercial plugins for an unbeatable price
Plugin Megapack
All my commercial plugins for an unbeatable price
- Members Pro
- CRM Pro
- Room Booking Pro
- Room Booking
- + 6 more
Hello, I am Wiego. Please start by reading the whole documentation! If you have any questions, find a bug or experience difficulties getting the plugin to work please use the Support Forum. Only leave a Review if you are happy with the plugin or are still unhappy with the plugin after reaching out to me in the Support Forum. Thank you!
Installation
- To install from the Marketplace, click on the "Add to Project" button and then select the project you wish to add it to before updating the project in the backend of your website to pull in the plugin. To install from the backend, go to Settings -> Updates & Plugins -> Install Plugins and then search for
Briddle.Omnipay
. - Go to Settings > Omnipay
- Map the columns of the database table you use to store orders
- Add the needed components to the correct pages on your website
My Omnipay plugin does not support automatic payments but you could implement SEPA Direct Debit with Mollie.com to setup automatic payments or use Stripe to setup automatic payments using a credit-card yourself.
Requirements for using the default components
- After you create and store your order yourself you redirect users to a page on your website using the $_GET['id'] parameter to identify the order ID.
- You have to create the table you use to store orders in. It should have at least columns with the following functions (the actual column names can be mapped in Settings > Omnipay):
Column | Function |
---|---|
id (int) | unique incremented ID (e.g. 132) |
paymentid (varchar) | set by PSP |
description (varchar) | description of what is purchased |
currency (varchar) | currency (e.g. EUR) |
amount (decimal) | amount (e.g. 100.00) |
ispaid (boolean) | if the order is paid (e.g. 1) |
Pay component
Add this component to the page on your website you redirect users to after creating the order and writing it to the database. This component uses
$_GET['id']
to fetch the correct order from the database.
Please enter the following properties:
Property | Description |
---|---|
Table | The name of the table you store your orders in |
PSP | The Payment Service Provider you want to use |
API-key | The API-key (Mollie) |
Username | Username (PayPal) |
Password | Password (PayPal) |
Signature | Signature (PayPal) |
Test-mode | Test-mode (PayPal) |
Return URL | The PSP will redirect users back to this page on your site |
Cancel URL | The PSP will redirect users back to this page on your site |
Paid component
Add this component to the page on your website your PSP will redirect users to after completing the payment. This component uses
$_GET['id']
to fetch the correct order from the database.
Please enter the following properties:
Property | Description |
---|---|
Table | The name of the table you store your orders in |
PSP | The Payment Service Provider you want to use |
API-key | The API-key (Mollie) |
Username | Username (PayPal) |
Password | Password (PayPal) |
Signature | Signature (PayPal) |
Test-mode | Test-mode (PayPal) |
Feedback to users
The component paid returns feedback to the user upon returning to the website. You can either overwrite the partial or use the page variable paid in your HTML (it can have value 'yes' or value 'no').
Events
I have made 2 events available: briddle.omnipay.pay
and briddle.omnipay.paid
. You can use these events to send confirmation mails etc. (e.g. in combination with my Workflow plugin).
- The
briddle.omnipay.pay
event return the description, amount and currency. - The
briddle.omnipay.paid
event return the paymentid, amount and currency.
Support
Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.
IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates
-
Tim Vermaercke
Found the plugin useful on 29 Apr, 2020
Just wow. It's an absolute disgrace this plugin was rated 3 out of 5 stars, while it should have all the stars possible.
It works great with Mollie (haven't tested Paypal) and it gets you kickstarted immediately. Thanks for sharing and a lot of kudos for the great work!
-
The Conditional Pixel Coöperatie (U.A.)
Found the plugin useful on 23 Apr, 2020
Works great. Thank you!
-
Sitios Agencia Digital
Found the plugin not useful on 13 Apr, 2020
Hi, i'm having an issue here with the plugin. I'm getting an error with the vendor folder. This is my error: Cannot redeclare Clue\StreamFilter\append() (previously declared in E:\Path\to\October-Ecommerce\vendor\clue\stream-filter\src\functions.php:17)
-
Wiego Bergsma author
Replied on 14 Apr, 2020
Hi,
This is not the Support Forum. I am unable to communicate with you about your issue here to find out what the problem is. Please use the Support Forum to get... support.
At first glance your issue does not seem to be a bug but rather something to do with your current setup.
-
amdad
Found the plugin useful on 3 Oct, 2018
Cheers! You've opened big door of integrations. Thanks!
-
1.0.4 |
Added backend translations and provided feedback view to Paid component Oct 05, 2018 |
---|---|
1.0.3 |
Fixed bug in marking PayPal orders as paid Oct 03, 2018 |
1.0.2 |
Added notifyUrl. Oct 03, 2018 |
1.0.1 |
Initialize plugin. Oct 02, 2018 |