Giter Site home page Giter Site logo

shopware's Introduction

Minimum PHP Version Build Status GitHub release (latest by date) GitHub commits since latest release (by date)

Introduction

Mollie offers various payment methods which can be easily integrated into your Shopware-powered webshop by using our official plugin. Mollie accepts all major payment methods such as Visa, Mastercard, American Express, PayPal, Apple Pay, iDEAL, SOFORT Banking, SEPA Bank Transfer, SEPA Direct Debit, KBC/CBC Payment Button, Bancontact, Billie, Belfius Pay Button, paysafecard, CartaSi, Cartes Bancaires and Gift cards

  1. Installation is easy.
  2. Go to Mollie to create a Mollie account
  3. Download our plugin in the Shopware Store or in the Plugin Manager in your Shopware Backend
  4. Activate the plugin, add your Mollie API key and import your available payment methods Get your API Key from your Mollie Dashboard

Once the onboarding process in your Mollie account is completed, start accepting payments. You’ll usually be up and running within one working day.

Manual Installation

There are 2 ways of installing the plugin manually:

Please note, that only stable and official releases are tested on our side. There's no guarantee or warranty for pre-releases or selfmade versions from commits.

Full Documentation

We have a full documentation about the installation, configuration, payment methods as well as troubleshooting and more.

The documentation can be found on our Wiki page!

shopware's People

Contributors

alphanyx avatar barbieswimcrew avatar blackscorp avatar boxblinkracer avatar dependabot[bot] avatar fjbender avatar iamreinder avatar kienernl avatar kleinmann avatar migo315 avatar milan-kiener avatar ndijkstra avatar peter-bztrs avatar resslinger avatar sironheart avatar stephanaltmann85 avatar thijs-riezebeek avatar thlind avatar vernondegoede avatar vrielsa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shopware's Issues

Shopware6 - Invalid API key: '' - but key is stored

As you can see the key is stored - tryed test and live mode - same error as bellow

image
(Key is replaced with white bar...)

This following error happened when use a Mollie Payment method at executing the checkout

[2020-03-24 14:12:55] app.ERROR: Invalid API key: ''. An API key must start with 'test_' or 'live_' and must be at least 30 characters long. ["[object] (Mollie\Api\Exceptions\ApiException(code: 0): Invalid API key: ''. An API key must start with 'test_' or 'live_' and must be at least 30 characters long. at /var/www/vhosts/h12.net/httpdocs/shopware6/custom/plugins/MolliePayments/vendor/mollie/mollie-api-php/src/MollieApiClient.php:339)"] []
[2020-03-24 14:12:56] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /undefined&bdata=et%3DCLIENT_IMPRESSION%26event_type%3Dstats%26integration_type%3DSDK%26messaging_version%3D1.7.4%26placement%3D%26pos_x%3D750%26pos_y%3D770%26browser_width%3D1920%26browser_height%3D947%26visible%3Dtrue%26amount%3D0%26client_id%3DARM-rfa8IOJ_RcF6NEYiDPO63VITnF5jldiTdaTeM_3vBtAXfV2ot10GOxO-QAtk_cc2-tyU3zo0xatF%26adblock%3Dtrue%26blocked%3Dfalse%26message_request_id%3Dundefined-1%26uuid%3DNI%3A%3Alayout%3Atext%3A%3Alogo.position%3Aleft%3A%3Alogo.type%3Aprimary%3A%3Atext.color%3Ablack%3A%3Atext.size%3A12" (from "http://www.my-shop.at/")" at /var/www/vhosts/h12.net/httpdocs/shopware6/vendor/symfony/http-kernel/EventListener/RouterListener.php line 136 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for "GET /undefined&bdata=et%3DCLIENT_IMPRESSION%26event_type%3Dstats%26integration_type%3DSDK%26messaging_version%3D1.7.4%26placement%3D%26pos_x%3D750%26pos_y%3D770%26browser_width%3D1920%26browser_height%3D947%26visible%3Dtrue%26amount%3D0%26client_id%3DARM-rfa8IOJ_RcF6NEYiDPO63VITnF5jldiTdaTeM_3vBtAXfV2ot10GOxO-QAtk_cc2-tyU3zo0xatF%26adblock%3Dtrue%26blocked%3Dfalse%26message_request_id%3Dundefined-1%26uuid%3DNI%3A%3Alayout%3Atext%3A%3Alogo.position%3Aleft%3A%3Alogo.type%3Aprimary%3A%3Atext.color%3Ablack%3A%3Atext.size%3A12" (from "http://www.my-shop.at/\") at /var/www/vhosts/h12.net/httpdocs/shopware6/vendor/symfony/http-kernel/EventListener/RouterListener.php:136, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): No routes found for "/undefined&bdata=et%3DCLIENT_IMPRESSION%26event_type%3Dstats%26integration_type%3DSDK%26messaging_version%3D1.7.4%26placement%3D%26pos_x%3D750%26pos_y%3D770%26browser_width%3D1920%26browser_height%3D947%26visible%3Dtrue%26amount%3D0%26client_id%3DARM-rfa8IOJ_RcF6NEYiDPO63VITnF5jldiTdaTeM_3vBtAXfV2ot10GOxO-QAtk_cc2-tyU3zo0xatF%26adblock%3Dtrue%26blocked%3Dfalse%26message_request_id%3Dundefined-1%26uuid%3DNI%3A%3Alayout%3Atext%3A%3Alogo.position%3Aleft%3A%3Alogo.type%3Aprimary%3A%3Atext.color%3Ablack%3A%3Atext.size%3A12/". at /var/www/vhosts/h12.net/httpdocs/shopware6/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:70)"} []
[2020-03-24 14:12:56] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /undefined&idx=1" (from "http://www.my-shop.at/")" at /var/www/vhosts/h12net/httpdocs/shopware6/vendor/symfony/http-kernel/EventListener/RouterListener.php line 136 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException(code: 0): No route found for "GET /undefined&idx=1" (from "http://www.my-shop.at/\") at /var/www/vhosts/h12.net/httpdocs/shopware6/vendor/symfony/http-kernel/EventListener/RouterListener.php:136, Symfony\Component\Routing\Exception\ResourceNotFoundException(code: 0): No routes found for "/undefined&idx=1/". at /var/www/vhosts/h12net/httpdocs/shopware6/vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php:70)"} []

Payment amount not correct

When i log in first, place something in cart and pay with Mollie, the price is correct.
When i fill cart, login after, price is 1.98

Payment method: iDeal

