Shopware 6 ist eine flexible E-Commerce-Plattform, die es Benutzern ermöglicht, eigene Bestellstatus zu definieren, um den Fortschritt der Bestellungen zu verfolgen. Dies kann mithilfe von SQL-Befehlen und der Erstellung von Mail-Templates und Flows erfolgen.
Um eigene Bestellstatus in Shopware 6 zu definieren, müssen Sie zuerst die erforderlichen SQL-Befehle schreiben. Dies kann entweder direkt über das Shopware 6-Dashboard erfolgen oder durch Verwendung eines SQL-Editors wie phpMyAdmin.
Benötigte Tabellen-Daten um im zweiten Schritt die SQL Befehle zu schreiben:
- state_machine - id(in den folgenden SQL Strings in der SPalte state_machine_id verwendet) - in unserem Bsp. (09ecd7b8e41d84568a56eb75d3ca41c8 , technical_name=order.state)
- language - id deutsch(
2FBB5FE2E29A4D70AA5854CE7CE3E20B
) / id englisch(D5EAF4284E8E44689C4A90D85BD6D582) - vorgegebene nutzbare Stati aus SW in_progress=1395BC08441849AB850B64D6FBF56E2A / open=8629E7A401D849D0943431E4A7AECB04 / cancelled=81EBE1A5E4C145AEB2F8F02F3F8A10C9 . Hier auf die passende state_machine_id (6761BF9551CE4037B8701259CD169218) achten
- hexadecimal generator -> https://www.browserling.com/tools/random-hex
hiermit werden die notwendigen ids für die Pflege in state_machine_state=id und bei den anderen Tabellen jeweils die verknüpftestate_machine_state_id
zu erzeugt. - Name des Status, technischer Name des Status, Vorgänger/Nachfolger
- now() ist eine SQL Funktion und setzt den aktuellen Zeitpunkt ein
Die grundlegenden SQL-Befehle, die zum Erstellen von Bestellstatus erforderlich sind, sind:
INSERT IGNORE INTO `state_machine_state` (`id`, `technical_name`, `state_machine_id`, `created_at`, `updated_at`)
VALUES (UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), 'neuer_status', UNHEX('6761BF9551CE4037B8701259CD169218'), now(), NULL);
## Befehl um die Übersetzung des neuen Status zu pflegen
INSERT IGNORE INTO `state_machine_state_translation` (`language_id`, `state_machine_state_id`, `name`, `custom_fields`, `created_at`, `updated_at`) VALUES (UNHEX('2FBB5FE2E29A4D70AA5854CE7CE3E20B'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), '01. Auftrag angenommen', NULL, now(), NULL), (UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), UNHEX('26f77d07ed783583e3bcdbd5ab69e37d
'), 'order accepted', NULL, now(), NULL);
## Befehl um den Vorgänger/Nachfolger für den neuen Satus zu bestimmen.
INSERT IGNORE INTO `state_machine_transition` (`id`, `action_name`, `state_machine_id`, `from_state_id`, `to_state_id`, `custom_fields`, `created_at`, `updated_at`) #from open VALUES (UNHEX('F462609BD20903C8640A8C9D6B8F2073'), 'open', UNHEX('8629E7A401D849D0943431E4A7AECB04'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0
'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), NULL, now(), NULL), #from in_progress (UNHEX('12463b52594fa60d90e43f0538dc4bfe'), 'accepted', UNHEX('6761BF9551CE4037B8701259CD169218'), UNHEX('1395BC08441849AB850B64D6FBF56E2A'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), NULL, now(), NULL), #to cancel (UNHEX('d6050734eb4a2f30fe18e75323a7ba2f'), 'cancel', UNHEX('6761BF9551CE4037B8701259CD169218'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), UNHEX('81EBE1A5E4C145AEB2F8F02F3F8A10C9'), NULL, now(), NULL), #to open (UNHEX('336df875bd93d68e756a7d0d1ba02d75'), 'reopen', UNHEX('6761BF9551CE4037B8701259CD169218'), UNHEX('532f6079d51722f1147fdd5b2a0db6a0'), UNHEX('8629E7A401D849D0943431E4A7AECB04'), NULL, now(), NULL);
Diese Befehle erstellen einen neuen Bestellstatus (state_machine_state
), seine Übersetzungen/Textbausteine, eine Übergangsaktion (action_name) und definieren von welchem Status aus der Übergang erfolgt (from_state_id) und in welchen Status der Übergang führt (to_state_id).
Als nächstes müssen Sie das Mail-Template und den Flow für Ihren neuen Bestellstatus erstellen. Dies erfolgt über das Shopware 6-Dashboard unter Einstellungen > Mail-Templates und Einstellungen > Flows.
Das Mail-Template definiert die E-Mail-Nachricht, die an den Kunden gesendet wird, wenn der Bestellstatus aktualisiert wird. Sie können ein Standard-Template kopieren und anpassen oder ein neues Template erstellen, das speziell für Ihren neuen Bestellstatus geeignet ist.
Der Flow definiert die Aktionen, die ausgeführt werden sollen, wenn der Bestellstatus aktualisiert wird. Dies kann das Senden einer E-Mail an den Kunden oder das Aktualisieren der Bestellübersicht auf der Website umfassen.
Wenn Sie sowohl das Mail-Template als auch den Flow erstellt haben, müssen Sie sie Ihrem neuen Bestellstatus zuordnen. Dies erfolgt über das Shopware 6-Dashboard unter Einstellungen > Bestellstatus.
In der Bestellstatus-Liste wählen Sie Ihren neuen Bestellstatus aus und weisen das Mail-Template und den Flow zu, die Sie zuvor erstellt haben.
Ich hoffe ich konnte mit den Ausführungen etwas Licht ins dunkel bringen. Es gibt auch eine Shopware Doku zu dem Thema: Neuen Bestell- und Zahlstatus erstellen