Magento 2 – Zahlungsbedingungen/AGB Bug – Vr Pay Extension Version 2.1.0

Hier ein nerviger Bug in VR Pay Extension Version 2.1.0. in Zusammenspiel mit Terms and Conditions und wie dieser zu lösen ist

Verwendete Version: v2.0.21

sowie dann erneut auch in Verwendete Version: 2.1.0 => Aktuelle Version Stand heute (26.03.2020)

Wie kann der Bug reproduziert werden bzw. wann tritt dieser auf?

Ein Store mit mehren Storeviews (das dürfte aber egal sein nach unserem Stand)

Zahlungsbedingungen und/oder AGB Funktion von Magento 2 muss genutzt werden (Terms and Conditons). 1 oder mehre Zahlungsbedingungen müssen aktiv sein.

Egal welche Zahlart von VR Pay ich teste es kommt der Hinweis.

„Bitte lesen und akzeptieren Sie alle AGB, bevor Sie Ihre Bestellung aufgeben.“

Es sind jedoch beide bestätigt im Checkout/Kassen

Sobald ich eine andere Zahlart nehme die nicht von VR Pay kommt (z.B Check / Money order) funktioniert der Checkout normal.

Der Bug sieht im Checkout wie folgt aus:

VR Pay Magento 2 Bug Terms and Conditions

 

Vermutung war

Eine Demo Version von VR Pay und funktionierdem M2 Shop inkl. terms and Conditins konnten wir nirgendwo finden.

Auch in der Doku (https://www.vr-payment.de/files/shopmodule/magento/VRP_HB_Magento1.9_eCommerce_02-2020.pdf) Plugin-Features => "1. Einfaches Kassieren" ist ersichtlich, dass der Anbieter scheinbar keine AGB/Widerrufsbedingungen nutzt. Ansonsten würden diese auf den Screenshots sichtbar sein. Da diese jedoch in EU schlicht vorhanden sein müssen, stellt sich natürlich die Frage ob die überhaupt vorgesehen waren.

Wenn alles deaktiviert war und nur VR Pay + terms and Conditons aktiv funktionierte es auch nicht was ein weiteres Zeichen dafür ist, dass die Erweiterung schlicht nicht damit funktioneirt.

Vermutung war somit: Vr pay Erweiterung kann keine Zahlungsbedingungen (terms and Conditions) handeln.

Vr Pay Support

Sagen wir einfach mal... An den haben wir uns natürlich als erstes gewendet und dieser ist stehts bemüht Bugs kompetent zu lösen....

Lösung VR Pay Bug Magento 2

Unser Entwickler hat die Erweiterung genauer auseinandergenommen und geprüft und nach knapp über 10Std. den Fehler gefunden und gelöst. Dazu haben wir etliche Testläufe gemacht um auszuschließen das es etwas anderes war und haben gesamt ca. 20 Std. Arbeitzeit verloren.

Ausführlich Informationen, falls es noch immer nicht gelöst ist.

Buggy file is Vrpayecommerce/Vrpayecommerce/view/frontend/web/js/action/set-payment-method.js . API request with payment method information is sent here for checkout, but it doesn't contain required argument to properly validate terms acception. If terms has been accepted, a payment method data in API request should look similar like this:

{
    method: "checkmo",
    po_number: null,
    additional_data: null,
    extension_attributes {
        agreement_ids: [3]
    }
}

Where 3 is an ID of accepted terms. Before, it was more similar to this:

{
    method: "checkmo" 
}

So, as you can see, some data is missing. I checked if this problem is caused by any of our modules and I didn't find anything, so I think it's related to Vrpayecommerce module.

As you asked, I've upgraded an extension, so the current version is 2.1.0. Before upgrade, it was 2.0.21, but I think it doesn't matter at all and a solution would be the same.

Solution, was to get all of accepted terms and put them directly to payment data, which is used in API request. It looks like this:

var paymentMethodAgreementCheckboxes = $('[id^="agreement_' + paymentData.method + '"]');

            /**
             * Fixing missing agreement_ids in payment data
             */
            if (paymentMethodAgreementCheckboxes.length) {
                paymentData.extension_attributes = {
                    agreement_ids: []
                };

                $.each(paymentMethodAgreementCheckboxes, function (key, element) {
                    if ($(element).is(':checked')) {
                        paymentData.extension_attributes.agreement_ids.push(
                            $(element).val()
                        );
                    }
                })
            }



Download einer funktionierenden Version

Sobald es ein Version von VR Pay gibt, die den Fehler gelöst hat, werden wir diese zeitnah verlinken. Neuste Version gibt es hier:

https://www.vr-payment.de/onlineshop-module

Version 2.1.0 ist jedoch noch defekt.

 

Wem der Beitrag helfen konnte, gerne in die Kommentare 😉

Noch keine Kommentare bis jetzt

Einen Kommentar schreiben