Auftragsstatusverlauf abgeschlossen nicht mehr erstellt, sondern auf der M1-Site

8

Wenn auf unserer M1-Site eine Bestellung versandt wurde, wurde der Status der Bestellung in "Abgeschlossen" geändert, und im Bestellstatusverlauf wurde ein Datensatz angezeigt, aus dem hervorgeht, dass die Bestellung abgeschlossen war.

M1

NB: Beachten Sie, dass es einen "vollständigen" Datensatz gibt.

In M2 erhält der Auftragsstatusverlauf keinen neuen Datensatz.

M2

NB: Keine "vollständige" Aufzeichnung.

Warum ist das so?

Gibt es eine Möglichkeit, diesen Datensatz zu erstellen?

JSON für die Beispielreihenfolge M1:

[
  {
    "entity_id": 1235050,
    "parent_id": 444314,
    "is_customer_notified": 2,
    "is_visible_on_front": 0,
    "comment": "Captured amount of $48.38 online. Transaction ID: \"\".",
    "status": "processing",
    "created_at": "2018-08-12T07:48:10",
    "entity_name": "invoice"
  },
  {
    "entity_id": 1235062,
    "parent_id": 444314,
    "is_customer_notified": 1,
    "is_visible_on_front": 0,
    "comment": null,
    "status": "complete",
    "created_at": "2018-08-12T11:39:56",
    "entity_name": "shipment"
  }
]

JSON für die Beispielreihenfolge M2:

[
  {
    "entity_id": 1242440,
    "parent_id": 449257,
    "is_customer_notified": null,
    "is_visible_on_front": 0,
    "comment": "Captured amount of $160.90 online. Transaction ID: \"\"",
    "status": "processing",
    "created_at": "2018-09-11T04:08:28",
    "entity_name": "invoice"
  }
]
Rätselhaftigkeit
quelle
Probs nur dumm, aber ich weiß nicht, was Sie unter Bestellstatusverlauf verstehen. Vielleicht hat es keiner meiner Befehle, also sehe ich es nicht. Können Sie erklären?
Jamil
1
@jamil - Es sind die Informationen in der sales_order_status_historyTabelle. Ich werde der Frage einen Screenshot hinzufügen.
Rätselhaftigkeit
Aber Sie haben keine Bestellung versandt? Nach dem Versand wird "komplett" erstellt?
BartZalas
@BartZalas - Nein, in M2 wird beim Versand einer Bestellung kein Datensatz in der sales_order_status_historyTabelle erstellt. Es tat in M1, aber nicht in M2. Beide oben genannten Bestellungen waren Versandbestellungen.
Enigmativity
Ich habe festgestellt, wenn Sie einen Kommentar manuell im Backend hinzufügen => order => information => Kommentar unten hinzufügen. Es wird in sales_order_status_history angezeigt, aber diese Standardwerte werden nicht angezeigt.
BartZalas

Antworten:

3

Dies ist eine weitere Antwort, von der ich hoffe, dass sie diese Frage zu Bett bringt.

  • Die vorherige Antwort zeigt, wie sich M2 entwickelt hat und wie es jetzt möglich ist, den Auftragsverlauf anzuzeigen. Da Sie jedoch anscheinend auch eine Benachrichtigung benötigen, wenn Sie die Bestellung anzeigen (ein bisschen Nostalgiegefühl)

Ich habe ein Modul geschrieben, das eine Benachrichtigung hinzufügt, wenn die Sendung erstellt wird, und das reproduziert, was wir in M1 hatten

Das Modul verwendet ein Plugin afterRegister Plugin des Versandmodells (siehe unten).

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Sales\Model\Order\Shipment">
        <plugin name="order_shipped" type="Mbs\OrderNotifification\Plugin\ShipmentSavePlugin" sortOrder="999" />
    </type>
</config>


namespace Mbs\OrderNotifification\Plugin;


use Magento\Sales\Api\OrderRepositoryInterface;

class ShipmentSavePlugin
{
    /**
     * @var OrderRepositoryInterface
     */
    private $orderRepository;

    public function __construct(
        \Magento\Sales\Api\OrderRepositoryInterface $orderRepository
    ) {
        $this->orderRepository = $orderRepository;
    }

