From b3a105b1422bf72e10026cba8d8ba6732299668e Mon Sep 17 00:00:00 2001 From: Hadjer Chabane Date: Wed, 7 Jun 2023 18:05:11 +0200 Subject: [PATCH] [BOT] Migrate hotfix 3.0.3 to GitHub. --- CHANGELOG.md | 4 ++ LyranetworkLyra/composer.json | 8 ++-- .../src/Controller/PaymentController.php | 5 +-- .../src/Controller/SettingsController.php | 6 +-- .../src/Installer/ConfigInstaller.php | 20 ++++----- .../src/Installer/PaymentMethodInstaller.php | 17 +++---- LyranetworkLyra/src/LyranetworkLyra.php | 2 +- .../src/PaymentMethods/Standard.php | 18 ++++---- .../Resources/app/administration/package.json | 2 +- .../lyranetwork-lyra-icon.html.twig | 2 +- .../sw-order-detail-base.html.twig | 44 ++++++++++++------- .../sw-settings-index.html.twig | 2 +- .../src/module/lyranetwork-lyra/index.js | 2 +- .../lyranetwork-lyra-settings.html.twig | 2 +- .../src/Resources/config/services.xml | 1 + .../administration/js/lyranetwork-lyra.js | 2 +- LyranetworkLyra/src/Sdk/Tools.php | 2 +- LyranetworkLyra/src/Service/FlowService.php | 17 +++++-- 18 files changed, 92 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1877b17..6cb61fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.0.3, 2023-05-30: +- Replace deprecated code. +- Some code fixes. + # 3.0.2, 2023-04-06: - Bug fix: Fix return Url in case of multiple domains for a saleschannel. diff --git a/LyranetworkLyra/composer.json b/LyranetworkLyra/composer.json index 4c0e8ec..bcfd346 100644 --- a/LyranetworkLyra/composer.json +++ b/LyranetworkLyra/composer.json @@ -1,7 +1,7 @@ { "name" : "lyranetwork/lyra", "description" : "This plugin enables you to setup the Lyra Collect payment gateway on your Shopware website.", - "version" : "3.0.2", + "version" : "3.0.3", "type" : "shopware-platform-plugin", "license" : "MIT", "authors" : [{ @@ -33,9 +33,9 @@ }, "require" : { "php" : "^7.4.3 || ^8.0", - "shopware/core" : ">=6.4", - "shopware/administration" : ">=6.4", - "shopware/storefront" : ">=6.4" + "shopware/core" : "6.4.*", + "shopware/administration" : "6.4.*", + "shopware/storefront" : "6.4.*" }, "minimum-stability" : "RC", "prefer-stable" : true diff --git a/LyranetworkLyra/src/Controller/PaymentController.php b/LyranetworkLyra/src/Controller/PaymentController.php index 6e770a7..25b1b17 100644 --- a/LyranetworkLyra/src/Controller/PaymentController.php +++ b/LyranetworkLyra/src/Controller/PaymentController.php @@ -38,7 +38,7 @@ class PaymentController extends StorefrontController * @var AccountService */ private $accountService; - + /** * @var RouterInterface */ @@ -105,7 +105,7 @@ public function finalize(Request $request, SalesChannelContext $salesChannelCont /** * @var null|OrderTransactionEntity $orderTransaction */ - $orderTransaction = $this->transactionRepository->search($criteria, Context::createDefaultContext())->first(); + $orderTransaction = $this->transactionRepository->search($criteria, $salesChannelContext->getContext())->first(); if ($orderTransaction) { /** @@ -149,7 +149,6 @@ public function finalize(Request $request, SalesChannelContext $salesChannelCont /** * @param RouterInterface $router - * @return string */ public function addFlashMessages(array $messages) { diff --git a/LyranetworkLyra/src/Controller/SettingsController.php b/LyranetworkLyra/src/Controller/SettingsController.php index 0d8dce7..a599a13 100644 --- a/LyranetworkLyra/src/Controller/SettingsController.php +++ b/LyranetworkLyra/src/Controller/SettingsController.php @@ -152,7 +152,7 @@ public function getPaymentStatuses(Request $request, Context $context): JsonResp $criteria->addAssociation('stateMachine'); $criteria->addFilter(new EqualsFilter('stateMachine.technicalName', 'order_transaction.state')); - $entities = $this->stateMachineStateRepository->search($criteria, Context::createDefaultContext())->getEntities(); + $entities = $this->stateMachineStateRepository->search($criteria, $context)->getEntities(); $paymentStatuses = []; if($entities instanceof StateMachineStateCollection) { @@ -190,9 +190,9 @@ public function isFlow(Request $request, Context $context): JsonResponse */ public function setOrderPlacedFlow(Request $request, Context $context): JsonResponse { - $shopwareVersion = (string) $request->get('shopwareVersion'); + $shopwareVersion = $request->request->has('shopwareVersion') ? (string) $request->request->get('shopwareVersion') : null; if (! empty($shopwareVersion) && version_compare($shopwareVersion, '6.4.6.0', '>=')) { - $salesChannelId = empty((string) $request->get('salesChannelId')) ? null : (string) $request->get('salesChannelId'); + $salesChannelId = $request->request->has('salesChannelId') ? (string) $request->request->get('salesChannelId') : null; $active = ($this->configService->get('order_placed_flow_enabled', $salesChannelId) == 'true') ? true : false; $this->flowService->updateFlowActive('Order placed', $active, $context); } diff --git a/LyranetworkLyra/src/Installer/ConfigInstaller.php b/LyranetworkLyra/src/Installer/ConfigInstaller.php index 58217f1..b77ec1b 100644 --- a/LyranetworkLyra/src/Installer/ConfigInstaller.php +++ b/LyranetworkLyra/src/Installer/ConfigInstaller.php @@ -49,15 +49,15 @@ class ConfigInstaller */ private $defaultValues; - public function __construct(ContainerInterface $container) + public function __construct(ContainerInterface $container, Context $context) { $this->container = $container; $this->systemConfigService = $this->container->get(SystemConfigService::class); $this->initTranslations(); - $this->initDefaults(); + $this->initDefaults($context); } - private function initDefaults() + private function initDefaults(Context $context) { $lang = Tools::getDefault('LANGUAGE'); @@ -71,7 +71,7 @@ private function initDefaults() 'lyraKeyProd' => Tools::getDefault('KEY_PROD'), 'lyraCtxMode' => Tools::getDefault('CTX_MODE'), 'lyraSignAlgo' => Tools::getDefault('SIGN_ALGO'), - 'lyraCheckUrl' => $this->getBaseUrl() . '/lyra/finalize', + 'lyraCheckUrl' => $this->getBaseUrl($context) . '/lyra/finalize', 'lyraPlatformUrl' => Tools::getDefault('GATEWAY_URL'), 'lyraLanguage' => Tools::getDefault('LANGUAGE'), 'lyraRedirectSuccessTimeout' => '5', @@ -81,7 +81,7 @@ private function initDefaults() 'lyraRedirectErrorMessage' => $this->translations[$lang]['lyraRedirectErrorMessageDefault'], 'lyraReturnMode' => 'GET', 'lyraPaymentStatusOnSuccess' => 'paid', - 'lyraOrderPlacedFlowEnabled' => $this->getShopwareOrderPlacedFlowActive() + 'lyraOrderPlacedFlowEnabled' => $this->getShopwareOrderPlacedFlowActive($context) ]; } @@ -169,7 +169,7 @@ private function setDefaultValues() } } - private function getBaseUrl(): ?string + private function getBaseUrl(Context $context): ?string { /** * @var EntityRepository $domainRepository @@ -182,19 +182,19 @@ private function getBaseUrl(): ?string $criteria->addFilter(new EqualsFilter('salesChannel.active', '1')); $criteria->addFilter(new ContainsFilter('url', 'https')); - $domains = $domainRepository->search($criteria, Context::createDefaultContext()); + $domains = $domainRepository->search($criteria, $context); if ($domains->count() === 0) { $criteria = new Criteria(); $criteria->addAssociation('salesChannel'); $criteria->addFilter(new EqualsFilter('salesChannel.active', '1')); - $domains = $domainRepository->search($criteria, Context::createDefaultContext()); + $domains = $domainRepository->search($criteria, $context); } return ($domains->count() > 0) ? $domains->first()->getUrl() : ''; } - private function getShopwareOrderPlacedFlowActive(): bool + private function getShopwareOrderPlacedFlowActive(Context $context): bool { $shopwareVersion = $this->container->getParameter('kernel.shopware_version'); if (version_compare($shopwareVersion, '6.4.6.0', '>=')) { @@ -205,7 +205,7 @@ private function getShopwareOrderPlacedFlowActive(): bool $criteria = new Criteria(); $criteria->addFilter(new EqualsFilter('name', 'Order placed')); - $orderPlacedFlow = $flowRepository->search($criteria, Context::createDefaultContext()); + $orderPlacedFlow = $flowRepository->search($criteria, $context); return ($orderPlacedFlow->count() > 0) ? $orderPlacedFlow->first()->isActive() : false; } diff --git a/LyranetworkLyra/src/Installer/PaymentMethodInstaller.php b/LyranetworkLyra/src/Installer/PaymentMethodInstaller.php index d715ddf..50e2241 100644 --- a/LyranetworkLyra/src/Installer/PaymentMethodInstaller.php +++ b/LyranetworkLyra/src/Installer/PaymentMethodInstaller.php @@ -63,16 +63,17 @@ public function __construct(ContainerInterface $container) { $this->paymentMethodSalesChannelRepository = $this->container->get('sales_channel_payment_method.repository'); } - public function install(InstallContext $context): void + public function install(InstallContext $installContext): void { - $paymentMethodExists = $this->getPaymentMethodId(); + $context = $installContext->getContext(); + $paymentMethodExists = $this->getPaymentMethodId($context); // Payment method exists already, no need to continue here. if ($paymentMethodExists) { return; } - $pluginId = $this->pluginIdProvider->getPluginIdByBaseClass('Lyranetwork\\Lyra\\LyranetworkLyra', $context->getContext()); + $pluginId = $this->pluginIdProvider->getPluginIdByBaseClass('Lyranetwork\\Lyra\\LyranetworkLyra', $context); $data = [ // Payment handler will be selected by the identifier. @@ -82,9 +83,9 @@ public function install(InstallContext $context): void 'pluginId' => $pluginId ]; - $this->paymentMethodRepository->create([$data], $context->getContext()); + $this->paymentMethodRepository->create([$data], $context); - $this->enablePaymentMethodForSaleChannels($this->getPaymentMethodId(), $context->getContext()); + $this->enablePaymentMethodForSaleChannels($this->getPaymentMethodId($context), $context); } public function update(UpdateContext $context): void @@ -106,11 +107,11 @@ public function deactivate(DeactivateContext $context): void $this->setPaymentMethodStatus(false, $context->getContext()); } - private function getPaymentMethodId(): ?string + private function getPaymentMethodId(Context $context): ?string { // Fetch ID for update. $paymentCriteria = (new Criteria())->addFilter(new EqualsFilter('handlerIdentifier', Standard::class)); - $paymentIds = $this->paymentMethodRepository->searchIds($paymentCriteria, Context::createDefaultContext()); + $paymentIds = $this->paymentMethodRepository->searchIds($paymentCriteria, $context); if ($paymentIds->getTotal() === 0) { return null; @@ -121,7 +122,7 @@ private function getPaymentMethodId(): ?string private function setPaymentMethodStatus(bool $active, Context $context): void { - $paymentMethodId = $this->getPaymentMethodId(); + $paymentMethodId = $this->getPaymentMethodId($context); // Payment does not even exist, so nothing to (de-)activate here. if (! $paymentMethodId) { diff --git a/LyranetworkLyra/src/LyranetworkLyra.php b/LyranetworkLyra/src/LyranetworkLyra.php index 3a6ed56..3f7da33 100644 --- a/LyranetworkLyra/src/LyranetworkLyra.php +++ b/LyranetworkLyra/src/LyranetworkLyra.php @@ -35,7 +35,7 @@ class LyranetworkLyra extends Plugin { public function install(InstallContext $context): void { - (new ConfigInstaller($this->container))->install($context); + (new ConfigInstaller($this->container, $context->getContext()))->install($context); (new PaymentMethodInstaller($this->container))->install($context); (new CustomFieldInstaller($this->container))->install($context); diff --git a/LyranetworkLyra/src/PaymentMethods/Standard.php b/LyranetworkLyra/src/PaymentMethods/Standard.php index ae37875..f0c45f8 100644 --- a/LyranetworkLyra/src/PaymentMethods/Standard.php +++ b/LyranetworkLyra/src/PaymentMethods/Standard.php @@ -40,6 +40,7 @@ use Shopware\Core\System\SalesChannel\SalesChannelContext; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Routing\RouterInterface; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; @@ -89,6 +90,11 @@ class Standard implements AsynchronousPaymentHandlerInterface */ private $translator; + /** + * @var RouterInterface + */ + private $router; + /** * @var string */ @@ -108,6 +114,7 @@ public function __construct( LocaleCodeService $localeCodeService, CsrfTokenManagerInterface $csrfTokenManager, TranslatorInterface $translator, + RouterInterface $router, string $shopwareVersion ) { $this->transactionStateHandler = $transactionStateHandler; @@ -118,6 +125,7 @@ public function __construct( $this->localeCodeService = $localeCodeService; $this->csrfTokenManager = $csrfTokenManager; $this->translator = $translator; + $this->router = $router; $this->shopwareVersion = $shopwareVersion; $this->paymentResult = array( 'lyraIsCancelledPayment' => false, @@ -163,14 +171,6 @@ public function pay( $version = Tools::getDefault('CMS_IDENTIFIER') . '_v' . Tools::getDefault('PLUGIN_VERSION'); - $transactionReturnUrl = $transaction->getReturnUrl(); - if (strpos($transactionReturnUrl, '/payment/finalize-transaction') !== false) { - $returnurl = explode('/payment/finalize-transaction', $transactionReturnUrl); - $transactionReturnUrl = $returnurl[0] . '/lyra/finalize'; - } else { - $transactionReturnUrl = $this->getConfig('check_url', $salesChannelId); - } - $params = [ 'amount' => $currency->convertAmountToInteger($transaction->getOrderTransaction()->getAmount()->getTotalPrice()), 'currency' => $currency->getNum(), @@ -200,7 +200,7 @@ public function pay( 'threeds_mpi' => $threedsMpi, - 'url_return' => $transactionReturnUrl + 'url_return' => $this->router->generate('lyra_finalize', [], $this->router::ABSOLUTE_URL) ]; $request->setFromArray($params); diff --git a/LyranetworkLyra/src/Resources/app/administration/package.json b/LyranetworkLyra/src/Resources/app/administration/package.json index 35e3b1c..db5e445 100644 --- a/LyranetworkLyra/src/Resources/app/administration/package.json +++ b/LyranetworkLyra/src/Resources/app/administration/package.json @@ -1,6 +1,6 @@ { "name": "lyranetworklyra-admin", - "version": "3.0.2", + "version": "3.0.3", "description": "Administration for Lyra Collect", "main": "index.js", "author": "Lyra Network", diff --git a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/component/lyranetwork-lyra-icon/lyranetwork-lyra-icon.html.twig b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/component/lyranetwork-lyra-icon/lyranetwork-lyra-icon.html.twig index a518294..9b0fb6d 100644 --- a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/component/lyranetwork-lyra-icon/lyranetwork-lyra-icon.html.twig +++ b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/component/lyranetwork-lyra-icon/lyranetwork-lyra-icon.html.twig @@ -8,5 +8,5 @@ #} {% block lyranetwork_lyra_icon %} - + Lyra Collect payment plugin icon {% endblock %} \ No newline at end of file diff --git a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-order-detail-base/sw-order-detail-base.html.twig b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-order-detail-base/sw-order-detail-base.html.twig index dee7030..3536eb9 100644 --- a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-order-detail-base/sw-order-detail-base.html.twig +++ b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-order-detail-base/sw-order-detail-base.html.twig @@ -17,24 +17,36 @@ diff --git a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-settings-index/sw-settings-index.html.twig b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-settings-index/sw-settings-index.html.twig index 850d5bc..4c0fda8 100644 --- a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-settings-index/sw-settings-index.html.twig +++ b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/extension/sw-settings-index/sw-settings-index.html.twig @@ -14,7 +14,7 @@ :to="{ name: 'lyranetwork.lyra.index' }" :backgroundEnabled="false"> {% endblock %} \ No newline at end of file diff --git a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/index.js b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/index.js index 7797449..3263c60 100644 --- a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/index.js +++ b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/index.js @@ -26,7 +26,7 @@ let configuration = { name: 'Lyra Collect', title: 'lyraTitle', description: 'lyraGeneral.descriptionTextModule', - version: '3.0.2', + version: '3.0.3', icon: 'default-action-settings', snippets: { diff --git a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/page/lyranetwork-lyra-settings/lyranetwork-lyra-settings.html.twig b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/page/lyranetwork-lyra-settings/lyranetwork-lyra-settings.html.twig index e9462cb..c151380 100644 --- a/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/page/lyranetwork-lyra-settings/lyranetwork-lyra-settings.html.twig +++ b/LyranetworkLyra/src/Resources/app/administration/src/module/lyranetwork-lyra/page/lyranetwork-lyra-settings/lyranetwork-lyra-settings.html.twig @@ -57,7 +57,7 @@
- + Lyra Collect payment plugin logo

