Comments (7)
@espressobytes Das kann ich leider nicht reproduzieren. Um welche Magento- und Plugin-Version geht es genau?
from magento-2.
Magento Version 2.1.0
Plugin-Version 1.3.1. (also das letzte Release)
Es wird eine Bestellung angelegt, sobald der User auf "Jetzt zahlen" klickt. Diese Bestellung bleibt vorerst im Status "pending".
Wenn man dann auf "zurück" geht, wird die Warenkorb-Seite aufgerufen (Der Warenkorb ist aber, wie schon gesagt, leer).
Das Verhalten ist reproduzierbar, tritt aber nicht auf, wenn man den Paypal-Express Button verwendet.
from magento-2.
Ich habe folgendes Setup nachgestellt:
florian@charon:/var/www/html/shops/magento2/210fb$ php bin/magento --version
Magento CLI version 2.1.0
florian@charon:/var/www/html/shops/magento2/210fb$ composer show payone-gmbh/magento-2
name : payone-gmbh/magento-2
descrip. : PAYONE payment gateway for all German online and offline payment methods including PayPal, all major Credit Cards and Maestro.
keywords :
versions : * v1.3.1
type : magento2-module
license : Open Software License 3.0 (OSL-3.0) (OSI approved) https://spdx.org/licenses/OSL-3.0.html#licenseText
license : Academic Free License v3.0 (AFL-3.0) (OSI approved) https://spdx.org/licenses/AFL-3.0.html#licenseText
source : [git] https://github.com/PAYONE-GmbH/magento-2.git f7143bbdfeb867ba322a86c3d6a3f998692985c1
dist : [zip] https://api.github.com/repos/PAYONE-GmbH/magento-2/zipball/f7143bbdfeb867ba322a86c3d6a3f998692985c1 f7143bbdfeb867ba322a86c3d6a3f998692985c1
names : payone-gmbh/magento-2
[...]
Auch dort konnte ich das Verhalten nicht reproduzieren. Bitte kontaktieren Sie unseren Technical Support unter 0431/25968-500 oder [email protected] unter Angabe Ihrer Merchant ID und mit Verweis auf diesen Thread. Möglicherweise liegt hier ein anderes Problem vor (z.B. backurl
Parameter).
from magento-2.
Es geht nicht um den "Zurück-Link" in Paypal sondern darum, wenn man im Browser auf den "Zurück-Pfeil" klickt.
Das war die kritische fehlende Information ;) Jetzt kann ich das Verhalten auch reproduzieren. Wir schauen uns das mal an. Danke für den Lösungsvorschlag!
from magento-2.
Hallo,
Hab meinen letzten gelöscht, weil ich noch einen Fehler im Lösungsvorschlag gesehen habe.
Genau, es geht nicht um den "Zurück-Link" in Paypal sondern darum, wenn man im Browser auf den "Zurück-Pfeil" klickt.
Ursache:
In Klasse: Magento/Quote/Model/QuoteManagement
Methode: protected function submitQuote(QuoteEntity $quote, $orderData = [])
...wird (in Zeile 487) das $quote
-Objekt auf Inactive gesetzt:
$quote->setIsActive(false);
Das hat zur Folge, dass nach diesem Aufruf jegliche Artikel aus dem Warenkorb fallen, sollte der User wieder auf irgendeine Shopseite kommen.
Lösung
Observer für den Event sales_model_service_quote_submit_success
:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_model_service_quote_submit_success">
<observer name="paypal_quote_submit" instance="MyNamespace\PayoneFix\Observer\PaypalQuoteSubmit" />
</event>
</config>
Observer Class:
<?php
namespace MyNamespace\PayoneFix\Observer;
use Magento\Framework\Event\ObserverInterface;
class PaypalQuoteSubmit implements ObserverInterface
{
/**
* @param \Magento\Framework\Event\Observer $observer
* @return $this
*/
public function execute(\Magento\Framework\Event\Observer $observer)
{
/** @var \Magento\Sales\Model\Order $order */
$order = $observer->getEvent()->getOrder();
if ($order->getPayment()->getMethod() == "payone_paypal") {
/** @var \Magento\Quote\Model\Quote $quote */
$quote = $observer->getEvent()->getQuote();
$quote->setIsActive(true);
$quote->setReservedOrderId(null);
}
return $this;
}
}
$quote->setReservedOrderId(null);
ist für folgenden Fall wichtig: Der Kunde wird auf die Paypal-Seite gelenkt, dann bricht er die Zahlung ab.
Dann geht er aber wieder auf die Paypal-Seite oder wählt eine andere Bezahlmethode.
Falls $quote->setReservedOrderId(null);
nicht im Observer steht, gibt's einen SQL-Fehler, weil nicht zweimal dieselbe Increment-ID vergeben werden kann.
Wie gesagt, es wäre super, wenn ihr das mal nachprüfen könntet.
from magento-2.
Wir haben das gleiche Problem, aber es ist wesentlich schlimmer. Es tritt auch bei Sofort-Überweisung und wahrscheinlich den anderen Zahlungsmethoden auf.
Man bestellt, geht auf die Payment Seite, kommt mit dem Backbutton des Browsers zurück und der Warenkorb ist leer.
Die Bestellung wird aber als bezahlt in Magento verbucht und der Kunde bekommt eine Bestellbestätigung zugeschickt. Er hat aber nie etwas gezahlt.
Wir sind auf Magento 2.1.3 und auf der letzten Release des Plugins. Haben es gestern nochmal installiert.
Danke!
from magento-2.
@smiler51 Die Bestellung sollte nicht als "Bezahlt" verbucht werden. Hierfür haben wir im Modul das Transaktionsstatus-Mapping, welches sicherstellt, dass Bestellungen nur als "Bezahlt" markiert werden, wenn die Transaktion auch bei Sofort durchgeführt wurde.
Die Bestellung sollte zwar angelegt werden, allerdings im Standard Magento Order Status verharren, bis ein Update durch unsere Plattform erfolgt. Dann sollte der entsprechende Wechsel des Status getriggert werden. Bestellungen, für die kein Transaktionsstatus eingeht wurden auch nicht ordnungsgemäß abgeschlossen.
from magento-2.
Related Issues (20)
- Product quantity is reduced on payment error HOT 4
- Additional cancelled order after successful payment using Paypal HOT 2
- Missing handling of region-codes (Magento/ISO vs. Payone api) HOT 1
- when selecting credit card type showing error HOT 3
- Magento2 dont have option to map paid to processing HOT 1
- Facing multiple issue after integrate payone HOT 3
- Facing multiple issue after integrate payone HOT 1
- PayOne ApplePay compatibility with Magento Cloud HOT 2
- Adding PHP 8.2 support for Magento 2.4.6 release HOT 1
- deprecated _isScopePrivate in Totals.php HOT 3
- Credit card payment after canceling payment process still authorized and order status processing HOT 2
- Add compatibility to PHP 8.2 HOT 2
- Cannot checkout with PayPal Express HOT 6
- Version 3.8.1 : Deprecated Functionality: Function utf8_encode() HOT 8
- Version 3.8.1: Deprecated Functionality: Creation of dynamic property HOT 3
- PayPal Express Button does not respect Minimal Order Amount HOT 1
- Error 923 Payment type not available for this currency or card type Set correct currency, type of payment, type of card, type of account or portalid HOT 3
- Errorcode 1610 - probably rounding error in calculation of order amount HOT 1
- Issue with canceled orders HOT 1
- Random paypal/creditcard orders stuck in status "processing" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from magento-2.