    public function afterRegister(\Magento\Sales\Model\Order\Shipment $shipment)
    {
        try {
            $order = $this->orderRepository->get($shipment->getOrderId());
            $order->addStatusHistoryComment('Order Complete', \Magento\Sales\Model\Order::STATE_COMPLETE);
        } catch (\Exception $e) {

        }
    }
}

Den vollständigen Code finden Sie im Bestellbenachrichtigungs-Repo

Herve Tribouilloy
quelle
1

Der Zahlungsfluss und der Bestellzyklus sind in M1 und M2 gleich.

Wenn Sie eine Bestellung aufgeben, ist Ihr Bestellstatus derjenige, der von der für die Bestellung verwendeten Zahlungsmethode bestimmt wird.

  • Beispielsweise setzt die Zahlungsmethode Scheck / Zahlungsanweisung die Bestellung auf ausstehend .
  • Außerdem setzen die meisten Zahlungsmethoden den Bestellstatus auf Verarbeitung, wenn die Zahlung physisch ausgeführt wird (wenn die Erfassung der Zahlung erfolgt ist). In diesem Fall sollte für diese Bestellung eine Rechnung erstellt werden.
  • Sobald sich Ihre Bestellung im Bearbeitungsstatus befindet, müssen Sie die Bestellung versenden (beachten Sie, dass es wichtig ist, zu überprüfen, ob die Sendung zu diesem Zeitpunkt erfolgreich erstellt wurde, da dies sonst erklären würde, warum Ihr Bestellstatus nicht wie erwartet vollständig ist ).

Ich habe heute ein Magento 2 (2.2.5) ausprobiert und das funktioniert wie erwartet. Ich schlage vor, Ihre Umgebung verfügt über ein Modul oder eine Anpassung, die verhindert, dass Magento wie erwartet funktioniert. Da Ihr Beitrag nach 21 Tagen keine Antwort mehr hat, müssen Sie mit dem nächsten Schritt fortfahren:

-> Der erste Gedanke, den ich habe, ist: Können Sie überprüfen, ob die Sendung in Ihrer M2-Umgebung erfolgreich erstellt wurde ? Es ist möglich, dass Ihre M1-Umgebung die Sendung automatisch mit einer Modul- oder API-Integration ausgeführt hat und M2 die Sendung zumindest vorerst manuell erstellen muss. Dann können Sie auch versuchen, dies zu automatisieren

-> Wenn Ihnen die oben genannten Punkte nicht Aufschluss über Ihre Probleme geben, sollten Sie sich Ihre Server-Protokolldateien ansehen und versuchen, einen Fehler zu finden, der Sie darauf hinweist, was Magento daran hindert, zu funktionieren. Magento-Protokolle können natürlich auch nützlich sein

Geben Sie hier die Bildbeschreibung ein

Ich füge hier einen Screenshot mit dem Erstellungsdatum der Sendung hinzu. Dies zeigt, dass wir ein anderes Rendering als M1 haben, aber das Abschlussdatum der Bestellung ist etwas, das Sie ab dem Erstellungsdatum der Sendung lesen können.

Herve Tribouilloy
quelle
Sie haben den Punkt meiner Frage verpasst. Alle Sendungen, Rechnungen usw. werden korrekt erstellt. Der Bestellstatus ist korrekt. Es ist nur der Auftragsverlaufsstatusdatensatz, der in M2 nicht erstellt wird, wenn der Auftrag abgeschlossen ist. Die Screenshots, die ich der Frage hinzugefügt habe, sollten Ihnen zeigen, was ich meine.
Rätselhaftigkeit
Hände hoch, ich habe mir meine lokale Magento 2-Instanz angesehen und die Benachrichtigung fehlt auch gemäß Ihren Kommentaren. Mein Gedanke ist, wenn Sie das Datum abrufen müssen, an dem die Bestellung als abgeschlossen markiert wurde, stimmt es mit dem Datum überein, an dem die Sendung erstellt wurde. Natürlich können Sie eine Benachrichtigung zum Bestellverlauf hinzufügen, indem Sie eine Anpassung implementieren. Letztere erstellt eine Benachrichtigung, wenn die Sendung erstellt wird. Benötigen Sie das oder war es nur eine Neugier, die Sie hatten?
Herve Tribouilloy
Ich brauche es. Danke für deine zweite Antwort.
Rätselhaftigkeit
Gerne geben
Code ist jetzt verfügbar, siehe Link in dem Beitrag, den ich vor ein paar Minuten aktualisiert habe
Herve Tribouilloy