{{ $tc('lyraDescription') }} diff --git a/LyranetworkLyra/src/Resources/config/services.xml b/LyranetworkLyra/src/Resources/config/services.xml index 6803f4f..f908e2c 100644 --- a/LyranetworkLyra/src/Resources/config/services.xml +++ b/LyranetworkLyra/src/Resources/config/services.xml @@ -32,6 +32,7 @@ + %kernel.shopware_version% diff --git a/LyranetworkLyra/src/Resources/public/administration/js/lyranetwork-lyra.js b/LyranetworkLyra/src/Resources/public/administration/js/lyranetwork-lyra.js index 3d1f245..8f05ce6 100644 --- a/LyranetworkLyra/src/Resources/public/administration/js/lyranetwork-lyra.js +++ b/LyranetworkLyra/src/Resources/public/administration/js/lyranetwork-lyra.js @@ -1,3 +1,3 @@ /*! For license information please see lyranetwork-lyra.js.LICENSE.txt */ -!function(e){var n={};function t(a){if(n[a])return n[a].exports;var i=n[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(a,i,function(n){return e[n]}.bind(null,i));return a},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/bundles/lyranetworklyra/",t(t.s="VVq4")}({"+WiG":function(e,n,t){var a=t("ChS3");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("975c4960",a,!0,{})},"0nJl":function(e,n,t){var a=t("13bj");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("ec8b774a",a,!0,{})},"13bj":function(e,n,t){},"1oRH":function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Lyra Collect settings","menuEntry":"Configuration"},"lyraPaymentInformation":"Payment information","lyraTransactionId":"Transaction ID","lyraTransactionUuid":"Transaction UUID","lyraTransactionType":"Transaction type","lyraMeansOfPayment":"Means of payment","lyraCardNumber":"Card number","lyraCardExpirationDate":"Expiration date","lyraLanguages":{"fr":"French","de":"German","en":"English","es":"Spanish","zh":"Chinese","it":"Italian","ja":"Japanese","pt":"Portuguese","nl":"Dutch","sv":"Swedish","ru":"Russian","pl":"Polisch","tr":"Turkisch"},"lyraDoc":"Documentation","save":"Save","cancel":"Cancel","titleSaveSuccess":"Success","messageSaveSuccess":"Configuration saved successfully","titleSaveError":"Error","lyraDescription":"This plugin enables you to setup the Lyra Collect payment system on your Shopware website.","lyraDocumentationDescription":"Click to view the module configuration documentation:","lyraCtxMode":"Mode","lyraCtxModeHelptext":"The context mode of this module.","lyraSignAlgo":"Signature algorithm","lyraSignAlgoHelptext":"Algorithm used to compute the payment form signature. Selected algorithm must be the same as one configured in the Lyra Collect Back Office.","lyraSignAlgo1Helptext":"Algorithm used to compute the payment form signature. Selected algorithm must be the same as one configured in the Lyra Collect Back Office. The HMAC-SHA-256 algorithm should not be activated if it is not yet available in the Lyra Collect Back Office, the feature will be available soon.","lyraLanguage":"Default language","lyraLanguageHelptext":"Default language on the payment page.","lyraAvailableLanguages":"Available languages","lyraAvailableLanguagesHelptext":"Languages available on the payment page. If you do not select any, all the supported languages will be available.","lyraValidationMode":"Validation mode","lyraValidationModeHelptext":"If manual is selected, you will have to confirm payments manually in your Lyra Collect Back Office.","lyraPaymentCards":"Card Types","lyraPaymentCardsHelptext":"The card type(s) that can be used for the payment. Select none to use gateway configuration.","lyraReturnMode":"Return mode","lyraReturnModeHelptext":"Method that will be used for transmitting the payment result from the payment page to your shop.","lyraPaymentStatusOnSuccess":"Order payment status","lyraPaymentStatusOnSuccessHelptext":"Defines the payment status of orders paid with this payment mode.","lyraOrderPlacedFlowEnabled":"Order placed flow","lyraOrderPlacedFlowEnabledHelptext":"If enabled, the « Order placed » flow will be set to active. Warning: Disabling this option will disable all actions defined in the « Order placed » flow. The flow will be disabled for all other plugins and applications."}')},"42GI":function(e,n,t){},"8HQ4":function(e,n,t){},AlIh:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Lyra Collect einstellungen","menuEntry":"Konfiguration"},"lyraPaymentInformation":"Zahlungsinformationen","lyraTransactionId":"Transaktionsnummer","lyraTransactionUuid":"Transaktions-UUID","lyraTransactionType":"Art der Transaktion","lyraMeansOfPayment":"Zahlungsmittel","lyraCardNumber":"Kreditkartennummer","lyraCardExpirationDate":"Verfallsdatum","lyraLanguages":{"fr":"Französisch","de":"Deutsch","en":"Englisch","es":"Spanisch","zh":"Chinesisch","it":"Italienisch","ja":"Japanisch","pt":"Portugiesisch","nl":"Holländisch","sv":"Schwedisch","ru":"Russisch","pl":"Polnisch","tr":"Türkisch"},"lyraDoc":"Dokumentation","save":"Speichern","cancel":"Absagen","titleSaveSuccess":"Erfolg","messageSaveSuccess":"Konfiguration erfolgreich gespeichert","titleSaveError":"Fehler","lyraDescription":"Mit diesem Plugin können Sie das Zahlungssystem Lyra Collect auf Ihrer Shopware-Website einrichten.","lyraDocumentationDescription":"Klicken Sie, um die Modul-Konfigurationsdokumentation zu finden:","lyraCtxMode":"Modus","lyraCtxModeHelptext":"Kontextmodus dieses Moduls.","lyraSignAlgo":"Signaturalgorithmus","lyraSignAlgoHelptext":"Algorithmus zur Berechnung der Zahlungsformsignatur. Der ausgewählte Algorithmus muss derselbe sein, wie er im Lyra Collect Back Office.","lyraSignAlgo1Helptext":"Algorithmus zur Berechnung der Zahlungsformsignatur. Der ausgewählte Algorithmus muss derselbe sein, wie er im Lyra Collect Back Office. Der HMAC-SHA-256-Algorithmus sollte nicht aktiviert werden, wenn er noch nicht im Lyra Collect Back Office verfügbar ist. Die Funktion wird in Kürze verfügbar sein.","lyraLanguage":"Standardsprache","lyraLanguageHelptext":"Standardsprache auf Zahlungsseite.","lyraAvailableLanguages":"Verfügbare Sprachen","lyraAvailableLanguagesHelptext":"Verfügbare Sprachen der Zahlungsseite. Nichts auswählen, um die Einstellung der Zahlungsplattform zu benutzen.","lyraValidationMode":"Bestätigungsmodus","lyraValidationModeHelptext":"Bei manueller Eingabe müssen Sie Zahlungen manuell in Ihr Lyra Collect Back Office bestätigen.","lyraPaymentCards":"Kartentypen","lyraPaymentCardsHelptext":"Wählen Sie die zur Zahlung verfügbaren Kartentypen aus. Nichts auswählen, um die Einstellungen der Plattform zu verwenden.","lyraReturnMode":"Übermittlungs-Modus","lyraReturnModeHelptext":"Methode, die zur Übermittlung des Zahlungsergebnisses von der Zahlungsschnittstelle an Ihren Shop verwendet wird.","lyraPaymentStatusOnSuccess":"Zahlungsstatus der Bestellung","lyraPaymentStatusOnSuccessHelptext":"Der Zahlungsstatus der bezahlten Bestellungen durch dieses Beszahlungsmittel definieren.","lyraOrderPlacedFlowEnabled":"Order placed flow","lyraOrderPlacedFlowEnabledHelptext":"If enabled, the « Order placed » flow will be set to active. Warning: Disabling this option will disable all actions defined in the « Order placed » flow. The flow will be disabled for all other plugins and applications."}')},ChS3:function(e,n,t){},HlN1:function(e,n){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function i(e,n){for(var t=0;t2&&void 0!==arguments[2]?arguments[2]:"lyra";return a(this,c),l.call(this,e,n,t)}return n=c,(t=[{key:"getFeatures",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-features"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getCardTypes",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-card-types"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getLanguages",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-languages"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getDocFiles",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-doc-files"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getPaymentStatuses",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-payment-statuses"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"setOrderPlacedFlow",value:function(e){var n=this.getBasicHeaders();return this.httpClient.post("_action/".concat(this.getApiBasePath(),"/set-order-placed-flow"),e,{headers:n}).then((function(e){return d.handleResponse(e)}))}},{key:"isFlow",value:function(e){var n=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/is-flow"),{params:e,headers:n}).then((function(e){return d.handleResponse(e)}))}}])&&i(n.prototype,t),s&&i(n,s),Object.defineProperty(n,"prototype",{writable:!1}),c}(d);c.addServiceProvider("LyranetworkLyraSettingsService",(function(e){var n=c.getContainer("init");return new p(n.httpClient,e.loginService)}))},P6Sy:function(e,n){Shopware.Component.override("sw-extension-card-base",{created:function(){"LyranetworkLyra"===this.extension.name&&(this.extension.configurable=!1)}})},SZ7m:function(e,n,t){"use strict";function a(e,n){for(var t=[],a={},i=0;it.parts.length&&(a.parts.length=t.parts.length)}else{var o=[];for(i=0;i\n{% endblock %}'});t("0nJl");var a=Shopware,i=a.Component,r=a.Mixin,o=Shopware.Context.app.config.version;i.register("lyranetwork-lyra-settings",{template:'\n\n{% block lyranetwork_lyra %}\n \n {% block lyranetwork_lyra_header %}\n \n {% endblock %}\n\n {% block lyranetwork_lyra_config_actions %}\n \n {% endblock %}\n\n {% block lyranetwork_lyra_config_content %}\n \n {% endblock %}\n \n{% endblock %}',mixins:[r.getByName("notification"),r.getByName("sw-inline-snippet")],inject:["LyranetworkLyraSettingsService"],data:function(){return{isSupportModalOpen:!1,paymentStatuses:[],languages:[],cardTypes:[],docFiles:[],isdocModalOpen:!1,qualif:!1,shatwo:!0,isFlow:!1}},created:function(){this.createdComponent()},methods:{createdComponent:function(){var e=this,n=this;this.LyranetworkLyraSettingsService.getFeatures().then((function(e){n.qualif=e.qualif,n.shatwo=e.shatwo})),this.LyranetworkLyraSettingsService.isFlow({shopwareVersion:o}).then((function(e){n.isFlow=e.isFlow})),this.LyranetworkLyraSettingsService.getDocFiles().then((function(e){e.data.forEach((function(e){n.docFiles.push({name:e.name,title:e.title,link:e.link})}))})),this.LyranetworkLyraSettingsService.getCardTypes().then((function(e){for(var t in e.data)e.data.hasOwnProperty(t)&&n.cardTypes.push({label:e.data[t],value:t})})),this.LyranetworkLyraSettingsService.getLanguages().then((function(t){for(var a in t.data)t.data.hasOwnProperty(a)&&n.languages.push({label:e.$tc("lyraLanguages."+a),value:a})})),this.LyranetworkLyraSettingsService.getPaymentStatuses().then((function(e){e.data.forEach((function(e){n.paymentStatuses.push({label:e.label,value:e.value})}))}))},getBind:function(e){return"single-select"==e.type&&(e.config.label=this.getElementLabel(e.name),"LyranetworkLyra.config.lyraSignAlgo"!==e.name||this.shatwo?e.config.helpText=this.getElementHelptext(e.name):e.config.helpText=this.getElementHelptext(e.name+"1")),e},getElementLabel:function(e){return this.$tc(e.replace("LyranetworkLyra.config.",""))},getElementHelptext:function(e){return this.$tc(e.replace("LyranetworkLyra.config.","")+"Helptext")},isDisabled:function(e){return e.name.startsWith("LyranetworkLyra.config.lyraCtxMode")&&this.qualif||e.name.startsWith("LyranetworkLyra.config.lyraOrderPlacedFlowEnabled")&&!this.isFlow},isShown:function(e){return(!e.name.startsWith("LyranetworkLyra.config.lyraKeyTest")||!this.qualif)&&(!e.name.startsWith("LyranetworkLyra.config.lyraOrderPlacedFlowEnabled")||this.isFlow)},onSave:function(){var e=this;this.$refs.systemConfig.saveAll().then((function(){e.createNotificationSuccess({title:e.$tc("titleSaveSuccess"),message:e.$tc("messageSaveSuccess")});var n=e.$refs.systemConfig.currentSalesChannelId;e.LyranetworkLyraSettingsService.setOrderPlacedFlow({salesChannelId:n,shopwareVersion:o})})).catch((function(n){e.createNotificationError({title:e.$tc("titleSaveError"),message:n});var t=e.$refs.systemConfig.currentSalesChannelId;e.LyranetworkLyraSettingsService.setOrderPlacedFlow({salesChannelId:t,shopwareVersion:o})}))}}});t("TD2K");var s=Shopware,l=s.Component;s.Mixin;l.override("sw-order-detail-base",{template:'\n\n{% block sw_order_detail_base_status_card %}\n {% parent %}\n\n \n{% endblock %}',methods:{isLyraPayment:function(e){return!!e.customFields&&e.customFields.lyra_transaction_id},hasLyraPayment:function(e){var n=this,t=!1;return!!e.transactions&&(e.transactions.map((function(e){n.isLyraPayment(e)&&(t=!0)})),t)}}});t("+WiG");Shopware.Component.override("sw-settings-index",{template:'\n\n{% block sw_settings_content_card_slot_plugins %}\n {% parent %}\n\n \n \n \n{% endblock %}'});t("P6Sy");var c={type:"plugin",name:"Lyra Collect",title:"lyraTitle",description:"lyraGeneral.descriptionTextModule",version:"3.0.2",icon:"default-action-settings",snippets:{"de-DE":t("AlIh"),"en-GB":t("1oRH"),"es-ES":t("ew8p"),"fr-FR":t("eZjQ")},routeMiddleware:function(e,n){e(n)},routes:{index:{component:"lyranetwork-lyra-settings",path:"index",meta:{parentPath:"sw.settings.index"}}},settingsItem:{name:"lyranetwork-lyra",to:"lyranetwork.lyra.index",label:"lyraTitle",group:"plugins",iconComponent:"lyranetwork-lyra-icon",backgroundEnabled:!1}};Shopware.Module.register("lyranetwork-lyra",c);t("HlN1")},eZjQ:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Paramètres Lyra Collect","menuEntry":"Configuration"},"lyraPaymentInformation":"Informations de paiement","lyraTransactionId":"ID de transaction","lyraTransactionUuid":"UUID de transaction","lyraTransactionType":"Type de transaction","lyraMeansOfPayment":"Moyen de paiement","lyraCardNumber":"Numéro de carte","lyraCardExpirationDate":"Date d\'expiration","lyraLanguages":{"fr":"Français","de":"Allemand","en":"Anglais","es":"Espagnol","zh":"Chinois","it":"Italien","ja":"Japonais","pt":"Portugais","nl":"Néerlandais","sv":"Suédois","ru":"Russe","pl":"Polonais","tr":"Turc"},"lyraDoc":"Documentation","save":"Save","cancel":"Cancel","titleSaveSuccess":"Succès","messageSaveSuccess":"Configuration sauvegardée avec succès","titleSaveError":"Erreur","lyraDescription":"Ce plugin vous permet de configurer le système de paiement Lyra Collect sur votre site Web Shopware.","lyraDocumentationDescription":"Cliquer pour accéder à la documentation de configuration du module:","lyraCtxMode":"Mode","lyraCtxModeHelptext":"Mode de fonctionnement du module.","lyraSignAlgo":"Algorithme de signature","lyraSignAlgoHelptext":"Algorithme utilisé pour calculer la signature du formulaire de paiement. L\'algorithme sélectionné doit être le même que celui configuré sur le Back Office Lyra Collect.","lyraSignAlgo1Helptext":"Algorithme utilisé pour calculer la signature du formulaire de paiement. L\'algorithme sélectionné doit être le même que celui configuré sur le Back Office Lyra Collect. Le HMAC-SHA-256 ne doit pas être activé si celui-ci n\'est pas encore disponible depuis le Back Office Lyra Collect, la fonctionnalité sera disponible prochainement.","lyraLanguage":"Langue par défaut","lyraLanguageHelptext":"Sélectionner la langue par défaut à utiliser sur la page de paiement.","lyraAvailableLanguages":"Langues disponibles","lyraAvailableLanguagesHelptext":"Sélectionner les langues à proposer sur la page de paiement. Ne rien sélectionner pour utiliser la configuration de la plateforme.","lyraValidationMode":"Mode de validation","lyraValidationModeHelptext":"En mode manuel, vous devrez confirmer les paiements dans le Back Office Lyra Collect.","lyraPaymentCards":"Types de carte","lyraPaymentCardsHelptext":"Le(s) type(s) de carte pouvant être utilisé(s) pour le paiement. Ne rien sélectionner pour utiliser la configuration de la plateforme.","lyraReturnMode":"Mode de retour","lyraReturnModeHelptext":"Façon dont l\'acheteur transmettra le résultat du paiement lors de son retour à la boutique.","lyraPaymentStatusOnSuccess":"Statut de paiement de la commande","lyraPaymentStatusOnSuccessHelptext":"Définir le statut de paiement des commandes payées par ce mode de paiement.","lyraOrderPlacedFlowEnabled":"Flux Order placed","lyraOrderPlacedFlowEnabledHelptext":"Si activé, le flux « Order placed » sera activé. Attention: La désactivation de cette option va désactiver toutes les actions définies dans le flux « Order placed ». Le flux sera désactivé pour tous les autres plugins et applications."}')},ew8p:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Configuración de Lyra Collect","menuEntry":"Configuración"},"lyraPaymentInformation":"Información del pago","lyraTransactionId":"ID de transacción","lyraTransactionUuid":"UUID de transacción","lyraTransactionType":"Tipo de transacción","lyraMeansOfPayment":"Medio de pago","lyraCardNumber":"Número de tarjeta","lyraCardExpirationDate":"Fecha de expiración","lyraLanguages":{"fr":"Francés","de":"Alemán","en":"Inglés","es":"Español","zh":"Chino","it":"Italiano","ja":"Japonés","pt":"Portugués","nl":"Holandés","sv":"Sueco","ru":"Ruso","pl":"Polaco","tr":"Turco"},"lyraDoc":"Documentación","save":"Save","cancel":"Cancel","titleSaveSuccess":"Éxito","messageSaveSuccess":"Configuración guardada con éxito","titleSaveError":"Error","lyraDescription":"Este plugin le permite configurar el sistema de pago Lyra Collect en su sitio web Shopware.","lyraDocumentationDescription":"Haga clic para ver la documentación de la configuración del módulo:","lyraCtxMode":"Modo","lyraCtxModeHelptext":"El modo de contexto de este módulo.","lyraSignAlgo":"Algoritmo de firma","lyraSignAlgoHelptext":"a calcular la firma del formulario de pago. El algoritmo seleccionado debe ser el mismo que el configurado en el Back Office Lyra Collect.","lyraSignAlgo1Helptext":"Algoritmo usado para calcular la firma del formulario de pago. El algoritmo seleccionado debe ser el mismo que el configurado en el Back Office Lyra Collect. El algoritmo HMAC-SHA-256 no se debe activar si aún no está disponible el Back Office Lyra Collect, la función estará disponible pronto.","lyraLanguage":"Idioma por defecto","lyraLanguageHelptext":"Idioma por defecto en la página de pago.","lyraAvailableLanguages":"Idiomas disponibles","lyraAvailableLanguagesHelptext":"Idiomas disponibles en la página de pago. Si no selecciona ninguno, todos los idiomas compatibles estarán disponibles.","lyraValidationMode":"Modo de validación","lyraValidationModeHelptext":"Si se selecciona manual, deberá confirmar los pagos manualmente en su Back Office Lyra Collect.","lyraPaymentCards":"Tipos de tarjeta","lyraPaymentCardsHelptext":"El tipo(s) de tarjeta que se puede usar para el pago. No haga ninguna selección para usar la configuración del portal.","lyraReturnMode":"Modo de retorno","lyraReturnModeHelptext":"Método que se usará para transmitir el resultado del pago de la página de pago a su tienda.","lyraPaymentStatusOnSuccess":"Estado de pago del pedido","lyraPaymentStatusOnSuccessHelptext":"Define el estado de pago de los pedidos pagados con este modo de pago.","lyraOrderPlacedFlowEnabled":"Flujo Order placed","lyraOrderPlacedFlowEnabledHelptext":"Si está habilitado, el flujo « Order placed » se activará. Advertencia: Al deshabilitar esta opción, se deshabilitarán todas las acciones definidas en el flujo « Order placed ». El flujo se desactivará para todos los demás complementos y aplicaciones."}')},nRpd:function(e,n,t){var a=t("8HQ4");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("25bae4da",a,!0,{})}}); +!function(e){var n={};function t(a){if(n[a])return n[a].exports;var i=n[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:a})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(t.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(a,i,function(n){return e[n]}.bind(null,i));return a},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/bundles/lyranetworklyra/",t(t.s="VVq4")}({"+WiG":function(e,n,t){var a=t("ChS3");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("975c4960",a,!0,{})},"0nJl":function(e,n,t){var a=t("13bj");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("ec8b774a",a,!0,{})},"13bj":function(e,n,t){},"1oRH":function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Lyra Collect settings","menuEntry":"Configuration"},"lyraPaymentInformation":"Payment information","lyraTransactionId":"Transaction ID","lyraTransactionUuid":"Transaction UUID","lyraTransactionType":"Transaction type","lyraMeansOfPayment":"Means of payment","lyraCardNumber":"Card number","lyraCardExpirationDate":"Expiration date","lyraLanguages":{"fr":"French","de":"German","en":"English","es":"Spanish","zh":"Chinese","it":"Italian","ja":"Japanese","pt":"Portuguese","nl":"Dutch","sv":"Swedish","ru":"Russian","pl":"Polisch","tr":"Turkisch"},"lyraDoc":"Documentation","save":"Save","cancel":"Cancel","titleSaveSuccess":"Success","messageSaveSuccess":"Configuration saved successfully","titleSaveError":"Error","lyraDescription":"This plugin enables you to setup the Lyra Collect payment system on your Shopware website.","lyraDocumentationDescription":"Click to view the module configuration documentation:","lyraCtxMode":"Mode","lyraCtxModeHelptext":"The context mode of this module.","lyraSignAlgo":"Signature algorithm","lyraSignAlgoHelptext":"Algorithm used to compute the payment form signature. Selected algorithm must be the same as one configured in the Lyra Collect Back Office.","lyraSignAlgo1Helptext":"Algorithm used to compute the payment form signature. Selected algorithm must be the same as one configured in the Lyra Collect Back Office. The HMAC-SHA-256 algorithm should not be activated if it is not yet available in the Lyra Collect Back Office, the feature will be available soon.","lyraLanguage":"Default language","lyraLanguageHelptext":"Default language on the payment page.","lyraAvailableLanguages":"Available languages","lyraAvailableLanguagesHelptext":"Languages available on the payment page. If you do not select any, all the supported languages will be available.","lyraValidationMode":"Validation mode","lyraValidationModeHelptext":"If manual is selected, you will have to confirm payments manually in your Lyra Collect Back Office.","lyraPaymentCards":"Card Types","lyraPaymentCardsHelptext":"The card type(s) that can be used for the payment. Select none to use gateway configuration.","lyraReturnMode":"Return mode","lyraReturnModeHelptext":"Method that will be used for transmitting the payment result from the payment page to your shop.","lyraPaymentStatusOnSuccess":"Order payment status","lyraPaymentStatusOnSuccessHelptext":"Defines the payment status of orders paid with this payment mode.","lyraOrderPlacedFlowEnabled":"Order placed flow","lyraOrderPlacedFlowEnabledHelptext":"If enabled, the « Order placed » flow will be set to active. Warning: Disabling this option will disable all actions defined in the « Order placed » flow. The flow will be disabled for all other plugins and applications."}')},"42GI":function(e,n,t){},"8HQ4":function(e,n,t){},AlIh:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Lyra Collect einstellungen","menuEntry":"Konfiguration"},"lyraPaymentInformation":"Zahlungsinformationen","lyraTransactionId":"Transaktionsnummer","lyraTransactionUuid":"Transaktions-UUID","lyraTransactionType":"Art der Transaktion","lyraMeansOfPayment":"Zahlungsmittel","lyraCardNumber":"Kreditkartennummer","lyraCardExpirationDate":"Verfallsdatum","lyraLanguages":{"fr":"Französisch","de":"Deutsch","en":"Englisch","es":"Spanisch","zh":"Chinesisch","it":"Italienisch","ja":"Japanisch","pt":"Portugiesisch","nl":"Holländisch","sv":"Schwedisch","ru":"Russisch","pl":"Polnisch","tr":"Türkisch"},"lyraDoc":"Dokumentation","save":"Speichern","cancel":"Absagen","titleSaveSuccess":"Erfolg","messageSaveSuccess":"Konfiguration erfolgreich gespeichert","titleSaveError":"Fehler","lyraDescription":"Mit diesem Plugin können Sie das Zahlungssystem Lyra Collect auf Ihrer Shopware-Website einrichten.","lyraDocumentationDescription":"Klicken Sie, um die Modul-Konfigurationsdokumentation zu finden:","lyraCtxMode":"Modus","lyraCtxModeHelptext":"Kontextmodus dieses Moduls.","lyraSignAlgo":"Signaturalgorithmus","lyraSignAlgoHelptext":"Algorithmus zur Berechnung der Zahlungsformsignatur. Der ausgewählte Algorithmus muss derselbe sein, wie er im Lyra Collect Back Office.","lyraSignAlgo1Helptext":"Algorithmus zur Berechnung der Zahlungsformsignatur. Der ausgewählte Algorithmus muss derselbe sein, wie er im Lyra Collect Back Office. Der HMAC-SHA-256-Algorithmus sollte nicht aktiviert werden, wenn er noch nicht im Lyra Collect Back Office verfügbar ist. Die Funktion wird in Kürze verfügbar sein.","lyraLanguage":"Standardsprache","lyraLanguageHelptext":"Standardsprache auf Zahlungsseite.","lyraAvailableLanguages":"Verfügbare Sprachen","lyraAvailableLanguagesHelptext":"Verfügbare Sprachen der Zahlungsseite. Nichts auswählen, um die Einstellung der Zahlungsplattform zu benutzen.","lyraValidationMode":"Bestätigungsmodus","lyraValidationModeHelptext":"Bei manueller Eingabe müssen Sie Zahlungen manuell in Ihr Lyra Collect Back Office bestätigen.","lyraPaymentCards":"Kartentypen","lyraPaymentCardsHelptext":"Wählen Sie die zur Zahlung verfügbaren Kartentypen aus. Nichts auswählen, um die Einstellungen der Plattform zu verwenden.","lyraReturnMode":"Übermittlungs-Modus","lyraReturnModeHelptext":"Methode, die zur Übermittlung des Zahlungsergebnisses von der Zahlungsschnittstelle an Ihren Shop verwendet wird.","lyraPaymentStatusOnSuccess":"Zahlungsstatus der Bestellung","lyraPaymentStatusOnSuccessHelptext":"Der Zahlungsstatus der bezahlten Bestellungen durch dieses Beszahlungsmittel definieren.","lyraOrderPlacedFlowEnabled":"Order placed flow","lyraOrderPlacedFlowEnabledHelptext":"If enabled, the « Order placed » flow will be set to active. Warning: Disabling this option will disable all actions defined in the « Order placed » flow. The flow will be disabled for all other plugins and applications."}')},ChS3:function(e,n,t){},HlN1:function(e,n){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function i(e,n){for(var t=0;t2&&void 0!==arguments[2]?arguments[2]:"lyra";return a(this,c),l.call(this,e,n,t)}return n=c,(t=[{key:"getFeatures",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-features"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getCardTypes",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-card-types"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getLanguages",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-languages"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getDocFiles",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-doc-files"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"getPaymentStatuses",value:function(){var e=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/get-payment-statuses"),{headers:e}).then((function(e){return d.handleResponse(e)}))}},{key:"setOrderPlacedFlow",value:function(e){var n=this.getBasicHeaders();return this.httpClient.post("_action/".concat(this.getApiBasePath(),"/set-order-placed-flow"),e,{headers:n}).then((function(e){return d.handleResponse(e)}))}},{key:"isFlow",value:function(e){var n=this.getBasicHeaders();return this.httpClient.get("_action/".concat(this.getApiBasePath(),"/is-flow"),{params:e,headers:n}).then((function(e){return d.handleResponse(e)}))}}])&&i(n.prototype,t),s&&i(n,s),Object.defineProperty(n,"prototype",{writable:!1}),c}(d);c.addServiceProvider("LyranetworkLyraSettingsService",(function(e){var n=c.getContainer("init");return new p(n.httpClient,e.loginService)}))},P6Sy:function(e,n){Shopware.Component.override("sw-extension-card-base",{created:function(){"LyranetworkLyra"===this.extension.name&&(this.extension.configurable=!1)}})},SZ7m:function(e,n,t){"use strict";function a(e,n){for(var t=[],a={},i=0;it.parts.length&&(a.parts.length=t.parts.length)}else{var r=[];for(i=0;i\n{% endblock %}'});t("0nJl");var a=Shopware,i=a.Component,o=a.Mixin,r=Shopware.Context.app.config.version;i.register("lyranetwork-lyra-settings",{template:'\n\n{% block lyranetwork_lyra %}\n \n {% block lyranetwork_lyra_header %}\n \n {% endblock %}\n\n {% block lyranetwork_lyra_config_actions %}\n \n {% endblock %}\n\n {% block lyranetwork_lyra_config_content %}\n \n {% endblock %}\n \n{% endblock %}',mixins:[o.getByName("notification"),o.getByName("sw-inline-snippet")],inject:["LyranetworkLyraSettingsService"],data:function(){return{isSupportModalOpen:!1,paymentStatuses:[],languages:[],cardTypes:[],docFiles:[],isdocModalOpen:!1,qualif:!1,shatwo:!0,isFlow:!1}},created:function(){this.createdComponent()},methods:{createdComponent:function(){var e=this,n=this;this.LyranetworkLyraSettingsService.getFeatures().then((function(e){n.qualif=e.qualif,n.shatwo=e.shatwo})),this.LyranetworkLyraSettingsService.isFlow({shopwareVersion:r}).then((function(e){n.isFlow=e.isFlow})),this.LyranetworkLyraSettingsService.getDocFiles().then((function(e){e.data.forEach((function(e){n.docFiles.push({name:e.name,title:e.title,link:e.link})}))})),this.LyranetworkLyraSettingsService.getCardTypes().then((function(e){for(var t in e.data)e.data.hasOwnProperty(t)&&n.cardTypes.push({label:e.data[t],value:t})})),this.LyranetworkLyraSettingsService.getLanguages().then((function(t){for(var a in t.data)t.data.hasOwnProperty(a)&&n.languages.push({label:e.$tc("lyraLanguages."+a),value:a})})),this.LyranetworkLyraSettingsService.getPaymentStatuses().then((function(e){e.data.forEach((function(e){n.paymentStatuses.push({label:e.label,value:e.value})}))}))},getBind:function(e){return"single-select"==e.type&&(e.config.label=this.getElementLabel(e.name),"LyranetworkLyra.config.lyraSignAlgo"!==e.name||this.shatwo?e.config.helpText=this.getElementHelptext(e.name):e.config.helpText=this.getElementHelptext(e.name+"1")),e},getElementLabel:function(e){return this.$tc(e.replace("LyranetworkLyra.config.",""))},getElementHelptext:function(e){return this.$tc(e.replace("LyranetworkLyra.config.","")+"Helptext")},isDisabled:function(e){return e.name.startsWith("LyranetworkLyra.config.lyraCtxMode")&&this.qualif||e.name.startsWith("LyranetworkLyra.config.lyraOrderPlacedFlowEnabled")&&!this.isFlow},isShown:function(e){return(!e.name.startsWith("LyranetworkLyra.config.lyraKeyTest")||!this.qualif)&&(!e.name.startsWith("LyranetworkLyra.config.lyraOrderPlacedFlowEnabled")||this.isFlow)},onSave:function(){var e=this;this.$refs.systemConfig.saveAll().then((function(){e.createNotificationSuccess({title:e.$tc("titleSaveSuccess"),message:e.$tc("messageSaveSuccess")});var n=e.$refs.systemConfig.currentSalesChannelId;e.LyranetworkLyraSettingsService.setOrderPlacedFlow({salesChannelId:n,shopwareVersion:r})})).catch((function(n){e.createNotificationError({title:e.$tc("titleSaveError"),message:n});var t=e.$refs.systemConfig.currentSalesChannelId;e.LyranetworkLyraSettingsService.setOrderPlacedFlow({salesChannelId:t,shopwareVersion:r})}))}}});t("TD2K");var s=Shopware,l=s.Component;s.Mixin;l.override("sw-order-detail-base",{template:'\n\n{% block sw_order_detail_base_status_card %}\n {% parent %}\n\n \n{% endblock %}',methods:{isLyraPayment:function(e){return!!e.customFields&&e.customFields.lyra_transaction_id},hasLyraPayment:function(e){var n=this,t=!1;return!!e.transactions&&(e.transactions.map((function(e){n.isLyraPayment(e)&&(t=!0)})),t)}}});t("+WiG");Shopware.Component.override("sw-settings-index",{template:'\n\n{% block sw_settings_content_card_slot_plugins %}\n {% parent %}\n\n \n \n \n{% endblock %}'});t("P6Sy");var c={type:"plugin",name:"Lyra Collect",title:"lyraTitle",description:"lyraGeneral.descriptionTextModule",version:"3.0.3",icon:"default-action-settings",snippets:{"de-DE":t("AlIh"),"en-GB":t("1oRH"),"es-ES":t("ew8p"),"fr-FR":t("eZjQ")},routeMiddleware:function(e,n){e(n)},routes:{index:{component:"lyranetwork-lyra-settings",path:"index",meta:{parentPath:"sw.settings.index"}}},settingsItem:{name:"lyranetwork-lyra",to:"lyranetwork.lyra.index",label:"lyraTitle",group:"plugins",iconComponent:"lyranetwork-lyra-icon",backgroundEnabled:!1}};Shopware.Module.register("lyranetwork-lyra",c);t("HlN1")},eZjQ:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Paramètres Lyra Collect","menuEntry":"Configuration"},"lyraPaymentInformation":"Informations de paiement","lyraTransactionId":"ID de transaction","lyraTransactionUuid":"UUID de transaction","lyraTransactionType":"Type de transaction","lyraMeansOfPayment":"Moyen de paiement","lyraCardNumber":"Numéro de carte","lyraCardExpirationDate":"Date d\'expiration","lyraLanguages":{"fr":"Français","de":"Allemand","en":"Anglais","es":"Espagnol","zh":"Chinois","it":"Italien","ja":"Japonais","pt":"Portugais","nl":"Néerlandais","sv":"Suédois","ru":"Russe","pl":"Polonais","tr":"Turc"},"lyraDoc":"Documentation","save":"Save","cancel":"Cancel","titleSaveSuccess":"Succès","messageSaveSuccess":"Configuration sauvegardée avec succès","titleSaveError":"Erreur","lyraDescription":"Ce plugin vous permet de configurer le système de paiement Lyra Collect sur votre site Web Shopware.","lyraDocumentationDescription":"Cliquer pour accéder à la documentation de configuration du module:","lyraCtxMode":"Mode","lyraCtxModeHelptext":"Mode de fonctionnement du module.","lyraSignAlgo":"Algorithme de signature","lyraSignAlgoHelptext":"Algorithme utilisé pour calculer la signature du formulaire de paiement. L\'algorithme sélectionné doit être le même que celui configuré sur le Back Office Lyra Collect.","lyraSignAlgo1Helptext":"Algorithme utilisé pour calculer la signature du formulaire de paiement. L\'algorithme sélectionné doit être le même que celui configuré sur le Back Office Lyra Collect. Le HMAC-SHA-256 ne doit pas être activé si celui-ci n\'est pas encore disponible depuis le Back Office Lyra Collect, la fonctionnalité sera disponible prochainement.","lyraLanguage":"Langue par défaut","lyraLanguageHelptext":"Sélectionner la langue par défaut à utiliser sur la page de paiement.","lyraAvailableLanguages":"Langues disponibles","lyraAvailableLanguagesHelptext":"Sélectionner les langues à proposer sur la page de paiement. Ne rien sélectionner pour utiliser la configuration de la plateforme.","lyraValidationMode":"Mode de validation","lyraValidationModeHelptext":"En mode manuel, vous devrez confirmer les paiements dans le Back Office Lyra Collect.","lyraPaymentCards":"Types de carte","lyraPaymentCardsHelptext":"Le(s) type(s) de carte pouvant être utilisé(s) pour le paiement. Ne rien sélectionner pour utiliser la configuration de la plateforme.","lyraReturnMode":"Mode de retour","lyraReturnModeHelptext":"Façon dont l\'acheteur transmettra le résultat du paiement lors de son retour à la boutique.","lyraPaymentStatusOnSuccess":"Statut de paiement de la commande","lyraPaymentStatusOnSuccessHelptext":"Définir le statut de paiement des commandes payées par ce mode de paiement.","lyraOrderPlacedFlowEnabled":"Flux Order placed","lyraOrderPlacedFlowEnabledHelptext":"Si activé, le flux « Order placed » sera activé. Attention: La désactivation de cette option va désactiver toutes les actions définies dans le flux « Order placed ». Le flux sera désactivé pour tous les autres plugins et applications."}')},ew8p:function(e){e.exports=JSON.parse('{"lyraTitle":"Lyra Collect","lyraGeneral":{"mainMenuItemGeneral":"Lyra Collect","descriptionTextModule":"Configuración de Lyra Collect","menuEntry":"Configuración"},"lyraPaymentInformation":"Información del pago","lyraTransactionId":"ID de transacción","lyraTransactionUuid":"UUID de transacción","lyraTransactionType":"Tipo de transacción","lyraMeansOfPayment":"Medio de pago","lyraCardNumber":"Número de tarjeta","lyraCardExpirationDate":"Fecha de expiración","lyraLanguages":{"fr":"Francés","de":"Alemán","en":"Inglés","es":"Español","zh":"Chino","it":"Italiano","ja":"Japonés","pt":"Portugués","nl":"Holandés","sv":"Sueco","ru":"Ruso","pl":"Polaco","tr":"Turco"},"lyraDoc":"Documentación","save":"Save","cancel":"Cancel","titleSaveSuccess":"Éxito","messageSaveSuccess":"Configuración guardada con éxito","titleSaveError":"Error","lyraDescription":"Este plugin le permite configurar el sistema de pago Lyra Collect en su sitio web Shopware.","lyraDocumentationDescription":"Haga clic para ver la documentación de la configuración del módulo:","lyraCtxMode":"Modo","lyraCtxModeHelptext":"El modo de contexto de este módulo.","lyraSignAlgo":"Algoritmo de firma","lyraSignAlgoHelptext":"a calcular la firma del formulario de pago. El algoritmo seleccionado debe ser el mismo que el configurado en el Back Office Lyra Collect.","lyraSignAlgo1Helptext":"Algoritmo usado para calcular la firma del formulario de pago. El algoritmo seleccionado debe ser el mismo que el configurado en el Back Office Lyra Collect. El algoritmo HMAC-SHA-256 no se debe activar si aún no está disponible el Back Office Lyra Collect, la función estará disponible pronto.","lyraLanguage":"Idioma por defecto","lyraLanguageHelptext":"Idioma por defecto en la página de pago.","lyraAvailableLanguages":"Idiomas disponibles","lyraAvailableLanguagesHelptext":"Idiomas disponibles en la página de pago. Si no selecciona ninguno, todos los idiomas compatibles estarán disponibles.","lyraValidationMode":"Modo de validación","lyraValidationModeHelptext":"Si se selecciona manual, deberá confirmar los pagos manualmente en su Back Office Lyra Collect.","lyraPaymentCards":"Tipos de tarjeta","lyraPaymentCardsHelptext":"El tipo(s) de tarjeta que se puede usar para el pago. No haga ninguna selección para usar la configuración del portal.","lyraReturnMode":"Modo de retorno","lyraReturnModeHelptext":"Método que se usará para transmitir el resultado del pago de la página de pago a su tienda.","lyraPaymentStatusOnSuccess":"Estado de pago del pedido","lyraPaymentStatusOnSuccessHelptext":"Define el estado de pago de los pedidos pagados con este modo de pago.","lyraOrderPlacedFlowEnabled":"Flujo Order placed","lyraOrderPlacedFlowEnabledHelptext":"Si está habilitado, el flujo « Order placed » se activará. Advertencia: Al deshabilitar esta opción, se deshabilitarán todas las acciones definidas en el flujo « Order placed ». El flujo se desactivará para todos los demás complementos y aplicaciones."}')},nRpd:function(e,n,t){var a=t("8HQ4");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,t("SZ7m").default)("25bae4da",a,!0,{})}}); //# sourceMappingURL=lyranetwork-lyra.js.map \ No newline at end of file diff --git a/LyranetworkLyra/src/Sdk/Tools.php b/LyranetworkLyra/src/Sdk/Tools.php index 9a45522..42e3b41 100644 --- a/LyranetworkLyra/src/Sdk/Tools.php +++ b/LyranetworkLyra/src/Sdk/Tools.php @@ -28,7 +28,7 @@ class Tools private static $CMS_IDENTIFIER = 'Shopware_6.4.x'; private static $SUPPORT_EMAIL = 'support-ecommerce@lyra-collect.com'; - private static $PLUGIN_VERSION = '3.0.2'; + private static $PLUGIN_VERSION = '3.0.3'; private static $GATEWAY_VERSION = 'V2'; public static $pluginFeatures = [ diff --git a/LyranetworkLyra/src/Service/FlowService.php b/LyranetworkLyra/src/Service/FlowService.php index 582acdc..0d9cefa 100644 --- a/LyranetworkLyra/src/Service/FlowService.php +++ b/LyranetworkLyra/src/Service/FlowService.php @@ -35,19 +35,30 @@ public function __construct(EntityRepositoryInterface $flowRepository, LoggerInt $this->logger = $logger; } - public function getFlowIdByName(string $name): ?string + /** + * @param string $name + * @return string|null + */ + public function getFlowIdByName(string $name, Context $context): ?string { if (! empty($name)) { $criteria = new Criteria(); $criteria->addFilter(new EqualsFilter('name', $name)); - return $this->flowRepository->searchIds($criteria, Context::createDefaultContext())->firstId(); + return $this->flowRepository->searchIds($criteria, $context)->firstId(); } + + return null; } + /** + * @param string $name + * @param bool $active + * @param Context $context + */ public function updateFlowActive(string $name, bool $active, Context $context) { - $flowId = $this->getFlowIdByName($name); + $flowId = $this->getFlowIdByName($name, $context); if ($flowId) { $flow = [ 'id' => $flowId,