diff --git a/composer.json b/composer.json index 1200fb42..b7c41169 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "buckaroo/shopware6", "description": "Buckaroo payment provider plugin for Shopware 6", "type": "shopware-platform-plugin", - "version": "2.0.0", + "version": "2.0.2", "license": "proprietary", "minimum-stability": "stable", "require": { @@ -11,6 +11,7 @@ "ext-json": "*", "ext-pcre": "*", "ext-fileinfo": "*", + "shopware/core": "~6.5.0", "buckaroo/sdk": "^1.6" }, "authors": [{ diff --git a/src/Handlers/GiftcardsPaymentHandler.php b/src/Handlers/GiftcardsPaymentHandler.php index 8a8febb1..184048ab 100644 --- a/src/Handlers/GiftcardsPaymentHandler.php +++ b/src/Handlers/GiftcardsPaymentHandler.php @@ -56,15 +56,42 @@ protected function getMethodAction( protected function getAllowedGiftcards(string $salesChannelId): string { - $allowedgiftcards = $this->asyncPaymentService + $allowedGiftcards = $this->asyncPaymentService ->settingsService ->getSetting('allowedgiftcards', $salesChannelId); - if (is_array($allowedgiftcards) && - count($allowedgiftcards) + $allowedServices = []; + + if ( + is_array($allowedGiftcards) && + count($allowedGiftcards) ) { - return implode(",", $allowedgiftcards).",ideal,bancontactmrcash"; + $allowedServices = $allowedGiftcards; + } + + $allowedMethods = $this->getAllowedMethods($salesChannelId); + + if (count($allowedMethods) === 0) { + $allowedMethods = ['ideal']; //defaults to ideal payment method } - return 'ideal'; + $allowedServices = array_merge($allowedServices, $allowedMethods); + + return implode(",", $allowedServices); + } + + protected function getAllowedMethods(string $salesChannelId): array + { + $allowedMethods = $this->asyncPaymentService + ->settingsService + ->getSetting('giftcardsPaymentmethods', $salesChannelId); + + if ( + !is_array($allowedMethods) || + count($allowedMethods) == 0 + ) { + return []; + } + + return $allowedMethods; } } diff --git a/src/Resources/app/administration/src/module/buckaroo-payment/page/buckaroo-settings/index.js b/src/Resources/app/administration/src/module/buckaroo-payment/page/buckaroo-settings/index.js index 20013711..c1ac4035 100644 --- a/src/Resources/app/administration/src/module/buckaroo-payment/page/buckaroo-settings/index.js +++ b/src/Resources/app/administration/src/module/buckaroo-payment/page/buckaroo-settings/index.js @@ -280,6 +280,14 @@ Component.register('buckaroo-settings', { id = id.join(""); if (config["BuckarooPayments.config." + id + "Enabled"] != undefined && config["BuckarooPayments.config." + id + "Enabled"]) { + if (fid === "capayableLogo") { + if ( + config["BuckarooPayments.config.capayableVersion"] === undefined || + config["BuckarooPayments.config.capayableVersion"] ==='v3') { + return true; + } + return false; + } return true; } diff --git a/src/Resources/config/config.xml b/src/Resources/config/config.xml index 97ec9f04..5816e039 100644 --- a/src/Resources/config/config.xml +++ b/src/Resources/config/config.xml @@ -1623,6 +1623,99 @@ + + giftcardsPaymentmethods + + + + + + + + + + + + + + + + + + + + + + + + + + + + In3 diff --git a/src/Resources/public/administration/js/buckaroo-payments.js b/src/Resources/public/administration/js/buckaroo-payments.js index 210125dc..302fa94a 100644 --- a/src/Resources/public/administration/js/buckaroo-payments.js +++ b/src/Resources/public/administration/js/buckaroo-payments.js @@ -1 +1 @@ -!function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=(window.__sw__.assetPath + '/bundles/buckaroopayments/'),n(n.s="VMV7")}({"+18T":function(e,t,n){},"/7IT":function(e,t,n){var a=n("+18T");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("ydqr").default)("8d70cd02",a,!0,{})},Ac08:function(e,t){function n(e){return(n="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,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:"buckaroo";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"getSupportVersion",value:function(){var e="_action/".concat(this.getApiBasePath(),"/version");return this.httpClient.post(e,{},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"getTaxes",value:function(){var e="_action/".concat(this.getApiBasePath(),"/taxes");return this.httpClient.post(e,{},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"getApiTest",value:function(e,t,n){var a="_action/".concat(this.getApiBasePath(),"/getBuckarooApiTest");return this.httpClient.post(a,{websiteKeyId:e,secretKeyId:t,saleChannelId:n},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&o(t.prototype,n),s&&o(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(u);l.addServiceProvider("BuckarooPaymentSettingsService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},Dl9r:function(e,t){function n(e){return(n="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,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:"buckaroo";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"getBuckarooTransaction",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/getBuckarooTransaction");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"refundPayment",value:function(e,t,n,a){var o="_action/".concat(this.getApiBasePath(),"/refund");return this.httpClient.post(o,{transaction:e,transactionsToRefund:t,orderItems:n,customRefundAmount:a},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"captureOrder",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/capture");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"createPaylink",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/paylink");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&o(t.prototype,n),s&&o(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(u);l.addServiceProvider("BuckarooPaymentService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},HVem:function(e){e.exports=JSON.parse('{"buckaroo-payment":{"fee":"Buckaroo Gebühr","order":{"refundDescription":"Erstattung für Bestellung #orderNumber"},"general":{"title":"Buckaroo","description":"Buckaroo Payment"},"settingsForm":{"save":"Speichern","titleSuccess":"Erfolg","titleError":"Fehler"},"supportModal":{"menuButton":"Version & Support","title":"Version & Support","support":{"description":"Bevor Sie den technischen Support von Buckaroo kontaktieren, rufen Sie bitte Ihren (Merchant) Schlüssel, Geheimschlüssel, Zertifikat und Zertifikat-Daumenabdruck auf.","label1":"Buckaroo Payment Plaza:","label2":"Telefon:","label3":"E-mail:","label4":"Webseite:","your_version":"Ihre PHP Version:","version":"Kompatibilität der Version","information":"Information"}},"tabs":{"title":"Buckaroo Payment","overview":"Overview"},"paymentDetail":{"refundTitle":"Rückerstattung","transactionsTitle":"Transaktionen","amountTitle":"Amount","amountTotalTitle":"Gesamtsumme","amountRefundTotalTitle":"Rückerstattung Gesamtsumme","amountCustomRefundTitle":"Benutzerdefinierten betrag erstatten","buttonTitle":"Rückerstattung","successTitle":"Erfolg","successMessage":"Buckaroo-Erfolg erstattet ","errorTitle":"Fehler","payTitle":"Zahlung erfassen","payDescription":"Erfassen und erstellen sie eine rechnung für die bestellung","payButton":"Zahlung erfassen"},"orderItems":{"title":"Zu erstattende Gegenstände","types":{"id":"id","name":"Titel","quantity":"Menge zur Rückerstattung","totalAmount":"Zwischensumme"}},"transactionsToRefund":{"title":"Rückerstattungssummen"},"transactionHistory":{"types":{"id":"id","created_at":"Datum / Uhrzeit","total":"Total","shipping_costs":"Versandkosten","total_excluding_vat":"Total ohne Mehrwertsteuer","total_including_vat":"Total einschließlich Mehrwertsteuer","vat":"Mehrwertsteuer","transaction_key":"Transaktionsschlüssel","transaction_method":"Zahlungsmethode","statuscode":"Status"}},"messageNotValid":"Dieses Feld ist ungültig.","messageNotBlank":"Dieses Feld darf nicht leer sein.","button":{"labelTestApi":"Testverbindung"},"paymentInTestMode":"The payment for this order was made in test mode","refund":{"not_supported":"Refund is not supported","already_refunded":"This order is already refunded","refunded_amount":"Buckaroo success refunded"},"capture":{"invalid_amount":"Amount is not valid","capture_not_supported":"Capture is not supported","already_captured":"This order is already captured","captured_amount":"Successfully captured amount","general_capture_error":"Unfortunately an error occurred while processing your capture. Please try again."},"test_api":{"connection_ready":"Connection ready","connection_failed":"Connection failed"},"paylink":{"invalid_amount":"Amount is not valid","pay_link":"Your Paylink:"},"missing_order_id":"Missing order orderId","missing_transaction":"Order transaction not found","general_request_error":"Unfortunately an error occurred while processing your request. Please try again."}}')},I9hf:function(e,t,n){var a=n("SHhJ");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("ydqr").default)("29bb7c58",a,!0,{})},SAkL:function(e,t,n){},SHhJ:function(e,t,n){},VMV7:function(e,t,n){"use strict";n.r(t);n("/7IT");var a=Shopware,o=a.Component,r=a.Mixin;o.register("buckaroo-settings",{template:'{% block buckaroo_payment %}\n\n {% block buckaroo_payment_header %}\n \n {% endblock %}\n\n {% block buckaroo_payment_actions %}\n \n {% endblock %}\n\n {% block buckaroo_payment_settings_content %}\n \n {% endblock %}\n\n{% endblock %}\n',mixins:[r.getByName("notification"),r.getByName("sw-inline-snippet")],inject:["BuckarooPaymentSettingsService"],data:function(){return{isLoading:!1,isSaveSuccessful:!1,config:{},websiteKeyIdFilled:!1,secretKeyIdFilled:!1,showValidationErrors:!1,phpversion:!1,supportMessage:!1,isSupportModalOpen:!1,isSupportMessageModalOpen:!1,isPhpVersionSupport:!1,collapsibleState:{websiteKey:!0,secretKey:!0,guid:!0,transactionLabel:!0,refundLabel:!0,creditcardEnabled:!0,creditcardsEnabled:!0,idealEnabled:!0,idealprocessingEnabled:!0,belfiusEnabled:!0,bancontactmrcashEnabled:!0,afterpayEnabled:!0,BillinkEnabled:!0,sofortueberweisungEnabled:!0,paypalEnabled:!0,transferEnabled:!0,giropayEnabled:!0,KBCPaymentButtonEnabled:!0,sepadirectdebitEnabled:!0,payconiqEnabled:!0,applepayEnabled:!0,giftcardsEnabled:!0,capayableEnabled:!0,epsEnabled:!0,Przelewy24Enabled:!0,AlipayEnabled:!0,WeChatPayEnabled:!0,TrustlyEnabled:!0,klarnaEnabled:!0,klarnainEnabled:!0,klarnakpEnabled:!0,advancedConfiguration:!0,BillinkCreateInvoiceAfterShipment:!0,payperemailEnabled:!0},collapsibleAdvancedState:{paylinkEnabled:!0,sendInvoiceEmail:!0,paymentSuccesStatus:!0,orderStatus:!0}}},created:function(){var e=this;this.createdComponent(),this.BuckarooPaymentSettingsService.getSupportVersion().then((function(t){e.phpversion=t.phpversion,e.isPhpVersionSupport=t.isPhpVersionSupport}))},computed:{credentialsMissing:function(){return!this.websiteKeyIdFilled||!this.secretKeyIdFilled}},metaInfo:function(){return{title:this.$createTitle()}},methods:{sendTestApi:function(){var e=this,t=this,n=this.getConfigValue("websiteKey"),a=this.getConfigValue("secretKey"),o=this.$refs.systemConfig.currentSalesChannelId;this.BuckarooPaymentSettingsService.getApiTest(n,a,o).then((function(n){"success"==n.status?e.createNotificationSuccess({title:t.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:t.$tc(n.message)}):e.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:t.$tc(n.message)})}))},getCardConfig:function(e,t){return t.elements.forEach((function(t){if(t.name==e.name)return t.config})),!1},showLabel:function(e,t){return"single-select"==e.type||"multi-select"==e.type},showHelpText:function(e,t){return!(!this.showLabel(e,t)||!this.getCardInfo(e,t,"helpText"))},showButtonAfter:function(e,t){var n="advancedConfiguration";return null!=t["BuckarooPayments.config.advancedConfiguration"]&&t["BuckarooPayments.config.advancedConfiguration"]&&(n="orderStatus"),!!e.name.includes(n)},getLocale:function(e){var t=window.localStorage.getItem("sw-admin-locale");return null==t&&(t="en-GB"),null!=e[t]?e[t]:e["en-GB"]},getCardInfo:function(e,t,n){var a=this,o="";return t.elements.forEach((function(t){if(t.name==e.name&&null!=t.config)switch(n){case"label":o=null!=t.config.label?a.getLocale(t.config.label):"";break;case"helpText":o=null!=t.config.helpText?a.getLocale(t.config.helpText):""}})),o},createdComponent:function(){},saveFinish:function(){this.isSaveSuccessful=!1},onConfigChange:function(e){this.config=e,this.checkCredentialsFilled(),this.showValidationErrors=!1},checkCredentialsFilled:function(){this.websiteKeyIdFilled=!!this.getConfigValue("websiteKey"),this.secretKeyIdFilled=!!this.getConfigValue("secretKey")},validateWebsiteKey:function(){return!(this.getConfigValue("websiteKey").length<10||this.getConfigValue("websiteKey").length>10)},validateSecretKey:function(){return!(this.getConfigValue("secretKey").length<5||this.getConfigValue("secretKey").length>50)},getConfigValue:function(e){var t=this.$refs.systemConfig.actualConfigData.null;return null===this.$refs.systemConfig.currentSalesChannelId?this.config["BuckarooPayments.config.".concat(e)]:this.config["BuckarooPayments.config.".concat(e)]||t["BuckarooPayments.config.".concat(e)]},getPaymentConfigValue:function(e,t){var n=e.charAt(0).toUpperCase()+e.slice(1);return this.getConfigValue(t+n)||this.getConfigValue(e)},onSave:function(){var e=this;this.credentialsMissing?this.showValidationErrors=!0:this.validateWebsiteKey()&&this.validateSecretKey()?(this.isSaveSuccessful=!1,this.isLoading=!0,this.$refs.systemConfig.saveAll().then((function(){e.isLoading=!1,e.isSaveSuccessful=!0})).catch((function(){e.isLoading=!1}))):this.showValidationErrors=!0},displayField:function(e,t){var n=e.name.replace("BuckarooPayments.config.","");if(n in this.collapsibleState)return!0;if(n in this.collapsibleAdvancedState&&null!=t["BuckarooPayments.config.advancedConfiguration"]&&t["BuckarooPayments.config.advancedConfiguration"])return!0;var a=n;return(n=n.split(/([A-Z][a-z]+)/).filter((function(e){return e}))).pop(),!(null==t["BuckarooPayments.config."+(n=n.join(""))+"Enabled"]||!t["BuckarooPayments.config."+n+"Enabled"])||(!("allowedcreditcard"!=a||null==t["BuckarooPayments.config.creditcardEnabled"]||!t["BuckarooPayments.config.creditcardEnabled"])||(!("allowedcreditcards"!=a||null==t["BuckarooPayments.config.creditcardsEnabled"]||!t["BuckarooPayments.config.creditcardsEnabled"])||(!("allowedgiftcards"!=a||null==t["BuckarooPayments.config.giftcardsEnabled"]||!t["BuckarooPayments.config.giftcardsEnabled"])||(!("applepayShowProduct"!=a&&"applepayShowCart"!=a||null==t["BuckarooPayments.config.applepayEnabled"]||!t["BuckarooPayments.config.applepayEnabled"])||(!("idealRenderMode"!=a||null==t["BuckarooPayments.config.idealRenderMode"]||!t["BuckarooPayments.config.idealEnabled"])||(!("transferSendEmail"!=a&&"transferDateDue"!=a||null==t["BuckarooPayments.config.transferEnabled"]||!t["BuckarooPayments.config.transferEnabled"])||(!("afterpayCustomerType"!=a||null==t["BuckarooPayments.config.afterpayEnabled"]||!t["BuckarooPayments.config.afterpayEnabled"])||!("afterpayB2bMinAmount"!=a&&"afterpayB2bMaxAmount"!=a||!t["BuckarooPayments.config.afterpayEnabled"]||null==t["BuckarooPayments.config.afterpayCustomerType"]||"b2c"==t["BuckarooPayments.config.afterpayCustomerType"]))))))))},getBind:function(e,t){return t!==this.config&&this.onConfigChange(t),this.showValidationErrors&&("BuckarooPayments.config.websiteKey"!==e.name||this.websiteKeyIdFilled||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotBlank")}),"BuckarooPayments.config.secretKey"!==e.name||this.secretKeyIdFilled||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotBlank")}),"BuckarooPayments.config.websiteKey"!==e.name||this.validateWebsiteKey()||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotValid")}),"BuckarooPayments.config.secretKey"!==e.name||this.validateSecretKey()||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotValid")})),e}}});var i=Shopware,s=i.Component,c=i.Context,l=Shopware.Data.Criteria;s.override("sw-order-detail",{template:'{% block sw_order_detail_content_tabs %}\n \n
\n

{{ $tc(\'buckaroo-payment.paymentInTestMode\') }}

\n \n {% parent %}\n{% endblock %}\n\n\n{% block sw_order_detail_content_tabs_general %}\n {% parent %}\n\n \n {{ $tc(\'buckaroo-payment.tabs.title\') }}\n \n \n{% endblock %}\n\n{% block sw_order_detail_actions %}\n \n {% parent %}\n{% endblock %}',data:function(){return{isBuckarooPayment:!1,isPaymentInTestMode:!1}},computed:{isEditable:function(){return!this.isBuckarooPayment||"buckaroo.payment.detail"!==this.$route.name},showTabs:function(){return!0}},watch:{orderId:{deep:!0,handler:function(){var e=this;if(this.orderId){var t=this.repositoryFactory.create("order"),n=new l(1,1);n.addAssociation("transactions"),t.get(this.orderId,c.api,n).then((function(t){if(e.setPaymentInTestMode(t),t.transactions.length<=0||!t.transactions.last().paymentMethodId)e.setIsBuckarooPayment(null);else{var n=t.transactions.last().paymentMethodId;null!=n&&e.setIsBuckarooPayment(n)}}))}else this.setIsBuckarooPayment(null)},immediate:!0}},methods:{setPaymentInTestMode:function(e){e.customFields&&e.customFields.buckaroo_payment_in_test_mode&&(this.isPaymentInTestMode=!0===e.customFields.buckaroo_payment_in_test_mode)},setIsBuckarooPayment:function(e){var t=this;e&&this.repositoryFactory.create("payment_method").get(e,c.api).then((function(e){t.isBuckarooPayment=e.formattedHandlerIdentifier.indexOf("buckaroo")>=0}))}}});n("I9hf");Shopware.Component.override("sw-settings-index",{template:'{% block sw_settings_content_card_slot_plugins %}\n {% parent %}\n\n \n \n \n{% endblock %}\n'});var u=Shopware,d=u.Component;u.Context,Shopware.Data.Criteria;d.override("sw-order-detail-base",{template:'{% block sw_order_detail_base_line_items_summary %}\n\n \n \n \n
{{ $tc(\'buckaroo-payment.fee\') }}
\n
{{ order.customFields.buckarooFee }}\n {% if order.currency.isoCode == "PLN" %}\n PLN\n {% else %}\n {{ order.currency.symbol }}\n {% endif %}\n
\n
\n
\n
\n\n {% parent %}\n \n{% endblock %}'});Shopware.Component.override("sw-order-user-card",{template:"{% block sw_order_detail_base_secondary_info_payment %}\n \n \n{% endblock %}\n\n",inject:["systemConfigApiService"],data:function(){return{config:{}}},created:function(){var e=this;this.systemConfigApiService.getValues("BuckarooPayments.config",null).then((function(t){e.config=t})).finally((function(){}))}});n("k844");var p=Shopware,m=p.Component,f=p.Mixin,y=(p.Filter,p.Context),h=Shopware.Data.Criteria;m.register("buckaroo-payment-detail",{template:'{% block buckaroo_payment_detail %}\n
\n \n \n\n {{ $tc(\'buckaroo-payment.paymentDetail.paylinkDescription\') }}\n \n
\n {{ $tc(\'buckaroo-payment.paymentDetail.yourLink\') }}: {{ paylink }}\n
\n\n \n
\n \n \n {{ $tc(\'buckaroo-payment.paymentDetail.paylinkButton\') }}\n
\n
\n
\n\n
\n\n \n \n {{ $tc(\'buckaroo-payment.orderItems.title\') }}\n \n\n \n\n \n\n \n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountTotalTitle\') }}:
\n
{{ buckaroo_refund_amount }} {{ currency }}
\n
\n
\n \n \n \n \n
\n
{{ $tc(\'buckaroo-payment.transactionsToRefund.title\') }}
\n
\n
\n\n \n\n \n\n \n\n \n\n \n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountCustomRefundTitle\') }}:
\n
\n \n {{ currency }}\n
\n
\n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountRefundTotalTitle\') }}:
\n
{{ buckaroo_refund_total_amount }} {{ currency }}
\n
\n
\n \n
\n\n \n
\n \n {{ $tc(\'buckaroo-payment.paymentDetail.buttonTitle\') }}\n
\n
\n
\n\n
\n\n \n\n {{ $tc(\'buckaroo-payment.paymentDetail.payDescription\') }}\n\n \n
\n \n {{ $tc(\'buckaroo-payment.paymentDetail.payButton\') }}\n
\n
\n
\n\n
\n\n \n \n\n \n\n \n \n\n\n \n \n
\n{% endblock %}',inject:["repositoryFactory","BuckarooPaymentService","systemConfigApiService"],mixins:[f.getByName("notification")],data:function(){return{config:{},buckaroo_refund_amount:"0",buckaroo_refund_total_amount:"0",currency:"EUR",isRefundPossible:!0,isCapturePossible:!1,isPaylinkAvailable:!1,isPaylinkVisible:!1,paylinkMessage:"",paylink:"",isLoading:!1,order:!1,buckarooFee:!1,buckarooTransactions:null,orderItems:[],transactionsToRefund:[],relatedResources:[],isAllowedCustomRefund:!0}},computed:{orderItemsColumns:function(){return[{property:"name",label:this.$tc("buckaroo-payment.orderItems.types.name"),rawData:!0},{property:"quantity",label:this.$tc("buckaroo-payment.orderItems.types.quantity"),rawData:!0},{property:"totalAmount",label:this.$tc("buckaroo-payment.orderItems.types.totalAmount"),rawData:!0}]},transactionsToRefundColumns:function(){return[{property:"transaction_method",rawData:!0},{property:"amount",rawData:!0}]},relatedResourceColumns:function(){return[{property:"created_at",label:this.$tc("buckaroo-payment.transactionHistory.types.created_at"),rawData:!0},{property:"total",label:this.$tc("buckaroo-payment.transactionHistory.types.total"),rawData:!0},{property:"shipping_costs",label:this.$tc("buckaroo-payment.transactionHistory.types.shipping_costs"),rawData:!0},{property:"total_excluding_vat",label:this.$tc("buckaroo-payment.transactionHistory.types.total_excluding_vat"),rawData:!0},{property:"vat",label:this.$tc("buckaroo-payment.transactionHistory.types.vat"),rawData:!0},{property:"transaction_key",label:this.$tc("buckaroo-payment.transactionHistory.types.transaction_key"),rawData:!0},{property:"transaction_method",label:this.$tc("buckaroo-payment.transactionHistory.types.transaction_method"),rawData:!0},{property:"statuscode",label:this.$tc("buckaroo-payment.transactionHistory.types.statuscode"),rawData:!0}]}},created:function(){this.createdComponent()},methods:{recalculateOrderItems:function(){for(var e in this.buckaroo_refund_amount=0,this.orderItems)this.orderItems[e].totalAmount=parseFloat(parseFloat(this.orderItems[e].unitPrice)*parseFloat(this.orderItems[e].quantity||0)).toFixed(2),this.buckaroo_refund_amount=parseFloat(parseFloat(this.buckaroo_refund_amount)+parseFloat(this.orderItems[e].totalAmount)).toFixed(2)},recalculateRefundItems:function(){for(var e in this.buckaroo_refund_total_amount=0,this.transactionsToRefund)this.transactionsToRefund[e].amount&&(this.buckaroo_refund_total_amount=parseFloat(parseFloat(this.buckaroo_refund_total_amount)+parseFloat(this.transactionsToRefund[e].amount)).toFixed(2))},getCustomRefundEnabledEl:function(){return document.getElementById("buckaroo_custom_refund_enabled")},getCustomRefundAmountEl:function(){return document.getElementById("buckaroo_custom_refund_amount")},toggleCustomRefund:function(){this.getCustomRefundEnabledEl()&&this.getCustomRefundAmountEl()&&(this.getCustomRefundAmountEl().disabled=!this.getCustomRefundEnabledEl().checked)},getCustomRefundAmount:function(){return this.getCustomRefundEnabledEl()&&this.getCustomRefundAmountEl()&&this.getCustomRefundEnabledEl().checked?this.getCustomRefundAmountEl().value:0},createdComponent:function(){var e=this,t=this,n=this.$route.params.id;this.systemConfigApiService.getValues("BuckarooPayments.config",null).then((function(t){e.config=t}));var a=this.repositoryFactory.create("order"),o=new h(1,1);this.orderId=n,o.addAssociation("transactions.paymentMethod").addAssociation("transactions"),o.getAssociation("transactions").addSorting(h.sort("createdAt")),a.get(n,y.api,o).then((function(n){null!=n.customFields&&null!=n.customFields.buckarooFee&&(e.buckarooFee=n.customFields.buckarooFee),t.isCapturePossible=n.transactions&&n.transactions.last().paymentMethod&&n.transactions.last().paymentMethod.customFields&&n.transactions.last().paymentMethod.customFields.buckaroo_key&&["klarnakp","billink"].includes(n.transactions.last().paymentMethod.customFields.buckaroo_key.toLowerCase()),t.isPaylinkVisible=t.isPaylinkAvailable=e.getConfigValue("paylinkEnabled")&&n.stateMachineState&&n.stateMachineState.technicalName&&"open"==n.stateMachineState.technicalName&&n.transactions&&"open"==n.transactions.last().stateMachineState.technicalName})),this.BuckarooPaymentService.getBuckarooTransaction(n).then((function(n){e.$emit("loading-change",!1),n.orderItems.forEach((function(e){t.orderItems.push({id:e.id,name:e.name,quantity:e.quantity,quantityMax:e.quantity,unitPrice:e.unitPrice.value,totalAmount:e.totalAmount.value})})),t.recalculateOrderItems(),n.transactionsToRefund.forEach((function(e){["afterpay","Billink","klarnakp"].includes(e.transaction_method)&&(t.isAllowedCustomRefund=!1),t.transactionsToRefund.push({id:e.id,transactions:e.transactions,amount:e.total,amountMax:e.total,currency:e.currency,transaction_method:e.transaction_method,logo:e.transaction_method?e.logo:null}),t.currency=e.currency})),t.recalculateRefundItems(),n.transactions.forEach((function(e){t.relatedResources.push({id:e.id,transaction_key:e.transaction,total:e.total,total_excluding_vat:e.total_excluding_vat,shipping_costs:e.shipping_costs,vat:e.vat,transaction_method:e.transaction_method,logo:e.transaction_method?e.logo:null,created_at:e.created_at,statuscode:e.statuscode})}))})).catch((function(e){console.log("errorResponse",e)}))},refundOrder:function(e,t){var n=this,a=this;a.isRefundPossible=!1,this.BuckarooPaymentService.refundPayment(e,this.transactionsToRefund,this.orderItems,this.getCustomRefundAmount()).then((function(e){for(var t in e)e[t].status?n.createNotificationSuccess({title:a.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:a.$tc(e[t].message)+e[t].amount}):n.createNotificationError({title:a.$tc("buckaroo-payment.settingsForm.titleError"),message:a.$tc(e[t].message)});a.isRefundPossible=!0})).catch((function(e){n.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:e.response.data.message}),a.isRefundPossible=!0}))},createPaylink:function(e){var t=this,n=this;n.isPaylinkAvailable=!1,this.BuckarooPaymentService.createPaylink(e,this.transactionsToRefund,this.orderItems).then((function(e){e.status?(n.paylinkMessage=n.$tc(e.message)+e.paylinkhref,n.paylink=e.paylink,t.createNotificationSuccess({title:n.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:n.paylinkMessage})):t.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.message)}),n.isPaylinkAvailable=!0})).catch((function(e){t.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:e.response.data.message}),n.isPaylinkAvailable=!0}))},getConfigValue:function(e){return this.config["BuckarooPayments.config.".concat(e)]},captureOrder:function(e){var t=this,n=this;n.isCapturePossible=!1,this.BuckarooPaymentService.captureOrder(e,this.transactionsToRefund,this.orderItems).then((function(e){e.status?t.createNotificationSuccess({title:n.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:n.$tc(e.message)+e.amount}):t.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.message)}),n.isCapturePossible=!0})).catch((function(e){t.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.response.data.message)}),n.isCapturePossible=!0}))}}});var b=n("rrrS"),g=n("HVem"),k=n("eFzU");Shopware.Module.register("buckaroo-payment",{type:"plugin",name:"BuckarooPayment",title:"buckaroo.general.title",description:"buckaroo.general.description",version:"1.0.0",targetVersion:"1.0.0",color:"#000000",icon:"default-action-settings",snippets:{"nl-NL":b,"de-DE":g,"en-GB":k},routeMiddleware:function(e,t){"sw.order.detail"===t.name&&t.children.push({component:"buckaroo-payment-detail",name:"buckaroo.payment.detail",isChildren:!0,path:"/sw/order/buckaroo/detail/:id"}),e(t)},routes:{index:{component:"buckaroo-settings",path:"index",meta:{parentPath:"sw.settings.index"}}}});n("Dl9r"),n("Ac08");function v(e){return(v="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 w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function _(e){for(var t=1;t\n {{$tc(\'buckaroo-payment.afterpay.setup\')}}\n
\n
\n \n
\n
\n',inject:["BuckarooPaymentSettingsService"],data:function(){return{taxes:[],showTaxes:!1,afterpayTaxes:[{name:this.$tc("buckaroo-payment.afterpay.hightTaxes"),id:1},{name:this.$tc("buckaroo-payment.afterpay.middleTaxes"),id:5},{name:this.$tc("buckaroo-payment.afterpay.lowTaxes"),id:2},{name:this.$tc("buckaroo-payment.afterpay.zeroTaxes"),id:3},{name:this.$tc("buckaroo-payment.afterpay.noTaxes"),id:4}],taxAssociation:{}}},model:{prop:"value",event:"change"},computed:{},props:{name:{type:String,required:!0,default:""},value:{type:Object,required:!1,default:function(){return{}}}},created:function(){var e=this;this.BuckarooPaymentSettingsService.getTaxes().then((function(t){e.taxes=t.taxes.map((function(e){return{id:e.id,name:e.name}}))}))},methods:{setTaxAssociation:function(e,t){this.taxAssociation[e]=t,this.$emit("change",_(_({},this.value),this.taxAssociation))},getSelectValue:function(e){if(this.value[e])return this.value[e]}}})},eFzU:function(e){e.exports=JSON.parse('{"buckaroo-payment":{"fee":"Buckaroo Fee","order":{"refundDescription":"Refund for order #orderNumber"},"general":{"title":"Buckaroo","description":"Buckaroo Payment"},"settingsForm":{"save":"Save","titleSuccess":"Success","titleError":"Error"},"supportModal":{"menuButton":"Version & Support","title":"Version & Support","support":{"description":"Before contacting Buckaroo technical support, please retrieve your (Merchant) key, Secret key, certificate and certificate thumbprint.","label1":"Buckaroo Payment Plaza:","label2":"Phone:","label3":"E-mail:","label4":"Website:","your_version":"Your PHP version:","version":"Version compatibility","information":"Information"}},"tabs":{"title":"Buckaroo Payment","overview":"Overview"},"paymentDetail":{"yourLink":"Your Paylink","paylinkButton":"Create paylink","paylinkDescription":"Create paylink for order","paylinkTitle":"Paylink","refundTitle":"Refund","transactionsTitle":"Transactions","amountTitle":"Amount","amountTotalTitle":"Grand total","amountRefundTotalTitle":"Refund Grand total","amountCustomRefundTitle":"Refund custom amount","buttonTitle":"Refund","successTitle":"Success","successMessage":"Buckaroo success refunded ","errorTitle":"Error","payTitle":"Capture payment","payDescription":"Capture and create invoice for order","payButton":"Capture payment"},"orderItems":{"title":"Items to Refund","types":{"id":"id","name":"Title","quantity":"Qty to Refund","totalAmount":"Subtotal"}},"transactionsToRefund":{"title":"Refund Totals"},"transactionHistory":{"types":{"id":"id","created_at":"Date/time","total":"Total","shipping_costs":"Shipping costs","total_excluding_vat":"Total excluding VAT","total_including_vat":"Total including VAT","vat":"VAT","transaction_key":"Transaction key","transaction_method":"Payment method","statuscode":"Status"}},"messageNotValid":"This field not valid.","messageNotBlank":"This field must not be empty.","button":{"labelTestApi":"Test connection"},"afterpay":{"setup":"Setup tax association for Riverty | AfterPay old ","hightTaxes":"High VAT taxes","middleTaxes":"Middle VAT taxes","lowTaxes":"Low VAT taxes","zeroTaxes":"Zero VAT","noTaxes":"No VAT tax"},"paymentInTestMode":"The payment for this order was made in test mode","refund":{"not_supported":"Refund is not supported","already_refunded":"This order is already refunded","refunded_amount":"Buckaroo success refunded"},"capture":{"invalid_amount":"Amount is not valid","capture_not_supported":"Capture is not supported","already_captured":"This order is already captured","captured_amount":"Successfully captured amount","general_capture_error":"Unfortunately an error occurred while processing your capture. Please try again."},"test_api":{"connection_ready":"Connection ready","connection_failed":"Connection failed"},"paylink":{"invalid_amount":"Amount is not valid","pay_link":"Your Paylink:"},"missing_order_id":"Missing order orderId","missing_transaction":"Order transaction not found","general_request_error":"Unfortunately an error occurred while processing your request. Please try again."}}')},k844:function(e,t,n){var a=n("SAkL");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("ydqr").default)("721e98ec",a,!0,{})},rrrS:function(e){e.exports=JSON.parse('{"buckaroo-payment":{"fee":"Buckaroo Vergoeding","order":{"refundDescription":"Terugbetaling voor bestelling #orderNumber"},"general":{"title":"Buckaroo","description":"Buckaroo Payment"},"settingsForm":{"save":"Opslaan","titleSuccess":"Succes","titleError":"Fout"},"supportModal":{"menuButton":"Ondersteuning van de versie","title":"Ondersteuning van de versie","support":{"description":"Voordat u contact opneemt met Buckaroo technische ondersteuning, kunt u uw (Merchant) sleutel, geheime sleutel, certificaat en certificaat duimafdruk ophalen.","label1":"Buckaroo Payment Plaza:","label2":"Telefoon:","label3":"E-mail:","label4":"Website:","your_version":"Uw PHP versie:","version":"Verenigbaarheid van versie","information":"Informatie"}},"tabs":{"title":"Buckaroo Payment","overview":"Overzicht"},"paymentDetail":{"refundTitle":"Refund","transactionsTitle":"Transacties","amountTitle":"Bedrag","amountTotalTitle":"Algemeen totaal","amountRefundTotalTitle":"Eindtotaal totaal","amountCustomRefundTitle":"Aangepast bedrag terugbetalen","buttonTitle":"Restitutie","successTitle":"Succes","successMessage":"Buckaroo-succes terugbetaald ","errorTitle":"Fout","payTitle":"Capture betaling","payDescription":"Capture en maak factuur voor order","payButton":"Capture betaling"},"orderItems":{"title":"Te restitueren items","types":{"id":"id","name":"Titel","quantity":"Aantal terugbetalen","totalAmount":"Subtotaal"}},"transactionsToRefund":{"title":"Totalen terugbetalen"},"transactionHistory":{"types":{"id":"id","created_at":"Datum / tijd","total":"Total","shipping_costs":"Verzendkosten","total_excluding_vat":"Totaal exclusief VAT","total_including_vat":"Totaal inclusief VAT","vat":"VAT","transaction_key":"Transactiesleutel","transaction_method":"Betaalmethode","statuscode":"Toestand"}},"messageNotValid":"Dit veld is niet geldig.","messageNotBlank":"Dit veld mag niet leeg zijn.","button":{"labelTestApi":"Test verbinding"},"paymentInTestMode":"The payment for this order was made in test mode","refund":{"not_supported":"Refund is not supported","already_refunded":"This order is already refunded","refunded_amount":"Buckaroo success refunded"},"capture":{"invalid_amount":"Amount is not valid","capture_not_supported":"Capture is not supported","already_captured":"This order is already captured","captured_amount":"Successfully captured amount","general_capture_error":"Unfortunately an error occurred while processing your capture. Please try again."},"test_api":{"connection_ready":"Connection ready","connection_failed":"Connection failed"},"paylink":{"invalid_amount":"Amount is not valid","pay_link":"Your Paylink:"},"missing_order_id":"Missing order orderId","missing_transaction":"Order transaction not found","general_request_error":"Unfortunately an error occurred while processing your request. Please try again."}}')},ydqr:function(e,t,n){"use strict";function a(e,t){for(var n=[],a={},o=0;on.parts.length&&(a.parts.length=n.parts.length)}else{var i=[];for(o=0;on.parts.length&&(a.parts.length=n.parts.length)}else{var i=[];for(o=0;o2&&void 0!==arguments[2]?arguments[2]:"buckaroo";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"getSupportVersion",value:function(){var e="_action/".concat(this.getApiBasePath(),"/version");return this.httpClient.post(e,{},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"getTaxes",value:function(){var e="_action/".concat(this.getApiBasePath(),"/taxes");return this.httpClient.post(e,{},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"getApiTest",value:function(e,t,n){var a="_action/".concat(this.getApiBasePath(),"/getBuckarooApiTest");return this.httpClient.post(a,{websiteKeyId:e,secretKeyId:t,saleChannelId:n},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&o(t.prototype,n),s&&o(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(u);l.addServiceProvider("BuckarooPaymentSettingsService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},as8o:function(e,t,n){},"jA+u":function(e,t,n){},rWDw:function(e,t){function n(e){return(n="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,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var a=0;a2&&void 0!==arguments[2]?arguments[2]:"buckaroo";return a(this,l),c.call(this,e,t,n)}return t=l,(n=[{key:"getBuckarooTransaction",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/getBuckarooTransaction");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"refundPayment",value:function(e,t,n,a){var o="_action/".concat(this.getApiBasePath(),"/refund");return this.httpClient.post(o,{transaction:e,transactionsToRefund:t,orderItems:n,customRefundAmount:a},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"captureOrder",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/capture");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}},{key:"createPaylink",value:function(e){var t="_action/".concat(this.getApiBasePath(),"/paylink");return this.httpClient.post(t,{transaction:e},{headers:this.getBasicHeaders()}).then((function(e){return u.handleResponse(e)}))}}])&&o(t.prototype,n),s&&o(t,s),Object.defineProperty(t,"prototype",{writable:!1}),l}(u);l.addServiceProvider("BuckarooPaymentService",(function(e){var t=l.getContainer("init");return new d(t.httpClient,e.loginService)}))},tfhk:function(e,t,n){var a=n("as8o");a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[e.i,a,""]]),a.locals&&(e.exports=a.locals);(0,n("P8hj").default)("4859312a",a,!0,{})},unXS:function(e,t,n){"use strict";n.r(t);n("V1U6");var a=Shopware,o=a.Component,r=a.Mixin;o.register("buckaroo-settings",{template:'{% block buckaroo_payment %}\n\n {% block buckaroo_payment_header %}\n \n {% endblock %}\n\n {% block buckaroo_payment_actions %}\n \n {% endblock %}\n\n {% block buckaroo_payment_settings_content %}\n \n {% endblock %}\n\n{% endblock %}\n',mixins:[r.getByName("notification"),r.getByName("sw-inline-snippet")],inject:["BuckarooPaymentSettingsService"],data:function(){return{isLoading:!1,isSaveSuccessful:!1,config:{},websiteKeyIdFilled:!1,secretKeyIdFilled:!1,showValidationErrors:!1,phpversion:!1,supportMessage:!1,isSupportModalOpen:!1,isSupportMessageModalOpen:!1,isPhpVersionSupport:!1,collapsibleState:{websiteKey:!0,secretKey:!0,guid:!0,transactionLabel:!0,refundLabel:!0,creditcardEnabled:!0,creditcardsEnabled:!0,idealEnabled:!0,idealprocessingEnabled:!0,belfiusEnabled:!0,bancontactmrcashEnabled:!0,afterpayEnabled:!0,BillinkEnabled:!0,sofortueberweisungEnabled:!0,paypalEnabled:!0,transferEnabled:!0,giropayEnabled:!0,KBCPaymentButtonEnabled:!0,sepadirectdebitEnabled:!0,payconiqEnabled:!0,applepayEnabled:!0,giftcardsEnabled:!0,capayableEnabled:!0,epsEnabled:!0,Przelewy24Enabled:!0,AlipayEnabled:!0,WeChatPayEnabled:!0,TrustlyEnabled:!0,klarnaEnabled:!0,klarnainEnabled:!0,klarnakpEnabled:!0,advancedConfiguration:!0,BillinkCreateInvoiceAfterShipment:!0,payperemailEnabled:!0},collapsibleAdvancedState:{paylinkEnabled:!0,sendInvoiceEmail:!0,paymentSuccesStatus:!0,orderStatus:!0}}},created:function(){var e=this;this.createdComponent(),this.BuckarooPaymentSettingsService.getSupportVersion().then((function(t){e.phpversion=t.phpversion,e.isPhpVersionSupport=t.isPhpVersionSupport}))},computed:{credentialsMissing:function(){return!this.websiteKeyIdFilled||!this.secretKeyIdFilled}},metaInfo:function(){return{title:this.$createTitle()}},methods:{sendTestApi:function(){var e=this,t=this,n=this.getConfigValue("websiteKey"),a=this.getConfigValue("secretKey"),o=this.$refs.systemConfig.currentSalesChannelId;this.BuckarooPaymentSettingsService.getApiTest(n,a,o).then((function(n){"success"==n.status?e.createNotificationSuccess({title:t.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:t.$tc(n.message)}):e.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:t.$tc(n.message)})}))},getCardConfig:function(e,t){return t.elements.forEach((function(t){if(t.name==e.name)return t.config})),!1},showLabel:function(e,t){return"single-select"==e.type||"multi-select"==e.type},showHelpText:function(e,t){return!(!this.showLabel(e,t)||!this.getCardInfo(e,t,"helpText"))},showButtonAfter:function(e,t){var n="advancedConfiguration";return null!=t["BuckarooPayments.config.advancedConfiguration"]&&t["BuckarooPayments.config.advancedConfiguration"]&&(n="orderStatus"),!!e.name.includes(n)},getLocale:function(e){var t=window.localStorage.getItem("sw-admin-locale");return null==t&&(t="en-GB"),null!=e[t]?e[t]:e["en-GB"]},getCardInfo:function(e,t,n){var a=this,o="";return t.elements.forEach((function(t){if(t.name==e.name&&null!=t.config)switch(n){case"label":o=null!=t.config.label?a.getLocale(t.config.label):"";break;case"helpText":o=null!=t.config.helpText?a.getLocale(t.config.helpText):""}})),o},createdComponent:function(){},saveFinish:function(){this.isSaveSuccessful=!1},onConfigChange:function(e){this.config=e,this.checkCredentialsFilled(),this.showValidationErrors=!1},checkCredentialsFilled:function(){this.websiteKeyIdFilled=!!this.getConfigValue("websiteKey"),this.secretKeyIdFilled=!!this.getConfigValue("secretKey")},validateWebsiteKey:function(){return!(this.getConfigValue("websiteKey").length<10||this.getConfigValue("websiteKey").length>10)},validateSecretKey:function(){return!(this.getConfigValue("secretKey").length<5||this.getConfigValue("secretKey").length>50)},getConfigValue:function(e){var t=this.$refs.systemConfig.actualConfigData.null;return null===this.$refs.systemConfig.currentSalesChannelId?this.config["BuckarooPayments.config.".concat(e)]:this.config["BuckarooPayments.config.".concat(e)]||t["BuckarooPayments.config.".concat(e)]},getPaymentConfigValue:function(e,t){var n=e.charAt(0).toUpperCase()+e.slice(1);return this.getConfigValue(t+n)||this.getConfigValue(e)},onSave:function(){var e=this;this.credentialsMissing?this.showValidationErrors=!0:this.validateWebsiteKey()&&this.validateSecretKey()?(this.isSaveSuccessful=!1,this.isLoading=!0,this.$refs.systemConfig.saveAll().then((function(){e.isLoading=!1,e.isSaveSuccessful=!0})).catch((function(){e.isLoading=!1}))):this.showValidationErrors=!0},displayField:function(e,t){var n=e.name.replace("BuckarooPayments.config.","");if(n in this.collapsibleState)return!0;if(n in this.collapsibleAdvancedState&&null!=t["BuckarooPayments.config.advancedConfiguration"]&&t["BuckarooPayments.config.advancedConfiguration"])return!0;var a=n;return(n=n.split(/([A-Z][a-z]+)/).filter((function(e){return e}))).pop(),null!=t["BuckarooPayments.config."+(n=n.join(""))+"Enabled"]&&t["BuckarooPayments.config."+n+"Enabled"]?"capayableLogo"!==a||(void 0===t["BuckarooPayments.config.capayableVersion"]||"v3"===t["BuckarooPayments.config.capayableVersion"]):!("allowedcreditcard"!=a||null==t["BuckarooPayments.config.creditcardEnabled"]||!t["BuckarooPayments.config.creditcardEnabled"])||(!("allowedcreditcards"!=a||null==t["BuckarooPayments.config.creditcardsEnabled"]||!t["BuckarooPayments.config.creditcardsEnabled"])||(!("allowedgiftcards"!=a||null==t["BuckarooPayments.config.giftcardsEnabled"]||!t["BuckarooPayments.config.giftcardsEnabled"])||(!("applepayShowProduct"!=a&&"applepayShowCart"!=a||null==t["BuckarooPayments.config.applepayEnabled"]||!t["BuckarooPayments.config.applepayEnabled"])||(!("idealRenderMode"!=a||null==t["BuckarooPayments.config.idealRenderMode"]||!t["BuckarooPayments.config.idealEnabled"])||(!("transferSendEmail"!=a&&"transferDateDue"!=a||null==t["BuckarooPayments.config.transferEnabled"]||!t["BuckarooPayments.config.transferEnabled"])||(!("afterpayCustomerType"!=a||null==t["BuckarooPayments.config.afterpayEnabled"]||!t["BuckarooPayments.config.afterpayEnabled"])||!("afterpayB2bMinAmount"!=a&&"afterpayB2bMaxAmount"!=a||!t["BuckarooPayments.config.afterpayEnabled"]||null==t["BuckarooPayments.config.afterpayCustomerType"]||"b2c"==t["BuckarooPayments.config.afterpayCustomerType"])))))))},getBind:function(e,t){return t!==this.config&&this.onConfigChange(t),this.showValidationErrors&&("BuckarooPayments.config.websiteKey"!==e.name||this.websiteKeyIdFilled||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotBlank")}),"BuckarooPayments.config.secretKey"!==e.name||this.secretKeyIdFilled||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotBlank")}),"BuckarooPayments.config.websiteKey"!==e.name||this.validateWebsiteKey()||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotValid")}),"BuckarooPayments.config.secretKey"!==e.name||this.validateSecretKey()||(e.config.error={code:1,detail:this.$tc("buckaroo-payment.messageNotValid")})),e}}});var i=Shopware,s=i.Component,c=i.Context,l=Shopware.Data.Criteria;s.override("sw-order-detail",{template:'{% block sw_order_detail_content_tabs %}\n \n
\n

{{ $tc(\'buckaroo-payment.paymentInTestMode\') }}

\n \n {% parent %}\n{% endblock %}\n\n\n{% block sw_order_detail_content_tabs_general %}\n {% parent %}\n\n \n {{ $tc(\'buckaroo-payment.tabs.title\') }}\n \n \n{% endblock %}\n\n{% block sw_order_detail_actions %}\n \n {% parent %}\n{% endblock %}',data:function(){return{isBuckarooPayment:!1,isPaymentInTestMode:!1}},computed:{isEditable:function(){return!this.isBuckarooPayment||"buckaroo.payment.detail"!==this.$route.name},showTabs:function(){return!0}},watch:{orderId:{deep:!0,handler:function(){var e=this;if(this.orderId){var t=this.repositoryFactory.create("order"),n=new l(1,1);n.addAssociation("transactions"),t.get(this.orderId,c.api,n).then((function(t){if(e.setPaymentInTestMode(t),t.transactions.length<=0||!t.transactions.last().paymentMethodId)e.setIsBuckarooPayment(null);else{var n=t.transactions.last().paymentMethodId;null!=n&&e.setIsBuckarooPayment(n)}}))}else this.setIsBuckarooPayment(null)},immediate:!0}},methods:{setPaymentInTestMode:function(e){e.customFields&&e.customFields.buckaroo_payment_in_test_mode&&(this.isPaymentInTestMode=!0===e.customFields.buckaroo_payment_in_test_mode)},setIsBuckarooPayment:function(e){var t=this;e&&this.repositoryFactory.create("payment_method").get(e,c.api).then((function(e){t.isBuckarooPayment=e.formattedHandlerIdentifier.indexOf("buckaroo")>=0}))}}});n("6Dsi");Shopware.Component.override("sw-settings-index",{template:'{% block sw_settings_content_card_slot_plugins %}\n {% parent %}\n\n \n \n \n{% endblock %}\n'});var u=Shopware,d=u.Component;u.Context,Shopware.Data.Criteria;d.override("sw-order-detail-base",{template:'{% block sw_order_detail_base_line_items_summary %}\n\n \n \n \n
{{ $tc(\'buckaroo-payment.fee\') }}
\n
{{ order.customFields.buckarooFee }}\n {% if order.currency.isoCode == "PLN" %}\n PLN\n {% else %}\n {{ order.currency.symbol }}\n {% endif %}\n
\n
\n
\n
\n\n {% parent %}\n \n{% endblock %}'});Shopware.Component.override("sw-order-user-card",{template:"{% block sw_order_detail_base_secondary_info_payment %}\n \n \n{% endblock %}\n\n",inject:["systemConfigApiService"],data:function(){return{config:{}}},created:function(){var e=this;this.systemConfigApiService.getValues("BuckarooPayments.config",null).then((function(t){e.config=t})).finally((function(){}))}});n("tfhk");var p=Shopware,m=p.Component,f=p.Mixin,y=(p.Filter,p.Context),b=Shopware.Data.Criteria;m.register("buckaroo-payment-detail",{template:'{% block buckaroo_payment_detail %}\n
\n \n \n\n {{ $tc(\'buckaroo-payment.paymentDetail.paylinkDescription\') }}\n \n
\n {{ $tc(\'buckaroo-payment.paymentDetail.yourLink\') }}: {{ paylink }}\n
\n\n \n
\n \n \n {{ $tc(\'buckaroo-payment.paymentDetail.paylinkButton\') }}\n
\n
\n
\n\n
\n\n \n \n {{ $tc(\'buckaroo-payment.orderItems.title\') }}\n \n\n \n\n \n\n \n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountTotalTitle\') }}:
\n
{{ buckaroo_refund_amount }} {{ currency }}
\n
\n
\n \n \n \n \n
\n
{{ $tc(\'buckaroo-payment.transactionsToRefund.title\') }}
\n
\n
\n\n \n\n \n\n \n\n \n\n \n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountCustomRefundTitle\') }}:
\n
\n \n {{ currency }}\n
\n
\n \n
{{ $tc(\'buckaroo-payment.paymentDetail.amountRefundTotalTitle\') }}:
\n
{{ buckaroo_refund_total_amount }} {{ currency }}
\n
\n
\n \n
\n\n \n
\n \n {{ $tc(\'buckaroo-payment.paymentDetail.buttonTitle\') }}\n
\n
\n
\n\n
\n\n \n\n {{ $tc(\'buckaroo-payment.paymentDetail.payDescription\') }}\n\n \n
\n \n {{ $tc(\'buckaroo-payment.paymentDetail.payButton\') }}\n
\n
\n
\n\n
\n\n \n \n\n \n\n \n \n\n\n \n \n
\n{% endblock %}',inject:["repositoryFactory","BuckarooPaymentService","systemConfigApiService"],mixins:[f.getByName("notification")],data:function(){return{config:{},buckaroo_refund_amount:"0",buckaroo_refund_total_amount:"0",currency:"EUR",isRefundPossible:!0,isCapturePossible:!1,isPaylinkAvailable:!1,isPaylinkVisible:!1,paylinkMessage:"",paylink:"",isLoading:!1,order:!1,buckarooFee:!1,buckarooTransactions:null,orderItems:[],transactionsToRefund:[],relatedResources:[],isAllowedCustomRefund:!0}},computed:{orderItemsColumns:function(){return[{property:"name",label:this.$tc("buckaroo-payment.orderItems.types.name"),rawData:!0},{property:"quantity",label:this.$tc("buckaroo-payment.orderItems.types.quantity"),rawData:!0},{property:"totalAmount",label:this.$tc("buckaroo-payment.orderItems.types.totalAmount"),rawData:!0}]},transactionsToRefundColumns:function(){return[{property:"transaction_method",rawData:!0},{property:"amount",rawData:!0}]},relatedResourceColumns:function(){return[{property:"created_at",label:this.$tc("buckaroo-payment.transactionHistory.types.created_at"),rawData:!0},{property:"total",label:this.$tc("buckaroo-payment.transactionHistory.types.total"),rawData:!0},{property:"shipping_costs",label:this.$tc("buckaroo-payment.transactionHistory.types.shipping_costs"),rawData:!0},{property:"total_excluding_vat",label:this.$tc("buckaroo-payment.transactionHistory.types.total_excluding_vat"),rawData:!0},{property:"vat",label:this.$tc("buckaroo-payment.transactionHistory.types.vat"),rawData:!0},{property:"transaction_key",label:this.$tc("buckaroo-payment.transactionHistory.types.transaction_key"),rawData:!0},{property:"transaction_method",label:this.$tc("buckaroo-payment.transactionHistory.types.transaction_method"),rawData:!0},{property:"statuscode",label:this.$tc("buckaroo-payment.transactionHistory.types.statuscode"),rawData:!0}]}},created:function(){this.createdComponent()},methods:{recalculateOrderItems:function(){for(var e in this.buckaroo_refund_amount=0,this.orderItems)this.orderItems[e].totalAmount=parseFloat(parseFloat(this.orderItems[e].unitPrice)*parseFloat(this.orderItems[e].quantity||0)).toFixed(2),this.buckaroo_refund_amount=parseFloat(parseFloat(this.buckaroo_refund_amount)+parseFloat(this.orderItems[e].totalAmount)).toFixed(2)},recalculateRefundItems:function(){for(var e in this.buckaroo_refund_total_amount=0,this.transactionsToRefund)this.transactionsToRefund[e].amount&&(this.buckaroo_refund_total_amount=parseFloat(parseFloat(this.buckaroo_refund_total_amount)+parseFloat(this.transactionsToRefund[e].amount)).toFixed(2))},getCustomRefundEnabledEl:function(){return document.getElementById("buckaroo_custom_refund_enabled")},getCustomRefundAmountEl:function(){return document.getElementById("buckaroo_custom_refund_amount")},toggleCustomRefund:function(){this.getCustomRefundEnabledEl()&&this.getCustomRefundAmountEl()&&(this.getCustomRefundAmountEl().disabled=!this.getCustomRefundEnabledEl().checked)},getCustomRefundAmount:function(){return this.getCustomRefundEnabledEl()&&this.getCustomRefundAmountEl()&&this.getCustomRefundEnabledEl().checked?this.getCustomRefundAmountEl().value:0},createdComponent:function(){var e=this,t=this,n=this.$route.params.id;this.systemConfigApiService.getValues("BuckarooPayments.config",null).then((function(t){e.config=t}));var a=this.repositoryFactory.create("order"),o=new b(1,1);this.orderId=n,o.addAssociation("transactions.paymentMethod").addAssociation("transactions"),o.getAssociation("transactions").addSorting(b.sort("createdAt")),a.get(n,y.api,o).then((function(n){null!=n.customFields&&null!=n.customFields.buckarooFee&&(e.buckarooFee=n.customFields.buckarooFee),t.isCapturePossible=n.transactions&&n.transactions.last().paymentMethod&&n.transactions.last().paymentMethod.customFields&&n.transactions.last().paymentMethod.customFields.buckaroo_key&&["klarnakp","billink"].includes(n.transactions.last().paymentMethod.customFields.buckaroo_key.toLowerCase()),t.isPaylinkVisible=t.isPaylinkAvailable=e.getConfigValue("paylinkEnabled")&&n.stateMachineState&&n.stateMachineState.technicalName&&"open"==n.stateMachineState.technicalName&&n.transactions&&"open"==n.transactions.last().stateMachineState.technicalName})),this.BuckarooPaymentService.getBuckarooTransaction(n).then((function(n){e.$emit("loading-change",!1),n.orderItems.forEach((function(e){t.orderItems.push({id:e.id,name:e.name,quantity:e.quantity,quantityMax:e.quantity,unitPrice:e.unitPrice.value,totalAmount:e.totalAmount.value})})),t.recalculateOrderItems(),n.transactionsToRefund.forEach((function(e){["afterpay","Billink","klarnakp"].includes(e.transaction_method)&&(t.isAllowedCustomRefund=!1),t.transactionsToRefund.push({id:e.id,transactions:e.transactions,amount:e.total,amountMax:e.total,currency:e.currency,transaction_method:e.transaction_method,logo:e.transaction_method?e.logo:null}),t.currency=e.currency})),t.recalculateRefundItems(),n.transactions.forEach((function(e){t.relatedResources.push({id:e.id,transaction_key:e.transaction,total:e.total,total_excluding_vat:e.total_excluding_vat,shipping_costs:e.shipping_costs,vat:e.vat,transaction_method:e.transaction_method,logo:e.transaction_method?e.logo:null,created_at:e.created_at,statuscode:e.statuscode})}))})).catch((function(e){console.log("errorResponse",e)}))},refundOrder:function(e,t){var n=this,a=this;a.isRefundPossible=!1,this.BuckarooPaymentService.refundPayment(e,this.transactionsToRefund,this.orderItems,this.getCustomRefundAmount()).then((function(e){for(var t in e)e[t].status?n.createNotificationSuccess({title:a.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:a.$tc(e[t].message)+e[t].amount}):n.createNotificationError({title:a.$tc("buckaroo-payment.settingsForm.titleError"),message:a.$tc(e[t].message)});a.isRefundPossible=!0})).catch((function(e){n.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:e.response.data.message}),a.isRefundPossible=!0}))},createPaylink:function(e){var t=this,n=this;n.isPaylinkAvailable=!1,this.BuckarooPaymentService.createPaylink(e,this.transactionsToRefund,this.orderItems).then((function(e){e.status?(n.paylinkMessage=n.$tc(e.message)+e.paylinkhref,n.paylink=e.paylink,t.createNotificationSuccess({title:n.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:n.paylinkMessage})):t.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.message)}),n.isPaylinkAvailable=!0})).catch((function(e){t.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:e.response.data.message}),n.isPaylinkAvailable=!0}))},getConfigValue:function(e){return this.config["BuckarooPayments.config.".concat(e)]},captureOrder:function(e){var t=this,n=this;n.isCapturePossible=!1,this.BuckarooPaymentService.captureOrder(e,this.transactionsToRefund,this.orderItems).then((function(e){e.status?t.createNotificationSuccess({title:n.$tc("buckaroo-payment.settingsForm.titleSuccess"),message:n.$tc(e.message)+e.amount}):t.createNotificationError({title:n.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.message)}),n.isCapturePossible=!0})).catch((function(e){t.createNotificationError({title:t.$tc("buckaroo-payment.settingsForm.titleError"),message:n.$tc(e.response.data.message)}),n.isCapturePossible=!0}))}}});var h=n("LgLT"),g=n("VI1O"),k=n("C41O");Shopware.Module.register("buckaroo-payment",{type:"plugin",name:"BuckarooPayment",title:"buckaroo.general.title",description:"buckaroo.general.description",version:"1.0.0",targetVersion:"1.0.0",color:"#000000",icon:"default-action-settings",snippets:{"nl-NL":h,"de-DE":g,"en-GB":k},routeMiddleware:function(e,t){"sw.order.detail"===t.name&&t.children.push({component:"buckaroo-payment-detail",name:"buckaroo.payment.detail",isChildren:!0,path:"/sw/order/buckaroo/detail/:id"}),e(t)},routes:{index:{component:"buckaroo-settings",path:"index",meta:{parentPath:"sw.settings.index"}}}});n("rWDw"),n("WCCb");function v(e){return(v="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 w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function _(e){for(var t=1;t\n {{$tc(\'buckaroo-payment.afterpay.setup\')}}\n
\n
\n \n
\n
\n',inject:["BuckarooPaymentSettingsService"],data:function(){return{taxes:[],showTaxes:!1,afterpayTaxes:[{name:this.$tc("buckaroo-payment.afterpay.hightTaxes"),id:1},{name:this.$tc("buckaroo-payment.afterpay.middleTaxes"),id:5},{name:this.$tc("buckaroo-payment.afterpay.lowTaxes"),id:2},{name:this.$tc("buckaroo-payment.afterpay.zeroTaxes"),id:3},{name:this.$tc("buckaroo-payment.afterpay.noTaxes"),id:4}],taxAssociation:{}}},model:{prop:"value",event:"change"},computed:{},props:{name:{type:String,required:!0,default:""},value:{type:Object,required:!1,default:function(){return{}}}},created:function(){var e=this;this.BuckarooPaymentSettingsService.getTaxes().then((function(t){e.taxes=t.taxes.map((function(e){return{id:e.id,name:e.name}}))}))},methods:{setTaxAssociation:function(e,t){this.taxAssociation[e]=t,this.$emit("change",_(_({},this.value),this.taxAssociation))},getSelectValue:function(e){if(this.value[e])return this.value[e]}}})}}); \ No newline at end of file diff --git a/src/Service/RefundService.php b/src/Service/RefundService.php index 31966e00..7083c3c9 100644 --- a/src/Service/RefundService.php +++ b/src/Service/RefundService.php @@ -52,22 +52,12 @@ public function __construct( $this->clientService = $clientService; } - /** - * Do a buckaroo refund request - * - * @param Request $request - * @param OrderEntity $order - * @param Context $context - * @param array $transaction - * - * @return array|null - */ - public function refund( + public function refundAll( Request $request, OrderEntity $order, Context $context, - array $transaction - ): ?array { + array $transactionsToRefund + ) { if (!$this->transactionService->isBuckarooPaymentMethod($order)) { return null; } @@ -84,16 +74,71 @@ public function refund( $validationErrors = $this->validate($order, $customFields); if ($validationErrors !== null) { - return $validationErrors; + return [$validationErrors]; } - $amount = $this->determineAmount( + $amountRemaining = $this->getMaxAmount( $orderItems, $request->get('customRefundAmount'), - $transaction['amount'], $configCode ); + $responses = []; + foreach ($transactionsToRefund as $item) { + + if ($amountRemaining <= 0) { + break; + } + + if (is_array($item) && isset($item['amount']) && is_scalar($item['amount'])) { + $amount = $item['amount']; + + $diff = $amountRemaining - $amount; + + if ($diff < 0) { + $amount = $amountRemaining; + $amountRemaining = 0; + } else { + $amountRemaining = round($diff, 2); + } + + $responses[] = $this->refund( + $request, + $order, + $context, + $item, + $amount, + $configCode, + $orderItems + ); + } + } + + return $responses; + } + + /** + * Do a buckaroo refund request + * + * @param Request $request + * @param OrderEntity $order + * @param Context $context + * @param array $transaction + * + * @return array|null + */ + public function refund( + Request $request, + OrderEntity $order, + Context $context, + array $transaction, + float $amount, + string $configCode, + array $orderItems + ): ?array { + + + if ($amount <= 0) { return []; } @@ -423,27 +468,21 @@ private function getIp(Request $request): array ]; } - /** - * + /* * * @param array $orderItems * @param mixed $customRefundAmount - * @param mixed $transactionAmount * @param string $paymentCode * * @return float */ - public function determineAmount( + public function getMaxAmount( array $orderItems, $customRefundAmount, - $transactionAmount, string $paymentCode ): float { $amount = 0; - if ( - is_scalar($customRefundAmount) && - (float)$customRefundAmount > 0 && - !in_array($paymentCode, ['afterpay', 'Billink', 'klarnakp']) - ) { + + if ($this->isCustomRefundAmount($customRefundAmount, $paymentCode)) { $amount = (float)$customRefundAmount; } else { if (!empty($orderItems) && is_array($orderItems)) { @@ -453,18 +492,27 @@ public function determineAmount( } } } - - if (is_scalar($transactionAmount) && $amount > (float)$transactionAmount) { - $amount = (float)$transactionAmount; - } - } - - if ($amount <= 0 && is_scalar($transactionAmount)) { - $amount = (float)$transactionAmount; //backward compatibility only or in case no $orderItems was passed } return $amount; } + + + /** + * Is custom refund amount + * + * @param mixed $customRefundAmount + * @param string $paymentCode + * + * @return boolean + */ + private function isCustomRefundAmount($customRefundAmount, string $paymentCode) + { + return is_scalar($customRefundAmount) && + (float)$customRefundAmount > 0 && + !in_array($paymentCode, ['afterpay', 'Billink', 'klarnakp']); + } + /** * @param array $customFields * diff --git a/src/Storefront/Controller/RefundController.php b/src/Storefront/Controller/RefundController.php index 78eb899f..69d423af 100644 --- a/src/Storefront/Controller/RefundController.php +++ b/src/Storefront/Controller/RefundController.php @@ -77,16 +77,12 @@ public function refundBuckaroo(Request $request, Context $context): JsonResponse $responses = []; if (is_array($transactionsToRefund)) { - foreach ($transactionsToRefund as $item) { - if (is_array($item)) { - $responses[] = $this->refundService->refund( - $request, - $order, - $context, - $item, - ); - } - } + $responses = $this->refundService->refundAll( + $request, + $order, + $context, + $transactionsToRefund, + ); } return new JsonResponse($responses); } catch (\Exception $exception) { diff --git a/src/Subscribers/CheckoutConfirmTemplateSubscriber.php b/src/Subscribers/CheckoutConfirmTemplateSubscriber.php index 2c2bf951..417e2c8a 100644 --- a/src/Subscribers/CheckoutConfirmTemplateSubscriber.php +++ b/src/Subscribers/CheckoutConfirmTemplateSubscriber.php @@ -185,10 +185,6 @@ public function hideNotEnabledPaymentMethods($event): void if ($buckarooKey === 'afterpay' && !$this->canShowAfterpay($event)) { $paymentMethods = $this->removePaymentMethod($paymentMethods, $paymentMethod->getId()); } - - if ($buckarooKey === 'afterpay' && !$this->canShowAfterpay($event)) { - $paymentMethods = $this->removePaymentMethod($paymentMethods, $paymentMethod->getId()); - } } } $event->getPage()->setPaymentMethods($paymentMethods);