@variablevic/mollie-payments-medusa v0.0.11
Mollie Payments for Medusa
A comprehensive payment provider plugin that enables Mollie payments on Medusa V2 projects.
Table of Contents
- Features
- Prerequisites
- Installation
- Configuration
- Usage
- Client-Side Integration
- Supported Payment Methods
- Extending the Plugin
- Local Development and Customization
- License
Features
Multiple Payment Methods: Supports a wide range of Mollie payment methods including:
- Mollie Hosted Checkout
- iDEAL
- Bancontact
- Credit Card
- PayPal
- Apple Pay
- Gift Card
Easily Extendable: The modular architecture makes it easy to add support for additional Mollie payment methods.
Webhook Support: Full support for Mollie webhooks for real-time payment status updates.
Automatic Capture: Configurable automatic capture of payments.
!WARNING This plugin has not been tested on a live store. Please conduct thorough testing before using it in a production environment. I am not responsible for any missed or failed payments resulting from the use of this plugin. If you encounter any issues, please report them here.
Prerequisites
- Medusa server v2.3.0 or later
- Node.js v20 or later
- A Mollie account and API key with payment methods enabled.
!NOTE You can get an API key from your Mollie dashboard: click Browse > Developers > API keys
Installation
yarn add @variablevic/mollie-payments-medusa
Configuration
Add the provider to the @medusajs/payment
module in your medusa-config.ts
file:
modules: [
// ... other modules
{
resolve: "@medusajs/payment",
options: {
providers: [
// ... other providers
{
resolve: "@variablevic/mollie-payments-medusa/providers/mollie",
id: "mollie",
options: {
apiKey: process.env.MOLLIE_API_KEY,
redirectUrl: process.env.MOLLIE_REDIRECT_URL,
medusaUrl: process.env.MEDUSA_URL,
},
},
],
},
}
]
Configuration Options
Option | Description | Default |
---|---|---|
apiKey | Your Mollie API key | Required |
redirectUrl | The URL to redirect to after payment | Required |
medusaUrl | The URL of your Medusa server | Required |
autoCapture | Whether to automatically capture payments | true |
description | The description that appears on the payment. | Mollie payment created by Medusa |
debug | Whether to enable debug mode | false |
Environment Variables
Create or update your .env
file with the following variables:
MOLLIE_API_KEY=your_mollie_api_key
MOLLIE_REDIRECT_URL=https://your-store.com/checkout/payment
MEDUSA_URL=https://your-medusa-server.com
Usage
Once installed and configured, the Mollie payment methods will be available in your Medusa admin. To enable them, log in to you Medusa Admin, browse to Settings > Regions, add or edit a region and select the desired Mollie providers from the dropdown.
Make sure that the selected payment methods are enabled in your Mollie origanization settings as well.
Client-Side Integration
To integrate with your storefront, you'll need to implement the payment flow according to Mollie's and Medusa's documentation. Here's a basic example:
- Create a payment session in your checkout flow
- Redirect the customer to the Mollie payment page
Handle the webhook notifications to update the payment status
Example integration using the Medusa Next.js Starter:
https://github.com/user-attachments/assets/742ee261-5e41-4e33-9a72-faf1a424fc52
Supported Payment Methods
The plugin currently supports the following Mollie payment methods:
Payment Method | Provider ID |
---|---|
Hosted Checkout | pp_mollie-hosted-checkout_mollie |
iDEAL | pp_mollie-ideal_mollie |
Credit Card | pp_mollie-card_mollie |
Bancontact | pp_mollie-bancontact_mollie |
Gift Card | pp_mollie-giftcard_mollie |
PayPal | pp_mollie-paypal_mollie |
Apple Pay | pp_mollie-apple-pay_mollie |
Extending the Plugin
To add support for additional Mollie payment methods, create a new service in src/providers/mollie/services
that extends the MollieBase
class:
import { PaymentMethod } from "@mollie/api-client";
import MollieBase from "../core/mollie-base";
import { PaymentOptions, PaymentProviderKeys } from "../types";
class MollieNewMethodService extends MollieBase {
static identifier = "mollie-new-method";
get paymentCreateOptions(): PaymentOptions {
return {
method: PaymentMethod.newMethod,
};
}
}
export default MollieNewMethodService;
Make sure to replace new method
with the actual Mollie payment method ID.
Export your new service from src/providers/mollie/services/index.ts
. Then add your new service to the list of services in src/providers/mollie/index.ts
.
Local development and customization
In case you want to customize and test the plugin locally, refer to the Medusa Plugin docs.
License
TBD