diff --git a/GXModules/Mollie/Mollie/Components/Mappers/OrderMapper.php b/GXModules/Mollie/Mollie/Components/Mappers/OrderMapper.php
index 57872a9c..1f295f4b 100644
--- a/GXModules/Mollie/Mollie/Components/Mappers/OrderMapper.php
+++ b/GXModules/Mollie/Mollie/Components/Mappers/OrderMapper.php
@@ -125,6 +125,7 @@ public function getPayment($orderId)
$email = $sourceOrder->getCustomerEmail();
$phone = $sourceOrder->getCustomerTelephone();
$payment->setShippingAddress($this->getAddressData($sourceOrder->getDeliveryAddress(), $email, $phone));
+ $payment->setBillingAddress($this->getAddressData($sourceOrder->getBillingAddress(), $email, $phone));
$daysToExpire = $this->getDaysToExpirePayment($sourceOrder->getPaymentType()->getModule());
if (!empty($daysToExpire)) {
diff --git a/GXModules/Mollie/Mollie/Components/Utility/MollieIssuersProvider.php b/GXModules/Mollie/Mollie/Components/Utility/MollieIssuersProvider.php
index 90f0d251..91be0603 100644
--- a/GXModules/Mollie/Mollie/Components/Utility/MollieIssuersProvider.php
+++ b/GXModules/Mollie/Mollie/Components/Utility/MollieIssuersProvider.php
@@ -106,13 +106,17 @@ private function displayIssuers()
private function renderIssuerList()
{
$template = PathProvider::getShopTemplatePath('mollie_issuer_list.html');
+ $issuers = $this->_formatIssuers();
+
+ if ($this->paymentMethod->getId() === 'ideal') {
+ $issuers = array();
+ }
return mollie_render_template(
$template,
[
- 'isLegacy' => $this->versionCompatibilityProvider->isLegacyVersion(),
'payment_method' => $this->code,
- 'issuers' => $this->_formatIssuers(),
+ 'issuers' => $issuers,
'list_type' => $this->issuerListType,
]
);
diff --git a/GXModules/Mollie/Mollie/Shop/Javascripts/mollie-issuers.js b/GXModules/Mollie/Mollie/Shop/Javascripts/mollie-issuers.js
index d06bdd52..5699e052 100644
--- a/GXModules/Mollie/Mollie/Shop/Javascripts/mollie-issuers.js
+++ b/GXModules/Mollie/Mollie/Shop/Javascripts/mollie-issuers.js
@@ -1,12 +1,40 @@
-(function() {
+(function () {
document.addEventListener("DOMContentLoaded", function () {
let issuerListWrappers = document.querySelectorAll('.mollie-issuer-list-wrapper');
+ const paymentMethods = document.querySelectorAll('input[type="radio"]');
+
+ //switch to iDeal 2.0 without issuers
+ paymentMethods.forEach(function (method) {
+ if (method.value.includes('mollie_')) {
+ if (method.value === 'mollie_ideal') {
+ if (method.checked) {
+ hideIdealCheckoutPaymentForm();
+ }
+ method.addEventListener('click', function () {
+ hideIdealCheckoutPaymentForm();
+ });
+ }
+ }
+ });
+
+ //in case if ideal is the only available payment method, it won't be shown as radio button but as li element
+ const issuerMethod = document.querySelector('li.mollie_ideal');
+ if (issuerMethod) {
+ hideIdealCheckoutPaymentForm();
+ }
+
for (let i = 0; i < issuerListWrappers.length; i++) {
addIssuerListListeners(issuerListWrappers[i]);
}
let checkoutForm = document.querySelector('#checkout_payment');
checkoutForm.addEventListener('submit', async event => {
+ //skip checking issuer selection for iDeal 2.0 payment method
+ let activeMethod = getActiveMethod();
+ if (activeMethod.classList.contains('mollie_ideal')) {
+ return;
+ }
+
if (!isIssuersSelected()) {
showIssuerErrorMessage();
event.preventDefault();
@@ -96,5 +124,12 @@
return document.querySelector('.list-group-item.active');
}
+ function hideIdealCheckoutPaymentForm() {
+ let checkoutPaymentForm = document.querySelector('.checkout-payment-form');
+ if (checkoutPaymentForm) {
+ checkoutPaymentForm.style.display = 'none';
+ }
+ }
+
});
-})();
\ No newline at end of file
+})();
diff --git a/GXModules/Mollie/Mollie/composer.json b/GXModules/Mollie/Mollie/composer.json
index 776aba89..e3bef344 100644
--- a/GXModules/Mollie/Mollie/composer.json
+++ b/GXModules/Mollie/Mollie/composer.json
@@ -1,9 +1,9 @@
{
"name": "mollie/gambio",
- "version": "1.0.18",
+ "version": "1.0.19",
"require": {
"php": ">=5.4",
- "mollie/integration-core": "1.3.9"
+ "mollie/integration-core": "1.3.10"
},
"repositories": [
{
diff --git a/GXModules/Mollie/Mollie/composer.lock b/GXModules/Mollie/Mollie/composer.lock
index f05e7393..2c0a814b 100644
--- a/GXModules/Mollie/Mollie/composer.lock
+++ b/GXModules/Mollie/Mollie/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "0f173e7d9427b7294fd8024c5f0ea905",
+ "content-hash": "12819abd67f5fba366881a3c526a5541",
"packages": [
{
"name": "mollie/integration-core",
- "version": "1.3.9",
+ "version": "1.3.10",
"source": {
"type": "git",
"url": "git@github.com:mollie/orocore.git",
- "reference": "8a07e5e317dfbffeaa552820ee843701a24a8fd5"
+ "reference": "c651e7ca353219121dbe13cca34fc02393a9cb2c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mollie/orocore/zipball/8a07e5e317dfbffeaa552820ee843701a24a8fd5",
- "reference": "8a07e5e317dfbffeaa552820ee843701a24a8fd5",
+ "url": "https://api.github.com/repos/mollie/orocore/zipball/c651e7ca353219121dbe13cca34fc02393a9cb2c",
+ "reference": "c651e7ca353219121dbe13cca34fc02393a9cb2c",
"shasum": ""
},
"require": {
@@ -45,7 +45,7 @@
"proprietary"
],
"description": "Mollie integrations core library",
- "time": "2024-09-16T12:55:55+00:00"
+ "time": "2024-09-27T09:30:33+00:00"
}
],
"packages-dev": [],
diff --git a/GXModules/Mollie/Mollie/vendor/composer/installed.json b/GXModules/Mollie/Mollie/vendor/composer/installed.json
index 6dc978f7..37320055 100644
--- a/GXModules/Mollie/Mollie/vendor/composer/installed.json
+++ b/GXModules/Mollie/Mollie/vendor/composer/installed.json
@@ -2,17 +2,17 @@
"packages": [
{
"name": "mollie/integration-core",
- "version": "1.3.9",
- "version_normalized": "1.3.9.0",
+ "version": "1.3.10",
+ "version_normalized": "1.3.10.0",
"source": {
"type": "git",
"url": "git@github.com:mollie/orocore.git",
- "reference": "8a07e5e317dfbffeaa552820ee843701a24a8fd5"
+ "reference": "c651e7ca353219121dbe13cca34fc02393a9cb2c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mollie/orocore/zipball/8a07e5e317dfbffeaa552820ee843701a24a8fd5",
- "reference": "8a07e5e317dfbffeaa552820ee843701a24a8fd5",
+ "url": "https://api.github.com/repos/mollie/orocore/zipball/c651e7ca353219121dbe13cca34fc02393a9cb2c",
+ "reference": "c651e7ca353219121dbe13cca34fc02393a9cb2c",
"shasum": ""
},
"require": {
@@ -24,7 +24,7 @@
"phpunit/phpunit": "^4.8.35",
"symfony/console": "^5.1"
},
- "time": "2024-09-16T12:55:55+00:00",
+ "time": "2024-09-27T09:30:33+00:00",
"type": "library",
"installation-source": "source",
"autoload": {
diff --git a/GXModules/Mollie/Mollie/vendor/composer/installed.php b/GXModules/Mollie/Mollie/vendor/composer/installed.php
index 20ec030f..f3865087 100644
--- a/GXModules/Mollie/Mollie/vendor/composer/installed.php
+++ b/GXModules/Mollie/Mollie/vendor/composer/installed.php
@@ -1,7 +1,7 @@
array(
- 'pretty_version' => '1.0.18',
- 'version' => '1.0.18.0',
+ 'pretty_version' => '1.0.19',
+ 'version' => '1.0.19.0',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -11,8 +11,8 @@
),
'versions' => array(
'mollie/gambio' => array(
- 'pretty_version' => '1.0.18',
- 'version' => '1.0.18.0',
+ 'pretty_version' => '1.0.19',
+ 'version' => '1.0.19.0',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -20,12 +20,12 @@
'dev_requirement' => false,
),
'mollie/integration-core' => array(
- 'pretty_version' => '1.3.9',
- 'version' => '1.3.9.0',
+ 'pretty_version' => '1.3.10',
+ 'version' => '1.3.10.0',
'type' => 'library',
'install_path' => __DIR__ . '/../mollie/integration-core',
'aliases' => array(),
- 'reference' => '8a07e5e317dfbffeaa552820ee843701a24a8fd5',
+ 'reference' => 'c651e7ca353219121dbe13cca34fc02393a9cb2c',
'dev_requirement' => false,
),
),
diff --git a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/DTO/Payment.php b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/DTO/Payment.php
index 69c345ad..9cd6edfb 100644
--- a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/DTO/Payment.php
+++ b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/DTO/Payment.php
@@ -68,6 +68,10 @@ class Payment extends BaseDto
* @var Address
*/
protected $shippingAddress;
+ /**
+ * @var Address
+ */
+ protected $billingAddress;
/**
* @var array
*/
@@ -134,10 +138,15 @@ public static function fromArray(array $raw)
$result->expiresAt = \DateTime::createFromFormat(DATE_ATOM, static::getValue($raw, 'expiresAt'));
$shippingAddress = static::getValue($raw, 'shippingAddress', array());
+ $billingAddress = static::getValue($raw, 'billingAddress', array());
if (!empty($shippingAddress)) {
$result->shippingAddress = Address::fromArray($shippingAddress);
}
+ if (!empty($billingAddress)) {
+ $result->billingAddress = Address::fromArray($billingAddress);
+ }
+
foreach ((array)static::getValue($raw, '_links', array()) as $linkKey => $linkData) {
$result->links[$linkKey] = Link::fromArray((array)$linkData);
}
@@ -200,6 +209,10 @@ public function toArray()
$result['shippingAddress'] = $this->shippingAddress->toArray();
}
+ if ($this->billingAddress) {
+ $result['billingAddress'] = $this->billingAddress->toArray();
+ }
+
return $result;
}
@@ -428,6 +441,22 @@ public function setShippingAddress($shippingAddress)
$this->shippingAddress = $shippingAddress;
}
+ /**
+ * @return Address
+ */
+ public function getBillingAddress()
+ {
+ return $this->billingAddress;
+ }
+
+ /**
+ * @param Address $billingAddress
+ */
+ public function setBillingAddress($billingAddress)
+ {
+ $this->billingAddress = $billingAddress;
+ }
+
/**
* @return array
*/
diff --git a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/OrgToken/ProxyDataProvider.php b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/OrgToken/ProxyDataProvider.php
index 4342a3d3..9ec0102f 100644
--- a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/OrgToken/ProxyDataProvider.php
+++ b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/Http/OrgToken/ProxyDataProvider.php
@@ -58,6 +58,8 @@ public function transformPayment(Payment $payment)
);
$shippingAddress = $payment->getShippingAddress();
+ $billingAddress = $payment->getBillingAddress();
+
if ($shippingAddress && $method === PaymentMethods::PayPal) {
$result['shippingAddress'] = array(
'streetAndNumber' => $shippingAddress->getStreetAndNumber(),
@@ -69,6 +71,20 @@ public function transformPayment(Payment $payment)
);
}
+ if ($billingAddress && $method === PaymentMethods::Alma) {
+ $result['billingAddress'] = array(
+ 'streetAndNumber' => $billingAddress->getStreetAndNumber(),
+ 'streetAdditional' => $billingAddress->getStreetAdditional(),
+ 'city' => $billingAddress->getCity(),
+ 'region' => $billingAddress->getRegion(),
+ 'postalCode' => $billingAddress->getPostalCode(),
+ 'country' => $billingAddress->getCountry(),
+ 'givenName' => $billingAddress->getGivenName(),
+ 'familyName' => $billingAddress->getFamilyName(),
+ 'email' => $billingAddress->getEmail() ?: null
+ );
+ }
+
$result = array_merge($result, $this->getCommonPaymentParameters($payment));
return $result;
diff --git a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/Model/PaymentMethodConfig.php b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/Model/PaymentMethodConfig.php
index 76e1c496..1a4f7aef 100644
--- a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/Model/PaymentMethodConfig.php
+++ b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/Model/PaymentMethodConfig.php
@@ -54,7 +54,8 @@ class PaymentMethodConfig extends Entity
PaymentMethods::Klarna => self::API_METHOD_ORDERS,
PaymentMethods::Vouchers => self::API_METHOD_ORDERS,
PaymentMethods::Billie => self::API_METHOD_ORDERS,
- PaymentMethods::Riverty => self::API_METHOD_ORDERS
+ PaymentMethods::Riverty => self::API_METHOD_ORDERS,
+ PaymentMethods::Alma => self::API_METHOD_PAYMENT
);
/**
diff --git a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/PaymentMethods.php b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/PaymentMethods.php
index dc69852d..a3356b11 100644
--- a/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/PaymentMethods.php
+++ b/GXModules/Mollie/Mollie/vendor/mollie/integration-core/src/BusinessLogic/PaymentMethod/PaymentMethods.php
@@ -23,4 +23,6 @@ class PaymentMethods
const Klarna = 'klarna';
const Riverty = 'riverty';
const Trustly = 'trustly';
+ const Twint = 'twint';
+ const Alma = 'alma';
}
diff --git a/README.md b/README.md
index 45cee932..7b639cb0 100644
--- a/README.md
+++ b/README.md
@@ -40,6 +40,11 @@ Read more about the integration configuration on [our Wiki](https://github.com/m
# Release notes
+*1.0.19*
+- Add Twint payment method
+- Add Alma payment method
+- Change from iDeal 1.0 to iDeal 2.0 payment method
+
*1.0.18*
- Add Billie payment method
- Add Klarna One payment method
diff --git a/images/icons/payment/mollie_alma.png b/images/icons/payment/mollie_alma.png
new file mode 100644
index 00000000..30b2634c
Binary files /dev/null and b/images/icons/payment/mollie_alma.png differ
diff --git a/images/icons/payment/mollie_twint.png b/images/icons/payment/mollie_twint.png
new file mode 100644
index 00000000..9a5ed08f
Binary files /dev/null and b/images/icons/payment/mollie_twint.png differ
diff --git a/includes/modules/payment/mollie_alma.php b/includes/modules/payment/mollie_alma.php
new file mode 100644
index 00000000..b1969393
--- /dev/null
+++ b/includes/modules/payment/mollie_alma.php
@@ -0,0 +1,32 @@
+code) . '_API_METHOD'];
+ return array_values(array_diff($keys, $hidden));
+ }
+
+ /**
+ * @return string
+ */
+ protected function _getDefaultApi()
+ {
+ return PaymentMethodConfig::API_METHOD_PAYMENT;
+ }
+}
diff --git a/includes/modules/payment/mollie_twint.php b/includes/modules/payment/mollie_twint.php
new file mode 100644
index 00000000..89c7262e
--- /dev/null
+++ b/includes/modules/payment/mollie_twint.php
@@ -0,0 +1,34 @@
+code) . '_API_METHOD'];
+
+ return array_values(array_diff($keys, $hidden));
+ }
+
+ /**
+ * @return string
+ */
+ protected function _getDefaultApi()
+ {
+ return PaymentMethodConfig::API_METHOD_PAYMENT;
+ }
+}
diff --git a/lang/dutch/modules/payment/mollie_alma.php b/lang/dutch/modules/payment/mollie_alma.php
new file mode 100644
index 00000000..b96fda25
--- /dev/null
+++ b/lang/dutch/modules/payment/mollie_alma.php
@@ -0,0 +1,49 @@
+Payment API
Gebruik het Payment API Platform voor de transacties. Lees meer.
Order API
Gebruik het nieuwe Payment API Platform voor de transacties. Lees meer.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC', 'Upload een logo dat zal worden gebruikt bij het afrekenen.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE', 'Sorteer de weergavevolgorde bij de checkout');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC', 'De laagste wordt als eerste weergegeven in het checkout-scherm.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE', 'Dagen tot verstrijken');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC', 'Hoeveel dagen voordat bestellingen voor deze methode verlopen? Laat leeg om de standaard vervaldatum te gebruiken (28 dagen)');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE', 'Transactiebeschrijving');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC', 'De beschrijving die moet worden gebruikt voor de betalingstransactie. Deze variabelen zijn beschikbaar: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} en {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE', 'Betalingstoeslag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC', 'Selecteer het type toeslag.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE', 'Betalingstoeslag vast bedrag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC', 'Extra kosten die aan de klant worden doorberekend voor betalingstransacties bepaald als een vast bedrag in standaard winkelvaluta.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE', 'Betalingstoeslag percentage');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC', 'Extra kosten die aan de klant worden doorberekend voor betalingstransacties bepaald als een percentage van het subtotaal van de winkelwagen.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE', 'Betalingstoeslag limiet');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC', 'Maximumbedrag van de betalingstoeslag die aan de klant moet worden doorberekend (in standaard winkelvaluta).');
diff --git a/lang/dutch/modules/payment/mollie_twint.php b/lang/dutch/modules/payment/mollie_twint.php
new file mode 100644
index 00000000..7f9d388b
--- /dev/null
+++ b/lang/dutch/modules/payment/mollie_twint.php
@@ -0,0 +1,49 @@
+Payment API
Gebruik het Payment API Platform voor de transacties. Lees meer.
Order API
Gebruik het nieuwe Payment API Platform voor de transacties. Lees meer.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC', 'Upload een logo dat zal worden gebruikt bij het afrekenen.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE', 'Sorteer de weergavevolgorde bij de checkout');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC', 'De laagste wordt als eerste weergegeven in het checkout-scherm.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE', 'Dagen tot verstrijken');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC', 'Hoeveel dagen voordat bestellingen voor deze methode verlopen? Laat leeg om de standaard vervaldatum te gebruiken (28 dagen)');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE', 'Transactiebeschrijving');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC', 'De beschrijving die moet worden gebruikt voor de betalingstransactie. Deze variabelen zijn beschikbaar: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} en {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE', 'Betalingstoeslag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC', 'Selecteer het type toeslag.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE', 'Betalingstoeslag vast bedrag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC', 'Extra kosten die aan de klant worden doorberekend voor betalingstransacties bepaald als een vast bedrag in standaard winkelvaluta.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE', 'Betalingstoeslag percentage');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC', 'Extra kosten die aan de klant worden doorberekend voor betalingstransacties bepaald als een percentage van het subtotaal van de winkelwagen.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE', 'Betalingstoeslag limiet');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC', 'Maximumbedrag van de betalingstoeslag die aan de klant moet worden doorberekend (in standaard winkelvaluta).');
diff --git a/lang/english/modules/payment/mollie_alma.php b/lang/english/modules/payment/mollie_alma.php
new file mode 100644
index 00000000..8d154906
--- /dev/null
+++ b/lang/english/modules/payment/mollie_alma.php
@@ -0,0 +1,49 @@
+Payment API
Use the Payment API Platform for the transactions. Read more.
Order API
Use the new Order API Platform and get additional insights in the orders. Read more.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC', 'Please upload logo that will be used in checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE', 'Sort order of display in checkout');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC', 'Lowest is displayed first in checkout screen.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE', 'Days To Expire');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC', 'How many days before orders for this method becomes expired? Leave empty to use default expiration (28 days)');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE', 'Transaction description');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC', 'The description to be used for payment transaction. These variables are available: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany}, and {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE', 'Payment surcharge');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC', 'Please select a surcharge type.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE', 'Payment surcharge fixed amount');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC', 'Extra cost to be charged to the customer for payment transactions defined as a fixed amount in default store currency.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE', 'Payment surcharge percentage');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC', 'Extra cost to be charged to the customer for payment transactions defined as a percentage of the cart subtotal.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE', 'Payment surcharge limit');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC', 'Maximum amount of payment surcharge that should be charged to the customer (in default store currency).');
diff --git a/lang/english/modules/payment/mollie_twint.php b/lang/english/modules/payment/mollie_twint.php
new file mode 100644
index 00000000..b97f7a1f
--- /dev/null
+++ b/lang/english/modules/payment/mollie_twint.php
@@ -0,0 +1,49 @@
+Payment API
Use the Payment API Platform for the transactions. Read more.
Order API
Use the new Order API Platform and get additional insights in the orders. Read more.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC', 'Please upload logo that will be used in checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE', 'Sort order of display in checkout');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC', 'Lowest is displayed first in checkout screen.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE', 'Days To Expire');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC', 'How many days before orders for this method becomes expired? Leave empty to use default expiration (28 days)');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE', 'Transaction description');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC', 'The description to be used for payment transaction. These variables are available: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany}, and {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE', 'Payment surcharge');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC', 'Please select a surcharge type.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE', 'Payment surcharge fixed amount');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC', 'Extra cost to be charged to the customer for payment transactions defined as a fixed amount in default store currency.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE', 'Payment surcharge percentage');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC', 'Extra cost to be charged to the customer for payment transactions defined as a percentage of the cart subtotal.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE', 'Payment surcharge limit');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC', 'Maximum amount of payment surcharge that should be charged to the customer (in default store currency).');
diff --git a/lang/french/modules/payment/mollie_alma.php b/lang/french/modules/payment/mollie_alma.php
new file mode 100644
index 00000000..fa9d7181
--- /dev/null
+++ b/lang/french/modules/payment/mollie_alma.php
@@ -0,0 +1,49 @@
+Payment API
Utilisez la plateforme Payment API pour les transactions. Reaad more..
Order API
Utilisez la nouvelle plateforme Order API et obtenez plus d'informations sur les commandes. Read more.");
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC', 'Veuillez charger le logo à utiliser au checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE', "Organiser l'ordre d'affichage du checkout");
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC', "Le plus bas est affiché en premier sur l'écran du checkout.");
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE', "Style de la liste d'émetteurs");
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE', "Jours d'expiration");
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC', "Combien de jours avant l'expiration des commandes pour cette méthode? Laissez vide pour utiliser l'expiration par défaut (28 jours)");
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE', 'Description de la transaction');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC', 'La description à utiliser pour la transaction de paiement. Ces variables sont disponibles: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} et {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE', 'Majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC', 'Veuillez sélectionner un type de majoration.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE', 'Montant fixe pour majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC', 'Coût supplémentaire à facturer au client pour les opérations de paiement défini comme un montant fixe dans la devise du magasin par défaut.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE', 'Pourcentage de majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC', 'Coût supplémentaire à facturer au client pour les opérations de paiement défini comme un pourcentage du sous-total du panier.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE', 'Limite de majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC', 'Montant maximum de la majoration de paiement qui doit être facturée au client (dans la devise du magasin par défaut).');
diff --git a/lang/french/modules/payment/mollie_twint.php b/lang/french/modules/payment/mollie_twint.php
new file mode 100644
index 00000000..8e4fa855
--- /dev/null
+++ b/lang/french/modules/payment/mollie_twint.php
@@ -0,0 +1,49 @@
+Payment API
Utilisez la plateforme Payment API pour les transactions. Reaad more..
Order API
Utilisez la nouvelle plateforme Order API et obtenez plus d'informations sur les commandes. Read more.");
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC', 'Veuillez charger le logo à utiliser au checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE', "Organiser l'ordre d'affichage du checkout");
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC', "Le plus bas est affiché en premier sur l'écran du checkout.");
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE', "Style de la liste d'émetteurs");
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE', "Jours d'expiration");
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC', "Combien de jours avant l'expiration des commandes pour cette méthode? Laissez vide pour utiliser l'expiration par défaut (28 jours)");
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE', 'Description de la transaction');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC', 'La description à utiliser pour la transaction de paiement. Ces variables sont disponibles: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} et {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE', 'Majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC', 'Veuillez sélectionner un type de majoration.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE', 'Montant fixe pour majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC', 'Coût supplémentaire à facturer au client pour les opérations de paiement défini comme un montant fixe dans la devise du magasin par défaut.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE', 'Pourcentage de majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC', 'Coût supplémentaire à facturer au client pour les opérations de paiement défini comme un pourcentage du sous-total du panier.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE', 'Limite de majoration de paiement');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC', 'Montant maximum de la majoration de paiement qui doit être facturée au client (dans la devise du magasin par défaut).');
diff --git a/lang/german/modules/payment/mollie_alma.php b/lang/german/modules/payment/mollie_alma.php
new file mode 100644
index 00000000..12b5724e
--- /dev/null
+++ b/lang/german/modules/payment/mollie_alma.php
@@ -0,0 +1,49 @@
+Payment API
Verwenden Sie für Transaktionen die Payment API Plattform. Mehr.
Order API
Verwenden Sie die neue Order API Platform, um mehr Einblicke in die Bestellungen zu erhalten. Mehr.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_LOGO_DESC', 'Bitte laden Sie ein Logo hoch, das im Checkout angezeigt werden soll.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_TITLE', 'Sortierreihenfolge der Anzeige im Checkout');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SORT_ORDER_DESC', 'Der niedrigste Wert wird im Checkout zuerst angezeigt');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_TITLE', 'Tage bis zum Ablauf');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_ORDER_EXPIRES_DESC', 'Wie viele Tage, bevor Bestellungen für diese Methode abgelaufen sind? Leer lassen, um den Standardablauf zu verwenden (28 Tage)');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_TITLE', 'Transaktion Beschreibung');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_TRANSACTION_DESCRIPTION_DESC', 'Die Beschreibung, die für den Zahlungsvorgang verwendet werden soll. Diese Variablen sind verfügbar: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} und {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_TITLE', 'Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_TYPE_DESC', 'Wählen Sie einen Zuschlagstyp aus.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_TITLE', 'Fester Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_FIXED_AMOUNT_DESC', 'Zusätzliche Kosten die für Zahlungsvorgänge anfallen und als fester Betrag in der Standardwährung des Shops berechnet werden.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_TITLE', 'Anteiliger Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_PERCENTAGE_DESC', 'Zusätzliche Kosten die für Zahlungsvorgänge anfallen und als Anteil am Gesamtwert des Einkaufswagens berechnet werden.');
+
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_TITLE', 'Maximaler Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_ALMA_SURCHARGE_LIMIT_DESC', 'Maximaler Betrag eines Zahlungszuschlags der berechnet werden kann (in der Standardwährung des Shops).');
diff --git a/lang/german/modules/payment/mollie_twint.php b/lang/german/modules/payment/mollie_twint.php
new file mode 100644
index 00000000..7189cb1d
--- /dev/null
+++ b/lang/german/modules/payment/mollie_twint.php
@@ -0,0 +1,49 @@
+Payment API
Verwenden Sie für Transaktionen die Payment API Plattform. Mehr.
Order API
Verwenden Sie die neue Order API Platform, um mehr Einblicke in die Bestellungen zu erhalten. Mehr.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_TITLE', 'Logo');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_LOGO_DESC', 'Bitte laden Sie ein Logo hoch, das im Checkout angezeigt werden soll.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_TITLE', 'Sortierreihenfolge der Anzeige im Checkout');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SORT_ORDER_DESC', 'Der niedrigste Wert wird im Checkout zuerst angezeigt');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_TITLE', 'Issuer list style');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ISSUER_LIST_DESC', 'Choose the style in which issuer list will be displayed on checkout.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_TITLE', 'Tage bis zum Ablauf');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_ORDER_EXPIRES_DESC', 'Wie viele Tage, bevor Bestellungen für diese Methode abgelaufen sind? Leer lassen, um den Standardablauf zu verwenden (28 Tage)');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_TITLE', 'Transaktion Beschreibung');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_TRANSACTION_DESCRIPTION_DESC', 'Die Beschreibung, die für den Zahlungsvorgang verwendet werden soll. Diese Variablen sind verfügbar: {orderNumber}, {storeName}, {customerFirstname}, {customerLastname}, {customerCompany} und {cartNumber}.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_TITLE', 'Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_TYPE_DESC', 'Wählen Sie einen Zuschlagstyp aus.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_TITLE', 'Fester Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_FIXED_AMOUNT_DESC', 'Zusätzliche Kosten die für Zahlungsvorgänge anfallen und als fester Betrag in der Standardwährung des Shops berechnet werden.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_TITLE', 'Anteiliger Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_PERCENTAGE_DESC', 'Zusätzliche Kosten die für Zahlungsvorgänge anfallen und als Anteil am Gesamtwert des Einkaufswagens berechnet werden.');
+
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_TITLE', 'Maximaler Zahlungszuschlag');
+defined('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC') ?: define('MODULE_PAYMENT_MOLLIE_TWINT_SURCHARGE_LIMIT_DESC', 'Maximaler Betrag eines Zahlungszuschlags der berechnet werden kann (in der Standardwährung des Shops).');