Sometimes the price is incorrect and sometimes i get this error:
Sometimes i get this error:
Error executing API call (422: Unprocessable Entity): No order lines present in order. Field: lines. Documentation: https://docs.mollie.com/guides/handling-errors in custom/plugins/MollieShopware/vendor/mollie/mollie-api-php/src/MollieApiClient.php on line 422

How to reproduce:
Place product in cart => Cart / checkout => Login => Place order. Mollie order price always is: 1.98

Checkout Process stops in some Cases

We currently face a problem where some payment with mollie do not properly end the checkout process with the thank you page and generating the order confirmation email. In order to keep track of this one has to enable the email-log function in shopware to see all emails that are generated by the system.

This functionality is crucial in our case, as there are other plugins, created by us, which subscribe to the checkout process, to inject another email adress to the order confirmation email, aswell as saving data for a CRM system.

The problem itself is not a general problem, as we can see that a lot of orders are made and send out emails accordingly. But in some cases it fails to do so. In the shopsystem all orders have to be made via the mollie payment method.

The shop-system is Shopware 5.6.10 running with mollie 1.8.5.

This is what happens here:
A user uses the mollie payment in the checkout process, goes through the mollie process and comes back from the shop. Then somehow the shop stops to go on with the order and does not add the mollie transaction id into the order, as it does normally. In the detail page of the order, we can see the correct transaction, but in the order-list view we only see the mollie id like "mollie_123" and not the "tr_123456" number. When this order is also in the state "open" and "paid" we already can see, which orders might have failed in the checkout process, as normally these order should show their transaction number and not the mollie id. The mollie id is normally only shown for orders which were cancelled, and these will also have the order and payment status shown as cancelled, which is correct.

Sadly we did not yet find any way to reproduce this problem, this only occurs in few cases. We can only find those orders by checking the order-transaction-id and then also looking into the email-log.

