diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e666e..485f03c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +*** + +## 3.9.0 +Release date: March, 19th 2021 + +### Added ++ PLGOPNS-374: Add generic gateway + +### Changed ++ PLGOPNS-384: Upgrade PHP-SDK to 5.1.0 + +*** ## 3.8.0 Release date: February, 11th 2021 @@ -11,6 +23,7 @@ Release date: February, 11th 2021 ### Fixed + PLGOPNS-382: Fix bug to get the proper settings in a multi store OpenCart site +*** ## 3.7.0 Release date: February, 9th 2021 @@ -18,6 +31,7 @@ Release date: February, 9th 2021 ### Fixed + PLGOPNS-381: Fix percentage coupon applied before taxes +*** ## 3.6.0 Release date: February, 8th 2021 @@ -35,6 +49,7 @@ Release date: February, 8th 2021 + PLGOPNS-375: Remove unneded code related with the shopping cart of the transaction + PLGOPNS-378: Fix bug for fixed coupons applied before taxes +*** ## 3.5.0 Release date: December, 18th 2020 @@ -54,6 +69,7 @@ Release date: December, 18th 2020 + PLGOPNS-366: Fix bug, gift voucher items should pass to the transaction as negative amounts + PLGOPNS-371: Fix filter per customer group; when customer is not logged +*** ## 3.4.0 Release date: November, 19th 2020 @@ -67,6 +83,8 @@ Release date: November, 19th 2020 ### Changed + PLGOPNS-257: Include in support tab the contact details of international offices +*** + ## 3.3.0 Release date: October, 13th 2020 @@ -78,6 +96,8 @@ Release date: October, 13th 2020 + PLGOPNS-303: Improve iDEAL issuer selection list + PLGOPNS-245: Improve the alignment of payment methods logos in checkout page +*** + ## 3.2.0 Release date: September, 17th 2020 @@ -88,6 +108,8 @@ Release date: September, 17th 2020 + PLGOPNS-295: Add getEventByCode function, which does not exist prior to OC 3.0.2 + PLGOPNS-284: Fix placeholder for 'lifetime payment link' field +*** + ## 3.1.0 Release date: September, 14th 2020 @@ -97,6 +119,8 @@ Release date: September, 14th 2020 + PLGOPNS-253: Validate the field lifetime of payment link to avoid negative number + PLGOPNS-252: Improve description for each payment method on backoffice +*** + ## 3.0.0 Release date: September, 7th 2020 @@ -118,7 +142,6 @@ Release date: September, 7th 2020 + Add support to update order status as cancelled or expired from the admin + Add support for payment method in3, CBC - ### Fixed + PLGOPNS-226: Tax issue + PLGOPNS-212: Fix PHP DocBlock declaration and correct @author property @@ -134,7 +157,6 @@ Release date: September, 7th 2020 + Fix support for taxes + Fix support for coupons - ### Removed + PLGOPNS-228: Remove payment methods BABYGIFTCARD, EROTIEKBON. + PLGOPNS-225: Reorder the directories to put MultiSafepay.combined.php in the OpenCart library folder @@ -142,6 +164,7 @@ Release date: September, 7th 2020 + PLGOPNS-174: Remove unsupported giftcards + Remove VqMod dependency +*** ## 2.3.0 Release date: April 2nd, 2020 @@ -202,6 +225,8 @@ Release date: June 15th, 2018 + PLGOPNS-74: MultiStore is now correctly supported + PLGOPNS-75: Configuration form is now applied for geozone and min/max amount +*** + ## 2.1.0 Release date: November 13th, 2017 ### Improvements diff --git a/composer.json b/composer.json index cc5d997..ee7b3eb 100755 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ "php-http/guzzle6-adapter": "^2.0", "guzzlehttp/psr7": "^1.6", "http-interop/http-factory-guzzle": "^1.0", - "multisafepay/php-sdk": "^4.0" + "multisafepay/php-sdk": "^5.0" }, "require-dev": { "phpunit/phpunit" : "^7.5", diff --git a/phpcs.xml b/phpcs.xml index 8229251..54f506c 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -68,7 +68,7 @@ */src/system/library/multisafepay.php - + diff --git a/src/admin/controller/extension/payment/multisafepay.php b/src/admin/controller/extension/payment/multisafepay.php index 1993b82..cf57dc6 100644 --- a/src/admin/controller/extension/payment/multisafepay.php +++ b/src/admin/controller/extension/payment/multisafepay.php @@ -175,7 +175,6 @@ public function index() { $fields = $this->getFields(); $data['payment_methods_fields_values'] = $this->getPaymentMethodsFieldsValues($data['store_id']); - foreach ($fields as $field) { if (isset($this->request->post[$field])) { $data[$field] = $this->request->post[$field]; @@ -187,6 +186,9 @@ public function index() { } } + // Generic + $data['payment_generic_fields_values'] = $this->getPaymentGenericFieldsValues($data['store_id']); + $data['header'] = $this->load->controller('common/header'); $data['column_left']= $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); @@ -194,6 +196,82 @@ public function index() { $this->response->setOutput($this->load->view($this->route . $this->view_extension_file, $data)); } + + /** + * Define the common fields for each payment method + * + * @return array + * + */ + private function getPaymentGenericFields() { + return array( + 'name', + 'code', + 'image', + 'require_shopping_cart' + ); + } + + /** + * Return the values of fields for each generic methods keys + * + * @param int $store_id + * @return array + * + */ + private function getPaymentGenericFieldsValues($store_id = 0) { + $this->registry->set('multisafepay', new Multisafepay($this->registry)); + $generic_gateways = $this->multisafepay->getGatewayByType('generic'); + $fields = array(); + foreach($generic_gateways as $gateway) { + $fields = $this->extractGenericFieldsByGateway($gateway, $fields, $store_id); + } + return $fields; + } + + /** + * Extract the values of fields for each generic methods keys for each gateway + * + * @param string $gateway + * @param array $fields + * @param int $store_id + * @return array + * + */ + // phpcs:ignore ObjectCalisthenics.Metrics.MaxNestingLevel + private function extractGenericFieldsByGateway($gateway, $fields, $store_id) { + $this->load->model('tool/image'); + $payment_fields = $this->getPaymentGenericFields(); + foreach ($payment_fields as $payment_field) { + if ($payment_field !== 'image' && isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field]; + continue; + } + if ($payment_field !== 'image' && !isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + continue; + } + if ($payment_field === 'image' && isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field]; + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field], 100, 100); + continue; + } + if ($payment_field === 'image' && !isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + $image = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + if($image) { + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize($image, 100, 100); + } + if(!$image) { + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100); + } + continue; + } + } + return $fields; + } + + /** * Return error message is PHP Version is not supported by the extension * @@ -530,29 +608,6 @@ protected function validate() { $this->error['api_key'] = $this->language->get('error_empty_api_key'); } - $this->registry->set('multisafepay', new Multisafepay($this->registry)); - $gateways = $this->multisafepay->getGateways(); - $enviroment = (empty($this->request->post[$this->key_prefix . 'multisafepay_environment'])) ? true : false; - $enviroment_key = (empty($this->request->post[$this->key_prefix . 'multisafepay_environment'])) ? '' : 'sandbox_'; - $api_key = $this->request->post[$this->key_prefix . 'multisafepay_' . $enviroment_key . 'api_key']; - $available_gateways = $this->multisafepay->getAvailableGateways($enviroment, $api_key); - - if(!$available_gateways) { - $this->error[$enviroment_key . 'api_key'] = $this->language->get('error_invalid_api_key'); - $this->error['warning'] = $this->language->get('error_check_form'); - return !$this->error; - } - - foreach($gateways as $gateway) { - if ($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_status'] && $this->isGatewayAvailable($gateway, $available_gateways) !== null) { - $this->error['gateway'][$gateway['code']] = $this->isGatewayAvailable($gateway, $available_gateways); - } - } - - if(!empty($this->error['gateway'])) { - $this->error['warning'] = $this->language->get('error_gateways_not_available'); - } - if (!isset($this->request->post[$this->key_prefix . 'multisafepay_days_active']) || $this->request->post[$this->key_prefix . 'multisafepay_days_active'] < 1) { $this->error['days_active'] = $this->language->get('error_days_active'); } @@ -757,16 +812,14 @@ public function refundOrder() { $this->registry->set('multisafepay', new Multisafepay($this->registry)); $msp_order = $this->multisafepay->getAdminOrderObject($this->request->get['order_id']); + $order_info = $this->multisafepay->getAdminOrderInfo($this->request->get['order_id']); $data['status'] = $msp_order->getStatus(); $refund_request = $this->multisafepay->createRefundRequestObject($msp_order); $refund_request->addMoney($msp_order->getMoney()); $description = sprintf($this->language->get('text_description_refunded'), $this->request->get['order_id'], date($this->language->get('datetime_format'))); $refund_request->addDescriptionText($description); - $payment_details = $msp_order->getPaymentDetails(); - $gateway_id = $payment_details->getType(); - $gateways_with_shopping_cart = array('AFTERPAY', 'KLARNA', 'EINVOICE', 'PAYAFTER', 'IN3'); - if(in_array($gateway_id, $gateways_with_shopping_cart)) { + if($this->refundWithShoppingCart($order_info, $msp_order)) { $msp_shopping_cart = $msp_order->getShoppingCart(); $msp_shopping_cart_data = $msp_shopping_cart->getData(); foreach ($msp_shopping_cart_data['items'] as $msp_cart_item) { @@ -793,6 +846,26 @@ public function refundOrder() { $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); + } + + /** + * Check if ShoppingCart is required to process a refund + * + * @param array $order_info + * @param \MultiSafepay\Api\Transactions\TransactionResponse $msp_order + */ + private function refundWithShoppingCart($order_info, $msp_order) { + + if($order_info['payment_code'] === 'multisafepay/generic' && $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_generic_require_shopping_cart', $order_info['store_id'])) { + return true; + } + + if($msp_order->requiresShoppingCart()) { + return true; + } + + return false; + } /** diff --git a/src/admin/controller/payment/multisafepay.php b/src/admin/controller/payment/multisafepay.php index 1993b82..cf57dc6 100644 --- a/src/admin/controller/payment/multisafepay.php +++ b/src/admin/controller/payment/multisafepay.php @@ -175,7 +175,6 @@ public function index() { $fields = $this->getFields(); $data['payment_methods_fields_values'] = $this->getPaymentMethodsFieldsValues($data['store_id']); - foreach ($fields as $field) { if (isset($this->request->post[$field])) { $data[$field] = $this->request->post[$field]; @@ -187,6 +186,9 @@ public function index() { } } + // Generic + $data['payment_generic_fields_values'] = $this->getPaymentGenericFieldsValues($data['store_id']); + $data['header'] = $this->load->controller('common/header'); $data['column_left']= $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); @@ -194,6 +196,82 @@ public function index() { $this->response->setOutput($this->load->view($this->route . $this->view_extension_file, $data)); } + + /** + * Define the common fields for each payment method + * + * @return array + * + */ + private function getPaymentGenericFields() { + return array( + 'name', + 'code', + 'image', + 'require_shopping_cart' + ); + } + + /** + * Return the values of fields for each generic methods keys + * + * @param int $store_id + * @return array + * + */ + private function getPaymentGenericFieldsValues($store_id = 0) { + $this->registry->set('multisafepay', new Multisafepay($this->registry)); + $generic_gateways = $this->multisafepay->getGatewayByType('generic'); + $fields = array(); + foreach($generic_gateways as $gateway) { + $fields = $this->extractGenericFieldsByGateway($gateway, $fields, $store_id); + } + return $fields; + } + + /** + * Extract the values of fields for each generic methods keys for each gateway + * + * @param string $gateway + * @param array $fields + * @param int $store_id + * @return array + * + */ + // phpcs:ignore ObjectCalisthenics.Metrics.MaxNestingLevel + private function extractGenericFieldsByGateway($gateway, $fields, $store_id) { + $this->load->model('tool/image'); + $payment_fields = $this->getPaymentGenericFields(); + foreach ($payment_fields as $payment_field) { + if ($payment_field !== 'image' && isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field]; + continue; + } + if ($payment_field !== 'image' && !isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + continue; + } + if ($payment_field === 'image' && isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field]; + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field], 100, 100); + continue; + } + if ($payment_field === 'image' && !isset($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field])) { + $fields[$gateway['code']][$payment_field] = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + $image = $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_'.$gateway['code'].'_'.$payment_field, $store_id); + if($image) { + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize($image, 100, 100); + } + if(!$image) { + $fields[$gateway['code']]['thumb'] = $this->model_tool_image->resize('no_image.png', 100, 100); + } + continue; + } + } + return $fields; + } + + /** * Return error message is PHP Version is not supported by the extension * @@ -530,29 +608,6 @@ protected function validate() { $this->error['api_key'] = $this->language->get('error_empty_api_key'); } - $this->registry->set('multisafepay', new Multisafepay($this->registry)); - $gateways = $this->multisafepay->getGateways(); - $enviroment = (empty($this->request->post[$this->key_prefix . 'multisafepay_environment'])) ? true : false; - $enviroment_key = (empty($this->request->post[$this->key_prefix . 'multisafepay_environment'])) ? '' : 'sandbox_'; - $api_key = $this->request->post[$this->key_prefix . 'multisafepay_' . $enviroment_key . 'api_key']; - $available_gateways = $this->multisafepay->getAvailableGateways($enviroment, $api_key); - - if(!$available_gateways) { - $this->error[$enviroment_key . 'api_key'] = $this->language->get('error_invalid_api_key'); - $this->error['warning'] = $this->language->get('error_check_form'); - return !$this->error; - } - - foreach($gateways as $gateway) { - if ($this->request->post[$this->key_prefix . 'multisafepay_'.$gateway['code'].'_status'] && $this->isGatewayAvailable($gateway, $available_gateways) !== null) { - $this->error['gateway'][$gateway['code']] = $this->isGatewayAvailable($gateway, $available_gateways); - } - } - - if(!empty($this->error['gateway'])) { - $this->error['warning'] = $this->language->get('error_gateways_not_available'); - } - if (!isset($this->request->post[$this->key_prefix . 'multisafepay_days_active']) || $this->request->post[$this->key_prefix . 'multisafepay_days_active'] < 1) { $this->error['days_active'] = $this->language->get('error_days_active'); } @@ -757,16 +812,14 @@ public function refundOrder() { $this->registry->set('multisafepay', new Multisafepay($this->registry)); $msp_order = $this->multisafepay->getAdminOrderObject($this->request->get['order_id']); + $order_info = $this->multisafepay->getAdminOrderInfo($this->request->get['order_id']); $data['status'] = $msp_order->getStatus(); $refund_request = $this->multisafepay->createRefundRequestObject($msp_order); $refund_request->addMoney($msp_order->getMoney()); $description = sprintf($this->language->get('text_description_refunded'), $this->request->get['order_id'], date($this->language->get('datetime_format'))); $refund_request->addDescriptionText($description); - $payment_details = $msp_order->getPaymentDetails(); - $gateway_id = $payment_details->getType(); - $gateways_with_shopping_cart = array('AFTERPAY', 'KLARNA', 'EINVOICE', 'PAYAFTER', 'IN3'); - if(in_array($gateway_id, $gateways_with_shopping_cart)) { + if($this->refundWithShoppingCart($order_info, $msp_order)) { $msp_shopping_cart = $msp_order->getShoppingCart(); $msp_shopping_cart_data = $msp_shopping_cart->getData(); foreach ($msp_shopping_cart_data['items'] as $msp_cart_item) { @@ -793,6 +846,26 @@ public function refundOrder() { $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); + } + + /** + * Check if ShoppingCart is required to process a refund + * + * @param array $order_info + * @param \MultiSafepay\Api\Transactions\TransactionResponse $msp_order + */ + private function refundWithShoppingCart($order_info, $msp_order) { + + if($order_info['payment_code'] === 'multisafepay/generic' && $this->{$this->model_call}->getSettingValue($this->key_prefix . 'multisafepay_generic_require_shopping_cart', $order_info['store_id'])) { + return true; + } + + if($msp_order->requiresShoppingCart()) { + return true; + } + + return false; + } /** diff --git a/src/admin/language/de-de/extension/payment/multisafepay.php b/src/admin/language/de-de/extension/payment/multisafepay.php index 2369b1d..71335a9 100644 --- a/src/admin/language/de-de/extension/payment/multisafepay.php +++ b/src/admin/language/de-de/extension/payment/multisafepay.php @@ -269,3 +269,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s sind nicht verfügbar in ihrem MultiSafepay-Konto'; $_['error_php_version'] = 'Es scheint, dass Ihre PHP-Bibliothek veraltet ist. Diese Erweiterung erfordert PHP 7.1 oder höher'; $_['error_days_active'] = 'Die Lebensdauer einer Zahlungsverbindung sollte mindestens 1 betragen'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Symbol'; +$_['text_help_require_shopping_cart'] = 'Aktivieren Sie diese Option, wenn Sie eine Zahlungsmethode der Billing Suite verwenden.'; +$_['text_help_image_generic'] = 'Empfohlene Größe: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Warenkorb erforderlich'; +$_['text_brief_description_generic'] = 'Diese generische Zahlungsmethode kann mit jedem MultiSafepay-Gateway oder Geschenkkartencode verwendet werden.'; +$_['text_title_generic'] = 'Generisches Gateway'; +$_['text_show_generic'] = 'Nur generische Zahlungsgateways anzeigen'; \ No newline at end of file diff --git a/src/admin/language/de-de/payment/multisafepay.php b/src/admin/language/de-de/payment/multisafepay.php index 2369b1d..71335a9 100644 --- a/src/admin/language/de-de/payment/multisafepay.php +++ b/src/admin/language/de-de/payment/multisafepay.php @@ -269,3 +269,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s sind nicht verfügbar in ihrem MultiSafepay-Konto'; $_['error_php_version'] = 'Es scheint, dass Ihre PHP-Bibliothek veraltet ist. Diese Erweiterung erfordert PHP 7.1 oder höher'; $_['error_days_active'] = 'Die Lebensdauer einer Zahlungsverbindung sollte mindestens 1 betragen'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Symbol'; +$_['text_help_require_shopping_cart'] = 'Aktivieren Sie diese Option, wenn Sie eine Zahlungsmethode der Billing Suite verwenden.'; +$_['text_help_image_generic'] = 'Empfohlene Größe: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Warenkorb erforderlich'; +$_['text_brief_description_generic'] = 'Diese generische Zahlungsmethode kann mit jedem MultiSafepay-Gateway oder Geschenkkartencode verwendet werden.'; +$_['text_title_generic'] = 'Generisches Gateway'; +$_['text_show_generic'] = 'Nur generische Zahlungsgateways anzeigen'; \ No newline at end of file diff --git a/src/admin/language/deutsch/payment/multisafepay.php b/src/admin/language/deutsch/payment/multisafepay.php index 2369b1d..71335a9 100644 --- a/src/admin/language/deutsch/payment/multisafepay.php +++ b/src/admin/language/deutsch/payment/multisafepay.php @@ -269,3 +269,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s sind nicht verfügbar in ihrem MultiSafepay-Konto'; $_['error_php_version'] = 'Es scheint, dass Ihre PHP-Bibliothek veraltet ist. Diese Erweiterung erfordert PHP 7.1 oder höher'; $_['error_days_active'] = 'Die Lebensdauer einer Zahlungsverbindung sollte mindestens 1 betragen'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Symbol'; +$_['text_help_require_shopping_cart'] = 'Aktivieren Sie diese Option, wenn Sie eine Zahlungsmethode der Billing Suite verwenden.'; +$_['text_help_image_generic'] = 'Empfohlene Größe: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Warenkorb erforderlich'; +$_['text_brief_description_generic'] = 'Diese generische Zahlungsmethode kann mit jedem MultiSafepay-Gateway oder Geschenkkartencode verwendet werden.'; +$_['text_title_generic'] = 'Generisches Gateway'; +$_['text_show_generic'] = 'Nur generische Zahlungsgateways anzeigen'; \ No newline at end of file diff --git a/src/admin/language/dutch/payment/multisafepay.php b/src/admin/language/dutch/payment/multisafepay.php index 1f3e97c..2e0e2f0 100644 --- a/src/admin/language/dutch/payment/multisafepay.php +++ b/src/admin/language/dutch/payment/multisafepay.php @@ -126,6 +126,7 @@ $_['text_brief_description_wijncadeau'] = ''; $_['text_brief_description_winkelcheque'] = ''; $_['text_brief_description_yourgift'] = ''; +$_['text_brief_description_generic'] = ''; $_['entry_account_type'] = 'Selecteer het type account'; $_['entry_environment'] = 'Type account'; $_['entry_debug_mode'] = 'Debug-modus'; @@ -217,6 +218,7 @@ $_['text_title_wijncadeau'] = 'Wijncadeau'; $_['text_title_winkel_cheque'] = 'Winkelcheque'; $_['text_title_yourgift'] = 'YourGift'; +$_['text_title_generic'] = 'Generic Gateway'; $_['tab_order'] = 'MultiSafepay Opdracht'; $_['text_refund_confirm'] = 'Weet u zeker dat u de totaliteit van deze bestelling wilt terugbetalen? Deze actie kan niet ongedaan worden gemaakt. Als u bevestigt wordt het totale bedrag van de bestelling aan de klant terugbetaald en verandert de status van de bestelling in een terugbetaling.'; $_['text_refund_success'] = 'De terugbetaling is succesvol verwerkt.'; @@ -269,3 +271,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s zijn niet beschikbaar in uw MultiSafepay account'; $_['error_php_version'] = 'Het lijkt erop dat uw PHP-bibliotheek verouderd is. Deze extensie vereist PHP 7.1 of hoger'; $_['error_days_active'] = 'De levensduur van een betaallink moet minimaal 1 zijn'; + +// Generic Gateways +$_['entry_name'] = 'Gateway naam'; +$_['entry_code'] = 'Gateway code'; +$_['entry_image'] = 'Gateway icoon'; +$_['text_help_image_generic'] = 'Aanbevolen afmetingen: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Verstuur winkelwagen'; +$_['text_help_require_shopping_cart'] = 'Schakel deze optie in als u een Billing Suite-betaalmethode gebruikt.'; +$_['text_brief_description_generic'] = 'Alle door MultiSafepay ondersteunde betaalmethodes of giftcards kunnen worden gebruikt met deze betaalmethode.'; +$_['text_title_generic'] = 'Generieke gateway Gateway'; +$_['text_show_generic'] = 'Laat alleen generieke betaalmethodes zien'; diff --git a/src/admin/language/en-gb/extension/payment/multisafepay.php b/src/admin/language/en-gb/extension/payment/multisafepay.php index d909ddf..ec7233b 100644 --- a/src/admin/language/en-gb/extension/payment/multisafepay.php +++ b/src/admin/language/en-gb/extension/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s is not available for your MultiSafepay account'; $_['error_php_version'] = 'It seems your PHP library is outdated. This extension requires PHP 7.1 or higher'; $_['error_days_active'] = 'The value for the timelife of a payment link should be as minimum 1'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Icon'; +$_['entry_require_shopping_cart'] = 'Require shopping cart'; +$_['text_help_require_shopping_cart'] = 'Enable this option if you are using a Billing Suite payment method.'; +$_['text_help_image_generic'] = 'Recommended size: 420px * 180px'; +$_['text_brief_description_generic'] = 'This generic payment method can be used with any MultiSafepay gateway or giftcard code.'; +$_['text_title_generic'] = 'Generic Gateway'; +$_['text_show_generic'] = 'Show only generic payment gateways'; \ No newline at end of file diff --git a/src/admin/language/en-gb/payment/multisafepay.php b/src/admin/language/en-gb/payment/multisafepay.php index d909ddf..ec7233b 100644 --- a/src/admin/language/en-gb/payment/multisafepay.php +++ b/src/admin/language/en-gb/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s is not available for your MultiSafepay account'; $_['error_php_version'] = 'It seems your PHP library is outdated. This extension requires PHP 7.1 or higher'; $_['error_days_active'] = 'The value for the timelife of a payment link should be as minimum 1'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Icon'; +$_['entry_require_shopping_cart'] = 'Require shopping cart'; +$_['text_help_require_shopping_cart'] = 'Enable this option if you are using a Billing Suite payment method.'; +$_['text_help_image_generic'] = 'Recommended size: 420px * 180px'; +$_['text_brief_description_generic'] = 'This generic payment method can be used with any MultiSafepay gateway or giftcard code.'; +$_['text_title_generic'] = 'Generic Gateway'; +$_['text_show_generic'] = 'Show only generic payment gateways'; \ No newline at end of file diff --git a/src/admin/language/english/payment/multisafepay.php b/src/admin/language/english/payment/multisafepay.php index d909ddf..ec7233b 100644 --- a/src/admin/language/english/payment/multisafepay.php +++ b/src/admin/language/english/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s is not available for your MultiSafepay account'; $_['error_php_version'] = 'It seems your PHP library is outdated. This extension requires PHP 7.1 or higher'; $_['error_days_active'] = 'The value for the timelife of a payment link should be as minimum 1'; + +// Generic Gateways +$_['entry_name'] = 'Gateway Name'; +$_['entry_code'] = 'Gateway Code'; +$_['entry_image'] = 'Gateway Icon'; +$_['entry_require_shopping_cart'] = 'Require shopping cart'; +$_['text_help_require_shopping_cart'] = 'Enable this option if you are using a Billing Suite payment method.'; +$_['text_help_image_generic'] = 'Recommended size: 420px * 180px'; +$_['text_brief_description_generic'] = 'This generic payment method can be used with any MultiSafepay gateway or giftcard code.'; +$_['text_title_generic'] = 'Generic Gateway'; +$_['text_show_generic'] = 'Show only generic payment gateways'; \ No newline at end of file diff --git a/src/admin/language/es/extension/payment/multisafepay.php b/src/admin/language/es/extension/payment/multisafepay.php index 467c1cd..8c4b08b 100644 --- a/src/admin/language/es/extension/payment/multisafepay.php +++ b/src/admin/language/es/extension/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'El método de pago: %s no está disponible en su cuenta MultiSafepay'; $_['error_php_version'] = 'Parece que su biblioteca PHP está desactualizada. Esta extensión requiere PHP 7.1 o superior'; $_['error_days_active'] = 'El tiempo de vida del enlace de pago debe ser como mínimo 1'; + +// Generic Gateways +$_['entry_name'] = 'Nombre Gateway'; +$_['entry_code'] = 'Código Gateway'; +$_['entry_image'] = 'Logo Gateway'; +$_['entry_require_shopping_cart'] = 'Requiere carrito de compras'; +$_['text_help_require_shopping_cart'] = 'Habilita esta opción si estas usando una código de pasarela catalogada como Billing Suite'; +$_['text_help_image_generic'] = 'Tamaño recomendado: 420px * 180px'; +$_['text_brief_description_generic'] = 'Este método de pago se puede utilizar con cualquier pasarela de MultiSafepay o código de tarjeta de regalo.'; +$_['text_title_generic'] = 'Gateway Genérica'; +$_['text_show_generic'] = 'Mostrar solo pasarelas de pago genéricas'; \ No newline at end of file diff --git a/src/admin/language/es/payment/multisafepay.php b/src/admin/language/es/payment/multisafepay.php index 467c1cd..8c4b08b 100644 --- a/src/admin/language/es/payment/multisafepay.php +++ b/src/admin/language/es/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'El método de pago: %s no está disponible en su cuenta MultiSafepay'; $_['error_php_version'] = 'Parece que su biblioteca PHP está desactualizada. Esta extensión requiere PHP 7.1 o superior'; $_['error_days_active'] = 'El tiempo de vida del enlace de pago debe ser como mínimo 1'; + +// Generic Gateways +$_['entry_name'] = 'Nombre Gateway'; +$_['entry_code'] = 'Código Gateway'; +$_['entry_image'] = 'Logo Gateway'; +$_['entry_require_shopping_cart'] = 'Requiere carrito de compras'; +$_['text_help_require_shopping_cart'] = 'Habilita esta opción si estas usando una código de pasarela catalogada como Billing Suite'; +$_['text_help_image_generic'] = 'Tamaño recomendado: 420px * 180px'; +$_['text_brief_description_generic'] = 'Este método de pago se puede utilizar con cualquier pasarela de MultiSafepay o código de tarjeta de regalo.'; +$_['text_title_generic'] = 'Gateway Genérica'; +$_['text_show_generic'] = 'Mostrar solo pasarelas de pago genéricas'; \ No newline at end of file diff --git a/src/admin/language/it-it/extension/payment/multisafepay.php b/src/admin/language/it-it/extension/payment/multisafepay.php index ebbd0d8..0b5659b 100644 --- a/src/admin/language/it-it/extension/payment/multisafepay.php +++ b/src/admin/language/it-it/extension/payment/multisafepay.php @@ -268,3 +268,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s non sono disponibili nel tuo account MultiSafepay'; $_['error_php_version'] = 'Sembra che la tua libreria PHP non sia aggiornata. Questa estensione richiede PHP 7.1 o superiore'; $_['error_days_active'] = 'La durata di un collegamento di pagamento dovrebbe essere almeno 1'; + +// Generic Gateways +$_['entry_name'] = 'Nome del metodo di pagamento'; +$_['entry_code'] = 'Codice del metodo di pagamento'; +$_['entry_image'] = 'Icona del metodo di pagamento'; +$_['entry_require_shopping_cart'] = 'Carrello obbligatorio'; +$_['text_help_require_shopping_cart'] = 'Abilita questa opzione se stai utilizzando un metodo di pagamento Billing Suite.'; +$_['text_help_image_generic'] = 'Dimensione raccomandata: 420px * 180px'; +$_['text_brief_description_generic'] = 'Questo metodo di pagamento generico può essere usato con qualsiasi metodo di pagamento o giftcard di MultiSafepay.'; +$_['text_title_generic'] = 'Metodo di pagamento generico'; +$_['text_show_generic'] = 'Mostra solo i metodi di pagamento generici'; diff --git a/src/admin/language/it-it/payment/multisafepay.php b/src/admin/language/it-it/payment/multisafepay.php index ebbd0d8..0b5659b 100644 --- a/src/admin/language/it-it/payment/multisafepay.php +++ b/src/admin/language/it-it/payment/multisafepay.php @@ -268,3 +268,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s non sono disponibili nel tuo account MultiSafepay'; $_['error_php_version'] = 'Sembra che la tua libreria PHP non sia aggiornata. Questa estensione richiede PHP 7.1 o superiore'; $_['error_days_active'] = 'La durata di un collegamento di pagamento dovrebbe essere almeno 1'; + +// Generic Gateways +$_['entry_name'] = 'Nome del metodo di pagamento'; +$_['entry_code'] = 'Codice del metodo di pagamento'; +$_['entry_image'] = 'Icona del metodo di pagamento'; +$_['entry_require_shopping_cart'] = 'Carrello obbligatorio'; +$_['text_help_require_shopping_cart'] = 'Abilita questa opzione se stai utilizzando un metodo di pagamento Billing Suite.'; +$_['text_help_image_generic'] = 'Dimensione raccomandata: 420px * 180px'; +$_['text_brief_description_generic'] = 'Questo metodo di pagamento generico può essere usato con qualsiasi metodo di pagamento o giftcard di MultiSafepay.'; +$_['text_title_generic'] = 'Metodo di pagamento generico'; +$_['text_show_generic'] = 'Mostra solo i metodi di pagamento generici'; diff --git a/src/admin/language/italian/payment/multisafepay.php b/src/admin/language/italian/payment/multisafepay.php index ebbd0d8..0b5659b 100644 --- a/src/admin/language/italian/payment/multisafepay.php +++ b/src/admin/language/italian/payment/multisafepay.php @@ -268,3 +268,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s non sono disponibili nel tuo account MultiSafepay'; $_['error_php_version'] = 'Sembra che la tua libreria PHP non sia aggiornata. Questa estensione richiede PHP 7.1 o superiore'; $_['error_days_active'] = 'La durata di un collegamento di pagamento dovrebbe essere almeno 1'; + +// Generic Gateways +$_['entry_name'] = 'Nome del metodo di pagamento'; +$_['entry_code'] = 'Codice del metodo di pagamento'; +$_['entry_image'] = 'Icona del metodo di pagamento'; +$_['entry_require_shopping_cart'] = 'Carrello obbligatorio'; +$_['text_help_require_shopping_cart'] = 'Abilita questa opzione se stai utilizzando un metodo di pagamento Billing Suite.'; +$_['text_help_image_generic'] = 'Dimensione raccomandata: 420px * 180px'; +$_['text_brief_description_generic'] = 'Questo metodo di pagamento generico può essere usato con qualsiasi metodo di pagamento o giftcard di MultiSafepay.'; +$_['text_title_generic'] = 'Metodo di pagamento generico'; +$_['text_show_generic'] = 'Mostra solo i metodi di pagamento generici'; diff --git a/src/admin/language/nl-nl/extension/payment/multisafepay.php b/src/admin/language/nl-nl/extension/payment/multisafepay.php index 1f3e97c..2e0e2f0 100644 --- a/src/admin/language/nl-nl/extension/payment/multisafepay.php +++ b/src/admin/language/nl-nl/extension/payment/multisafepay.php @@ -126,6 +126,7 @@ $_['text_brief_description_wijncadeau'] = ''; $_['text_brief_description_winkelcheque'] = ''; $_['text_brief_description_yourgift'] = ''; +$_['text_brief_description_generic'] = ''; $_['entry_account_type'] = 'Selecteer het type account'; $_['entry_environment'] = 'Type account'; $_['entry_debug_mode'] = 'Debug-modus'; @@ -217,6 +218,7 @@ $_['text_title_wijncadeau'] = 'Wijncadeau'; $_['text_title_winkel_cheque'] = 'Winkelcheque'; $_['text_title_yourgift'] = 'YourGift'; +$_['text_title_generic'] = 'Generic Gateway'; $_['tab_order'] = 'MultiSafepay Opdracht'; $_['text_refund_confirm'] = 'Weet u zeker dat u de totaliteit van deze bestelling wilt terugbetalen? Deze actie kan niet ongedaan worden gemaakt. Als u bevestigt wordt het totale bedrag van de bestelling aan de klant terugbetaald en verandert de status van de bestelling in een terugbetaling.'; $_['text_refund_success'] = 'De terugbetaling is succesvol verwerkt.'; @@ -269,3 +271,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s zijn niet beschikbaar in uw MultiSafepay account'; $_['error_php_version'] = 'Het lijkt erop dat uw PHP-bibliotheek verouderd is. Deze extensie vereist PHP 7.1 of hoger'; $_['error_days_active'] = 'De levensduur van een betaallink moet minimaal 1 zijn'; + +// Generic Gateways +$_['entry_name'] = 'Gateway naam'; +$_['entry_code'] = 'Gateway code'; +$_['entry_image'] = 'Gateway icoon'; +$_['text_help_image_generic'] = 'Aanbevolen afmetingen: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Verstuur winkelwagen'; +$_['text_help_require_shopping_cart'] = 'Schakel deze optie in als u een Billing Suite-betaalmethode gebruikt.'; +$_['text_brief_description_generic'] = 'Alle door MultiSafepay ondersteunde betaalmethodes of giftcards kunnen worden gebruikt met deze betaalmethode.'; +$_['text_title_generic'] = 'Generieke gateway Gateway'; +$_['text_show_generic'] = 'Laat alleen generieke betaalmethodes zien'; diff --git a/src/admin/language/nl-nl/payment/multisafepay.php b/src/admin/language/nl-nl/payment/multisafepay.php index 1f3e97c..2e0e2f0 100644 --- a/src/admin/language/nl-nl/payment/multisafepay.php +++ b/src/admin/language/nl-nl/payment/multisafepay.php @@ -126,6 +126,7 @@ $_['text_brief_description_wijncadeau'] = ''; $_['text_brief_description_winkelcheque'] = ''; $_['text_brief_description_yourgift'] = ''; +$_['text_brief_description_generic'] = ''; $_['entry_account_type'] = 'Selecteer het type account'; $_['entry_environment'] = 'Type account'; $_['entry_debug_mode'] = 'Debug-modus'; @@ -217,6 +218,7 @@ $_['text_title_wijncadeau'] = 'Wijncadeau'; $_['text_title_winkel_cheque'] = 'Winkelcheque'; $_['text_title_yourgift'] = 'YourGift'; +$_['text_title_generic'] = 'Generic Gateway'; $_['tab_order'] = 'MultiSafepay Opdracht'; $_['text_refund_confirm'] = 'Weet u zeker dat u de totaliteit van deze bestelling wilt terugbetalen? Deze actie kan niet ongedaan worden gemaakt. Als u bevestigt wordt het totale bedrag van de bestelling aan de klant terugbetaald en verandert de status van de bestelling in een terugbetaling.'; $_['text_refund_success'] = 'De terugbetaling is succesvol verwerkt.'; @@ -269,3 +271,14 @@ $_['error_gateway_not_available'] = 'Gateway: %s zijn niet beschikbaar in uw MultiSafepay account'; $_['error_php_version'] = 'Het lijkt erop dat uw PHP-bibliotheek verouderd is. Deze extensie vereist PHP 7.1 of hoger'; $_['error_days_active'] = 'De levensduur van een betaallink moet minimaal 1 zijn'; + +// Generic Gateways +$_['entry_name'] = 'Gateway naam'; +$_['entry_code'] = 'Gateway code'; +$_['entry_image'] = 'Gateway icoon'; +$_['text_help_image_generic'] = 'Aanbevolen afmetingen: 420px * 180px'; +$_['entry_require_shopping_cart'] = 'Verstuur winkelwagen'; +$_['text_help_require_shopping_cart'] = 'Schakel deze optie in als u een Billing Suite-betaalmethode gebruikt.'; +$_['text_brief_description_generic'] = 'Alle door MultiSafepay ondersteunde betaalmethodes of giftcards kunnen worden gebruikt met deze betaalmethode.'; +$_['text_title_generic'] = 'Generieke gateway Gateway'; +$_['text_show_generic'] = 'Laat alleen generieke betaalmethodes zien'; diff --git a/src/admin/language/spanish/payment/multisafepay.php b/src/admin/language/spanish/payment/multisafepay.php index 467c1cd..8c4b08b 100644 --- a/src/admin/language/spanish/payment/multisafepay.php +++ b/src/admin/language/spanish/payment/multisafepay.php @@ -270,3 +270,14 @@ $_['error_gateway_not_available'] = 'El método de pago: %s no está disponible en su cuenta MultiSafepay'; $_['error_php_version'] = 'Parece que su biblioteca PHP está desactualizada. Esta extensión requiere PHP 7.1 o superior'; $_['error_days_active'] = 'El tiempo de vida del enlace de pago debe ser como mínimo 1'; + +// Generic Gateways +$_['entry_name'] = 'Nombre Gateway'; +$_['entry_code'] = 'Código Gateway'; +$_['entry_image'] = 'Logo Gateway'; +$_['entry_require_shopping_cart'] = 'Requiere carrito de compras'; +$_['text_help_require_shopping_cart'] = 'Habilita esta opción si estas usando una código de pasarela catalogada como Billing Suite'; +$_['text_help_image_generic'] = 'Tamaño recomendado: 420px * 180px'; +$_['text_brief_description_generic'] = 'Este método de pago se puede utilizar con cualquier pasarela de MultiSafepay o código de tarjeta de regalo.'; +$_['text_title_generic'] = 'Gateway Genérica'; +$_['text_show_generic'] = 'Mostrar solo pasarelas de pago genéricas'; \ No newline at end of file diff --git a/src/admin/view/template/extension/payment/multisafepay.tpl b/src/admin/view/template/extension/payment/multisafepay.tpl index 7821774..0d98cd9 100644 --- a/src/admin/view/template/extension/payment/multisafepay.tpl +++ b/src/admin/view/template/extension/payment/multisafepay.tpl @@ -387,6 +387,7 @@ + @@ -435,6 +436,37 @@ + + +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ +
+
+
@@ -685,19 +717,28 @@