E-commerce plugins
VirtueMart plugin
Install and configure the official VirtueMart payment plugin for hosted MakePay checkout on Joomla stores.
MakePay VirtueMart Plugin
Overview
The MakePay VirtueMart plugin adds a hosted crypto payment method to Joomla stores that use VirtueMart. Customers choose MakePay at checkout, pay on the MakePay checkout page, and return to the store while VirtueMart keeps the order record.
Signed payment notifications update the VirtueMart order after payment, so the store team can continue managing orders inside VirtueMart.
Before You Start
- Joomla with VirtueMart installed
- PHP 7.4 or newer with OpenSSL and cURL enabled
- A public HTTPS storefront URL
- Access to Joomla extension installation and VirtueMart payment methods
- A MakePay company with settlement and branding configured
Install The Plugin
Download the latest ZIP:
https://plugins.makecrypto.io/downloads/virtuemart/latest.zip
In Joomla, open System > Extensions, upload the ZIP, then enable VM Payment - MakePay Crypto Payment Gateway from the plugin manager.
In VirtueMart, open Payment Methods, create a payment method, choose the MakePay payment plugin, and save it once so VirtueMart assigns a payment method ID.
Connect MakePay
After the payment method is saved, open the connection URL from the storefront.
Replace PAYMENT_METHOD_ID with the VirtueMart payment method ID:
https://store.example.com/index.php?option=com_virtuemart&view=pluginresponse&task=pluginnotification&tmpl=component&makepay_oauth=connect&pm=PAYMENT_METHOD_ID
MakePay asks you to sign in, choose the company that should receive payments, and approve the connection. After approval, the plugin stores the connection on that VirtueMart payment method and configures the MakePay callback URL.
Gateway Settings
Review these fields before enabling the payment method publicly:
| Setting | Purpose |
|---|---|
| Connection method | Use Connect MakePay for normal setup, or manual API keys as a fallback |
| MakePay company ID | Filled after connection, or entered manually for fallback |
| Settlement currency | Preferred settlement asset, such as USDT |
| Payment expiration | How long the hosted checkout link remains payable |
| Webhook secret | Used to verify MakePay payment notifications |
| Order statuses | VirtueMart statuses for pending, paid, failed, expired, cancelled, and refunded payments |
Checkout Flow
When a shopper selects MakePay, the plugin creates a MakePay payment link with:
| Field | Purpose |
|---|---|
source=virtuemart | Identifies the integration |
orderId=virtuemart_order_<id> | Maps MakePay activity back to VirtueMart |
orderNumber | VirtueMart order number shown to the merchant |
pluginVersion | Installed MakePay plugin version |
virtuemartVersion | VirtueMart runtime version when available |
The shopper is redirected to hosted checkout. MakePay then sends a signed notification to VirtueMart's plugin notification endpoint.
Order States
| MakePay status | VirtueMart behavior |
|---|---|
paid, completed, confirmed, succeeded | Moves the order to the configured paid status |
expired | Moves the order to the configured expired status |
failed | Moves the order to the configured failed status |
cancelled, canceled | Moves the order to the configured cancelled status |
refunded | Moves the order to the configured refunded status |
| Other statuses | Ignored until a final payment state arrives |
Each update writes a private order comment with the MakePay transaction, amount, asset, and payment URL when those fields are present.
Manual API-Key Fallback
If the connection flow cannot be used, set Connection method to Manual API key fallback and enter:
- MakePay company ID
- API key ID
- API key secret
- Webhook secret
Use this only when needed, and keep Joomla administrator access limited to trusted operators.
Troubleshooting
If checkout cannot start, confirm the payment method has a company connection
or manual API-key settings. If the connection URL fails, confirm the storefront
is public HTTPS and the pm value points to the saved MakePay payment method.
If orders do not update, compare the MakePay callback URL with VirtueMart's plugin notification URL and rotate the webhook secret from the payment method settings.