Used Plugins:
Deliver Date (https://store.shopware.com/dtgs01537/wunsch-lieferdatum/abhol-termin-datum-uhrzeit.html)
Mollie
Dutch translation
3 custom Plugins

I also found that the deliverydate Plugin is capable of redirecting users.

Suggestions to us:
We were already told, that it might be that the Customer just took too long to fulfill his payment, but i pretty much can rule that out, as we have seen this problem occur for accounts where the user came back at about 40 seconds later. The shop itself, or better the PHP-Info-page, shows that it is set to 7200 seconds (3 hours) and a gc-divisor of 1000 requests, so i doubt that the problem comes from here.

Do not use Session-variables in this step:
Our own plugins also add some variables/info to the session and hopes to read them again in the checkout process. We found that sometimtes these variables are not set, especially when the user came back from a payment provider, so we added a whitelisting for known payment providers and their initial requests-urls when the user is coming back. Nevertheless we are not the only plugin-manufacturers and as we are using the plugin for the delivery-date we can see that this plugin also uses the session variables in the checkout finish action and will also redirect the user to the confirm page, if variables are not set. Currently we are testing if the redirect comes from here, by adding some log-lines to the process parts where it does the forwarding. Yet even if we find, that the problem comes from here, i honestly can not blame the manufacturere here, as the usage of session data in the checkout process should be perfectly viable, and is only messed around in some rare cases. Also it would mean that a lot of other plugins which have to rely on some information in the session and are subscribing to the checkout finish process are prone to fail here.

Session Handling:
It was mentioned that it could be that the users are checking out in one browser, and when switching to the payment page, get another browser opened. When they are coming back they would have no session set and thus the order session is empty and all data is missing.
This problem might be the case here, but this problem was already adresses by shopware in their upgrade guide (see below). Also in mollie version 1.8.0 this problem was adressed.

Related to this issue we also found a ticket in the shopware ticket system:
https://issues.shopware.com/issues/SW-23242

Paypal Payment Token:
custom/plugins/SwagPaymentPayPalUnified/Components/Services/ExpressCheckout/ExpressCheckoutPaymentBuilderService.php

    private function getReturnUrl()
    {
        $routingParameters = [
            'module' => 'frontend',
            'controller' => 'PaypalUnifiedExpressCheckout',
            'action' => 'expressCheckoutReturn',
            'forceSecure' => true,
            'basketId' => BasketIdWhitelist::WHITELIST_IDS['PayPalExpress'], //PayPal Express Checkout basket Id
        ];

        // Shopware 5.6+ supports session restoring
        $token = $this->requestParams->getPaymentToken();
        if ($token !== null) {
            $routingParameters[PaymentTokenService::TYPE_PAYMENT_TOKEN] = $token;
        }

        return $this->router->assemble($routingParameters);
    }

According to the Shopware Upgrade Guide, the Token should be created, it will later be used by a process to check if the user should be logged in. (https://developers.shopware.com/developers-guide/shopware-5-upgrade-guide-for-developers/#payment-token)
For this reason there is now a service to generate a token, which can be added to the returning url (e.g /payment_paypal/return?paymentId=test123&swPaymentToken=abc123def). This parameter will be resolved in a PreDispatch-event by the \Shopware\Components\Cart\PaymentTokenSubscriber: If the user is not logged in, but the URL contains a valid token, the user will get back his former session and will be redirected to the original URL, but without the token

From what i understand of the mollie plugin, it does not add the payment token, but will search for a user depending on the payment id, thus it might be, that the process is just not going through the shops intended process here and which might be the reason why it sometimtes failes.

Mollie does the session restore on its own:
in the file: custom/plugins/MollieShopware/Components/SessionManager/SessionManager.php
The function that restores the session is: $this->repoCookies->setSessionCookie($transaction->getSessionId());

The Repository is located in the file: custom/plugins/MollieShopware/Components/SessionManager/Services/Cookies/CookieRepository.php

The function setSessionCookie just sets the cookie session id but does not recreate the session as it should.

Logs (logging with mollie debug):
(Note: all logs are changed to remove any data that could be related to the customers that generated these orders. Evere occurence of identifiers have been replaced with some text/numbercombination with search and replace so the internal references are still intact):

Normal Order:
[2021-05-25 01:18:19] Mollie.INFO: Starting checkout for Transaction: 111 with payment: mollie_ideal (Session: qwe1...) {"basket":{"amount":"136,00","quantity":1,"payment":"mollie_ideal","user":"5176"},"tokens":{"creditcard":"","applepay":""},"session":"qwe123rtzui","processors":{"uid":{"uid":"012345"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-05-25 01:18:19] Mollie.DEBUG: Create new Order before payment for Transaction mollie_111 (Session: qwe1...) {"session":"qwe123rtzui","processors":{"uid":{"uid":"012345"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-05-25 01:19:51] Mollie.INFO: Incoming Webhook Notification for transaction: 111 and payment: tr_asdfqwer (Session: qqqw...) {"session":"qqqwwweeerrr111222333","processors":{"uid":{"uid":"121212"},"web":{"url":"/Mollie/notify/transactionNumber/111","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-05-25 01:19:51] Mollie.DEBUG: Webhook Notification successfully processed for transaction: 111 and payment: tr_asdfqwer (Session: qqqw...) {"session":"qqqwwweeerrr111222333","processors":{"uid":{"uid":"121212"},"web":{"url":"/Mollie/notify/transactionNumber/111","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-05-25 01:19:51] Mollie.DEBUG: User is returning from Mollie for Transaction 111 (Session: qwe1...) {"session":"qwe123rtzui","processors":{"uid":{"uid":"09876"},"web":{"url":"/Mollie/return/transactionNumber/111/token/1234567890123456","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://betalen.rabobank.nl/"}}} []
[2021-05-25 01:19:52] Mollie.INFO: Finished checkout for Transaction 111 (Session: qwe1...) {"session":"qwe123rtzui","processors":{"uid":{"uid":"543987"},"web":{"url":"/Mollie/finish/transactionNumber/111","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://betalen.rabobank.nl/"}}} []
Failed Order Type 1: Here the customer came back from the payment page, the plugin also should see that the customer has the correct session id, yet it thinks thath the session is missing and wants to recreate the session. This seems to be the case more often with the latest version of the plugin:
[2021-05-26 02:53:09] Mollie.INFO: Starting checkout for Transaction: 120 with payment: mollie_ideal (Session: asdf...) {"basket":{"amount":"378,00","quantity":1,"payment":"mollie_ideal","user":"0123"},"tokens":{"creditcard":"","applepay":""},"session":"asdf123qwer","processors":{"uid":{"uid":"112233"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout/confirm"}}} []
[2021-05-26 02:53:09] Mollie.DEBUG: Create new Order before payment for Transaction mollie_120 (Session: asdf...) {"session":"asdf123qwer","processors":{"uid":{"uid":"112233"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout/confirm"}}} []
[2021-05-26 02:53:57] Mollie.INFO: Incoming Webhook Notification for transaction: 120 and payment: tr_abcdef (Session: mmmo...) {"session":"mmmooollliiieee","processors":{"uid":{"uid":"yxcvb"},"web":{"url":"/Mollie/notify/transactionNumber/120","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-05-26 02:53:57] Mollie.DEBUG: Webhook Notification successfully processed for transaction: 120 and payment: tr_abcdef (Session: mmmo...) {"session":"mmmooollliiieee","processors":{"uid":{"uid":"yxcvb"},"web":{"url":"/Mollie/notify/transactionNumber/120","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-05-26 02:53:57] Mollie.DEBUG: User is returning from Mollie for Transaction 120 (Session: asdf...) {"session":"asdf123qwer","processors":{"uid":{"uid":"456123"},"web":{"url":"/Mollie/return/transactionNumber/120/token/asdfghjkl987654321","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://betalen.rabobank.nl/"}}} []
[2021-05-26 02:53:57] Mollie.NOTICE: Missing Session! Restoring Session for Transaction: 120 (Session: asdf...) {"session":"asdf123qwer","processors":{"uid":{"uid":"456123"},"web":{"url":"/Mollie/return/transactionNumber/120/token/asdfghjkl987654321","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://betalen.rabobank.nl/"}}} []
[2021-05-26 02:53:58] Mollie.ERROR: Checkout failed when finishing Order for Transaction: 120 (Session: asdf...) {"error":"Missing Session for Transaction: 120","session":"asdf123qwer","processors":{"uid":{"uid":"000000"},"web":{"url":"/Mollie/finish/transactionNumber/120","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://betalen.rabobank.nl/"},"introspection":{"file":null,"line":null,"class":"Shopware_Controllers_Frontend_Mollie","function":"finishAction"}}} []
Failed Order Type 2: In these Orders we could see that the session changed between the user checking out and coming back. The Plugin could not find the user back then, could very well be that this is not the case anymore.
[2021-04-20 12:37:17] Mollie.INFO: Starting checkout for Transaction: 090 with payment: mollie_ideal (Session: poiu...) {"basket":{"amount":"136,00","quantity":1,"payment":"mollie_ideal","user":"4567"},"tokens":{"creditcard":"","applepay":""},"session":"poiumnbv1234","processors":{"uid":{"uid":"12asdf12"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-04-20 12:37:17] Mollie.DEBUG: Create new Order before payment for Transaction mollie_090 (Session: poiu...) {"session":"poiumnbv1234","processors":{"uid":{"uid":"12asdf12"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-04-20 12:37:34] Mollie.INFO: Incoming Webhook Notification for transaction: 090 and payment: tr_11223344 (Session: 31d2...) {"session":"789456123","processors":{"uid":{"uid":"654123"},"web":{"url":"/Mollie/notify/transactionNumber/090","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-04-20 12:37:34] Mollie.DEBUG: Webhook Notification successfully processed for transaction: 090 and payment: tr_11223344 (Session: 31d2...) {"session":"789456123","processors":{"uid":{"uid":"654123"},"web":{"url":"/Mollie/notify/transactionNumber/090","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-04-20 12:37:35] Mollie.DEBUG: User is returning from Mollie for Transaction 090 (Session: aaas...) {"session":"aaassssdddfff","processors":{"uid":{"uid":"123456"},"web":{"url":"/Mollie/return/transactionNumber/090/token/01010101010101010101010101010","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":null}}} []
[2021-04-20 12:37:35] Mollie.WARNING: Error when verifying Session for Transaction: 090 (Session: aaas...) {"error":"Pending Order for Session poiumnbv1234 not found!","session":"aaassssdddfff","processors":{"uid":{"uid":"123456"},"web":{"url":"/Mollie/return/transactionNumber/090/token/01010101010101010101010101010","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":null}}} []
[2021-04-20 12:37:35] Mollie.ERROR: Checkout failed when finishing Order for Transaction: 090 (Session: aaas...) {"error":"Missing Session for Transaction: 090","session":"aaassssdddfff","processors":{"uid":{"uid":"987654"},"web":{"url":"/Mollie/finish/transactionNumber/090","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":null},"introspection":{"file":null,"line":null,"class":"Shopware_Controllers_Frontend_Mollie","function":"finishAction"}}} []
Failed Order Type 3: Order with different Sessions, Mollie does not start the session restoration process here:
[2021-06-01 00:40:03] Mollie.INFO: Starting checkout for Transaction: 123 with payment: mollie_ideal (Session: 1234...) {"basket":{"amount":"206,00","quantity":2,"payment":"mollie_ideal","user":"5432"},"tokens":{"creditcard":"","applepay":""},"session":"1234AAABBB1234","processors":{"uid":{"uid":"******"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-06-01 00:40:03] Mollie.DEBUG: Create new Order before payment for Transaction mollie_123 (Session: 1234...) {"session":"1234AAABBB1234","processors":{"uid":{"uid":"******"},"web":{"url":"/Mollie/direct","ip":"127.0.0.*","http_method":"GET","server":"domain.tld","referrer":"https://domain.tld/checkout"}}} []
[2021-06-01 00:41:22] Mollie.INFO: Incoming Webhook Notification for transaction: 123 and payment: tr_qwertzui (Session: AAAB...) {"session":"AAABBBCCC1234","processors":{"uid":{"uid":"010101010"},"web":{"url":"/Mollie/notify/transactionNumber/123","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []
[2021-06-01 00:41:23] Mollie.DEBUG: Webhook Notification successfully processed for transaction: 123 and payment: tr_qwertzui (Session: AAAB...) {"session":"AAABBBCCC1234","processors":{"uid":{"uid":"010101010"},"web":{"url":"/Mollie/notify/transactionNumber/123","ip":"127.0.0.*","http_method":"POST","server":"domain.tld","referrer":null}}} []

Theory:
The user might have closed/stopped the window before it reached the server properly. The order is saved with status paid. When comparing the session ids the plugin should have found out that the session ids are not matching and would have started the proces to recreate the session, which can only mean, that the process was stopped before the plugin could do this, hence we do not see any other entries in the logs after that.
If this is possible, this would also be a problem in the paypal plugin too, as the session/token management could not have taken over yet.

TL;DR:
Suggestion: adding the payment token as described in https://developers.shopware.com/developers-guide/shopware-5-upgrade-guide-for-developers/#payment-token if possible. By the guide it should trigger a service inside shopware which will recreate the session properly. Maybe it will already be enough to simply change the return url from "/Mollie/return/transactionNumber/120/token/asdfghjkl987654321" to "/Mollie/return/transactionNumber/120/swPaymentToken/asdfghjkl987654321" but maybe more configuration is needed here.

Info: it seems that shopware 6 also uses the payment tokens and maybe it needs to be changed there too.

Order automatically canceled

Hello we have the following issue :

I would like to order but our shop shows us the following message it doesnt matter which payment method - Mollie doesnt work.

{
"error": "Error executing API call (422: Unprocessable Entity): No order lines present in order. Field: lines. Documentation: https://docs.mollie.com/guides/handling-errors",
"session": "pg91l599oc5ro28hqueheornkm",
"processors": {
"uid": {
"uid": "c082703"
},
"web": {
"url": "/Mollie/direct",
"ip": "127.0.0.*",
"http_method": "GET",
"server": "sv-baustoffversand.de",
"referrer": "https://www.sv-baustoffversand.de/checkout"
},
"introspection": {
"file": null,
"line": null,
"class": "Shopware_Controllers_Frontend_Mollie",
"function": "directAction"
}
}
}

We need your help.

Kindly regards

Tax added for tax free countries

When an order is placed, in de shopping cart everything is correct without vat (shipping to USA for ex). But when we finalize the order to pay, the mollie plugin adds the standard tax rate (21% in this case)
Orders in backend are correct without vat

Shopware order number is no longer counted +1 for each order

Since we have Mollie Plugin, the Shopware order number is no longer counted +1 for each order.

The order number is counted up at completely irregular intervals, i.e. +4, + 8, + 2, + 3 without logic, so that one has to assume that Mollie is already counting up for each shopping cart (order cancellation) even though no payment has been made.
I have sent more information to Mollie Support with email today.

Please check the Mollie plugin to this effect, normaly that Shopware Standard would be to count up +1 for every successful order. Its not usefull if Mollie count every "cart" +1, it is only usefull to count every sucessfull order.

grafik

We started with Mollie just some weeks ago, so you see exactly in the backend the difference how shop was counted before Mollie (+1 each order) and no today.

Mollie Plugin Version 1.5.10

Shopware Version 5.6.6

My settings

grafik

See this Example:

grafik

Database mol_sw_transactions: why count +4 for next order ??

grafik

Database s_order

grafik

BR Klaus

Cancellation of total amount and shipping not functioning correctly

In the 1.8.4 update we have a setting called Cancellation of total amount and shipping this one is set on No as default.
But when a order is cancelled the Order total amount becomes less than it should be, only the shipping is then used as the total amount of the order.

Below some screenshots of the situation inside a order we see happening after updating to 1.8.4

image
image
image
image

Update Payment Methods reactivates all methods

With the newest version (1.7.1) it's possible to update the payment methods when the plugin is active, only when doing this the settings of which one was active and which one was deactivated are overwritten.

So if you would do this on a live site the customers would have more payment methods available to them then you as a developer of shop owner want and those might even not be activated or configured inside Mollie.

The expected behauviour here would be that the methods are update but that their active state stays atleast the same.

Exception when cancelling payment

On a headless environment we redirect you to the mollie payment (test) page. When we cancel the order there, this happens:

image

State EFBFBDEFBFBDEFBFBD61EFBFBD504ADE also being: cancelled

So it looks to go from cancelled to cancelled

Help wanted - Change return URL

Hi,

We made several changes to our checkout process, we removed the last /confirm/ step from the process. Now everything worked when we were still at 1.7.0 (oops) because we made a change in "function redirectBack" , I just updated to 1.8.4 but now when an order is cancelled people are redirected to /confirm/ because that's probably the default return for Mollie.

Can you tell me where to find the new function/code that handles the return?

Thank you!

Loading api-key config variable is not working in Shopware version 5.2.20

Thanks for creating this plugin!

I was testing the plugin on Shopware 5.2.20, but after filling out the API-key and saving the plugin configuration form i got the error Invalid API key: ''. An API key must start with 'test_' or 'live_'.. After doing some research in the Shopware docs i found something that is working. Replacing this line $apiKey = Shopware()->Config()->getByNamespace('Mollie', 'api-key'); with

$config = $this->container->get('shopware.plugin.config_reader')->getByPluginName($this->getName());
$apiKey = $config['api-key'];

or

$config = Shopware()->Container()->get('shopware.plugin.config_reader')->getByPluginName('Mollie');
$apiKey = $config['api-key'];

is working. I am not sure if this works backward compatible.

"Warning, Mollie is paid but no order exists in Shopware for transaction xxxx"

Since the recent update, this happens with every order.
We have transactions in mollie, but no order data in SW.
For non-Klarna orders this is super frustrating as we have no customer data now!

I can provide more logs and settings of the plugin later.

This is the error:
Checkout failed when finishing Order for Transaction: 664 (Session: i92n...)

{
"error": "Order with number: not found!",
"session": "i92n3s27vb9novut6u9bau052q",
"processors": {
"uid": {
"uid": "8cc7101"
},
"web": {
"url": "/Mollie/finish/transactionNumber/664",
"ip": "127.0.0.*",
"http_method": "GET",
"server": "psy7.com",
"referrer": "https://pay.klarna.com/"
},
"introspection": {
"file": null,
"line": null,
"class": "Shopware_Controllers_Frontend_Mollie",
"function": "finishAction"
}
}
}

Request

Hi, Great plugin, works fine, but I have a small request:

Could you make the prepareRequest method public or even use an event so we can manipulate the transactie data with our own plugin? This is what we want to achieve:

$molliePrepared['description'] = "Onze eigen aangepaste omschrijving";

Now I need to implement our own description with some hard-coded lines within your plugin.

Apple Pay restrictions cannot be selected when backend is contained in URL multiple times

In

url: window.location.href.substr(0, window.location.href.indexOf('backend')) + 'backend/MollieApplePayDirect/displayRestrictions',

we try to build the URL for the endpoint to find out about Apple Pay restrictions by doing some substr magic on window.location.href. That might work, but it doesn't always work. For URLs like https://backend.my-shop.example/backend we might not get the expected result. In a distributed Shopware setup it's quite common though to have backend and several frontends.

Maybe we can find another way to figure out the URL.

Falscher Bestellstatus im Mollie Backend

Hallo,

manche Bestellungen werden im Mollie backend nicht von „Zugelassen“ auf „Abgeschlossen“ geändert, obwohl sie komplett ausgeliefert sind.
Aktueller Bestellstatus in Shopware wurde nach Absprache mit Mollie Support von „Komplett abgeschlossen“ zu „Komplett ausgeliefert“ geändert, hat aber nichts gebracht.

Bei Stichproben sieht es aus als hätte Mollie Probleme, wenn es sich um Bestellungen handelt wo es mehrere Tracking ID’s gibt.

Eine weitere Vermutung:
Bei Produkten die eine SKU (Produkt - Ordernumber) haben aber aus mehreren Teilen bestehen wie z.B. Garten-Sitzgruppe die mehrere Tracking ID’s hat (6) weil es sich um mehrere Pakete handelt.

Payments failing since latest update

Mollie v1.8.10
Shopware v5.6.10

Trying to complete an order doesn't work anymore in any of our subshops currently, it always fails with the standard error "Your payment has failed. Please try again."

In the log files I found some notices:

"Error when starting Mollie checkout (Session: ldbv...)
"{
  "error": "An exception occurred while executing 'SELECT m0_.id AS id_0, m0_.paymentmean_id AS paymentmean_id_1, m0_.expiration_days AS expiration_days_2, m0_.method_type AS method_type_3, m0_.order_creation AS order_creation_4, m0_.bank_transfer_flow AS bank_transfer_flow_5, m0_.paymentmean_id AS paymentmean_id_6 FROM mol_sw_paymentmeans m0_ LEFT JOIN s_core_paymentmeans s1_ ON m0_.paymentmean_id = s1_.id WHERE s1_.name = ?' with params [\"mollie_paypal\"]:\n\nSQLSTATE[42S22]: Column not found: 1054 Unknown column 'm0_.bank_transfer_flow' in 'field list'",
  "session": "ldbvgdqguvfonm9ku6lqf389e5",
  "processors": {
    "uid": {
      "uid": "159388f"
    },
    "web": {
      "url": "/Mollie/direct",
      "ip": "127.0.0.*",
      "http_method": "GET",
      "server": "www.OURSHOPDOMAIN.de",
      "referrer": "https://www.OURSHOPDOMAIN.de/checkout"
    },
    "introspection": {
      "file": null,
      "line": null,
      "class": "Shopware_Controllers_Frontend_Mollie",
      "function": "directAction"
    }
  }
}"

Class 'smarty' not found during plugin activation

Hello

We've tried updating the installation of the Mollie plugin on our Shopware installation but got stuck after trying to activate the plugin. Clearing caches, autoload dumping, etc.. didn't work.
We've also tried to install the plugin on a clean installation of our Shopware version, but we were unable to activate it on that as well, we were presented with the same error.

The only way we were able to activate the plugin is by requiring the smarty class file in MollieShopware.php.

Additional info:

  • Shopware 5.4.3 (not composer based)
  • Plugin version: 1.4.10
  • PHP version: 7.0.33 (fpm)
  • Tried both with redis caching and without

Stack trace

Fatal error: Uncaught Error: Class 'Smarty' not found in /var/www/custom/plugins/MollieShopware/MollieShopware.php on line 270

Error: Class 'Smarty' not found in /var/www/custom/plugins/MollieShopware/MollieShopware.php on line 270

Call Stack:
    0.0002     351528   1. {main}() /var/www/bin/console:0
    0.0416    3965176   2. Shopware\Components\Console\Application->run(class Symfony\Component\Console\Input\ArgvInput, ???) /var/www/bin/console:38
    0.0601    4593880   3. Shopware\Components\Console\Application->doRun(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/vendor/symfony/console/Application.php:117
    0.2854   14475152   4. Shopware\Components\Console\Application->doRun(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/engine/Shopware/Components/Console/Application.php:127
    0.2856   14475152   5. Shopware\Components\Console\Application->doRunCommand(class Shopware\Commands\PluginActivateCommand, class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/vendor/symfony/console/Application.php:193
    0.2856   14475152   6. Shopware\Components\Console\Application->doRunCommand(class Shopware\Commands\PluginActivateCommand, class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/engine/Shopware/Components/Console/Application.php:135
    0.2856   14475152   7. Shopware\Commands\PluginActivateCommand->run(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/vendor/symfony/console/Application.php:843
    0.2859   14478048   8. Shopware\Commands\PluginActivateCommand->execute(class Symfony\Component\Console\Input\ArgvInput, class Symfony\Component\Console\Output\ConsoleOutput) /var/www/vendor/symfony/console/Command/Command.php:242
    0.3564   17038256   9. Shopware\Bundle\PluginInstallerBundle\Service\InstallerService->activatePlugin(class Shopware\Models\Plugin\Plugin) /var/www/engine/Shopware/Commands/PluginActivateCommand.php:88
    0.3571   17051704  10. Shopware\Bundle\PluginInstallerBundle\Service\PluginInstaller->activatePlugin(class Shopware\Models\Plugin\Plugin) /var/www/engine/Shopware/Bundle/PluginInstallerBundle/Service/InstallerService.php:248
    0.3571   17051816  11. MollieShopware\MollieShopware->activate(class Shopware\Components\Plugin\Context\ActivateContext) /var/www/engine/Shopware/Bundle/PluginInstallerBundle/Service/PluginInstaller.php:233
    2.0836   19290392  12. MollieShopware\MollieShopware->getPaymentOptions() /var/www/custom/plugins/MollieShopware/MollieShopware.php:231

The amount of the order does not match the total amount from the order lines

Steps to reproduce

  1. Create a product in a Shopware backend multiple customer groups and with specific prices per customer group.

Under Basic Settings -> Customer Groups -> (select a customer group)

  1. Try to order and pay for the product as a customer from within the "discounted" customer group (in this case a -36% discount actually means a +36% surcharge), and Mollie will block the payment with the error:
Error executing API call (422: Unprocessable Entity): The amount of the order does not match the total amount from the order lines. Expected order amount to be CHF 30.59 but got CHF 34.39.

Later on in the error message, the line items used to calculate the expected value (CHF 30.59) are listed:

quantity: 2
unitPrice: CHF 5.30
totalAmount: CHF 10.60
shipping fee: CHF 19.99

The unitPrice should actually be CHF 7.20 (= 5.30 * 1.36). If I replace 5.30 with 7.20 the remaining calculations are all correct.

Possible fix

Is there a simple way to make sure that Mollie uses the unitPrice according to the active Customer Group, the way that Shopware itself does? Thanks in advance for any thoughts!

"wrong" VAT calculation on Mollie API results in declined order

We discovered the following issue with some orders:

> Could not create Mollie order, error: Error executing API call (422: Unprocessable Entity):
> Order line 3 is invalid. VAT amount is off.
> Expected VAT amount to be -€0.54 (-€3.95 × (16.00% / 116.00%)), got -€0.55.
> Field: lines.3.vatAmount.

This is the corresponding shopping cart in our shopware 6:
image

I have debugged the data sent to mollie API. This numbers are sent to mollie:
image

This means that Mollie calculates the VAT of the 5% discount from the unit price and not from the VAT Amount of the main article!

Here again the mathematics behind it:

  • Shopware
    • -€10.90 × (5.00% / 100.00%) = -€0.55
  • Molly
    • -€3.95 × (16.00% / 116.00%) = -€0.54

As a result, Mollie refuses this order. The order does not reach Mollie. It is not visible in the dashboard. In the shopware these orders are stored with the payment status "Open" and without Mollie Order ID.

The problem of different mathematics seems to be the "horizontal VAT" or "vertical VAT". calculation. More information about this here https://rolandtapken.de/blog/2008-08/mwst-berechnung-von-lexware-buero-easy (only german)

However, this is the only way to determine the sum of the individual VAT amounts. values is correct. So 10,90€ - 0,33€ -0,55€ = 10,02€

The error is therefore to be found in Mollie or the Shopware6 plugin from Mollie and probably not in the Shopware itself.

Temporarily I changed the math in shopware core in this file to get rid of this error:
https://github.com/shopware/platform/blob/master/src/Core/Checkout/Cart/Price/PercentagePriceCalculator.php#L46
But this will only help in case of percentage discounts and is far away from perfekt!

GetComment Error

Hi,

Today we did an update from 1.7.0 to 1.8.3, but soon as the payment is completed and people return to our shop it shows a error 500, when I press try again it works fine. The error in my server logs shows the following (removed IPs+our live domain):

 2021/05/21 10:29:32 [error] 87581#101767: *14548 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function getComment() on bool in /pool/home/test.domain.nl/htdocs/custom/plugins/MollieShopware/Components/Order/OrderUpdater.php:181
Stack trace:
#0 /pool/home/test.domain.nl/htdocs/custom/plugins/MollieShopware/Components/Order/OrderUpdater.php(89): MollieShopware\Components\Order\OrderUpdater->updateOrderHistoryComment(Object(Shopware\Models\Order\Order))
#1 /pool/home/test.domain.nl/htdocs/custom/plugins/MollieShopware/Facades/FinishCheckout/FinishCheckoutFacade.php(258): MollieShopware\Components\Order\OrderUpdater->updateShopwarePaymentStatus(Object(Shopware\Models\Order\Order), 'paid')
#2 /pool/home/test.domain.nl/htdocs/custom/plugins/MollieShopware/Controllers/Frontend/Mollie.php(271): MollieShopware\Facades\FinishCheckout\FinishCheckoutFacade->finishTransaction(947)
#3 /pool/home/test.domain.nl/htdocs/engine/Library/Enlight/Controller/Action.php(192): Shopware_Controllers_Frontend_Mollie->finishAction()
#4 /pool/home/test.domain.nl/htdocs/eng" while reading response header from upstream, client: XXX.158.XX.216, server: test.domain.nl, request: "GET /Mollie/finish/transactionNumber/947 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/hxb.socket:", host: "test.domain.nl", referrer: "https://www.mollie.com/"

Would be great if you can help us find a solution. Thanks!

Shopware Default Field "Paid on" is not set

Hi Mollie Team,
In the backend under orders interface there is a field "Paid on".
Normally this is set as soon as the payment is completed.
grafik

This is Shopware standard. It is the field "cleareddate" in the DB table "s_order".

Would be happy if you would implement this.

Thank you.

Cannot open orders on 1.5.19

Hello,

we have some orders in our backend that are created by another plugin (https://store.shopware.com/rhiem20364534336/premium-gutschriften.html?number=rhiem20364534336), which wont open anymore.

here is what the browser console outputs - it still is related to "mollieReturn" it seems

/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:1969 Uncaught TypeError: Cannot read property 'mollieReturn' of null
at isMollieOrder (/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:1969)
at i.getColumns (/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:1751)
at i.callParent (ext-all.js?202008121209:21)
at i.getColumns (/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:2014)
at i.getColumns (/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:1479)
at initComponent (/backend/Order/load/?f=m/OrderHistory|m/Order|m/Billing|m/Shipping|m/Tax|m/Debit|m/Payment|m/PaymentInstance|m/Voucher|m/Configuration|m/Receipt|m/Position|m/Mail|m/DetailBatch|m/ListBatch|m/Dispatch|v/main/Window|v/detail/Window|v/detail/Overview|v/detail/Communication|v/detail/Position|v/detail/Document|v/detail/Detail|v/detail/Billing|v/detail/Shipping|v/detail/Debit|v/detail/OrderHistory|v/detail/Configuration|v/detail/Dispatch|v/list/Filter|v/list/List|v/list/Navigation|v/list/Position|v/list/Document|v/mail/Window|v/mail/Form|v/mail/Attachment|v/batch/Window|v/batch/Form|v/batch/List|v/batch/Progress|store/OrderHistory|store/Order|store/Voucher|store/DocType|store/Configuration|store/Batch|store/Tax|store/DetailBatch|store/ListBatch|store/DocumentRegistry|c/Main|c/List|c/Filter|c/Detail|c/Batch|c/Mail|c/Document|c/Attachment&no-cache=1597770966+1+1:4307)
at i.constructor (ext-all.js?202008121209:21)
at i.callParent (ext-all.js?202008121209:21)
at i.constructor (ext-all.js?202008121209:21)
at new i (ext-all.js?202008121209:21)

Invalid order ID: ''. An order ID should start with 'ord_'.

Hi together,

use the newest mollie plugin 1.5.9 for shopware on shopware 5.6.4 / PHP 7.2.22 and got this message in shopware plugin production log:

{
"exception": "[object] (Mollie\Api\Exceptions\ApiException(code: 0): Invalid order ID: ''. An order ID should start with 'ord_'. at /vendor/mollie/mollie-api-php/src/Endpoints/OrderEndpoint.php:65)"
}

This exception happend while a credit card payment was done by customer in frontend. The credit card payment had success.

At the moment we do NOT use Klarna Pay later, we use only applepay, creditcard, paypal, sofort, eps.

The Plugin settings are done like this (live modus)

grafik

Is this any issue or can we ignore this message ?

BR Klaus

Do not create (Klarna) orders when directing to the payment site

Hi there,

the behaviour of mollie to create "real" orders before the final checkout-step is very unusual for Shopware and brings for me at least one problem when this is given:

  • having one article in the basket, that has a stock of only 1
  • choose a klarna payment option
  • get directed to the payment site of mollie
  • cancel this order

So now you get redirected back to the shop with an EMPTY cart giving the customer the option to restore their "cancelled order" (in fact the payment was cancelled, not the order!)
What happens when clicking restore? The costumer ends up with an empty basket and if it was a guest user, he is logged out too and that means: All the way from the beginning to get to the checkout.
This is quite frustrating as a costumer.

Is there any practical and technical reason why you create orders before the final checkout-page? Please consider to change this behaviour, that is not common for shopware payment plugins. Expected would be, to get redirected to the checkout to choose another payment option.
Not to create an anyways cancelled order, whose stocks cant be retrieved correctly when trying to restore the order.

thx!

Shopware Update 5.7.0 - Declaration of MollieShopware\Components\Logger\MollieLogger

After the update to Shopware 5.7.0 went the Shop offline with the following error code.

Fatal error: Declaration of MollieShopware\Components\Logger\MollieLogger::debug($message, array $context = Array) must be compatible with Monolog\Logger::debug($message, array $context = Array): void in ../custom/plugins/MollieShopware/Components/Logger/MollieLogger.php on line 66

Solution right now:
Deactivate the Mollie Plugin and clear cache

Apple Pay Error

Never saw that before:

{
  "error": "Article with number:  not found!",
  "session": "hb08ki2bdtm57sogtsq7smkch6",
  "processors": {
    "uid": {
      "uid": "b2a8dd2"
    },
    "web": {
      "url": "/MollieApplePayDirect/startPayment",
      "ip": "127.0.0.*",
      "http_method": "POST",
      "server": "lalala.tld",
      "referrer": "https://lalala.tld/"
    },
    "introspection": {
      "file": null,
      "line": null,
      "class": "Shopware_Controllers_Frontend_MollieApplePayDirect",
      "function": "startPaymentAction"
    }
  }
}

WARNING: Method getMollieVoucherType is not existing in Article Attributes.

After updating to version 2.0 we're experiencing following entries in the logfile:

Method getMollieVoucherType is not existing in Article Attributes. Please clear your cache! (Session: h8le...)

{
"session": "abc123",
"processors": {
"uid": {
"uid": "abc123"
},
"web": {
"url": "/checkout",
"ip": "127.0.0.*",
"http_method": "GET",
"server": "www.xy-store.de",
"referrer": "https://www.xy-store.de/checkout/shippingPayment"
}
}
}

Caches were already flushed multiple times.

E-Mail not sent when order consists of reduced positions

Hi Mollie Team!

We have experienced a problem with the Mollie-Plugin when used in combination with Advanced Promotion Suite.
No order confirmation mail is being sent for all orderes that have reduced positions only.

As soon as we disable the Shopware_Modules_Order_SendMail_Send - Event handling mails are sent again.

Further narrowing down the problem we managed to find out that inside sendConfirmationEmail() function this line

$variables = @json_decode($transaction->getOrdermailVariables(), true);

returns null and therefore email sending is skipped.
Thanks for checking

Alex

Apple Pay Direct and Phone Number Required setting lead to failed orders

Steps to reproduce:

  • Activate "Phone Number Required" in Shopware Storefront->Sign-In / Sign Up settings
  • Activate Apple Pay Direct
  • Try to pay with Apple Pay direct

Expected result:

  • If a phone number is given in the Apple Pay data, order is successful
  • If no phone number is available in the Apple Pay data, order is denied, a meaningful error message is displayed

Actual result:

  • No error message is displayed, one gets redirected to /checkout/confirm
  • The following exception is logged
[2022-01-05T13:18:25.623471+01:00] Mollie.ERROR: Error starting Mollie Apple Pay Direct payment (Session: ar7t...) {“error”:“phone: \n”,“session”:“ar7ti3qjfdfk5q9gs25ehnbcln”,“processors”:{“uid”:{“uid”:“b26ff33"},“web”:{“url”:“/MollieApplePayDirect/startPayment”,“ip”:“127.0.0.*“,”http_method”:“POST”,“server”:“shop.example.org”,“referrer”:“https://shop.example.org/artikel/118/cashew-erdnuss-orange-kakao-cubes?c=78”},“introspection”:{“file”:null,“line”:null,“class”:“Shopware_Controllers_Frontend_MollieApplePayDirect”,“function”:“startPaymentAction”}}} []

Status "Completed" after payment

Hi there,

for some reason every order, that is processed by a Mollie payment, gets the status "completed" ("Komlett abgeschlossen" in German) for the past few days. We are using Shopware 5.6.10 und the current Mollie Plugin (1.8.1). Is this a known bug?

It happened so far with PayPal and Credit Card payments.

Our current setup:

image

Changing the style of mollie

How is it possible to change the styling of the mollie plugin?
Especially when using credit card form within shopware.
We found the component and styling option but how can we change that?

Registration of payment status is wrong

When a payment from ideal fails of we press cancel this doesn't get communicated back to the plugin. It gives me the "thank you for your order" confirmation page and creates a duplicate order. Result: 2 orders, status payment: open.

Session is still missing for Transaction: 823. Shopware has already removed that user data!

I just need an explanation on what happened there and how to prevent that in the future. it's the first time that happened

Acutally user data is in Shopware, Mollie/Klarna approved the order, just no order was created :/

thanks in advance

EDIT: ok while looking deeper into it, I found out why that happened. The customer started checkout the day before and did not finish instantly, instead waiting another 18 hours to finalize the mollie checkout. of course all session data is lost then.

you can close this. I assume it happens rarely that a customer takes this much time to finalize.

Could not create a Mollie Payment Url due to VAT amount mismatch

similar to: mollie/OpenCart#143

Error:
Could not create a Mollie Payment Url, error: Could not create Mollie order, error: Error executing API call (422: Unprocessable Entity): Order line 2 is invalid. VAT amount is off. Expected VAT amount to be -€6.08 (-€36.50 × (20.00% / 120.00%)), got -€6.09. Field: lines.2.vatAmount. Documentation: https://docs.mollie.com/guides/handling-errors

Expected result:
Cent values must match. Checkout must succeed without issues.

"The order can't be shipped."

Status change to "Completly delivered", does not ship the order in mollie. Same when using the icon in order overview.
This effects Klarna invoice and possibly "Slice it".

Problem exists since release 1.8.0 as far I can remember. Did not pay much attention on it until now I found time to report that.
Shopware 5.6.10, PHP 7.4.18

Here the error from the logs:

{
  "error": "The order can't be shipped.",
  "session": "not-set",
  "processors": {
    "uid": {
      "uid": "bf0eefb"
    },
    "web": {
      "url": "/backend/Order/save?_dc=1623935528011&orderID=&stockChangeWarehouseId=1&pickwareMarkOrderAsShipped=1",
      "ip": "127.0.0.*",
      "http_method": "POST",
      "server": "yourdomain.com",
      "referrer": "https://yourdomain.com/backend/"
    },
    "introspection": {
      "file": null,
      "line": null,
      "class": "MollieShopware\\Subscriber\\OrderBackendSubscriber",
      "function": "shipOrderToMollie"
    }
  }
}

API keys of subshops ignored in 1.5.13

Hi there!
We installed the latest update (1.5.13) on our Shopware 5.6.7 shop and for some reason the plugin seems to ignore all of API keys of our subhops. It only takes the key of the "main" shop into consideration, which means, all of our 3 subshops redirect to the same page (the test key was entered, so all shops end up on the mollie test page after placing an order) on any mollie payment method. Downgrading to 1.5.12 resolved this issue, so I think there's a bug in the latest one. We wanted to activate Klarna Slice it and Pay Later for this, but since you seem to have fixed issues in 1.5.13 we deactivated Klarna services for now.

I would appreciate it, if you could look into this! Thank you very much.

Show Apple Pay in Shopware 5 Checkout

Hello,

we had Mollie live in our online store since yesterday.

The activated payment method "Apple Pay" is not displayed in the checkout on desktop applications "Safari" and "Google Chrome". All settings are set correctly and "Apple Pay" is not excluded on any page.

Our online store is www.bestwaystore.de

Do you have the possibility to identify the cause?

Thank you for your support.

With kind regards
Christian

Klarna - Unable to ship

When clicking the "ship" button in order to process it at mollie we receive this:

An error occurred while attempting to change the status.
You have requested a non-existent service "shop". Did you mean one of these:

Stock bug

Hello,
I'm getting in touch because I have noticed a very weird behavior with Shopware 6 .

Take a look at this scenario:
I have a "product A" with stock of 10 and set as closeout.
As a customer, I add product A to my cart, I click "pay" (with Mollie) when I am redirected to Mollie, the stock becomes minus 1 even if I haven't paid !
Next customer does the same thing but puts 9 remaining product A to his basket.
Shopware sets the stock to 0.
Third customer comes and nobody can buy product A anymore. And nobody has paid anything.
Am I clear in my explanations, is it me doing something wrong or it's a bug ?

Understand problem with shipping status options

This is more a documention related issue but maybe you can explain it (as the customer support cannot 😄 ):
What is the difference between the two settings

  • "Order Status" for shipped orders
  • Status on which order is marked as "sent"

I read the documentation here https://github.com/mollie/Shopware/wiki/Plugin-Configuration#shipping several times but it sounds as if this two options are totally the same?
Currently we set the same delivery status but maybe this is wrong? Maybe you can give an example that explains what both options do?

Since the new update to 1.8.6 klarna checkout isn't working anymore in Shopware 5.7.2

Hello mollie-Team.

since the new update the Klarna Checkout (paylater) isn't working anymore. In the history of mollie we see the following message:

GERMAN:
Verbindung zum Webhook ist mit Status-Code 500 ist fehlgeschlagen (Internal Server Error)

In the system logs of the mollie plugin we see the following message:

Error in Mollie Notification (Session: 14f8...)

{
  "error": "The \"mollie_shopware.basket_service\" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.",
  "session": "14f81b6c1dc507007c5825d27480c554",
  "processors": {
    "uid": {
      "uid": "cf4a63b"
    },
    "web": {
      "url": "/Mollie/notify/transactionNumber/1887",
      "ip": "127.0.0.*",
      "http_method": "GET",
      "server": "www.example.com",
      "referrer": null,
      "unique_id": "YPEseOSGR3nt4DYGr2PrgwAAGi0"
    },
    "introspection": {
      "file": null,
      "line": null,
      "class": "Shopware_Controllers_Frontend_Mollie",
      "function": "notifyAction"
    }
  }
}

We reinstalled the plugin. We have cleared all caches and routes. Only Klarna Invoice Purchase seems to be affected.

It works in test mode.

Best regards,
Dennis

Apple Pay should be invisible on the customer account dashboard in unsupported browsers

Behavior:
In the checkout, the payment method Apple Pay is hidden when the payment method isn't supported (e.g. in browsers other than Safari). In the customer account dashboard, customers can select their default payment method. On this dashboard, Apple Pay is still visible in unsupported browsers.

Expected behavior:
Apple Pay is expected to be hidden from the list of payment methods on the customer account dashboard in browsers where the payment method is not supported.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.