PrestaShop is a free, open-source option for e-commerce. It is coded in the PHP scripting language and supports the MySQL database management system. PrestaShop is currently used by thousands of shops worldwide and is available in 60 different languages.
For these reasons, Kushki sought to integrate its payment methods by creating a plugin that allows making card payments, and that is available in several countries. You will find details on the installation and administration below.
|Available ✅||Not available ❌|
|Debit and credit card payments||Recurring charges |
Authorization and capture
- For PrestaShop version 1.7 or later, install version 2.1.5 of the plugin or higher.
- Version 2.1.5 and lower versions of the plugin only support USD or COP as currencies. For other currencies, you must install version 2.1.6 or higher.
The source code of the plugin can be downloaded at: https://github.com/Kushki/kushki-prestashop/releases (last available version: 3.0.0)
- You should have downloaded Kushki’s Payment Module in .zip format.
- You should have PrestaShop installed and set in the currency that you will use.
- You should have access to PrestaShop administrator’s section.
Follow these instructions to install the Kushki plugin in your PrestaShop store:
1.1. For installing the module, it is necessary to log in the administration section of your PrestaShop store. Once you are logged in, you must go to the section: Customize > Modules > Module Manager.
1.2. In the module view, click on the button __Upload a Module.
1.3. A new module will be displayed, there, you may drag and drop the downloaded plugin in .zip format. Another alternative is using the file administrator to find the plugin.
1.4. If the installation was correct, you can configure the module to start testing it.
2.1.1. You can configure the module in two different ways:
- After installing the module, the confirmation screen will show an option for configuration.
- In the module management view, you can find the plugin in the Payment category. Once you find Kushki’s module, click on the button Configure.
2.1.2. Next, on the module settings page, enter the following parameters:
Public Key and Private Key: These credentials can be found in the Kushki administration console, in the Developers section, Credentials option.
Test environment: This value defines whether we are in a test or production environment.
Note: If the public or private key has not been entered, the payment option in the store may not be displayed. Also, the notification tab (module management section) will display an alert when a public or private key has not been set.
2.1.3. Click the Save button to save the changes.
By linking your PrestaShop store with Kushki, our payment form will be added in default version. To customize your payment form (Kajita) in your PrestaShop store, follow these steps:
2.2.1. Log in to your Administration Console and go to the Configuration section.
2.2.2. Browse the page until you find the Integrations section.
2.2.3. Click on Plugins
2.2.4. Select PrestaShop. A notice will be displayed.
2.2.5. Click on the button Set up the content and style of your form. Your Kajita for PrestaShop will be displayed.
2.2.6. Choose whether you wish to receive payments by one-time payment or by authorization and capture.
2.2.7. Follow the instructions given in Customize your payment form to customize the payment form for your PrestaShop store.
Now that you have the plugin installed and set up, it is time to see how to operate with it.
In PrestaShop, we can have different statuses for an order. The following are the possible order statuses with the plugin:
- Payment accepted: The payment has been successfully completed.
- Awaiting payment by bank transfer: The payment method by bank transfer or cash has been chosen and is awaiting payment. Upon successful payment, the status will change to Payment Accepted automatically.
- Canceled: It makes the refund and updates the stock of the store with the canceled products.
- Preparation in progress: It indicates that an authorization has been made to reserve funds on the card. To perform the capture, the status of the order must be changed to Payment Accepted.
In order to process one-time payments with credit and debit cards, it is necessary that the One-time payment option is selected at the top as well as the Credit and Debit Card option in the Payment Options>Payment Methods section within the Kushki console in the following path: Configuration > Integrations > Plugins > PrestaShop > Set up the content and style of your form.
Once a new order is generated, you will see the transaction in the order list (Orders > Orders) with the status Payment accepted, which indicates that the payment has already been made.
In order to process payments with transfer, it is necessary that the One-time payment option is selected at the top as well as the Transfer option in the Payment Options>Payment Methods section within the Kushki console in the following path: Configuration > Integrations > Plugins > PrestaShop > Set up the content and style of your form.
Once a new order is generated, you will see the transaction in the order list (Orders > Orders) with the status Awaiting payment by bank transfer, which indicates that the payment is waiting to be processed. Once the transfer has been successfully completed, the status of the order will change to Payment accepted, indicating that the transaction was successfully paid.
In order to process payments with cash, it is necessary that the One-time payment option is selected at the top as well as the Cash option in the Payment Options>Payment Methods section within the Kushki console in the following path: Configuration > Integrations > Plugins > PrestaShop > Set up the content and style of your form.
Once a new order is generated, we can see the transaction in the PrestaShop store in the order list (Orders > Orders) with the status Awaiting payment by bank transfer, which indicates that the payment is waiting to be processed. Once the payment has been successfully completed, the status of the order will change to Payment accepted, indicating that the transaction was successfully paid.
Follow these instructions to request refunds for card payments in approved status.
- Log in to Prestashop with the credentials of your store.
- Click on the Orders > Orders option on the left side menu.
- Click on the order to be refunded to enter its details.
- Click on the Standard Refund button on the top menu in the order details.
- Check the box next to quantity to select the total of the items in the order and then click on the Standard Refund button at the bottom to make the refund request. Remember that currently only refunds for the order total are allowed.
- The message Standard Refund successfully created will appear indicating that the refund was successfully requested and the order status will change to Refunded.
Refunds can be of two types, depending on the day and time the original transaction and cancellation request are processed:
- Void: When the refund request is made on the same day of the transaction before the time limit, which varies from country to country, the cancellation occurs on the spot.
- Refund: When the refund request is made after the time limit. The process can take up to 45 days to be reflected as a credit note in the customer’s account.
These are the time limits for cancellations per country:
|Up to 3 hours after the transaction is approved.||20:59 on the day of the transaction.||21:00 on the day of the transaction.||23:59 on the day of the transaction.||20:59 on the day of the transaction.|
- To uninstall the module, go to the installed modules tab and locate Kushki’s module. Select the Uninstall option as shown in the image:
- To complete the uninstallation process, confirm that you want to uninstall the module. If required, you can select the option to remove the module directory.
You may use test cards in test mode to ensure that your integration is ready. Use them with any CVV and a future expiration date.
- Approved transaction:
- Transaction declined for token request (front end):
- Transaction declined for charge request (back end):