Description
Easycheckout module - one page checkout module for PrestaShop 8 & 1.7, as a one page checkout page, it has all features that a one page checkout module must have and some fancy features, besides it has a nice looking which can make customers feel pleasant during the checkout process. All at a reasonable price.
This module isn't ideal for a site that has a lot of payment modules and carrier modules, because the chance of bing able to integrate all of them is small.
10$ discount for panda theme and transformer theme users.
If you've bought our panda theme / transformer theme, the price of this module for you will be $75.
Main features:
- Nice looking OPC module, it can make your customers feel pleasant during the checkout process.
- Flexible layout 1, 2 or 3-column layout.
- Customizable checkout page design to match with your existing website design.
- Manage shopping cart on the checkout page.
- Compatible with all themes and almost all modules.
- Social login.
- Google address auto suggestion with geolocate feature to detect customer location.
Easy customizable design.
This module has like a lot of options to make you be able to change colors, background colors, fonts(Google fonts included), shadows for all major elements, you can easily create a checkout page which which matches your existing site design.
"Two buttons" model - A "Save" button in the address form.
You can set to show a "Save" button in the address form. Some people don't feel secure to click the "Checkout" button without saving the account info and the address info, another reason of adding a "Save" button is to make the easycheckout module be compatible with all carrier modules and payment modules. Since compatibility is a big issue for all one page checkout modules, because quite a lot carrier modules and payment modules are designed for logged in customers only, so they can't work fine with one page checkout. With the "Save" button people can save account information first, which makes sure that all carrier modules and payment modules work fine with the easycheckout module.
Check the Modules requires "Two buttons" model to run section under the compatibility tab for more info.
Flexible layout - 1, 2 or 3-column layout.
- The width of columns is adjustable.
- Blocks like "Cart summary", "Delivery" can be moved from one column to another.
- Each column has its own color settings.
- There is an extra more column is under 2nd and 3rd columns.
Custom carrier logo.
- Custom carrier logo .
- Display different numbers of carriers per row on different devices.
- Possibility to hide carrier logo.
- Possibility to use Google fonts on carrier title.
Custom payment method logo/title/subtitle.
- Several ways of displaying payment methods.
- Custom payment method logo.
- Custom payment method subtitle.
- Option to show/hide payment method description.
- Possibility to use Google fonts on payment method title.
Manage addresses on the checkout page.
- Ability to edit/add/remove addresses.
- Display different numbers of addresses per row on different devices.
- Google address auto suggestion with geolocate feature to detect customer location, a fast way to enter address, SAVE TIME.
Customizable block title.
- Block title with step numbers.
- Block title with icons.
- Block title.
Free integration service.
Most payment modules and carrier modules can work with Easy checkout module by default. If you have a payment module or a carrier module which works fine on the default checkout page, but not working on the Easy checkout page, then contact us, we can help you make it work for free. Check the "Compatibility" tab above for more info.
Edit shopping cart on the checkout page.
This module has 3 ways to display shopping cart on the checkout page.
- Native shopping cart summary.
- Compact shopping cart.
- Full shopping cart.
Customers can manage their shopping cart on the checkout page, like change quantity, remove items, no need to go back to the shopping cart, SAVE TIME.
Beside that you can control some other things.
- Hide/show product image.
- Hide/show product name & combination.
- Hide/show Remove button.
- How to display quantity: text or input with +-.
Social login.
Social login feature is built-in to minimize the registration time, increase convince rate.
- Facebook.
- Google.
- Amazon.
- Paypal.
Guest checkout.
Allow guest make purchases without creating an account.
Address form editor.
- Drag & drop to sort address form fields.
- Show/hide unrequired address form fields.
- Disable/enable js verification for address form fields.
- Set some address form fields as required.
Content loading placeholder .
Facebook like modern content loading placeholder. Content loading placeholder gives anticipation for the content that is going to appear, that's why it's the best solution for the first screen.
Customizable ticks.
Applying a different color for selected items is not enough, using a tick is the most reliable way to let customers knows clearly what they have chosen.
Information.
This module will gives out information to guide customers finishing checkout process.
AJAX based checkout with nice spinning loader.
Spinning loaders to show that a request is processing, overlays will be added to some blocks to prevent clicks which may cause confusions.
Basic validation for personal information.
Email verification, birthdate verification, phone number verification and postcode verification. To avoid having troubles with wrong personal information.
- Simple installation, no override files.
- Go to checkout page directly when the customer clicks on shopping cart button on other page.
- Custom content on the top and bottom of main section.
- Able to make Terms of service be checked by default.
- This one page checkout module is compatible with Free products and Virtual products.
- Able to disallow PO box addresses.
- Fully translatable.
- Compatible with GDPR.
- RTL support.
- Google fonts.
- Responsive design.
- Custom CSS code.
- One click upgrade.
- Unlimited colors.
- All major browsers support.
- Multi-shop support.
- Multi-languages.
- Default carrier(PrestaShop's native feature).
- Sort carriers(PrestaShop's native feature).
- Default payment method.
- Display payment methods according to the selected carrier(PrestaShop's native feature).
All feature requests are more than welcomed, you can send us your request via the support forum or the contact us page.
About Easycheckout module.
Don't be surprised if you find another module also called Easycheckout module on Max conversions, it's Easycheckout v1 for PrestaShop 1.6. The owner of the Easycheckout v1 is a partner of us (ST-themes), we created this Easycheckout module v2 for PrestaShop 8 & 1.7 based on some features and design of v1. This Easycheckout module v2 for PrestaShop 8 & 1.7 is selling on both ST-themes and Max conversions.
How to install and upgrade.
This one page checkout module can be installed easily without editing any files.
How to install? Use the "Upload a module" button on "BO > Modules" page to install the module. Here is a video guide: Easycheckout module for PrestaShop 8 & 1.7 installation guide.
How to upgrade? Two ways:
- This one page checkout module has one-click upgrade feature. Click on "Upgrade" button under the "About ST-themes" tab to upgrade your module.
- Use the "Upload a module" button on "BO > Modules" page to upload the new version to your site, it's the same as how to install, don't worry all your data will be safe, prestashop will just upload updated files to your site, it won't reinstall this module.
Documentation.
1. How to use this module.
Basically 3 steps:
- Add carriers to your site.
- Install payment modules.
- Configure the easycheckout module to have a nice checkout page to display login form, carriers, payment modules and cart summary.
The first two steps is the same as what you do with the default checkout page.
3. Is Easycheckout compatible with my theme.
Yes, Easycheckout module doesn't have any override files, so it would not conflict with your theme. It has a lot color settings, you can make it match with your theme design.
4. Can I use different settings for different stores on a multi-store site.
Yes, the module support prestashop's multi-store feature, most demos of the module were built on a multi-store site.
5. How to manage address format.Address format is different from country to country, so go to BO > International > Locations > Countries page to manage address format, go to a country's detail page to manage its address format. These fields are required, they must be in the Adress format field, otherwise erorrs would occur.
- firstname
- lastname
- address1
- country
- state
- city
You can do things like sorting form fields, disabling some form fields in the "Address form" section under the "Address block" tab. Changes there apply for all country. NOTE if you set to show "Company" out, but it's not showing on the front office, then you need to check if the "Company" field is added to the address format of your country on the "BO > International > Locations > Countries" page.
6. How to have one column layout.
You can find options to set the width of each column under the "Layout" tab, set a column to the with you want and set others to 0.
7. Why the install/upgrade process lasts so long.
In some cases, due to network interruptions, the install/upgrade process may get stuck, the popup does not disappear and it keeps spinning, because the installation page is over 1M. When that happens, you can reload the "Modules" page to re-install/re-upgrade this module. Don't worry, it's okay to stop the install/upgrade process if it lasts for several minutes.
8. Why some payment methods don't show out.
Check the "CARRIER RESTRICTIONS" section the on "BO > Payment > Preferences" page to see if they are selected there.
9. How to change url of this module to something like this https://www.yourdomain.com/checkout.
You can check the
Orange demo, its url is http://transformer2.sunnytoo.com/seventeenth/en/checkout
You can use prestashop's native feature to achieve that. Go to "BO > Shop parameters > Traffic & SEO > SEO & URLs" page to set a "Rewritten URL" for "module-steasycheckout-default".
11. How to achieve centered one column layout like the demo #5.
For transformer theme or panda theme, just set the width of other columns to 0/12, the column with a certain width will be automatically centered.
For all other themes, it's recommended to set a width to the 2nd column like 6/12, move all blocks to the 2nd column, now the first column is an empty, but don't set it to 0/12, set it to 3/12 to push the 2nd column to be in center.
12. Why step numbers go like this 1, 3, 4.
The reason why 2 is missing is that you placed an empty "Customer reassurance block" module to your checkout page. Check the "Customer reassurance block" setting under the "Layout" tab.
13. Why this module doesn't work 100% fine on my prestashop 1.7.2.4.
That's because of some problems in old versions of PrestaShop, it's highly recommended to install the module on 1.7.4.0 and above.
14. How to set some fields in the address form to be mandatory.
You can do that in the "Address form" section under the "Address block" tab.
15. How to translate.
Spanish and French translations are available.
Easycheckout translations (538 downloads)
This module is fully compatible with PrestaShop's translation system, you can translate it easily in the back office.
16. How to have a full width Order-to-pay button.
Put this code to the custom css code field.
1
| .steco_confirmation_btn {width: 100%; height: 42px; line-height: 36px; font-size: 18px;} |
17. Hide the password when in guest checkout model.
To hide the password field when guest checkout is allowed, to show as less fields as possible, to make checkout to be as easy as possible. Put this code to the custom css code field.
1
| #steco_customer_form_register .st_form_item_password, .steco_password_guest_note{display:none;} |
19. Hide the login form on the checkout page.
Hide the login form, so users can only order as guests. You need to set the "Default form" setting to "New customer" under the "Personal information" tab, and then put this code to the custom css code field.
1
| #acc_heading_login{display:none;} |
20. How to have the same header on the checkout page as the header on all other pages.
For transformer theme and panda theme users, enable the "Use the same header as other pages" setting under the "Checkout page" tab in the Theme editor module. For other theme users you need to edit one theme file, contact us for more information.
21. Can't save addresses.
Check if you have the code below in the "Address format" field for active countries. It's wrong to use fields for the customer form in the address form, They shouldn't be listed out there, because with them you can't save addresses either in the easycheckout module or in the PrestaShop's native checkout process.
1 2
| Customer:firstname
Customer:lastname |
Changing that to the code below can fix the problem.
22. How to sort payment methods.
Change sort order of payment modules in the "paymentOptions" section on the "BO>Positions" page, you may need to check the "Display non-positionable hooks" at the top right corner to see the "paymentOptions" section.
23. How to hide the "Country" field.
Set the "Country" field to hide in the "ADDRESS FORM" section under the "ADDRESSES BLOCK" tab in the Easycheckout module. Don't remove the "Country:name" from the "Address format" fields of countries, which may cause logged in customers not able to add new addresses.
24. Why the "State" field doesn't show out on the checkout page.
Check if "State:name " is in the "Address format" field for countries.
25. Why I get a message saying "Your address is incomplete".
Check the "Set required fields" section on the "BO > Customers > Addresses" page to see if any fields are set to be required, but in the "Address format" field of countries.
26. How do I know if my payment modules and carrier modules can work with the Easycheckout module.
The module is compatible with almost all payment modules and carrier modules, thanks to the "Two buttons" checkout feature. Check the "Two buttons" model section and the "Compatibility" tab for more info.
27. How to use Easycheckout's social login feature on the login page.
Transplant Easycheckout module to the "displayCustomerLoginFormAfter" hook.
28. How to have thick "missing info" borders.
Put this css code to the "Custom css code" field.
1
| .steco_container .form-group.has-error input.form-control, .steco_container .form-group.has-error select.form-control{-webkit-box-shadow:0 0 2px #ff0000;box-shadow:0 0 2px #ff0000;} |
29. How to add new icons to this module.
Check the "Easycheckout module" section on this page
How to add new icons.
30. If your site runs on Transformer theme or Panda theme, you don't want to use sticky header on the checkout page.
Put this code to the Custom css code field.
1
| #module-steasycheckout-default #st_header.stuck{position:static;} |
31. Don't test payment methods on Maintenance mode.
Put your site on Live mode when you are working on testing your payment methods. Because some payment methods need to connect with your site, if your site is under maintenance mode, then payments will fail.
32. Compatibility with the "geolocation" feature.
If you are using the "geolocation" features, then you need to replace this line $country = new Country($ps_country_default); to $country = Context::getContext()->country; in the \classes\Carrier.php file. We will try to find a better solution without editing any files.
33. Doesn't compatible with 1.7.6.4.NOTE with the latest version of easycheckout module, no need to do this modification anymore. Keep this here for people who are running old versions of easycheckout.
The module doesn't compatible with 1.7.6.4, due to a issue of it, check here https://github.com/PrestaShop/PrestaShop/issues/18100
To fix it, you need to edit the \classes\form\CustomerAddressFormatter.php file, find this line
1
| 'back' => (new FormField()) |
And then put this code right above it.
1 2 3
| 'id_address' => (new FormField())
->setName('id_address')
->setType('hidden'), |
34. How to make buttons "Login", "Checkout" be full width.
Put this code to the custom css code field.
1
| .btn.steco_btn{width:100%;} |
If you want to make the progress bar to be full width too, then put this code to the custom css code field.
1
| #steco_progress {left: 12px;margin-left: 0;right: 12px;width: auto;} |
35. Why mandatory address filds get set back to optional automatically?
It may be caused by the "onepagecheckoutps" module, if you have it installed, then uninstall it to check again. Note "uninstall", not "disable".
36. Why the carrier block doesn't change along with the change of country when I edit an address?
For logged-in customers, the carrier block won't be changed until the address form is saved. Consider these cases:
- If you have two addresses, one address is selected, when you edit the other one, the carriers shouldn't be changed.
- When you add a new address as the invoice address, the carriers shouldn't be updated.
We will soon add an option to overlay the carrier block and the payment block to avoid confusion.
37. How to change the color of placeholders?
Use this custom css code.
1
| .steco_container input.form-control::placeholder {color: #ff0000;} |
38. Can't create a new account / can't create a new address / can't edit an address?
Check if the "Do you need a tax identification number?" setting is enabled. If it's enabled and the DNI field isn't in the addree form, then new accounts can't be created.
39. Why the Alias filed doesn't show out?
The Alias field is majorly for logged in customers, showing it out for guests doesn't make much sense. See attached pic, if you do want to have it, remove that from the /modules/steasycheckout/views/templates/hook/address-form.tpl file.
40. Only letters and the dot (.) character, followed by a space, are allowed.
This message starts to appear in PrestaShop 1.7.7.0, use this custom css code to remove it if you don't need it.
1
| .st_form_item_firstname .form-control-comment, .st_form_item_lastname .form-control-comment{display:none;} |
Compatibility
Why I need to do these integration work?
It's common for all one page checkout modules to have compatibility issues with some carrier modules and payment modules, that's not just a problem of this easycheckout module, it's a problem existing in all one page checkout modules, because of most carrier modules and payment modules were created based on the default 4 steps checkout process, that's we need to do some integration work to make them work with one page checkout process. We hope developers of payment modules and carrier modules can make their modules be more friendly to one page checkout modules and include necessary changes to their module, that's the only way to make payment modules and carrier modules work with one page checkout modules without editing any files.
If you have a module that isn't listed out here, you can still install it to see if it can work fine. If it can't work, then contact us, we provide free integration service to make it work along with the easycheckout module.
Compatible Analytics & Statistics modules
- If you are look for a module which can integrate Google Tag Manager in your site, then take a look at the Premium Google Tag Manager Module For PrestaShop By ReactionCode, the module is high rated and is fully compatible with the Easycheckout module.
Compatible modules without integration
This is a list of modules which are compatible with Easycheckout by default.
- Wire payment by PrestaShop v2.0.4
- Payments by check by PrestaShop v2.0.3
- Openpay SPEI by Openpay SAPI de CV v2.7.0
- Openpay Offline by Openpay SAPI de CV v2.7.0
- Cash on delivery with fee by idnovate
- Dobírka v2.0.1 (dm_cashondelivery) by David Mrózek
- MegaReembolso, cash on delivery shipments with surcharge
- Multibanco / Payshop by LUSOPAY
- Quickpay by Kjeld Borch Egevang v4.0.42
- Payline by Monext v2.2.4
- PayPal with fee by 4webs.es
- Cash on delivery with fee (COD + FEE) by Prestalia
- PayPal Payments Standard v2 - by ELEGANTAL
- Registration Fields by FMM Modules
- InPost Shipping v 1.9 by InPost S.A.
Integration-is-needed payment modules
This is a list of modules which can work fine with Easycheckout after integration.
May-be-compatible payment modules
This is a list of modules we've seen being used with Easycheckout, but we don't if are 100% compatible with Easycheckout, please let me know if you know any of them are compatible with Easycheckout. If you find any of them are not compatible with Easycheckout, please let us know details with your ftp login information, so we can help you do free intergrations, prestashop module support forum.
- Payever by payever GmbH v1.3.12
- Redsys 17 by Prestashop v1.0.11
- Sequra - Fraccionar tu pago by SeQura Engineering v3.1.0
- Mercado Pago by Mercado Pago v1.0.14
- "Custom fields - registration form and checkout" by Globo Jsc
- Pago con tarjeta (redsysoficial) by REDSYS
Incompatible payment modules
- Culqi v3.0.4 - by Team Culqi. This module hasn't been updated for years, it even can't work fine on the default checkout page.
- Mi Cuenta Web by Lyra Network
- PrestaShop Checkout by PrestaShop
- Aplazame by Aplazame SL
Modules requires "Two buttons" model to run
Here are a list of modules requires customer information to run, therefore you have to enable the "Two buttons" checkout model to make them work with the Easycheckout module.
- Mercado Pago by mercadopago v4
- Paylike v1.0.6 by DerikonDevelopment
- myOwnDeliveries v4 by laBulle
- PrestaShop Checkout by PrestaShop
- Knowband Store Locator And Pickup by knowband
- Adyen by Adyen
- Mondial Relay v3 by 202 ecommerce
- Klarna Payments Official by Prestaworks AB
- GLS Shipping by GLS
PayPal & Braintree official Module by PrestaShop team v4.4.1.
1. Edit the /modules/paypal/paypal.php file for a little bit, see the picture below.
1
| if (Tools::getValue('controller') == "order" || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
It's recommended to keep the "Enabled In context" option off, because of Firefox may block popup windows, which may cause customers not being able to checkout.
If you are going to use "BrainTree", then you need to do two more steps.
2. Add this code to the /modules/paypal/views/js/payment_bt.js file.
1 2 3
| prestashop.on('steco_event_updated', function(){
initBraintreeCard();
}); |
3. Add this code to the /modules/paypal/views/js/payment_pbt.js file.
1 2 3
| prestashop.on('steco_event_updated', function(){
initPaypalBraintree('checkout');
}); |
Braintree by PrestaShop team v1.2.
1. Replace place this code in the /modules/braintreeofficial/braintreeofficial.php file.
1
| if (Tools::getValue('controller') == "order") { |
With
1
| if (Tools::getValue('controller') == "order" || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace place this code in the /modules/braintreeofficial/views/js/payment_bt.js file.
1
| $("#checkout-payment-step").hasClass("js-current-step")&&(initBraintreeCard(),0==use3dVerification&&initBraintreeCvvField()), |
With
1 2 3 4 5 6 7 8
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
initBraintreeCard();
if (use3dVerification == false) {
initBraintreeCvvField();
}
}); |
3. Replace place this code in the /modules/braintreeofficial/views/js/payment_pbt.js file.
1
| $("#checkout-payment-step").hasClass("js-current-step")&&c("checkout"), |
With
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
c('checkout');
}); |
4. Enable the "Don't show overlay when the checkout button is checked" setting under the "Payment method" tab in the easycheckout module to make error messages show out correctly.
PayPal official by 202 ecommerce v6.1.0, v6.2.0+.
1. Edit the /modules/paypal/paypal.php file to replace this code in the hookHeader function.
1
| if (Tools::getValue('controller') == 'order') { |
With
1
| if (Tools::getValue('controller') == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace this code in the /modules/paypal/views/js/shortcut.js file.
1
| a.disable(t),e.addEventListener |
With
1
| e.checked?a.enable(t):a.disable(t),e.addEventListener |
Replace
1
| if(i instanceof Element!=0&&n instanceof Element!=0)if("paypalToolsHiddenElemenList"in window==0&&(window.paypalToolsHiddenElemenList={}),e in window.paypalToolsHiddenElemenList)window.paypalToolsHiddenElemenList[e].push(i);else{ |
With
1
| window.paypalToolsHiddenElemenList={};if(i instanceof Element!=0&&n instanceof Element!=0)if(0&&"paypalToolsHiddenElemenList"in window==0&&(window.paypalToolsHiddenElemenList={}),e in window.paypalToolsHiddenElemenList)window.paypalToolsHiddenElemenList[e].push(i);else{window.paypalToolsHiddenElemenList[e]=[i]; |
Replace
1
| if(i instanceof Element!=0&&n instanceof Element!=0)if("paypalToolsShowElemenList"in window==0&&(window.paypalToolsShowElemenList={}),e in window.paypalToolsShowElemenList)window.paypalToolsShowElemenList[e].push(i);else{ |
With
1
| window.paypalToolsShowElemenList={};if(i instanceof Element!=0&&n instanceof Element!=0)if(0&&"paypalToolsShowElemenList"in window==0&&(window.paypalToolsShowElemenList={}),e in window.paypalToolsShowElemenList)window.paypalToolsShowElemenList[e].push(i);else{window.paypalToolsShowElemenList[e]=[i]; |
3. Replace this code in the /modules/paypal/views/templates/shortcut/shortcut-payment-step.tpl
1
| if (typeof Shortcut != "undefined") { |
With
1
| if (typeof Shortcut != "undefined" && 0) { |
4. Search for this line in the /modules/steasycheckout/views/js/front.js
1
| typeof(resp.payment) != 'undefined' && $('.steco_payment').html(resp.payment); |
Move it down to be right above this line
1
| prestashop.emit('steco_event_updated', resp); |
5a. At this point, people can checkout without creating an address, one easy solution is not showing the paypal methods till an address is created, to achieve that, you need to set the "Mode" setting to "Two buttons, people have to save the account form and the address form to see carriers and payment methods." under the "General" tab in the easycheckout module.
5b. Another solution is show the payment options out, when people select the paypal payment option, a message is shown out to ask them to create an address first. To achieve this requires two steps.
Set the "Mode" setting to "Two buttons, a Save button for people to save the account form and the address form" under the "General" tab in the easycheckout module.
Do a replacement to /modules/paypal/views/js/shortcut.js, /modules/paypal/views/js/sepaButton.js and /modules/paypal/views/js/bnpl.js
With
1
| e.checked&&(document.getElementById('delivery-addresses') instanceof Element != false)? |
NOTE Don't repalce the e.checked in the above step #2 in the shortcut.js file.
PayPal official by 202 ecommerce v5.7, v5.8 and v6.0+.
1. Edit the /modules/paypal/paypal.php file to replace this code in the hookHeader function.
1
| if (Tools::getValue('controller') == "order") { |
With
1
| if (Tools::getValue('controller') == "order" || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace this code in the /modules/paypal/views/js/shortcut.js file.
1
| a.disable(t),e.addEventListener |
With
1
| e.checked?a.enable(t):a.disable(t),e.addEventListener |
3a. At this point, people can checkout without creating an address, one easy solution is not showing the paypal methods till an address is created, to achieve that, you need to set the "Mode" setting to "Two buttons, people have to save the account form and the address form to see carriers and payment methods." under the "General" tab in the easycheckout module.
3b. Another solution is show the payment options out, when people select the paypal payment option, a message is shown out to ask them to create an address first. To achieve this requires two steps.
Set the "Mode" setting to "Two buttons, a Save button for people to save the account form and the address form" under the "General" tab in the easycheckout module.
Do a replacement to /modules/paypal/views/js/shortcut.js, /modules/paypal/views/js/sepaButton.js and /modules/paypal/views/js/bnpl.js
With
1
| e.checked&&(document.getElementById('delivery-addresses') instanceof Element != false)? |
NOTE Don't repalce the e.checked in the above step #2 in the shortcut.js file.
PayPal official by 202 ecommerce v5.
1. Enable the "Show description of payment methods" setting under the "Payment method block" in the Easycheckout module.
2. Add paypal_plus to the "Payment methods which don't need the native submit method" under the "PAYMENT METHODS BLOCK" tab in the easycheckout module.
3. Set the "PayPal Checkout" to "Redirect" under the "Experience" in the Paypal module.
4. Do several modifications to the /modules/paypal/paypal.php file.
4.1) Replace this code in the hookHeader function.
1
| if (Tools::getValue('controller') == "order") { |
With
1
| if (Tools::getValue('controller') == "order" || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
4.2) Replace this code also in the hookHeader function.
1
| $method->assignJSvarsPaypalPlus(); |
With
1 2
| if(!Tools::isSubmit('action'))
$method->assignJSvarsPaypalPlus(); |
4.3) Replace this code also in the hookHeader function.
1
| $method->assignJSvarsPaypalMB(); |
With
1 2
| if(!Tools::isSubmit('action'))
$method->assignJSvarsPaypalMB(); |
5. If you are using v5.4.6, 5.4.7 and 5.5.0, then put this to the /modules/paypal/views/js/payment_ppp.js file to replace it's content.
1
| !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}({6:function(e,t){var n={},o=!0;prestashop.on('steco_event_updated', function(){1&&function e(){var t;"undefined"!=typeof PAYPAL?(t=!1,"sandbox"==modePPP&&(t=!0),n=PAYPAL.apps.PPP({approvalUrl:approvalUrlPPP,placeholder:"ppplus",mode:modePPP,language:languageIsoCodePPP,country:countryIsoCodePPP,buttonLocation:"outside",useraction:"continue",showPuiOnSandbox:t})):setTimeout(e,200)}(),prestashop.on("steco_submit_confirm",function(e){var t=$("input[name=payment-option]:checked").attr("id");$("#".concat(t,"-additional-information .payment_module")).hasClass("paypal-plus")&&(r())})});var r=function(){if(o){o=!1;try{$.fancybox.open({content:'<div id="popup-ppp-waiting"><p>'.concat(waitingRedirectionMsg,"</p></div>"),closeClick:!1,height:"auto",helpers:{overlay:{closeClick:!1}}})}catch(e){document.querySelector("#payment-confirmation button").disabled=!0}$.ajax({type:"POST",url:ajaxPatchUrl,dataType:"json",data:{idPayment:idPaymentPPP},success:function(e){e.success?n.doCheckout():window.location.replace(e.redirect_link)}})}}}}); |
If you are using v5.2.0, v5.4.0, then put this to the /modules/paypal/views/js/payment_ppp.js file to replace it's content.
1
| !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=5)}({5:function(e,t){var n={},o=!0;prestashop.on('steco_event_updated', function(){var e=!1;"sandbox"==modePPP&&(e=!0),n=PAYPAL.apps.PPP({approvalUrl:approvalUrlPPP,placeholder:"ppplus",mode:modePPP,language:languageIsoCodePPP,country:countryIsoCodePPP,buttonLocation:"outside",useraction:"continue",showPuiOnSandbox:e})});prestashop.on("steco_submit_confirm", function(){var t=$("input[name=payment-option]:checked").attr("id");$("#".concat(t,"-additional-information .payment_module")).hasClass("paypal-plus")&&(r())});var r=function(){o&&(o=!1,$.fancybox.open({content:'<div id="popup-ppp-waiting"><p>'.concat(waitingRedirectionMsg,"</p></div>"),closeClick:!1,height:"auto",helpers:{overlay:{closeClick:!1}}}),$.ajax({type:"POST",url:ajaxPatchUrl,dataType:"json",data:{idPayment:idPaymentPPP},success:function(e){e.success?n.doCheckout():window.location.replace(e.redirect_link)}}))}}}); |
If you are using v5.1.2, v5.1.3 and v5.1.5, then put this to the /modules/paypal/views/js/payment_ppp.js file to replace it's content.
1
| !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}({4:function(e,t){var n={},o=!0;prestashop.on('steco_event_updated', function(){var e=!1;"sandbox"==modePPP&&(e=!0),n=PAYPAL.apps.PPP({approvalUrl:approvalUrlPPP,placeholder:"ppplus",mode:modePPP,language:languageIsoCodePPP,country:countryIsoCodePPP,buttonLocation:"outside",useraction:"continue",showPuiOnSandbox:e})});prestashop.on("steco_submit_confirm", function(){var t=$("input[name=payment-option]:checked").attr("id");if($("#".concat(t,"-additional-information .payment_module")).hasClass("paypal-plus")){r();return false;}});var r=function(){o&&(o=!1,$.fancybox.open({content:'<div id="popup-ppp-waiting"><p>'.concat(waitingRedirectionMsg,"</p></div>"),closeClick:!1,height:"auto",helpers:{overlay:{closeClick:!1}}}),$.ajax({type:"POST",url:ajaxPatchUrl,dataType:"json",success:function(e){e.success?n.doCheckout():window.location.replace(e.redirect_link)}}))}}}); |
6. If you use the module in Germany, the paypal module requires an address to run, in that case, you need to do several more integration work.
6.1 Create a default address, the country field should be the default country of your site in most cases, fill in the other files with some random texts, like anonymous, anonymous, none, 00000, 12345678. Mark the newly created adress's ID down.
6.2 Replace this code in the /modules/paypal/classes/MethodPPP.php file.
1
| $address_invoice = new Address($context->cart->id_address_invoice); |
With
1
| $address_invoice = new Address($context->cart->id_address_invoice?$context->cart->id_address_invoice:1); |
Alter the 1 with the id of your default address.
6.3 Do three replacements in the /modules/paypal/classes/API/Request/PaypalOrderCreateRequest.php file.
Replace
1 2 3
| if ($this->context->cart->id_address_delivery == false || $this->context->cart->isVirtualCart()) {
return [];
} |
With
1 2 3
| if ($this->context->cart->id_address_delivery == false || $this->context->cart->isVirtualCart()) {
return ['address' => $this->getAddress(1)];
} |
Replace
1
| protected function getAddress() |
With
1
| protected function getAddress($id=0) |
Replace
1
| $address = new Address($this->context->cart->id_address_delivery); |
With
1
| $address = new Address($this->context->cart->id_address_delivery?:$id); |
Alter the 1 with the id of your default address.
7. If you need to show the "Pay in X times" information on the cart section out, then you need to enable the "Customer reassurance block" section under the "Layout settings" tab in the easycheckout module, and then do two changes to the hookDisplayReassurance function in the /modules/paypay.php file.
Replace
1
| if ($this->context->controller instanceof OrderController) { |
With
1
| if ($this->context->controller instanceof OrderController || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Replace
1
| if ($bannerManager->isBannerAvailable()) { |
With
1
| if (1 || $bannerManager->isBannerAvailable()) { |
Openpay by Openpay SAPI de CV v2.7.0.
1. Edit the /modules/openpayprestashop/openpayprestashop.php file.
1
| $page = Context::getContext()->smarty->getTemplateVars('page'); |
1
| $page['page_name']=='module-steasycheckout-default' || |
2. Edit the /modules/openpayprestashop/views/templates/front/payment_infos.tpl file.
I don't why the Openpay module loads jQuery again, jQuery is loaded by PrestaShop, so this more like a problem of the Openpay module.
PayPal AW by AlabazWeb Pro.
Edit the /modules/paypal/paypal.php file, replace this code.
1
| if($this->context->controller->php_self == 'order' |
By this one
1
| if($this->context->controller->php_self == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default' |
ITC Payeezy Payment.
1. Edit the /modules/itcpayeezy/itcpayeezy.php file, replace this code.
1
| if (in_array($page_name, array('checkout', 'order-confirmation'))) { |
By this one
1 2 3 4
| if (in_array($page_name, array('checkout', 'order-confirmation', 'module-steasycheckout-default'))) {
$this->context->controller->addJS($this->_path .'vendor/js/jquery.validate.min.js');
$this->context->controller->addJS($this->_path .'vendor/js/payeezy_us_v5.1.js');
$this->context->controller->addJS($this->_path .'views/js/'.$this->name.'.js'); |
2. Remove this code from the /modules/itcpayeezy/views/templates/hook/common.tpl file.
1 2 3 4
| <script src="{$itcpayeezy_module_dir|escape:'html':'UTF-8'}vendor/js/jquery.min.js"></script>
<script src="{$itcpayeezy_module_dir|escape:'html':'UTF-8'}vendor/js/jquery.validate.min.js"></script>
<script src="{$itcpayeezy_module_dir|escape:'html':'UTF-8'}vendor/js/payeezy_us_v5.1.js"></script>
<script src="{$itcpayeezy_module_dir|escape:'html':'UTF-8'}views/js/{$itcpayeezy_module_name|escape:'html':'UTF-8'}.js"></script> |
Stripe By Stripe v3.
1. Do two replacements in the /modules/stripe_official/stripe_official.php file.
Repalce
1
| define('_PS_USE_MINIFY_JS_', true); |
With
1
| define('_PS_USE_MINIFY_JS_', false); |
Repalce
1
| if (!in_array(Dispatcher ::getInstance()->getController(), $orderPageNames)) { |
With
1
| if (!in_array(Dispatcher ::getInstance()->getController(), $orderPageNames) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
2. Edit the /modules/stripe_official/views/js/extensions/checkout.js file, replace this code.
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Stripe payment module v1.
1. Edit the /modules/stripe_official/stripe_official.php file, replace this code.
1
| if ($this->context->controller->php_self == 'order' && $currencyAvailable === true) |
By this one
1
| if (($this->context->controller->php_self == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') && $currencyAvailable === true) |
2. Edit the /modules/stripe_official/views/js/payment_stripe.js file, replace this code.
1 2 3 4 5 6
| if (!stripe_isInit && $('section#checkout-payment-step').hasClass('js-current-step')) {
if (StripePubKey && typeof stripe_v3 !== 'object') {
stripe_v3 = Stripe(StripePubKey);
}
initStripeOfficial();
} |
By this one
1 2 3 4 5 6
| prestashop.on('steco_event_updated', function(){
if (StripePubKey && typeof stripe_v3 !== 'object') {
stripe_v3 = Stripe(StripePubKey);
}
initStripeOfficial();
}); |
Stripe payment module v2.
1. Edit the /modules/stripe_official/stripe_official.php file,
- If you can find this code
1
| if (!in_array(Dispatcher ::getInstance()->getController(), $orderPageNames)) { |
Then replace it with
1
| if (!in_array(Dispatcher ::getInstance()->getController(), $orderPageNames) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
- If you can find this code
1
| if (!in_array($this->context->controller->php_self, ['order', 'order-opc'])) { |
Then replace it with
1
| if (!in_array($this->context->controller->php_self, ['order', 'order-opc']) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
- If you can find this code
1
| if (!in_array(Tools ::getValue('controller'), $orderPageNames)) { |
Then replace it with
1
| if (!in_array(Tools ::getValue('controller'), $orderPageNames) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
2. Add this code to the hookPaymentOptions function in the /modules/stripe_official/stripe_official.php file.
1 2 3 4 5
| $amount = $params['cart']->getOrderTotal();
$amount = $this->isZeroDecimalCurrency($currency) ? $amount : $amount * 100;
$this->context->smarty->assign(array(
'stripe_amount' => $amount,
)); |
Replace this code in the hookPaymentOptions function
1
| $stripeCustomer->getCustomerById($this->context->customer->id, $stripeAccount->id); |
With
1
| $stripeCustomer->getCustomerById($this->context->customer->id?:0, $stripeAccount->id); |
If your module version is less than or equal to 2.2.3, then do this replacement.
1
| $stripeCustomer->getCustomerById($this->context->customer->id); |
With
1
| $stripeCustomer->getCustomerById($this->context->customer->id?:0); |
3. Add this code to the very bottom of the /modules/stripe_official/views/templates/front/payment_form_card.tpl file.
1
| <script>var stripe_amount = {$stripe_amount};</script> |
4. Do two replacements to the /modules/stripe_official/views/js/paymment.js file.
Replace the e(); or e(), in front of this code $(".payment_module.pointer-box") with
1
| prestashop.on('steco_event_updated', function(){e();}); |
Remove this code if you can find it..
1
| ,new MutationObserver (function(t ){$ .each(t ,function(t ,r ){var n =$ (r .addedNodes );d ()(n ).call (n ,"#stripe-card-payment").addBack ("#stripe-card-payment").length &&e ()})}).observe (document .body ,{childList :!0,subtree :!0}) |
Remove this code if you can find it..
1
| ,new MutationObserver ((function(t ){$ .each(t ,(function(t ,r ){var n =$ (r .addedNodes );f ()(n ).call (n ,"#stripe-card-payment").addBack ("#stripe-card-payment").length &&e ()}))})).observe (document .body ,{childList :!0,subtree :!0}) |
You need to do another replacement in the payment.js file.
- If you can find this code F(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),F(n,t.error) |
- If you can find this code N(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),N(n,t.error) |
- If you can find this code D(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),D(n,t.error) |
- If you can find this code G(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),G(n,t.error) |
- If you can find this code R(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),R(n,t.error) |
- If you can find this code I(n,t.error)
Then replace it with
1
| steco_payment.cancle_confirm(),I(n,t.error) |
5. Uncheck the "Save customer cards" setting in the Stripe module.
6. Put this code to the custom css code field in the easycheckout module.
1 2
| #stripe-card-number img.img-card{top:6px;}
.stripe-card-cardholdername input, #stripe-card-number, #stripe-card-expiry, #stripe-card-cvc, #stripe-card-postalcode{padding: 8px 5px;height: 32px;} |
7. If you want to use ApplePay, then need to enable the "Two buttons" mode to let customers save their information before they click on the ApplePay button.
Amazon Pay by patworx multimedia GmbH
1. Add this code to the /modules/amzpayments/amzpayments.php file.
1 2 3 4
| $page = Context::getContext()->smarty->getTemplateVars('page');
if ($page['page_name']=='module-steasycheckout-default') {
$need_script = true;
} |
2. Remove this code from the /modules/amzpayments/views/js/amzpayments.js file.
1
| setTimeout(function() { jQuery(element).find("img").attr('data-tip', jQuery("#amazonpay_tooltip").html()).tipr(); }, 2000); |
Braintree by Bellini Services
1. Add this code to the /modules/braintreejs/braintreejs.php file above this line "// if checkout, hosted and paypal is enabled".
1
| $page = Context::getContext()->smarty->getTemplateVars('page'); |
2. Replace all $controller == 'order' with this code in the /modules/braintreejs/braintreejs.php file.
1
| ($controller == 'order' || $page['page_name']=='module-steasycheckout-default') |
3. Replace this code in the /modules/braintreejs/views/js/braintree-setup.js file
1
| $(".payment-options .payment-option input:radio[data-module-name='braintreejs']").on('click', function(e) { |
With
1
| $(document).on('click', ".payment-options .payment-option input:radio[data-module-name='braintreejs']", function(e) { |
4. Replace this code in the braintreejsviewstemplatesfrontbraintree-dropin-prestashop.tpl file.
1
| form.addEventListener('submit', function (event) { |
With this one
1
| $(document).on('submit', '#braintree-dropin-form', function (event) { |
Postfinance payment modules
Replace this code in the /modules/postfinancecw/js/frontend.js file, the code appears two times, replace the one which is at about the end of this file.
With
1 2 3
| prestashop.on('steco_event_updated', function(){
attachEventHandlers();
}); |
Cash on delivery with order summary by MyPresta.eu
Add these two lines to the /modules/codpro/codpro.php
1
| use PrestaShopPrestaShopAdapterCartCartPresenter; |
NOTE see the first screenshot below, add those backslashes to the code.
1
| 'cart' => (new CartPresenter )->present(isset($params['cart']) ? $params['cart'] : $this->context->cart), |
So Colissimo Flexibilite - Officiel v3 by Common-Services
1. Edit the /modules/soflexibilite/soflexibilite.php file, to replace this code
By this one.
1
| if (in_array(get_class($this->context->controller), $allowed_controllers) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Do several some modifications to the /modules/soflexibilite/views/js/front_flexibilite.js file, see screenshots below, here are codes you need.
1 2 3 4 5 6 7 8 9
| var easycheckout_forms = $('.steco_container');
if ((onepagecheckoutps_forms.length || easycheckout_forms.length) && engine_try_counter < 3) {
if (onepagecheckoutps_forms.length || easycheckout_forms.length) {
if (!onepagecheckoutps_forms.length && !easycheckout_forms.length &&
return false; |
Colissimo - Domicile et Points de Retrait v4 by Common-Services
1. Do three replacements in the /modules/soflexibilite/soflexibilite.php file.
Replace this code
1
| if (in_array(get_class($this->context->controller), self::$allowed_controllers_fo) && !$this->context->cart->isVirtualCart()) { |
By this one.
1
| if ((in_array(get_class($this->context->controller), self::$allowed_controllers_fo) || $this->context->controller->getPageName()=='module-steasycheckout-default') && !$this->context->cart->isVirtualCart()) { |
Replace this code
1
| if (!in_array(get_class($this->context->controller), self::$allowed_controllers_fo)) { |
By this one.
1
| if (!in_array(get_class($this->context->controller), self::$allowed_controllers_fo) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
Replace this code
1
| return $this->display(__FILE__, 'views/templates/front/displayaftercarrier.tpl'); |
By this one.
1 2 3 4
| $this->context->smarty->assign(array(
'sf_img_dir' => $this->_path .'views/img/'
));
return $this->display(__FILE__, 'views/templates/front/displayaftercarrier.tpl'); |
2. Do several some modifications to the /modules/soflexibilite/views/js/front_flexibilite.js file, see screenshots below, here are codes you need.
1 2 3 4 5 6 7 8 9
| var easycheckout_forms = $('.steco_container');
if ((onepagecheckoutps_forms.length || easycheckout_forms.length) && engine_try_counter < 3) {
if (onepagecheckoutps_forms.length || easycheckout_forms.length) {
if (!onepagecheckoutps_forms.length && !easycheckout_forms.length &&
return false; |
3. Replace this code in the /modules/soflexibilite/views/js/front.js file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| setTimeout(function () {
if (document.readyState !== 'loading') {
initSoFlexibiliteEngine();
} else if (document.addEventListener) {
document.addEventListener('DOMContentLoaded', initSoFlexibiliteEngine);
} else {
/** @typedef function document.attachEvent */
document.attachEvent('onreadystatechange', function () {
if (document.readyState !== 'loading') {
initSoFlexibiliteEngine();
}
});
}
}, 700); |
With
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
initSoFlexibiliteEngine();
}); |
Sagepay UK by Presto-Changeo
1. Edit the /modules/sagepay/sagepay.php file to replace
1
| if (in_array($controller, ['order', 'newPagePayment', 'orderFailed'])) { |
With
1 2
| $page = Context ::getContext()->smarty->getTemplateVars('page');
if (in_array($controller, ['order', 'newPagePayment', 'orderFailed']) || $page['page_name']=='module-steasycheckout-default') { |
To replace
1
| if ('order' == $controller && 0 == $this->sgp_payment_page) { |
With
1 2
| $page = Context::getContext()->smarty->getTemplateVars('page');
if (('order' == $controller || $page['page_name']=='module-steasycheckout-default') && 0 == $this->sgp_payment_page) { |
2. Add this code to the "custom css code" field.
1
| #new-page-checkout .col-xs-12{width:100%;} |
Bitcoin x Crypto - Safe Direct Payments by motionSeed
1. Put this code to the Custom css code field.
1 2 3 4 5 6 7 8 9 10 11 12
| .material-icons.check-selected-icon,#address-copy.btn .material-icons, #amount-copy.btn .material-icons, #explorercash-payment-modal .modal-body>.row>div>.col-lg-12>.input-group>.input-group-btn>a.btn:first-child .material-icons{display:inline-block;overflow:hidden;white-space: nowrap;width:20px;}
.material-icons.check-selected-icon:before,#address-copy.btn .material-icons:before, #amount-copy.btn .material-icons:before, #explorercash-payment-modal .modal-body>.row>div>.col-lg-12>.input-group>.input-group-btn>a.btn:first-child .material-icons:before{font-family: "fontello"; font-style: normal; font-weight: normal; speak: none; display: inline-block; text-decoration: inherit; text-align: center; font-variant: normal; text-transform: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;font-size:18px; margin:0 6px 0 2px;content: 'e807';}
#address-copy.btn .material-icons:before, #amount-copy.btn .material-icons:before{content: 'e884';}
#explorercash-payment-modal .modal-body>.row>div>.col-lg-12>.input-group>.input-group-btn>a.btn:first-child .material-icons:before{content: 'e895';}
#payment-form-explorercash .definition-list .col-lg-4{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%;margin-bottom:10px;}
#explorercash-payment-modal .modal-body>.row{display:block!important;}
#explorercash-payment-modal .modal-header button{order:2;}
#explorercash-payment-modal .modal-body>div>.row>h3.text-sm-center,#explorercash-payment-modal .modal-body>div>.row.text-sm-center img{margin:0 auto;}
#explorercash-payment-modal .modal-body>.row>.col-lg-12>.row.col-lg-7{float:left;margin-bottom:12px;}
#explorercash-payment-modal .modal-body .btn{color:#fff;border:none;padding:0 6px;}
#explorercash-payment-modal .modal-body .input-group-btn{-ms-flex-flow:row nowrap;flex-flow:row nowrap;}
#explorercash-payment-modal .modal-header{padding:15px!important;} |
2. Fine this line "$('#payment-confirmation button').attr('disabled', false);" in the /modules/explorercash/views/js/explorercash.js file, add this code below it.
Openpay by Openpay SAPI de CV v3.0.3.
1. Edit the /modules/openpayprestashop/openpayprestashop.php file.
1
| $page = Context::getContext()->smarty->getTemplateVars('page'); |
1
| $page['page_name']=='module-steasycheckout-default' || |
2. Edit the /modules/openpayprestashop/views/templates/front/payment_infos.tpl file.
I don't why the Openpay module loads jQuery again, jQuery is loaded by PrestaShop, so this more like a problem of the Openpay module.
3. Edit the /modules/openpayprestashop/views/templates/front/cc_form.tpl file. Replace this code
1
| $("#payment-confirmation > .ps-shown-by-js > button").click(function(event) { |
With this one.
1
| $(document).on('click',"#payment-confirmation button",function(event) { |
Find this line
1
| var error_callbak = function(response) { |
Add this code below it.
Find this line
1
| $(document).ready(function() { |
Add this code below it.
1 2 3 4 5 6 7 8
| $(document).on('hidden.bs.modal', '#card-points-dialog', function (e) {
steco.loading(false);
$('#steco_progress').addClass('steco_display_none');
var submitBtn = $("#payment-confirmation > .ps-shown-by-js > button");
submitBtn.prop('disabled', false);
$('#openpay-payment-form').show();
$('#openpay-ajax-loader').hide();
}); |
4. Add this code to the custom css code field in this module.
1
| #module-steasycheckout-default .modal-backdrop.show{display:none;} |
Presta Speed by RSI
In order to make the the social login feature work fine, you need to edit the /modules/prestaspeed/prestaspeed.php file to replace this code in the displayHeader function
With
1 2
| $page = Context::getContext()->smarty->getTemplateVars('page');
if ($speed == 1 && $page['page_name']!='module-steasycheckout-default') { |
Colissimo v1.4.0+ by Colissimo
1. Replace this code in the /modules/colissimo/colissimo.php file.
1
| if ($this->context->controller->php_self == 'order' || $this->context->controller->php_self == 'order-opc') { |
With
1
| if ($this->context->controller->php_self == 'order' || $this->context->controller->php_self == 'order-opc' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Put this code to the Custom css code field.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| .colissimo-front-widget{background:rgba(0,0,0,.5);}
body#module-steasycheckout-default .modal-backdrop.fade{display:none;}
body#module-steasycheckout-default .modal.show .modal-dialog {-webkit-transform: translate(0);transform: translate(0);}
.colissimo-pickup-point-address{margin-left:15px;}
.colissimo-pickup-point-address .material-icons.edit, .colissimo-pickup-point-phone .material-icons.phone_iphone{display:inline-block;overflow:hidden;white-space: nowrap;}
.colissimo-pickup-point-phone .material-icons.phone_iphone{width:32px;}
.colissimo-pickup-point-phone span,.colissimo-pickup-point-phone .material-icons.phone_iphone{vertical-align: middle!important;}
.colissimo-pickup-point-address .material-icons.edit{width:20px;}
.colissimo-pickup-point-phone .material-icons.phone_iphone:before, .colissimo-pickup-point-address .material-icons.edit:before{font-family: "fontello"; font-style: normal; font-weight: normal; speak: none; display: inline-block; text-decoration: inherit; text-align: center; font-variant: normal; text-transform: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;}
.colissimo-pickup-point-address .material-icons.edit:before{font-size:18px; margin:0 6px 0 2px;content: 'e866';}
.colissimo-pickup-point-phone .material-icons.phone_iphone:before{font-size:38px; margin:0 10px 0 2px; content: 'e840';}
div#colissimo-container .row:after, div#colissimo-container .row:before{display: none!important;}
div#colissimo-container .colissimo_widget_text-gris{margin-bottom:0;}
#colissimo-widget-container{height:auto!important;}
.colissimo-front-widget .modal-content {margin-left: 0; margin-right: 0; }
.colissimo-front-widget .modal-dialog {margin-left: auto; margin-right: auto; }
.colissimo-front-widget .modal-body { padding-left: 0; padding-right: 0; } |
3. Do two modifications tothe /modules/colissimo/views/js/widget.js file.
Replace this code
1
| $(document).ready(function(){ |
with
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
Replace
1 2 3 4
| colissimoFrontWidget17.appendTo('body');
if (colissimoFrontWidget17.size() > 0) {
iti = initMobileField();
} |
With
1 2 3 4 5 6 7 8 9
| if($('body > .colissimo-front-widget-17').length == 0){
colissimoFrontWidget17.appendTo('body');
if (colissimoFrontWidget17.size() > 0) {
iti = initMobileField();
}
}else{
$('#st-checkout-delivery-step .colissimo-front-widget-17').remove();
} |
4. Disable the "Use default Colissimo widget" setting under the " Configuration Front-Office" tab in the Colissimo module. The option may not be able to be disabled, due to an issue of the Colissimo module, in that case, edit the /modules/colissimo/colissimo.php file to replace all this code
1
| if (!Configuration::get('COLISSIMO_WIDGET_REMOTE')) { |
with
5. Replace this code in the /modules/colissimo/views/js/jquery.plugin.colissimo.js file.
1
| data.replace('var colissimojQuery = jQuery.noConflict();', 'var colissimojQuery = jQuery;') |
with
1
| data.replace('var colissimojQuery = jQuery.noConflict();', 'var colissimojQuery = jQuery;').replace("colissimojQuery('html, body')", "colissimojQuery('.colissimo-front-widget')").replace("colissimo_widget_showInfoBulle(' + i + ')","colissimo_widget_showInfoBulle(' + (colissimo_widget_markersS.length-1) + ')") |
6. The Colissimo module requires an address to run, you can enable the "Two buttons" checkout mode to force new customers create an address.
Another way is to use a default address for new customers, the country field of the default adress should be the default country of your site in most cases, fill in the other files with some random texts, like anonymous, anonymous, none, 00000, 12345678. Mark the newly created adress's ID down.
And then replace this code in the /modules/colissimo/colissimo.php file.
1
| $deliveryAddr = new Address((int) $cart->id_address_delivery); |
With
1
| $deliveryAddr = new Address($cart->id_address_delivery ? (int) $cart->id_address_delivery : 1); |
Alter the 1 with the id of your default address.
For people who are using old versions, skip the #3, #4 and #5 above, you need to do these two modifications.
3. Replace this code in the /modules/colissimo/views/js/widget.js file.
1
| iti = initMobileField(); |
with
1
| prestashop.on('steco_event_updated', function(){iti = initMobileField();}); |
4. If you want to make the module be able to remember phone number, then you need to add this code to right below this line in the /modules/colissimo/views/js/widget.js file.
1
| $('.js-colissimo-is-mobile-valid').val('1'); |
Here is the code you need to add.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| jQuery.ajax({
type: 'POST',
dataType: 'json',
url: colissimoAjaxWidget + 'index.php',
data: {
fc: 'module',
module: 'colissimo',
controller: 'widget',
ajax: 1,
action: 'saveMobilePhoneOpc',
mobilePhone: iti.getNumber(),
isMobileValid: 1,
}
}).fail(function (jqXHR, textStatus) {
}).success(function (data) {
}); |
Delivery Dates Wizard Pro by Musaffar Patel
1. Replace this code in the /modules/deliverydateswizardpro/controllers/front/DDWFront.php.
1
| if (Tools::getValue('controller') == 'order' || Tools::getValue('controller') == 'supercheckout' || Tools::getValue('controller') == 'amzpayments' || Tools::getValue('controller') == 'default') |
With
1 2
| $page = Context::getContext()->smarty->getTemplateVars('page');
if (Tools::getValue('controller') == 'order' || Tools::getValue('controller') == 'supercheckout' || Tools::getValue('controller') == 'amzpayments' || Tools::getValue('controller') == 'default' || $page['page_name']=='module-steasycheckout-default') |
2. Open up the /modules/deliverydateswizardpro/views/js/front/ddw.js file to check line 31 to see self.one_page_checkout is true, if it's false, then change it to be ture, like this
1
| self.one_page_checkout = true; |
3. Replace this code in the /modules/deliverydateswizardpro/views/js/front/ddw.js file.
1
| $("input[name='shipping_method'], .delivery-options-list .custom-radio input:radio, input.supercheckout_shipping_option").change(function() { |
With
1
| $("input[name='shipping_method'], .delivery-options-list .custom-radio input:radio, input.supercheckout_shipping_option, .delivery-options-list .delivery-option :radio").change(function() { |
4. Replace this code in the /modules/deliverydateswizardpro/views/js/front/ddw.js file.
1
| if (self.$input_ddw_order_date.val() == '' || self.$input_ddw_order_date.val() == '0000-00-00 00:00:00') perror = true; |
With
1
| if (self.$input_ddw_order_date.val() == '' || self.$input_ddw_order_date.val() == '0000-00-00 00:00:00' || self.$input_ddw_order_date.val() == '1970-01-01 00:00:00') perror = true; |
European VAT number by MassonVincent
1. Replace this code in the /modules/vatnumbercleaner/views/js/verif_fo_17.js.
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
$( "input[name$=vat_number]" ).focusout(function() {
var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
});
$( "[name$=id_country]" ).focusout( function() {
var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
}); |
With
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| prestashop.on('steco_event_updated', function(){
var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
});
$(document).on('focusout',"input[name$=vat_number]",function() {
var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
});
$(document).on('focusout',"input[name$=id_country]",function() {
var vat_number = $( "input[name$=vat_number]" ).val();
var id_country = $( "[name$=id_country]" ).val();
verification_vat_number(vat_number, id_country);
}); |
2. Open up the /modules/steasycheckout/controllers/front/default.php file to add two lines to it.
1
| use PrestaShop\PrestaShop\Adapter\Cart\CartPresenter; |
1
| $this->cart_presenter = new CartPresenter(); |
Force Currency at Checkout by idnovate
If you've not installed this module yet, then edit the /modules/forcecurrency/override_17/classes/controller/FrontController.php file, and then install this module. If you've already installed it, then edit the /override/classes/controller/FrontController.php file, to replace this code
With
1
| 'PrestaAdapter', 'steasycheckout' |
Payment With Fee by ETS-Soft
Remove this line from the /modules/ets_payment_with_fee/ets_payment_with_fee.php file.
1
| $this->context->controller->addJS($this->_path . 'views/js/order.js'); |
PayPal PLUS by terracode
1. Edit the /modules/paypalplus/paypalplus.php file to replace this code.
1
| if (!$this->isPaymentStep() && Configuration::get(PAYPALPLUS_UI) == 'iframe') { |
By this one
1 2
| $page = Context::getContext()->smarty->getTemplateVars('page');
if ((!$this->isPaymentStep() && $page['page_name']!='module-steasycheckout-default') && Configuration::get(PAYPALPLUS_UI) == 'iframe') { |
2. Edit the /modules/paypalplus/views/js/paypalplus.js file to replace this code.
1
| $(document).ready(function ($) { |
By this one
1
| prestashop.on('steco_event_updated', function(){ |
3. Make sure the "Show description of payment methods" setting under the "PAYMENT METHODS" tab in the Easycheckout module is enabled.
Correos Official Module
Edit the /modules/correos/correos.php file to replace this code.
1
| if (in_array($file, array('order-opc', 'order', 'orderopc', 'history', 'supercheckout', 'amzpayments'))) { |
By this one
1
| if (in_array($file, array('order-opc', 'order', 'orderopc', 'history', 'supercheckout', 'amzpayments')) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Payin 7 - Pago fraccionado by Payin7
Find this line in the hookHeader function in the /modules/imaxpayin7/imaxpayin7.php file.
Put this code to right above it.
1 2 3 4 5 6 7
| $page = Context::getContext()->smarty->getTemplateVars('page');
if($page['page_name']=='module-steasycheckout-default'){
$identifier = 'paymentProcess';
$jsIdentifier[] = 'payinProduct';
$cssIdentifier[] = $identifier;
$cssIdentifier[] = 'product';
} |
Pago con tarjeta by REDSYS
Users can pay even without login, so we say it's not compatible with the easycheckout module.
1. Remove these lines from the the /modules/redsysoficial/views/templates/front/paymentform.tpl file.
1 2 3 4
| <!-- Petición de carga de iframes con estilos para el input-->
getInSiteForm('insite-form-container','{$btn_style}','{$body_style}','{$form_style}','{$form_text_style}','{l s=$btn_text mod='redsys'}','{$merchant_fuc}','{$merchant_term}','{$merchant_order}');
<!-- Listener de recepción de ID de operacion-->
loadRedsysForm(); |
2. Replace this code in the /modules/redsysoficial/views/templates/front/paymentform.tpl file.
1
| <script src="{$redsys_domain}"></script> |
With
1 2 3 4 5 6 7 8
| <script>
$.getScript("{$redsys_domain}", function() {
getInSiteForm('insite-form-container','{$btn_style}','{$body_style}','{$form_style}','{$form_text_style}','{l s=$btn_text mod='redsys'}','{$merchant_fuc}','{$merchant_term}','{$merchant_order}');
$("#redsys-hosted-pay-button").on('load', function () {
loadRedsysForm();
});
});
</script> |
GLS Parcel Shop by Kjeld Borch Egevang
1. Replace this code in the /modules/glsparcel/views/js/carrier17.js file.
1
| oldRow = label.find('div.row:first'); |
With
2. Find this code in the getShopList function in the /modules/glsparcel/glsparcel.php file.
1
| if (!$iso_code || !$postcode) { |
Change it to
Also in this file, find this code in the displayTpl function
1
| $country = new Country($address->id_country); |
Change it to
1
| $country = new Country($address->id_country ?:$this->context->country->id); |
Advanced Shipping cost by motionSeed
Replace this code in the /modules/steasycheckout/views/js/front.js file.
1
| var address_refresh_tri = '.steco-country'; |
With
1
| var address_refresh_tri = '.steco-country, .steco_new_address_form input[name="postcode"]'; |
Custom Payment by Webkul
1. Replace this code in the hookActionFrontControllerSetMedia function in the /modules/wkcustompayment/wkcustompayment.php file.
1
| if($this->context->controller->php_self == 'order') { |
With
1
| if($this->context->controller->php_self == 'order' || $this->context->controller->_prefix_st=='STECO_') { |
2. Do 3 replacements in the /modules/wkcustompayment/views/js/wkcustompayment.js file.
1
| $('#checkout-payment-step .payment-options input[name="payment-option"]').on('click', function() { |
With
1
| $(document).on('click', '#st-checkout-payment-step .payment-options input[name="payment-option"]', function() { |
Replace this code.
1
| $('#promo-code button, .cart-voucher a[data-link-action="remove-voucher"]').on('click', function(){ |
With
1
| $(document).on('click', '#promo-code button, .cart-voucher a[data-link-action="remove-voucher"]', function(){ |
Replace this code.
With
Romanian Carriers - Fan Courier by George B.
1. Replace this code in the /modules/steasycheckout/views/js/front.js file.
1
| var address_refresh_tri = '.steco-country'; |
With
1
| var address_refresh_tri = '.steco-country, select[name="city"]'; |
2. Replace this code in the /classes/Cart.php file.
1
| $cache_id = 'getPackageShippingCost_' . (int) $this->id . '_' . (int) $address_id . '_' . (int) $id_carrier . '_' . (int) $use_tax . '_' . (int) $default_country->id . '_' . (int) $id_zone; |
With
1
| $cache_id = 'getPackageShippingCost_' . (int ) $this->id . '_' . (int ) $address_id . '_' . (int ) $id_carrier . '_' . (int ) $use_tax . '_' . (int ) $default_country->id . '_' . (int ) $id_zone.'_'.rand(0,1000); |
This is very unsusal to edit a PrestaShop file, but have to, becasue of the Romanian Carriers module calculates shipping fee based on the city, PrestaShop don't re-calculate shipping fee when the city is changed, so have to do the change to force PrestaShop re-calculate shipping fee when the city is changed.
Paycomet by Paycomet
Do two replacements to the /modules/paytpv/views/js/paytpv.js file.
Replace this
With
1 2 3
| prestashop.on('steco_event_updated', function(){
paytpv_initialize();
}); |
Replace all
With
1
| steco-conditions-to-approve |
Personal Pickup at Store by ModuleFactory
1. Edit the /modules/fspickupatstorecarrier/fspickupatstorecarrier.php file to replace this
1
| 'module-bestkit_opc-checkout' |
With
1
| 'module-bestkit_opc-checkout','module-steasycheckout-default' |
2. Find this line in the /modules/fspickupatstorecarrier/view/js/front.js file to replace this
1
| $(window).load(function() { |
Add this line right below it.
1
| prestashop.on('steco_event_updated', function(){FSPASC.initUI();}); |
Invoice Payment by silbersaiten
Remove this code from the /modules/invoicepayment/invoicepayment.php file.
1
| || !$this->getUserPermissions($params['cart']) |
Cash on delivery with fee (COD) PLUS v1.1.8 by Sakis Gkiokas
If you set to apply Tax for payment fee, then you need to do this integration work. Search for this line in the /modules/codwfeeplus/controllers/front/ajax.php file.
Add this line to be right above it.
1 2 3
| 'subtotals_tax' => isset($cart['subtotals']['tax']) ? $cart['subtotals']['tax']['value'] : 0,
'cod' => isset($cart['subtotals']['cod']) ? $cart['subtotals']['cod'] : false,
'total' => $cart['totals'], |
ASM Transporte Urgente by ASM
Find this line in the getOrderShippingCost function in the /modules/asmcarrier/asmcarrier.php file.
1
| if (empty($usuario_datos[0])) return false; |
Replace it with this
1 2 3 4 5
| if (empty($usuario_datos[0])) {
$usuario_datos[0]['id_country'] = Context ::getContext()->country->id;
$usuario_datos[0]['postcode'] = 0;
$usuario_datos[0]['iso_code'] = '';
} |
iyzico Payment Module v1.0.1 by iyzico
1. The module requires an address to run, so you've to enable the Save button for the address form in the Easycheckout module to make people be able to save an address to see the payment form.
2. Make sure your easycheckout module is v2.5.2 and later.
3. Replace the /modules/iyzipay/views/templates/front/iyzico.tpl file with the one in this .zip file.
iyzico Payment (174 downloads)
Paylike v1.0.6 by DerikonDevelopment
1. Set the Model to "Two buttons, a Save button for people to save the account form and the address form".
2. Replace the /modules/paylikepayment/views/templates/hook/payment.tpl file with the one in this .zip file.
paylikepayment (161 downloads)
myOwnDeliveries v4 by laBulle
The module can work fine if you enable the "Two buttons, people have to save the account form and the address form to see carriers and payment methods" model, expecet the error message not showing out if no time slots are selected. To fix that, you need to do these changes.
1) Add this code to the /modules/steasycheckout/views/js/front.js file, put it right above this line $('.js-payment-binary').hide();
1 2 3 4
| if(complete){
if(typeof(lastReservationCarrier)!='undefined' && checkPayment(lastReservationCarrier, deliveryLabel, null, null)===false)
show =false;
} |
2. Replace this code in the /modules/myowndeliveries/views/js/myowndeliveries.js file.
1
| } else if ((typeof (link)!='undefined' && link!=null) || $ (event .target ).is ('.stripe-submit-button')) |
With
1
| } else if ((typeof (link)!='undefined' && link!=null) || (event && $ (event .target ).is ('.stripe-submit-button'))) |
TN Western Union and MoneyGram Payment by Terranet
Replace this code in the /modules/tnwuandmg/views/js/payment.js file
With
1
| prestashop.on('steco_event_updated', function(){ |
PrestaShop Checkout by PrestaShop
NOTE it's not possible to make the Prestashop Checkout v2 be compatible with the easycheckout module anymore, because the main js file (/modules/ps_checkout/views/js/front.js) of ps_checkout is compressed, and source files are not provided.
1. Enable the "Two buttons" mode in the Easycheckout module.
2. Do two modifications to the /modules/ps_checkout/ps_checkout.php file.
a) Replace this code
1
| if (Tools::getValue('controller') !== 'order') { |
With
1
| if (Tools::getValue('controller') !== 'order' && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
b) Remove this code from the hookPaymentOptions function.
1 2 3
| if (false === $this->isPaymentStep()) {
return false;
} |
3. Do two modifications to the /modules/ps_checkout/views/js/initPaypalAndCard.js file.
a) Replace this code
1
| document.addEventListener('DOMContentLoaded', () => { |
With
1 2 3 4 5
| var steco_ps_checkout = 0;
prestashop.on('steco_event_updated', function(resp){
if(steco_ps_checkout == 1 || typeof(resp.payment) == 'undefined')
return;
steco_ps_checkout = 1; |
b) Find this this line
Add this code right below it.
1
| if(typeof(steco_payment)!='undefined')steco_payment.cancle_confirm(); |
If you may need to do the same modifcations to the /modules/ps_checkout/views/js/initCardPayment.js file.
4. Replace all this in the /modules/ps_checkout/views/templates/front/paymentOptions/paypal.tpl file.
With
Knowband Store Locator And Pickup by knowband
1. Enable the "Two buttons" mode.
2. Do three replacements in the /modules/kbstorelocatorpickup/views/js/front/kb_front.js file.
Replace
1
| if (page_name == 'checkout') { |
With
1
| if (page_name == 'checkout' || page_name == 'module-steasycheckout-default') { |
And then remove this code right below the above line.
1
| var id_address = prestashop.cart.id_address_delivery; |
Replace
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
Replace
1 2
| if(page_name == 'checkout'){
if(is_enabled_date_selcetion == '0'){ |
With
1 2
| if(page_name == 'checkout' || page_name == 'module-steasycheckout-default'){
if(is_enabled_date_selcetion == '0'){ |
3. If you are going to use the Easycheckout module's Google address feature, then you need to remove this code from the moduleskbstorelocatorpickupviewstemplateshookpickup_stores.tpl file to avoid loading google map api for twice.
1 2 3
| <script async defer
src="https://maps.googleapis.com/maps/api/js?key={$map_api|escape:'htmlall':'UTF-8'}&callback=initialize&senser=false">
</script> |
IQITFREEDELIVERYCOUNT by iqit-commerce.com
Find this code {block name='cart_summary_voucher'} in the /modules/steasycheckout/views/templates/hook/cart-summary.tpl file. Add this code right above it.
1
| {hook h='displayCartAjaxInfo'} |
Advanced date of delivery by Créatym
1. Replace this code in the /modules/advanceddateofdelivery/advanceddateofdelivery.php file.
1
| if (($this->context->controller->php_self == 'order') || ($this->context->controller->php_self == 'order-opc')){ |
With
1
| if (($this->context->controller->php_self == 'order') || ($this->context->controller->php_self == 'order-opc' || $this->context->controller->getPageName()=='module-steasycheckout-default')){ |
2. Replace this code in the /modules/advanceddateofdelivery/views/js/cart.js file.
1 2 3
| jQuery(document).ready(function ($) {
// Only for Prestashop 1.7
if (($('body').attr('id') == 'checkout')) |
With
1 2 3
| prestashop.on('steco_event_updated', function(){
// Only for Prestashop 1.7
if (1) |
Correos Chile by Rolige
The module requires the country field to run, so you keep the country field be shown.
1. Do two replacements in the /modules/rg_correoschile/rg_correoschile.php file.
Replace
With
1
| 'checkout', 'address','module-steasycheckout-default' |
Replace
With
1
| 'order-opc', 'checkout', 'module-steasycheckout-default' |
2. Do two reaplcement in the /modules/rg_correoschile/views/js/front.js file.
Reaplce this code
1
| $(document).ready(_rg_correoschile.ready); |
With
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
_rg_correoschile.ready();
}); |
Reaplce this code
1 2 3
| $(window).on('load',function() {
_rg_correoschile.onCountryChange();
}); |
With
1
| _rg_correoschile.onCountryChange(); |
Adyen by Adyen
1. Enable "Two button" checkout in the Easycheckout module.
2. Enable the "Don't show overlay when the checkout button is checked" setting under the Payment tab in the Easycheckout module.
3. Do to replacement in the /modules/adyenofficial/adyenofficial.php file.
Replace
1
| if (in_array($controller->php_self, $frontControllers)) { |
ith
1
| if (in_array($controller->php_self, $frontControllers) || $controller->getPageName()=='module-steasycheckout-default') { |
Replace
1
| if ($controller->php_self == 'order') { |
ith
1
| if ($controller->php_self == 'order' || $controller->getPageName()=='module-steasycheckout-default') { |
4. Edit the /modules/adyenofficial/views/js/checkout-component-renderer.js file.
Reaplce this code
1
| jQuery(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
5. Do these replacements to the /modules/adyenofficial/views/js/payment-components/checkout-component-renderer.js, /modules/adyenofficial/views/js/payment-components/payment-components/stored-payment-method.js and /modules/adyenofficial/views/js/payment-components/payment-components/local-payment-method.js.
Reaplce this code
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Reaplce this code
1
| paymentForm.find('#errors').text(response.message).fadeIn(1000); |
With
1 2
| steco_payment.cancle_confirm();
paymentForm.find('#errors').text(response.message).fadeIn(1000); |
Reaplce this code
1
| console .log('Validation failed!'); |
With
1 2
| steco_payment.cancle_confirm();
alert('Your credit card information is invalid!'); |
You can't find this code console.log('Validation failed!'); in the local-payment-method.js file, what you need to do is fine this line
1
| if (!placeOrderAllowed && paymentMethod.details) { |
And then add this code right below it.
1 2
| steco_payment.cancle_confirm();
alert('Your credit card information is invalid!'); |
Stripe v3 by Bellini Services
1. Upgrade your easycehckout module to v2.8.2 and later.
2. Do several modifications to the modules/stripejs/stripejs.php file.
Replace this code
1
| if (in_array($controller, $controllers)) |
With
1
| if (in_array($controller, $controllers) || $this->context->controller->getPageName()=='module-steasycheckout-default') |
Replace all this code
1
| $redirect_url = $this->context->link->getPageLink($redirect_controller, true).(strpos($redirect_controller, '?') !== false ? '&' : '?').'step=3&stripe_error=1#s_error'; |
With
1
| $redirect_url = $this->context->link->getModuleLink('steasycheckout', 'default', array('stripe_error'=>1), (bool ) Configuration ::get('PS_SSL_ENABLED')); |
Remove this code.
1 2 3 4 5 6 7 8
| $steps = $this->context->controller->getCheckoutProcess()->getSteps();
$is_payment_step = false;
foreach ($steps as $step) {
if ($step->getTitle()=='Payment' && $step->isCurrent())
$is_payment_step = true;
}
if (!$is_payment_step)
return; |
3. Make sure the "stripejs" is not set as the "Default payment module" in the Easycheckout module.
4. Do several modifications to the /modules/stripejs/views/js/stripe-prestashop.js file.
Find this line
1
| $('#stripe-new #stripe-ajax-loader').hide(); |
Add this code right below it.
1
| steco_payment.cancle_confirm(); |
Remove all this code
5. If you've enabled "Enable Stripe Checkout", then you need to do two replacements in the /modules/stripejs/views/js/front.js file.
Replace this code
1
| $(document).ready(function() { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Replace this code
1
| if ($('#stripe-checkout-form #stripe_setup_complete').val()==0) |
With
1
| if ($('#stripe-checkout-form #stripe_setup_complete').val()==1) |
6. If you've enabed "Enable Custom Payment Form", then you need to edit the /modules/stripejs/views/js/stripe-setup.js file to replace this code
1
| $(document).ready(function() { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
7. If you've enabed "ApplePay ", then you need to do several modifications to the /modules/stripejs/views/js/applepay.js file.
Replace this code
1 2
| $(document).ready(function()
{ |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Replace all this code
With
1
| st-checkout-payment-step |
Remove all this code
8. Put this code to the custom css code field in the Easycheckout module.
1 2 3 4
| #stripe-new h3{font-size:14px;}
#stripe-payment-form .form-row{margin-bottom: 10px;}
#stripe-payment-form .custom-checkbox span{display:none;}
#stripe-payment-form .float-xs-left, #stripe-payment-form .condition-label{display:inline;} |
Mondial Relay v3 by 202 ecommerce and Mondial Relay v3 by ScaleDEV
1. Enable the "Two buttons" model, because the module requires address inforamtion to run.
2. Replace this code in the /modules/mondialrelay/mondialrelay.php file.
With
1
| if (!in_array($controller, array('order', 'order-opc')) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
3. Find this }}); at the every end of the /modules/mondialrelay/views/js/front/checkout/checkout-17.js file, and then add this code right before.
1 2 3 4 5
| ;prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
$(t.d).trigger('mondialrelay.ready');
}); |
Mercado Pago by mercadopago v4
1. Enable "Two button" checkout in the Easycheckout module.
2. Enable the "Don't show overlay when the checkout button is checked" setting under the Payment tab in the Easycheckout module.
3. Add this code to the custom css code field.
1
| #mp_standard_checkout .mercadopago-button{display:none;} |
4. Do two modifications in the /modules/mercadopago/views/templates/hook/seven/standard.tpl file.
4.1 Remove this code.
1 2 3
| {if $modal == true && $preference != ""}
<script src ="{$modal_link|escape:'html':'UTF-8'}" data -public -key="{$public_key|escape:'html':'UTF-8'}" data -preference -id ="{$preference|escape:'html':'UTF-8'}"></script>
{/if} |
4.2 Replace this code
1 2 3 4 5 6 7 8
| <script>
var mercadopago_button = document.querySelector('.mercadopago-button');
mercadopago_button.style.display = 'none';
document.forms['mp_standard_checkout'].onsubmit = function () {
mercadopago_button.click();
return false;
}
</script> |
With
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <script>
prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
if($('#mp_standard_checkout script').length==0){
var s = document.createElement("script");
$("#mp_standard_checkout").append(s);
$(s).attr({
'src': "{$modal_link}",
'data-public-key': "{$public_key}",
'data-preference-id': "{$preference}",
});
}
document.forms['mp_standard_checkout'].onsubmit = function () {
var mercadopago_button = document.querySelector('.mercadopago-button');
mercadopago_button.style.display = 'none';
mercadopago_button.click();
return false;
}
});
</script> |
5. If you are going to use the first "Two buttons" checkout model, then you need to disable the "Mercado Pago" for "Visitors", otherwise an error emitted by this module will stop other payment methods showing out.
6. Find this line in the /modules/mercadopago/views/templates/hook/seven/ticket.tpl file
1
| window.onload = loadTicket(); |
Add this code right above it.
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
loadTicket();
}); |
7. Replace this code in the /modules/mercadopago/views/js/ticket.min.js file
1
| .childNodes[1].childNodes[1] |
With
8. Replace this code in the /modules/mercadopago/controllers/front/validationstandard.php file
1 2
| $this->redirectWithNotifications($this->context->link->getPageLink('order', true, null, array(
'step' => '3'))); |
With
1
| $this->redirectWithNotifications($this->context->link->getModuleLink('steasycheckout', 'default', array(), (bool ) Configuration ::get('PS_SSL_ENABLED'))); |
9. Open up the /modules/mercadopago/views/templates/hook/seven/custom.tpl file, remove the line containing jquery-1.11.0.min.js
Mercado Pago by mercadopago v4.11.2
1. Enable "Two button" checkout in the Easycheckout module.
2. Enable the "Don't show overlay when the checkout button is checked" setting under the Payment tab in the Easycheckout module.
3. Add this code to the end of the hookHeader function in the /modules/mercadopago/mercadopago.php file.
1 2 3 4
| if ($this->context->controller->getPageName()=='module-steasycheckout-default') {
$this->context->controller->addJS($this->_path . 'views/js/custom-card.js');
$this->context->controller->addJS($this->_path . 'views/js/ticket.js');
} |
4. Find the closing form tag in the /modules/mercadopago/views/templates/hook/seven/custom.tpl file.
Replace all content below with this
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| {if $public_key != ''}
<script>
// Collapsible payments cards accepted
var show_payments = document.querySelector('#button-show-payments');
var frame_payments = document.querySelector('#mp-frame-payments');
show_payments.onclick = function () {
if (frame_payments.style.display === 'block') {
frame_payments.style.display = 'none';
} else {
frame_payments.style.display = 'block';
}
};
function loadCustom() {
var mp_custom = {
site_id: '{$site_id|escape:"javascript":"UTF-8"}',
public_key: '{$public_key|escape:"javascript":"UTF-8"}',
ps_version: 'seven',
}
initializeCustom(mp_custom);
}
$.getScript('https://sdk.mercadopago.com/js/v2', function() {
loadCustom();
});
</script>
{/if}
{if $wallet_button}
<script>
var wallet_button_button = document.querySelector('#mp-wallet-button-btn');
var mp_button = {};
wallet_button_button.onclick = function (e) {
e.preventDefault();
fetch('index.php?fc=module&module=mercadopago&controller=walletbutton')
.then(response => response.json())
.then(function(response) {
if (response.preference) {
mp_button = {
'preference': {
'id': response.preference['id'],
},
'autoOpen': true,
};
var mp = new MercadoPago('{$public_key|escape:"javascript":"UTF-8"}');
mp.checkout(mp_button);
return false;
}
window.location.href = 'index.php?controller=order&step=3&typeReturn=failure';
});
};
</script>
{/if} |
5. Find the closing form tag in the /modules/mercadopago/views/templates/hook/seven/ticket.tpl file.
Replace all content below with this
1 2 3 4 5 6 7 8 9
| <script type="text/javascript">
function loadTicket() {
var site_id = '{$site_id|escape:"javascript":"UTF-8"}';
mpValidateSellerInfo(site_id, 'seven');
validateDocumentInputs();
mercadoPagoFormHandlerTicket();
}
loadTicket();
</script> |
6. Find this line in the /modules/mercadopago/views/js/custom-card.js file.
1
| function disableFinishOrderButton(psVersion) { |
Add this code right below it.
Also in the custom-card.js file, repalce this code
1 2 3 4 5 6 7 8 9 10 11
| if (document.forms.mp_custom_checkout !== undefined) {
document.forms.mp_custom_checkout.onsubmit = function () {
if (validateInputs()) {
mpCardForm.createCardToken();
return false;
}
getConditionTerms();
return false;
};
} |
With
1 2 3 4 5 6 7 8 9
| $(document).on('submit', '#mp_custom_checkout', function () {
if (validateInputs()) {
mpCardForm.createCardToken();
return false;
}
getConditionTerms();
return false;
}); |
Klarna Payments Official by Prestaworks AB
1. Replace this code in the /modules/klarnapaymentsofficial/klarnapaymentsofficial.php file.
1
| if (isset($this->context->controller->page_name) && $this->context->controller->page_name == 'checkout') { |
With
1
| if ((isset($this->context->controller->page_name) && $this->context->controller->page_name == 'checkout') || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Do 3 replacements in the modules/klarnapaymentsofficial/views/js/front.js file.
2.1 Replace this code.
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
2.2 Replace this code
1
| $('#payment-confirmation > .ps-shown-by-js > button').click(function(event) { |
With
1
| prestashop.on('steco_submit_confirm', function(event) { |
2.3 Remove this code
Remove all lines start with
1
| $('#payment-confirmation').find('button') |
2.4 Find this line
1
| function displayError(message, refreshButton) { |
Add this code right below it.
1
| $('#steco_progress').addClass('steco_display_none'); |
3. Add this to the "Payment methods which don't need the native submit method" field under the "Payment method block" tab.
1
| klarnapayments_pay_now_module,klarnapayments_pay_later_module,klarnapayments_pay_over_time_module,klarnapayments_direct_debit_module,klarnapayments_card_module |
4. The Klarna payment option won't show out by default, because the Klarna module requires an address to get the country inforamtion. You can do the follow modifications to let the Klarna use the default country of your site when there's no address available.
Edit the /modules/klarnapaymentsofficial/klarnapaymentsofficial.php file, replace
1
| if ($this->context->cart->id_address_invoice > 0) { |
With
1
| if (1 || $this->context->cart->id_address_invoice > 0) { |
Edit the /modules/klarnapaymentsofficial/classes/KlarnaOrderDetailsCommon.php file, replace
1
| $address = new Address((int)Context::getContext()->cart->id_address_invoice); |
With
1
| $address = new Address(Context::getContext()->cart->id_address_invoice ? (int)Context::getContext()->cart->id_address_invoice : Configuration::get('PS_COUNTRY_DEFAULT')); |
Mollie by Mollie B.V
1. Replace this code in the /modules/mollie/mollie.php file.
1
| if ($isOrderController || $isOPCController) { |
With
1
| if ($isOrderController || $isOPCController || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Do two replacements in the modules/mollie/views/js/front/mollie_iframe.js file.
2.1 Replace this code.
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
2.2 Replace this code
1
| var methodId = $(this).find('input[name="method-id"]').val(); |
With
1
| var methodId = $('input[name="method-id"]').val(); |
Inpost Paczkomaty Poland v2.6.4 by Presta-Mod.pl
1. Find this code in the /modules/pminpostpaczkomaty/pminpostpaczkomaty.php file.
1
| !Module::isEnabled('thecheckout') && |
Add this code right below it.
1 2
| !Module::isInstalled('steasycheckout') &&
!Module::isEnabled('steasycheckout') && |
2. Find this code in the /modules/pminpostpaczkomaty/pminpostpaczkomaty.php file.
1
| Module::isEnabled('supercheckout') || |
Add this code right below it.
1 2
| Module::isInstalled('steasycheckout') &&
Module::isEnabled('steasycheckout') |
3. Replace this code
1
| Tools::getValue('controller') != 'supercheckout') { |
With
1
| Tools::getValue('controller') != 'supercheckout' && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
4. Contact us to get a modified /modules/pminpostpaczkomaty/views/js/front-2.6.4.js file.
Estimated Delivery by Smart Modules
1. Do two replacements in the /modules/estimateddelivery/estimateddelivery.php file.
Replace this code
1
| if (in_array($controller, $all_available) || Configuration ::get('ED_LOCATION') == 5) { |
With
1
| if (in_array($controller, $all_available) || Configuration ::get('ED_LOCATION') == 5 || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Replace this code
1
| } elseif (in_array($controller, $orders) && Configuration ::get('ED_ORDER')) { |
With
1
| } elseif ((in_array($controller, $orders) || $this->context->controller->getPageName()=='module-steasycheckout-default') && Configuration ::get('ED_ORDER')) { |
If you can find this code in the estimateddelivery.php file.
1
| $this->context->controller->addJs($path.'views/js/estimateddelivery-cart-line.js'); |
Replace it with
1
| $this->context->controller->addJs($this->_path.'views/js/estimateddelivery-cart-line.js'); |
2. Replace this code in the /modules/estimateddelivery/views/js/estimateddelivery-cart-line.js file.
1
| #velsof_supercheckout_form |
With
1
| #velsof_supercheckout_form, #module-steasycheckout-default |
Replace
1
| '#velsof_supercheckout_form' |
With
1
| '#velsof_supercheckout_form', '#module-steasycheckout-default' |
Omniva Shipping by Omniva.lt
1. Replace this code in the /modules/omnivaltshipping/omnivaltshipping.php file.
1
| if (in_array(Context ::getContext()->controller->php_self, array('order-opc', 'order'))) { |
With
1
| if (in_array(Context ::getContext()->controller->php_self, array('order-opc', 'order')) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace all this code in the /modules/omnivaltshipping/views/js/omniva.js file.
1
| $(document).ready(function(){ |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
Additional Payment Fees by BVK Software
1. Replace this code in the /modules/bvkpaymentfees/bvkpaymentfees.php file.
1
| if (isset($this->context->controller->php_self) && $this->context->controller->php_self == 'order') { |
With
1
| if ((isset($this->context->controller->php_self) && $this->context->controller->php_self == 'order') || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace all this code in the /modules/bvkpaymentfees/views/js/bvkpaymentfeesordersummary.js file.
With
1
| $('#cart-subtotal-shipping').after |
Chronopost v4 by Chronopost Official
1. Do two modifications to the /modules/chronopost/chronopost.php file.
Replace this ocde
1
| elseif (!in_array($file, array('order-opc', 'order', 'orderopc'))) { |
With
1
| elseif (!in_array($file, array('order-opc', 'order', 'orderopc')) && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
Remove this code from the
1
| $this->context->controller->addJS($module_uri.'/views/js/jquery-1.11.0.min.js'); |
2. Do quite several modifications to the /modules/chronopost/views/js/chronorelais-17.js file.
Replace all this code
1
| #js-delivery span.custom-radio > input[type=radio] |
With
1
| .steco_deliverys_form .delivery-option :radio |
Remove this code
1 2 3
| if (typeof CHRONORELAIS_ID === 'undefined') {
return false;
} |
Replace this code
1
| $('.steco_deliverys_form .delivery-option :radio, input[name=id_carrier]').click(function(e) { |
With
1
| $(document).on('click','.steco_deliverys_form .delivery-option :radio, input[name=id_carrier], ', function(e) { |
Remove this code
1 2 3 4 5 6 7
| if($("#chronorelais_container").length>0)
{
$('#chronorelais_dummy_container').remove();
} else {
$('#chronorelais_dummy_container').insertAfter($('#extra_carrier'));
$('#chronorelais_dummy_container').attr('id', 'chronorelais_container');
} |
Remove this code
1
| toggleRelaisMap($("#cust_address_clean").val(), $("#cust_codepostal").val(), $("#cust_city").val()); |
Replace this code
1 2
| $('#changeCustCP').on('click', postcodeChangeEvent);
$("#relais_codePostal").on('keypress keydown keyup', function(e) { |
With
1 2
| $(document).on('click', '#changeCustCP', postcodeChangeEvent);
$(document).on('keypress keydown keyup', "#relais_codePostal", function(e) { |
Replace this code
1
| if ($("#checkout-delivery-step").hasClass("-current")) { |
With
Add this coded to the very bottom of this file.
1 2 3 4 5 6 7 8 9 10 11 12 13
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
if($("#chronorelais_container").length>0)
{
$('#chronorelais_dummy_container').remove();
} else {
$('#chronorelais_dummy_container').insertAfter($('#extra_carrier'));
$('#chronorelais_dummy_container').attr('id', 'chronorelais_container');
}
toggleRelaisMap($("#cust_address_clean").val(), $("#cust_codepostal").val(), $("#cust_city").val());
}); |
3. Add this code to the Custom css code field.
1 2 3 4 5 6
| #chronorelais_container .alert.col-lg-6,#chrono_postcode_controls{-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%}
#chrono_postcode_controls{margin-bottom:16px;}
#chrono_postcode_controls .input-group{display:block;}
#relais_codePostal{width:100%;}
#relais_txt_cont{font-size:12px;}
#relais_txt_cont h4, #chronorelais_container h3{font-size:14px;} |
Zip zipmoneypayment by Zip
1. Add zipmoneypayment to the "Payment methods which don't need the native submit method" under the "PAYMENT METHODS BLOCK" tab in the easycheckout module.
2. Do several modifications /modules/zipmoneypayment/views/templates/hooks/zipmoneypayment_intro.tpl file.
Remove this code
1 2
| e.preventDefault();
e.stopPropagation(); |
Replace
1
| var payment_options = document.querySelectorAll('#checkout-payment-step .payment-options input[name="payment-option"]'); |
With
1
| var payment_options = document.querySelectorAll('.payment-options input[name="payment-option"]'); |
And then add this code right below it.
1 2 3 4 5
| prestashop.on('steco_submit_confirm', function(event) {
if(zipHasBeenSet){
zipClick();
}
}); |
Replace this code
1
| parentNode.querySelector('label span') |
With
1
| parentNode.querySelector('.steco_payment_option_title') |
Remove this line
1
| document.querySelector(purchaseButton).addEventListener("click", zipClick); |
Remove this line
1
| document.querySelector(purchaseButton).removeEventListener("click", zipClick); |
Find this code
1
| window.onload = function(){ |
Add this code right above it.
POLi Payments by POLi Payments
1. Do two modifications in the /modules/polipayment/polipayment.php file.
Find this line
Add this line right above it.
1
| ->setModuleName($this->name) |
Remove this line
2. Replace this code in the /modules/polipayment/views/templates/front/iframe.tpl file.
1 2 3 4 5 6 7 8 9 10
| document.addEventListener("DOMContentLoaded", function(event) {
jQuery('#processPoliPayment').on('click', function(e){
if (jQuery('#conditions_to_approve[terms-and-conditions]').is(':checked')) {
location.href='{/literal}{$poliurl|escape:'htmlall':'UTF-8'}{literal}';
return false;
} else {
alert('{/literal}{l s='Please agree to the terms of service to proceed' mod='polipayment'}{literal}');
}
});
}); |
With
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
jQuery('#processPoliPayment').on('click', function(e){
if(steco_payment.toggleOrderButton({complete:true})){
steco_payment.pre_confirm();
}
});
prestashop.on("steco_submit_confirm", function(){
if($("input[name=payment-option]:checked").data('module-name')=='polipayment'){
location.href='{/literal}{$poliurl|escape:'htmlall':'UTF-8'}{literal}';
}
});
}); |
Payment options by products by MyPresta.eu
Find this line in the /modules/steasycheckout/classes/StPaymentOptionsFinder.php file.
1
| foreach ($paymentOptions as $moduleName => $paymentOption) { |
Add this code right above it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| require_once _PS_MODULE_DIR_ . 'pobp/models/pob.php';
$arrayToReturn = array();
foreach (Context ::getContext()->cart->getProducts() AS $cp => $cpk) {
foreach (pob ::returnByIdProduct($cpk['id_product']) AS $pov => $pob) {
$arrayToReturn[Module ::getInstanceById($pob['id_payment'])->name] = true;
}
if (count($arrayToReturn) > 0) {
foreach ($paymentOptions AS $pok => $pov) {
if (!isset($arrayToReturn[$pok])) {
unset($paymentOptions[$pok]);
}
}
}
} |
Cash on delivery plus (COD+) by PrestaHost.eu
1. Upgrade your easycheckout module to v2.8.2 and later.
2. Enable the "Show description of payment methods" setting under the "Payment method block" in the Easycheckout module.
3. Seach for this code in the /modules/cashondeliveryplus/views/templates/hook/payment.tpl file.
1
| {l s ='The COD fee is' mod ='cashondeliveryplus'} <span class="price">{$codfee|escape :'html':'UTF-8'}</span > {if isset($tax)}{$tax|escape :'html':'UTF-8'}{/if} |
Add this code right above it.
1 2 3 4
| <script language="JavaScript">
var cashondeliveryplus_codfee = "{$codfee}";
var cashondeliveryplus_total_price_cod = "{$total_price_cod}";
</script> |
4. If the tax is not included in the fee by default, then you need to edit the /modules/cashondeliveryplus/cashondeliveryplus.php file.
Replace this code in the getFee function.
1 2 3
| if (isset($rate) && (float )$rate) {
$fee = $this->addTax($fee, $rate);
} |
By
1 2 3 4 5 6
| if (isset($rate) && (float )$rate) {
$fee = $this->addTax($fee, $rate);
}else{
$rate = $carrier->getTaxesRate(null);
$fee = $this->addTax($fee, $rate);
} |
Baliknapostu by prestahost.cz
Do several modifications to the /override/classes/ParcelshopCarrier.php file.
Replace
1
| if(Module::isInstalled('onepagecheckoutps') && Module::isEnabled('onepagecheckoutps')) { |
With
1
| if((Module::isInstalled('onepagecheckoutps') && Module::isEnabled('onepagecheckoutps')) || (Module::isInstalled('steasycheckout') && Module::isEnabled('steasycheckout'))) { |
Replace
1
| if(strpos($controller, 'order') === false) { |
With
1
| if(strpos($controller, 'order') === false && $this->context->controller->getPageName()!='module-steasycheckout-default') { |
Find this code
1
| public static function onepageactive() { |
Add this code right below it.
1 2 3
| if(Module::isInstalled('steasycheckout') && Module::isEnabled('steasycheckout')) {
return 1;
} |
GLS Shipping by GLS
Edit the /modules/glsshipping/glsshipping.php file.
Replace
1
| if (in_array($file, array('order-opc', 'order', 'orderopc', 'history', 'supercheckout', 'amzpayments'))) { |
With
1
| if (in_array($file, array('order-opc', 'order', 'orderopc', 'history', 'supercheckout', 'amzpayments')) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Replace
1
| $country = new Country($address->id_country); |
With
1
| $country = new Country($address->id_country ? $address->id_country : Configuration::get('PS_COUNTRY_DEFAULT')); |
DPD France by DPD France S.A.S.
1. Enable the "Two buttons" model in the Easycheckout module.
2. Edit the /modules/dpdfrance/dpdfrance.php file.
Replace
Or
1
| if ($file === 'order') { |
Replace with
1
| if ($file === 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Find this code if exists in the hookDisplayHeader function
1 2 3 4 5
| $this->context->controller->registerJavascript(
'module-dpdfrance-jquery',
'/js/jquery/jquery-1.11.0.min.js',
array('position' => 'head', 'priority' => 1)
); |
Or
1 2 3 4 5
| $this->context->controller->registerJavascript(
'module-dpdfrance-jquery',
'/modules/' . $this->name . '/views/js/admin/jquery/jquery-3.6.0.min.js',
['position' => 'head', 'priority' => 1]
); |
Add this line right above it.
1
| if($this->context->controller->getPageName()!='module-steasycheckout-default') |
3. Open up the /modules/dpdfrance/views/js/front/dpdfrance_532.js file if exists.
Find this line.
1
| $(document).ready(function() |
Add this code right above it.
1 2 3 4 5 6 7 8
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
$(document).on('change', "input[name*='delivery_option[']", function() {
dpdfrance_display();
});
dpdfrance_display();
}); |
Replace this funcation
1 2 3 4 5 6 7 8
| function dpdfrance_allowOrder($status)
{
if ($status == true) {
$('[name=confirmDeliveryOption]').removeAttr('disabled');
} else {
$('[name=confirmDeliveryOption]').attr('disabled', 'disabled');
}
} |
With
1 2 3 4 5 6 7 8 9 10
| function dpdfrance_allowOrder($status)
{
if ($status == true) {
$('[name=confirmDeliveryOption]').removeAttr('disabled');
$('.steco_confirmation_btn').removeClass('steco_disabled');
} else {
$('[name=confirmDeliveryOption]').attr('disabled', 'disabled');
$('.steco_confirmation_btn').addClass('steco_disabled');
}
} |
4. Open up the /modules/dpdfrance/views/js/front/dpdfrance_front.js file if exists.
Find this line.
1
| document.addEventListener("DOMContentLoaded", () => { |
Add this code right after it.
1 2 3 4 5 6 7 8
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
$(document).on('change', "input[name*='delivery_option[']", function() {
dpdfrance_display();
});
dpdfrance_display();
}); |
Find the line
1
| document.querySelector('[name=confirmDeliveryOption]').disabled = !status; |
Add the following code right after it
1 2 3 4 5
| if ($status == true) {
$('.steco_confirmation_btn').removeClass('steco_disabled');
} else {
$('.steco_confirmation_btn').addClass('steco_disabled');
} |
This module can work on both the default checkout page and the easycheckout page after integration.
DPD France v6.1.3 by DPD France S.A.S.
1. Enable the "Two buttons" model in the Easycheckout module.
2. Edit the /modules/dpdfrance/dpdfrance.php file.
Replace
Or
1
| if ($file === 'order') { |
Replace with
1
| if ($file === 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Find this code if exists in the hookDisplayHeader function
1 2 3 4 5
| $this->context->controller->registerJavascript(
'module-dpdfrance-jquery',
'/js/jquery/jquery-1.11.0.min.js',
array('position' => 'head', 'priority' => 1)
); |
Or
1 2 3 4 5
| $this->context->controller->registerJavascript(
'module-dpdfrance-jquery',
'/modules/' . $this->name . '/views/js/admin/jquery/jquery-3.6.0.min.js',
['position' => 'head', 'priority' => 1]
); |
Add this line right above it.
1
| if($this->context->controller->getPageName()!='module-steasycheckout-default') |
3. Open up the /modules/dpdfrance/views/js/front/dpdfrance_front.js file if exists.
Find this line.
1
| document.addEventListener("DOMContentLoaded", () => { |
Replace it with.
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Find the line
1
| document.querySelector('[name=confirmDeliveryOption]').disabled = !status; |
Replace it with
1 2 3 4 5
| if ($status == true) {
$('.steco_confirmation_btn').removeClass('steco_disabled');
} else {
$('.steco_confirmation_btn').addClass('steco_disabled');
} |
Olva Courier by Rolige
1. Edit the /modules/rg_olvacourier/rg_olvacourier.php file.
Replace
1
| if ($page_name && in_array($page_name, array('authentication', 'order', 'order-opc', 'checkout', 'address'))) { |
With
1
| if (($page_name && in_array($page_name, array('authentication', 'order', 'order-opc', 'checkout', 'address'))) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Edit the /modules/rg_olvacourier/views/js/front.js file.
Replace
1
| $(document).ready(_rg_olvacourier.ready); |
With
1 2 3 4 5 6 7 8
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.addresses) == 'undefined')
return;
_rg_olvacourier._onCountryChange();
});
prestashop.on('updatedAddressForm', function(resp){
_rg_olvacourier._onCountryChange();
}); |
EveryPay by Veebipoed.ee
1. Edit the /modules/everypay/everypay.php file.
Replace
1
| if (Tools::getValue('controller') == 'order') { |
With
1
| if (Tools::getValue('controller') == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Remove this code from the /modules/everypay/views/js/everypay.js file.
3. Remove this code from the /modules/everypay/views/templates/hook/payment_banklink.tpl file.
1
| <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script> |
4. Remove this code from the /modules/everypay/views/templates/hook/payment_redirect.tpl file.
1
| type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js" |
SEB payment gateway by Veebipoed.ee
1. Edit the /modules/sebpaymentgateway/sebpaymentgateway.php file.
Replace
1
| if (Tools::getValue('controller') == 'order') { |
With
1
| if (Tools::getValue('controller') == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Remove this code from the /modules/sebpaymentgateway/views/js/sebpaymentgateway.js file.
3. Remove this code from the /modules/sebpaymentgateway/views/templates/hook/payment_redirect.tpl file.
1
| <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.0.min.js"></script> |
Sogecommerce by Lyra Network
1. Enable the "Show description of payment methods" in the Easycheckout module.
2. Edit the /modules/sogecommerce/sogecommerce.php file.
Replace
1
| if ($controller instanceof OrderController || $controller instanceof OrderOpcController) { |
With
1
| if ($controller instanceof OrderController || $controller instanceof OrderOpcController || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Razorpay by Lyra Team Razorpay
1. Edit the /modules/razorpay/razorpay.php file.
Replace
1
| if (Tools::getValue('controller') == "order" || Tools::getValue('controller') == "supercheckout" || $this->context->controller->getPageName()=='module-steasycheckout-default') |
With
1
| if (Tools::getValue('controller') == "order" || $this->context->controller->getPageName()=='module-steasycheckout-default') |
2. Do three modifications to the /modules/razorpay/script.js file.
Find this line
1
| document.addEventListener('DOMContentLoaded', function(event) { |
And then add this code right blow it.
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Find this line
1
| parent.addEventListener( |
Add this code right above it.
Replace this line at the very bottom of the file.
With
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $(document).on('change', '.steco-payment-option input[name="payment-option"]', function(e) {
if ($('#st-checkout-payment-step input[data-module-name="razorpay"]').prop('checked')) {
newSubmitButton.className = baseClass + 'shown';
} else {
newSubmitButton.className = baseClass + 'not-shown';
}
newSubmitButton.disabled = !!document.querySelector(
'input[name^=conditions_to_approve]:not(:checked)'
);
});
if($('#st-checkout-payment-step input[data-module-name="razorpay"]').prop('checked') == true){
$('#st-checkout-payment-step input[data-module-name="razorpay"]').trigger('change');
}
});
}); |
Parcel locker by GreenMouseStudio.com
Edit the /modules/gmparcellocker/gmparcellocker.php file.
Replace
1
| if ($this->context->controller->php_self === 'order' || Tools::getValue('controller') == 'supercheckout' || Tools::getValue('controller') == 'checkout') { |
With
1
| if ($this->context->controller->php_self === 'order' || Tools::getValue('controller') == 'supercheckout' || Tools::getValue('controller') == 'checkout' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Starken (Turbus) by Rolige
1. Enable the "Two buttons" mode in the Easycheckout module.
2. Edit the /modules/rg_starken/rg_starken.php file.
Replace
1
| if (in_array($page_name, array('order', 'order-opc', 'checkout', 'address', 'authentication', 'product'))) { |
With
1
| if (in_array($page_name, array('order', 'order-opc', 'checkout', 'address', 'authentication', 'product')) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
3. Edit the /modules/rg_starken/views/js/front.js file.
Replace
1
| $('select[name="id_country"]').change(); |
With
1
| $('.st_address_form_delivery select[name="id_country"]').change(); |
Add this code to the very end of this file.
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.addresses) == 'undefined')
return;
_rg_starken.ready();
}); |
UPS by Silbersaiten
1. Enable the "Two buttons" mode in the Easycheckout module, the first "Two buttons" mode is recommended in this case.
2. Edit the /modules/upsservice/upsservice.php file.
Replace
1
| if (($this->context->controller instanceof OrderController) || ($this->context->controller instanceof OrderOpcController)) { |
With
1
| if (($this->context->controller instanceof OrderController) || ($this->context->controller instanceof OrderOpcController) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
3. Add this code the very last of the /modules/upsservice/views/js/map.js file.
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
ups_map.initGlobal();
}); |
Shipmondo by Shipmondo
1. Enable the "Two buttons" mode in the Easycheckout module, the first "Two buttons" mode is recommended in this case.
2. Edit the /modules/shipmondo/shipmondo.php file.
Replace
1
| if (in_array($current_page, $order_pages)) { |
With
1
| if (in_array($current_page, $order_pages) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
3. Edit the /modules/shipmondo/views/js/shipmondo.js file.
Fine the very last line which is this.
And the put this code right above it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| prestashop .on ('steco_event_updated', function(resp ){
if(typeof (resp .delivery ) == 'undefined')
return;
var carrier_code = getCarrierCodeByVal ($ ('.steco_deliverys_form .delivery-option :radio:checked').val ());
$ ('.shipmondo-shipping-field-wrap').remove ();
if (carrier_code != '') {
var dev_option = $ ('.steco_deliverys_form .delivery-option :radio:checked').closest ((window .Shipmondo && window .Shipmondo .deliveryOptionRowSelector ) ? window .Shipmondo .deliveryOptionRowSelector : '.delivery-option'); //row
var extra_content = $ (dev_option ).find ('.carrier-extra-content');
if ($ (extra_content ).length < 1) {
extra_content = $ (dev_option ).next('.carrier-extra-content');
}
$ (extra_content ).html (selection_button_html );
$ (extra_content ).find ('#shipmondo_find_shop_btn').data ("shipping-type", carrier_code );
if (frontend_type == 'radio') {
setTimeout (function () {
loadRadioButtons ();
}, 200);
}
if (current_shop && (carrier_code == current_shop .carrier_code )) {
shopSelected (current_shop );
} else {
showContinueBtn (false);
}
} else {
showContinueBtn (true);
}
}); |
Спиди by Speedy JSC
Do two changes to the /modules/speedy/views/templates/hook/ps17/speedy.tpl file.
1. Find this code
1
| $('.delivery_options').removeClass('blur'); |
Add this code right below it
1 2 3
| steco.update({
item:16
}); |
2. Find this code
1
| document.addEventListener( 'DOMContentLoaded', function () { |
There are 3 in total, replace the first 2 with this
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
3. Find this code
1
| hideOffices($('#speedy_to_office input[name=to_office]:checked')); |
Add this code right above it.
1 2 3
| $('#speedy_office_container [name=office_id]').change(function(e) {
speedyCalculate(true, 0);
}); |
Достави с Еконт by IT Partner
Do two changes to the /modules/econtdelivery/econtdelivery.php file.
1. Replace this code
1
| document.addEventListener("DOMContentLoaded", function(event) { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
2. Find this code
1
| $hiddenInput.val(JSON.stringify(e.originalEvent.data)); |
Add this code right below it.
1 2 3 4
| steco.update({
econt_delivery_info: JSON.stringify(e.originalEvent.data),
item:16
}); |
3. Remove this code
Revolut by Revolut
1. Replace this code in the /modules/revolutpayment/revolutpayment.php file.
1
| if ($this->context->controller->php_self == 'order') { |
With
1
| if ($this->context->controller->php_self == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace this code in the /modules/revolutpayment/views/js/revolut.payment.js file.
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
3. Enable the "Don't show overlay when the checkout button is checked" setting under the "Payment method" tab in the easycheckout module to make error messages show out correctly.
DPDBaltics by Invertus
1. Do two replacements in the /modules/dpdbaltics/dpdbaltics.php file.
Replace this
1
| if ('order' === $currentController) { |
With
1
| if ('order' === $currentController || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Replace this
1
| if (in_array($currentController, ['order', 'order-opc', 'ShipmentReturn'])) { |
With
1
| if (in_array($currentController, ['order', 'order-opc', 'ShipmentReturn']) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace this code in the /modules/dpdbaltics/views/js/front/order.js file.
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
Gift On Order / Add Free Product to Cart by best-kit
To display gifts out on the easycheckout page, you need to do the following two steps:
1. Add this code right before the very last closing curly brackets in the /modules/bestkit_gifts/bestkit_gifts.php file.
1 2 3 4 5 6 7 8 9 10
| public function hookDisplayCheckoutSummaryTop ($params)
{
$gifts_rules_vars = $this->prepareGiftsVars();
$this->context->smarty->assign(array(
'cart_gift_products' => $gifts_rules_vars['cart_gift_products'],
));
return $this->display(__file__, 'cart-summary-gifts.tpl');
} |
2. Transplant the "Gift On Order" module to the displayCheckoutSummaryTop hook.
Registration Fields by FMM Modules
Add this code to the custom css code field.
1 2 3
| #registration_fields .col-md-3 { max-width: 36%; -ms-flex: 0 0 39%; flex: 0 0 39%; }
#registration_fields .col-md-6 {display: inline-block;}
#registration_fields{padding: 0 15px;} |
Cities by JA Modules
1. Remove all content from the /modules/cities/views/js/front.js file, and then put this code into it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function getCities (form ) {
var dataString = 'id_state='+form .find ('select[name="id_state"]').val ();
$ .ajax ({
type : "POST",
url : modules_dir + "cities/ajax.php",
data : dataString ,
success : function(data ) {
if (data != 0) {
var label = form .find ('input[name="city"]').parent ().prev();
if (label .length > 0) {
form .find ('select[name="city"]').parent ().remove ();
label .after (data );
form .find ('input[name="city"]').parent ().remove ();
} else {
var label = form .find ('select[name="city"]').parent ().prev();
form .find ('select[name="city"]').parent ().remove ();
label .after (data );
}
} else {
var label = form .find ('select[name="city"]').parent ().prev();
form .find ('select[name="city"]').parent ().remove ();
label .after ('<div class="col-md-6"><input class="form-control" name="city" type="text" value="" maxlength="64" required=""></div>');
}
}
});
}
$ (document ).ready (function() {
prestashop .on ('updatedAddressForm', function(r ){
getCities (r .target );
});
}); |
2. Add this code to the custom css code field.
1
| .st_form_item_city .col-md-6{-ms-flex: 0 0 100%;flex: 0 0 100%;max-width: 100%;} |
Paypal checkout by webkul
1. Do several modifications to the /modules/mppaypalcommerce/mppaypalcommerce.php file.
Replace all this codes, there are two.
1
| if ('order' === $this->context->controller->php_self) { |
With
1
| if ('order' === $this->context->controller->php_self || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Find this code
1
| || 'order' === $this->context->controller->php_self |
Add this line right below it.
1
| || $this->context->controller->getPageName()=='module-steasycheckout-default' |
2. Replace this code in the /modules/mppaypalcommerce/views/templates/hook/mppaypalcommerce_payment.tpl file.
1 2 3 4 5 6 7
| <script
id ="ppscript"
data -partner -attribution -id ="{$partner_attribution_id}"
{if isset($seller_merchant_ids) and ($seller_count > 1)}data -merchant -id ="{$seller_merchant_ids}"{/if}
src ="https://www.paypal.com/sdk/js?client-id={$client_id}&commit=true&components=buttons&debug=false&merchant-id={if isset($seller_merchant_ids) and ($seller_count > 1)}*{else}{$seller_merchant_ids}{/if}&intent=capture¤cy={$currency.iso_code}"
>
</script> |
With
1 2 3 4 5 6 7 8 9 10
| <script >
if(!$ ('#ppscript').length ){
var paypalScript = document .createElement ('script');
paypalScript .setAttribute ('src', "https://www.paypal.com/sdk/js?client-id={$client_id}&commit=true&components=buttons&debug=false&merchant-id={if isset($seller_merchant_ids) and ($seller_count > 1)}*{else}{$seller_merchant_ids}{/if}&intent=capture¤cy={$currency.iso_code}");
paypalScript .setAttribute ('id', 'ppscript');
paypalScript .setAttribute ('data-partner-attribution-id', '{$partner_attribution_id}');
{if isset($seller_merchant_ids) and ($seller_count > 1)}paypalScript .setAttribute ('data-merchant-id', '{$seller_merchant_ids}');{/if}
document .head .appendChild (paypalScript );
}
</script> |
3. Open up the /modules/mppaypalcommerce/views/js/mppaypalcommerce-front.js file.
Find this code
Replace it with
And then add this code right above it.
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
rendered = false;
}); |
Facebook Conversion Pixel by MyPresta.eu
1. Replace this code in the /modules/fbpixel/fbpixel.php file.
1
| if ((Tools::getValue('controller') == 'order' || Tools::getValue('controller') == 'orderopc') && Configuration::get('FBPIXEL_INITIATE_D') == 1) { |
With
1
| if ((Tools::getValue('controller') == 'order' || Tools::getValue('controller') == 'orderopc' || $this->context->controller->getPageName()=='module-steasycheckout-default') && Configuration::get('FBPIXEL_INITIATE_D') == 1) { |
2. Replace this code in the /modules/fbpixel/views/templates/hook/header.tpl file.
1
| {if Tools::getValue('controller')=='order' || Tools::getValue('controller')=='orderopc'} |
With
1
| {if Tools::getValue('controller')=='order' || Tools::getValue('controller')=='orderopc' || $page.page_name=='module-steasycheckout-default'} |
TNT by Gfi Informatique
1. Find this code in the /modules/tntofficiel/tntofficiel.php file.
1
| $this->addCSS('https://fonts.googleapis.com/css?family=Open+Sans:400,700', 'all'); |
And then add this code right below it.
1 2
| if($this->context->controller->getPageName()=='module-steasycheckout-default')
$strCurrentControllerName = 'ordercontroller'; |
2. Remove these code from the /modules/tntofficiel/views/templates/hook/displayBeforeCarrier.tpl file.
1
| window.document.addEventListener('DOMContentLoaded', function () { |
And the very last
Simplify Commerce by Mastercard
1. Find the very first in the /modules/simplifycommerce/views/js/simplify.js file.
1
| $(document).ready(function () { |
Replace it with
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
BNP Paribas - Axepta by Quadra Informatique
1. Replace this code in the /modules/axepta/axepta.php file.
1
| if (($context->controller->php_self == 'order') || ($context->controller->php_self == 'order-opc')) { |
With
1
| if (($context->controller->php_self == 'order') || ($context->controller->php_self == 'order-opc') || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Do two replacements in the /modules/axepta/views/js/front.js file.
Replace
1
| $(document).ready(function () { |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return; |
Replace all this code
With
1
| input[name="payment-option"] |
3. Add this css code to the Custom css code field.
1 2
| #payment-form-axepta .col-xs-4{display:inline-block;width:60px;}
.axepta_paygates .form-check{margin-left: 22px;} |
4. The module requires the "Terms and condition" checkbox to be checked to show the payment options out, so enable the "Make the Terms and conditions be checked by default" setting in the easycheckout module.
Custom Carriers for Chile by Rolige
1. Replace this code in the /modules/rg_customcarriercl/rg_customcarriercl.php file.
1
| if (in_array($page_name, array('order', 'order-opc', 'checkout', 'address', 'authentication', 'product'))) { |
With
1
| if (in_array($page_name, array('order', 'order-opc', 'checkout', 'address', 'authentication', 'product')) || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
2. Replace this code in the /modules/rg_customcarriercl/views/js/front.js file.
Replace
1
| $(document).ready(_rg_customcarriercl.ready);{ |
With
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.addresses) == 'undefined')
return;
_rg_customcarriercl.ready();
}); |
3. Replace this code in the /override/classes/cart.php file.
Replace
1
| if ($delivery_option_list === null) { |
With
1
| if (1 || $delivery_option_list === null) { |
4. Do three modifications to the /modules/rg_customcarriercl/classes/RgCuCaQuotation.php file.
Remove this code
1 2 3
| if ($cache !== null) {
return $cache;
} |
Replace
With
Replace
1
| $address = new Address((int) $cart->id_address_delivery); |
With
1 2 3 4
| $id_address = Tools::isSubmit('use_same_address') ? Tools::getValue('id_address_delivery') : (int) $cart->id_address_delivery;
$address = new Address($id_address);
if(Tools::getValue('saveAddress')=='delivery')
$address->city = Tools::getValue('city'); |
Pay by paynow.pl v1.6 - mElements S.A.
Edit the /modules/paynow/views/js/front.js file.
Replace
1
| $('input[name="payment-option"]').on("change", function () { |
With
1
| $(document).on('change', 'input[name="payment-option"]', function(){ |
Replace all this code (May not need this step)
1
| #payment-confirmation button |
With
1
| #payment-confirmation .steco_confirmation_btn |
Comment out this code
1 2
| $('.paynow-blik-form button').on('click', function (e) {
e.preventDefault(); |
Add this code right below
1
| prestashop.on('steco_submit_confirm', function(e) { |
Find
1
| $paynow_blik_error_span.text(response.message); |
Add this code right below
1
| steco_payment.cancle_confirm(); |
Find
1
| $paynow_blik_error_span.text($paynow_blik_form.data('error-message')) |
Add this code right below
1
| steco_payment.cancle_confirm(); |
Find
1
| $paynow_blik_error_span.text($paynow_blik_form.data('terms-message')); |
Add this code right below
1
| steco_payment.cancle_confirm(); |
1. Add this code to the custom css code.
1
| .paynow-blik-form button{display:none;} |
2. Add paynow to the "Payment methods which don't need the native submit method" under the "PAYMENT METHODS BLOCK" tab in the easycheckout module, also enable the "Don't show overlay when the checkout button is checked" setting.
SEUR by Línea Gráfica
1. Edit the /modules/seur/seur.php file.
Replace
1
| if ($pos_is_enabled && ($page == 'order-opc.php' || $page == 'order.php' || $page == 'orderopc' || $page == 'order')) { |
With
1
| if ($pos_is_enabled && ($page == 'order-opc.php' || $page == 'order.php' || $page == 'orderopc' || $page == 'order' || $this->context->controller->getPageName()=='module-steasycheckout-default')) { |
2. Edit the /modules/seur/views/js/seurGMap.js file.
Replace
1 2
| $(document).ready(function()
{ |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
3. Edit the /modules/seur/views/js/frontMap.js file.
Replace
1
| $(document).ready(function(){ |
With
1 2 3
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return; |
Minimum and maximum purchase product quantity by idnovate
1. Open up the /modules/steasycheckout/controllers/front/default.php file.
Search for
1
| $this->ajaxDie(Tools::jsonEncode($this->result)); |
And then add this code right above it.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| if (Module ::isEnabled('minpurchase')) {
include_once(_PS_MODULE_DIR_ .'minpurchase/minpurchase.php');
$mod = new MinpurchaseConfiguration ();
$errors = $mod->checkProductsAvailability($this->context->cart->getProducts());
if (!empty($errors)) {
$id_lang = Context ::getContext()->language->id;
$params = array('action' => 'show');
if($this->ajax){
header('Content-Type: application/json');
$this->ajaxDie(Tools ::jsonEncode(array(
'redirect' => $this->context->link->getPageLink('cart', true, (int )$id_lang, $params),
)));
}else
Tools ::redirect($this->context->link->getPageLink('cart', true, (int )$id_lang, $params));
}
} |
Packeta by Packeta s.r.o.
1. Open up the /modules/packetery/views/js/front.js file.
Search for
1
| $(document).ready(function () { |
And then add this code right above it.
1 2 3 4 5 6 7 8
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.delivery) == 'undefined')
return;
if ($('.zas-box').length) {
onShippingLoadedCallback();
widgetInitialized = true;
}
}); |
2. Put this code to the /modules/packetery/views/js/checkout-modules/unknown.js file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| var PacketeryCheckoutModuleUnknown = {
getSelectedInput: function () {
return $('.delivery-option.steco_selected input');
},
findDeliveryOptions: function () {
return $('.delivery-option input');
},
enableSubmitButton: function () {
},
disableSubmitButton: function () {
},
hideValidationErrors: function () {},
getExtraContentSelector: function () {
return '.carrier-extra-content';
}
}; |
Cash on Delivery with Fee by Inno-mods.io
1. Open up the /modules/cashondeliverywithfee/cashondeliverywithfee.php file.
Repace
1
| if ('order' === $this->context->controller->php_self) { |
With
1
| if ('order' === $this->context->controller->php_self || $this->context->controller->getPageName()=='module-steasycheckout-default') { |
Orlen by Marcin Bogdanski @ Opennet
1. Open up the /modules/ruch/ruch.php file.
Repace
1
| if(in_array(Tools ::getValue('controller'), array('order', 'orderopc', 'supercheckout'))) |
With
1
| if(in_array(Tools ::getValue('controller'), array('order', 'orderopc', 'supercheckout')) || $this->context->controller->getPageName()=='module-steasycheckout-default') |
2. Do two repalcements to the /modules/ruch/views/templates/front/cart.tpl file.
Replace
1
| if(ruch_chk_type == 'supercheckout') ruch_display_map_as_popup = 1; |
With
1
| if(ruch_chk_type == 'supercheckout' || ruch_chk_type == 'default') ruch_display_map_as_popup = 1; |
Replace
1
| if(ruch_chk_type == 'supercheckout') { |
With
1
| if(ruch_chk_type == 'supercheckout' || ruch_chk_type == 'default') { |
PKT1 Centro de Envíos by PKT1 Centro de envios
Do two replacements in the /modules/pkt1prestashop/views/js/front.js file
1.
1
| jQuery(document).ready(function($) { |
With
1 2 3 4 5 6 7 8 9 10 11 12
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.addresses) == 'undefined')
return;
pkt_run();
});
prestashop.on('updatedAddressForm', function(){
pkt_run();
});
jQuery(document).ready(function($) {
pkt_run();
});
var pkt_run = function(){ |
2.
1
| html += '<option value="' + data [key].comuna + '" '>' + data[key].comuna + '</option >'; |
With
1
| html += '<option value="' + data [key].comuna + '" '+(city_val ==data [key].comuna ? ' selected="selected" ' : '')+'>' + data [key].comuna + '</option>'; |
Stripe Payments with subscriptions v7.2 by NTS
Do two changes to the /modules/stripepro/stripepro.php file
Repalce
1
| } elseif ($controller == "order" || $controller == 'paymentcard' || $controller == 'validation') { |
With
1
| } elseif ($this->context->controller->getPageName()=='module-steasycheckout-default' || $controller == "order" || $controller == 'paymentcard' || $controller == 'validation') { |
Remove this code
1 2 3
| $nbProducts = $this->context->cart->nbProducts();
if($nbProducts<=0 || !$this->context->cookie->logged)
return; |
Do two changes to the /modules/stripepro/views/js/stripe-prestashop.js file.
Repalce
1
| $(document).ready(function(e) { |
With
1 2 3
| prestashop.on('steco_event_updated', function(e){
if(typeof(e.payment) == 'undefined')
return; |
Find this line
1
| $(only_msg).text(err_msg).show(); |
Add this code right below the above line.
1
| if(typeof(steco_payment)!='undefined')steco_payment.cancle_confirm(); |
Klarna payments v1.3 by Invertus
1. Set the "Mode" setting to "Two buttons, people have to save the account form and the address form to see carriers and payment methods." under the "General" tab in the easycheckout module.
2. Search for this line "if (!initPaymentOptions()) {" in the modulesklarnapaymentviewsjsfrontpaymentpayment.js file.
Add the following code right above it.
1 2 3 4 5
| prestashop.on('steco_event_updated', function(resp){
if(typeof(resp.payment) == 'undefined')
return;
initPaymentOptions();
}); |
3. Edit the /modules/klarnapayment/src/Presentation/Loader/PaymentFormAssetLoader.php file.
Repalce
1
| $controller instanceof ModuleFrontController && isset($controller->php_self) && $controller->php_self === 'order'; |
With
1
| $controller instanceof ModuleFrontController && isset($controller->php_self) && $controller->php_self === 'order' || $controller->getPageName()=='module-steasycheckout-default'; |
We will keep updating this list.
Changelog
Easy checkout 2.8.4 (January 5, 2023)
- Added the possibility to be compatible with Prestashop 8 and PHP 8.
Easycheckout one page checkout module 2.8.3 (March 15, 20220)
- Using a button to reveal the coupon field.
- Minoral imporvments.
Easycheckout one page checkout module 2.8.2 (January 26, 2022)
- Several imporvments.
- Several bug fixces.
Easycheckout one page checkout module 2.8.1 (September 16, 2020)
- Removed the option to choose DNI or VAT for "Company", because DNI is for both Individual and Company, VAT is for company only.
Easycheckout one page checkout module 2.8.0 (September 15, 2020)
- Added a feature to add placeholder to every filed in the user info from and the addres form.
- Added a feature to add custom validation error messages to the user info form.
- Added an option to choose DNI or VAT for "Company".
- Added two custom content sections to every block.
- Added a feature to auto-fill the "Company" and "VAT/DNI" when B2B is enabled.
Easycheckout one page checkout module 2.7.0 (September 5, 2020)
- Sticky 2nd & 3rd column feature (Sticky cart summary).
- Added a feature to add custom validation error messages in the address forms.
Easycheckout one page checkout module 2.6.8 (August 4, 2020)
Easycheckout one page checkout module 2.6.7 (July 9, 2020)
- Added compatibility with the "PayPal with fee" module.
- Revert the modification to the item price option.
Easycheckout one page checkout module 2.6.6 (July 6, 2020)
- Fixed a issue in the feature of using 3 dropdown menus to display the birthday field.
Easycheckout one page checkout module 2.6.5 (June 27, 2020)
- Fixed a compatibility issue with 1.7.6.4 and 1.7.6.5.
Easycheckout one page checkout module 2.6.4 (June 24, 2020)
- A minor update to hide error messages in time to avoid confusion.
Easycheckout one page checkout module 2.6.3 (June 16, 2020)
- Added compatiblity with the Stripe module by Bellini Services.
- Improved the way of how to display product prices on the cart block.
Easycheckout one page checkout module 2.6.2 (June 11, 2020)
- Fixed an issue of some carriers requiring a refresh to show out.
Easycheckout one page checkout module 2.6.1 (June 7, 2020)
- Added the Save button for the address form back when in "Two buttons" checkout model.
Easycheckout one page checkout module 2.6.0 (June 4, 2020)
- Improved the process for logged in customers with no addresses, no need to a Save button to save an address to checkout anymore, just fill in all field and click the checkout button.
Easycheckout one page checkout module 2.5.5 (June 1, 2020)
- Added an option to use 3 dropdown menus for the birthday field.
- Stopped to show a hint for the postcode field all the time, to show the hit only when the field is invalid.
- Fixed the issue of not accept emails with long domain extension, like xx@xx.online
- Added an option to don't show the firstname and lastname fields when the type of customer is Company.
- Added an option to don't show overlay when the checkout button is checked.
- Fixed an issue of showing the wrong step number when an reassurance was added to the checkout page.
- Improved the progress bar to make it be animated.
Easycheckout one page checkout module 2.5.4 (May 26, 2020)
- Improved the "Type of customer" feature to don't show the firstname and lastname fields when the type is Company.
Easycheckout one page checkout module 2.5.3 (May 23, 2020)
- Fixed a terrible mistake made in 2.5.2, the mistake caused the addree form showing "Please save address first" meesage even when all fields were filled.
- Fixed an issue of the "Type of customer" feature.
Easycheckout one page checkout module 2.5.2 (May 20, 2020)
- Improved the address form.
Easycheckout one page checkout module 2.5.1 (May 14, 2020)
- Fixed a typo which could cause error during installation.
- Added a testing mode.
- Added an option to remember the selected payment option.
Easycheckout one page checkout module 2.5.0 (May 10, 2020)
- Added a save button to the address form to make people be able to save the account form and the address form, which this Save button, the module can be compatible with all carrier modules and payment modules.
- Added options to use placeholders instead of labels in the account form and the address form.
Easycheckout one page checkout module 2.4.7 (April 23, 2020)
- Added compatibility with prestashop 1.7.6.4 and 1.7.6.5.
Easycheckout one page checkout module 2.4.6 (April 8, 2020)
- Improved the easycheckout module to have better compatibility with the paypalplus module by terracode.
- Fixed an issue which stopped the address form working if the selected country requiring the DNI information.
Easycheckout one page checkout module 2.4.5 (March 14, 2020)
- Fixed a problem in the Google Geolocate feature.
Easycheckout one page checkout module 2.4.4 (December 23, 2019)
- Fixed a problem of tax might not get calculated correctly for guests.
Easycheckout one page checkout module 2.4.3 (November 20, 2019)
- Fixed a problem of shipping address might not get saved for guests.
Easycheckout one page checkout module 2.4.2 (October 21, 2019)
- Added an option to show to show the terms and conditions on the payment methods section.
- Added compatibility with the latest codfee module.
Easycheckout one page checkout module 2.4.1 (September 29, 2019)
Easycheckout one page checkout module 2.4.0 (September 11, 2019)
- Fixed a small problem in the "Customer type" feature.
- Fixed a problem carriers not updating when tax is set to base on invoice address.
Easycheckout one page checkout module 2.3.9 (September 2, 2019)
- Fixed a problem of setting address fields as required.
Easycheckout one page checkout module 2.3.8 (August 22, 2019)
- Added compatibility with "Cash on delivery with fee (COD) PLUS".
- Improved the module to show a warning of not setting any fields as required on the "BO > Customers > Addresses" page.
Easycheckout one page checkout module 2.3.7 (August 11, 2019)
- Added a "Customer type" feature to don't show "Company name" and "Vat" for individuals.
Easycheckout one page checkout module 2.3.6 (August 2, 2019)
- Improved the "Default payment" setting, so it can have more chances to work.
- Improved the social login feature to make it work on the login page.
Easycheckout one page checkout module 2.3.5 (July 27, 2019)
- Added compatibility with "Paylin" and "Delivery Dates Wizard Pro".
Easycheckout one page checkout module 2.3.4 (July 2, 2019)
- Added compatibility with the Colissimo module created by Colissimo.
Easycheckout one page checkout module 2.3.3 (June 9, 2019)
- Fixed an php notice from v2.3.2, the error could cause this module not working fine when debug mode is on.
Easycheckout one page checkout module 2.3.2 (May 23, 2019)
- Improved performance for guests to speed the checkout page up.
Easycheckout one page checkout module 2.3.1 (May 5, 2019)
- Fixed a mistake I made in v2.2.8, which cased hidden fields still showing out on the address form.
Easycheckout one page checkout module 2.3.0 (April 26, 2019)
- Update the user info block of Panda theme and Transformer theme after a user logins in on the checkout page.
- Fixed: wrong return urls for social login feature in multilingual sites.
Easycheckout one page checkout module 2.2.9 (April 15, 2019)
- Fixed: "Reorder" feature not working.
Easycheckout one page checkout module 2.2.8 (April 3, 2019)
- Fixed a problem which started from v2.2.4, the problem was that when editing the country of an address, a new address would be created.
Easycheckout one page checkout module 2.2.7 (March 29, 2019)
- Fixed a js validation problem which occurs when there are extra required fields in the address from.
Easycheckout one page checkout module 2.2.6 (March 16, 2019)
- Added a feature to make birthday be a mandatory field.
- Added a feature to disallow PO Box addresses.
- Fixed a problem of js validation.
Easycheckout one page checkout module 2.2.5 (March 11, 2019)
- Fixed a problem in the google address auto suggestion.
- Added compatibility with the quickpay module.
Easycheckout one page checkout module 2.2.4 (January 23, 2019)
- Added address form manage feature.
Easycheckout one page checkout module 2.2.3 (January 9, 2019)
- Added an option to show both tax included and tax excluded total prices.
Easycheckout one page checkout module 2.2.2 (December 28, 2018)
- Fixed a problem of showing wrong shipping methods.
Easycheckout one page checkout module 2.2.1 (December 20, 2018)
- Compatibility with 1.7.5.0.
- Did a samll improvement to scroll to the first error message if there is any.
Easycheckout one page checkout module 2.2.0 (December 12, 2018)
- Fixed the problem of payment methods not updating after making changes to address.
Easycheckout one page checkout module 2.1.9 (December 10, 2018)
- Fixed the wrong delivery problem which didn't be completely fixed in v2.1.7.
Easycheckout one page checkout module 2.1.8 (November 29, 2018)
- Fixed a minor problem, the problem occured when the width of first column was 12.
Easycheckout one page checkout module 2.1.7 (November 22, 2018)
- Fixed a problem of the wrong delivery when using guest checkout.
Easycheckout one page checkout module 2.1.6 (November 15, 2018)
- Fixed a problem of address items changing from 2 per row back to 1 per row sometimes.
Easycheckout one page checkout module 2.1.5 (November 13, 2018)
- Fixed a problem of shipping not getting updated.
Easycheckout one page checkout module 2.1.4 (November 8, 2018)
- Fixed a compatibility with IE.
- Added compact layout for address forms.
- Added a feature to auto fill Firstname and lastname in address with the data in new customer form.
Easycheckout one page checkout module 2.1.3 (November 4, 2018)
- Fixed a compatibility with some payment modules.
Easycheckout one page checkout module 2.1.2 (October 31, 2018)
- Added compatibility with "Cash on delivery with order summary by MyPresta.eu", "Cash on delivery with fee by idnovate", "Paypal AW" and "MegaReembolso, cash on delivery shipments with surcharge"
- Fixed a problem of carriers not getting update when change countries.
Easycheckout one page checkout module 2.1.0 (October 22, 2018)
- Merged register form and address form to achive FAST CHECKOUT.
- Added email verification, birthdate verification, phone number verification and postcode verification.
- Added checkout progress bar.
- Added a field to set modules which don't use the native submit method, with the field the module can be integrated with 3rd party modules more easily.
- Added a field to edit/add address name/title for logged in customers.
- Added possibility to make the checkbox of newsletter be checked by default.
Easycheckout one page checkout module 2.0.2 (September 22, 2018)
- Fixed a problem of order note not saving.
Easycheckout one page checkout module 2.0.1 (July 23, 2018)
- Added Spanish translation.
- Fixed a problem of custom logo/title/subtitle not working for some payment modules.
- Fixed a translation problem.
- Fixed a problem of removing button not working correct on cart summary.
- Fixed a compatibility problem with old versions of prestashop 1.7, like prestashop 1.7.2.4.
Easycheckout one page checkout module 2.0.0 (July 20, 2018)
It is the best one module for one page checkout that I have tried.
There is no function to make the e-mail field optional, but overall the module is great!
Thanks for the possibility with this module to change the checkout pages intoo something more personnal. Great module!
the best checkout for prestashop, integration with all the payment addons available and to be, and if there is no integration they do it and if there is any problem the support is excellent!!!!!!!!
great module.
A module that started a bit unfinished at the beginning, but which today is a "must have" in any PrestaShop store. The best quality / price one step checkout module that you will find. In addition, its support and continuous updates and new features are perfect. Brilliant!
Замечательный модуль с широким функционалом который можно и расширить. Классно работает с темой panda, корзина стала менее перегружена и клиенту проще совершить покупку. Широкая возможность для кастомизации. A wonderful module with wide functionality that can be expanded. Works great with the panda theme, the shopping cart is less congested and the customer makes a purchase easier. Wide possibility for customization
Very good, you can configure the checkout page as you want, unlimited options.
EasyCheckout is the most useful checkout module, we us it in all our projects. And when occur problems with integrations in some cases, the team have a very quick response. 5 stars for all of them.
Really a great checkout module with an easy to use back office and very important customization possibilities. The after-sales service is very responsive, I had to ask for help for the integration of a payment system and in less than 24 hours I already had the code used in my payment solution for which is compatible. you can also find it in the compatibility tab. Well done, it's a very good job!
This is the best OPC module I've never seen before. Simply amazing. I can do almost anything I want with the structure and design of my checkout page. And the extras they added, wow... no words. I supose it has to be tested yet with so many modules, but I totally trust on this team, Jonny and Yobo are fixing all possible errors in a few hours, this support team is awsome!