Frage

Schritte zum Reproduzieren:

  1. Klicken Bearbeiten bei erster Bestellung, also 000000001
  2. Klicken Bearbeiten in zweiter Ordnung, also 000000002
  3. Klicken Produkte hinzufügen auf dem Bearbeitungsbildschirm für die erste Bestellung
  4. Wählen Sie ein beliebiges Produkt aus und klicken Sie Ausgewählte Produkte zur Bestellung hinzufügen

Sie sehen nun, dass der Inhalt von 000000001 alle Produkte aus 000000002 sowie das von Ihnen ausgewählte Produkt sind.

Mir ist auch ein seltsames Verhalten aufgefallen, wenn es darum geht, Bestellungen nach der Bearbeitung aufzugeben, wobei beispielsweise die Bearbeitung von 000000002 dazu führt, dass die neue Inkrement-ID 000000001-1 lautet.

Ich denke, dieser Fehler könnte darauf zurückzuführen sein adminhtml/session_quote Objekt (app/code/core/Mage/Adminhtml/Model/Session/Quote.php).Bedeutet das, dass Magento nur die Bearbeitung einer einzelnen Bestellung pro Sitzung bewältigen kann?Sicherlich würde es zwischen den Sitzungsobjekten anhand der ID der übergeordneten Entität oder etwas in dieser Richtung unterscheiden?

Bearbeiten: Das gleiche Verhalten tritt auf, wenn zwei Bestellungen gleichzeitig aufgegeben werden, was mich zu der Annahme veranlasst, dass es definitiv mit der Unfähigkeit zusammenhängt, die Bestellung aufzuteilen adminhtml/session_quote Objekte auf Basis der Entitäts-ID pro übergeordneter Bestellung.

War es hilfreich?

Lösung

Ich glaube nicht, dass das ein Fehler ist.Es handelt sich vielmehr um eine Einschränkung bei der Implementierung der Admin-Bearbeitungsreihenfolge.
Wenn du triffst Bearbeiten Beim Erstellen und Bestellen (und beim Erstellen und Bestellen von Grund auf) im Backend ist die Sitzung beteiligt.Sehen Sie, wie die Mage_Adminhtml_Sales_Order_EditController Und Mage_Adminhtml_Sales_Order_CreateController Klassen aussehen und was sie tun.

Wenn Sie also beim zweiten Befehl auf „Bearbeiten“ klicken, wird die Sitzung gelöscht (siehe Mage_Adminhtml_Sales_Order_EditController::startAction) und Sie bearbeiten die erste Bestellung nicht mehr.

Das Formular aus der ersten bearbeiteten Bestellung wird jedoch mit Daten aus der ersten Bestellung gefüllt.Nur die Ajax-Aufrufe, die Sie von diesem Punkt an im Bildschirm zum Bearbeiten der Reihenfolge durchführen, geben Werte aus der zweiten Reihenfolge zurück, die Sie bearbeiten.
Aus diesem Grund erhalten Sie gemischte Ergebnisse aus erster und zweiter Ordnung.

Wenn Sie das Formular aus der ersten Bestellung absenden, übermitteln Sie Daten wie Kundennummer oder Währung aus der ersten Bestellung, aber Sie haben die Artikel aus der zweiten Bestellung erhalten.

Die Lektion hier ist, niemals zwei Bestellungen innerhalb derselben Sitzung zu bearbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top