0.0.11 • Published 1 month ago

@variablevic/mollie-payments-medusa v0.0.11

Weekly downloads
-
License
MIT
Repository
-
Last release
1 month ago

Mollie Payments for Medusa

A comprehensive payment provider plugin that enables Mollie payments on Medusa V2 projects.

Table of Contents

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

OptionDescriptionDefault
apiKeyYour Mollie API keyRequired
redirectUrlThe URL to redirect to after paymentRequired
medusaUrlThe URL of your Medusa serverRequired
autoCaptureWhether to automatically capture paymentstrue
descriptionThe description that appears on the payment.Mollie payment created by Medusa
debugWhether to enable debug modefalse

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.

Screenshot 2025-03-10 at 14 14 43

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:

  1. Create a payment session in your checkout flow
  2. Redirect the customer to the Mollie payment page
  3. 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 MethodProvider ID
Hosted Checkoutpp_mollie-hosted-checkout_mollie
iDEALpp_mollie-ideal_mollie
Credit Cardpp_mollie-card_mollie
Bancontactpp_mollie-bancontact_mollie
Gift Cardpp_mollie-giftcard_mollie
PayPalpp_mollie-paypal_mollie
Apple Paypp_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