Tutorial: Neuen Bestell- & Zahlstatus erstellen

Achtung! Die hier zur Verfügung gestellten Informationen wurden zum Zeitpunkt der Veröffentlichung dieses Artikels getestet, können sich zwischenzeitlich aber geändert haben. Die Durchführung dieses Tutorials geschieht auf eigene Gefahr! Lege Dir vor der Durchführung ein Backup an, sodass Du dieses im Zweifel zurückspielen kannst. Beachte, dass es sich hier um Anpassungen von Shopware handelt und der Inhalt dieses Tutorials daher nicht offiziell supportet wird!

Vorwort

In diesem Artikel erklären wir, wie Du einen eigenen Bestell- oder Zahlstatus erstellen und diesen mit einer E-Mail-Vorlage verknüpfen kannst.

Status anlegen

Als erstes musst Du den gewünschten Status in der Datenbank anlegen. Öffne dazu in Deinem phpMyAdmin in Deiner Datenbank die Tabelle "s_core_states":

Schaue nun, welche ID du verwenden kannst. Im Standard ist die erste freie ID die 36. Füge nun einen neuen Datensatz in die Tabelle ein:

  • name ist ein intern verwendeter Name
  • description ist der öffentliche Name dieses Status, den auch der Kunde zu Gesicht bekommen wird.
  • position beschreibt die Position des Status innerhalb der Statusliste im Backend.
  • group wählt die Zugehörigkeit des Status, "state" für Bestellstatus und "payment" für Zahlstatus.
  • mail definiert, ob zu diesem Status eine Mail versendet werden soll (1) oder nicht (0)

E-Mail-Vorlage erstellen

Der Status ist erstellt, nun muss noch eine E-Mail-Vorlage für ihn erstellt werden. Diese E-Mail-Vorlage muss den Namen "sORDERSTATEMAIL"+"ID" tragen, in unserem Fall also "sORDERSTATEMAIL36". Erstelle diese E-Mail-Vorlage und fülle Sie mit dem gewünschten Inhalt:

Leere nun den Cache und lade das Backend einmal neu.

Status im Frontend bereitstellen

Als erstes öffnest Du Die Textbausteinverwaltung und erstellst unter "frontend/account/order_item" einen neuen Textbaustein, zum Beispiel "OrderItemInfoMeinNeuerStatus", welchen Du mit Deinem Wunschtext füllst:

Nun kannst Du den Textbaustein im Frontend bereitstellen. Erstelle dazu auf dem Server eine Templatedatei "order_item.tpl" im Verzeichnis /themes/Frontend/EIGENERTHEMENAME/frontend/account/. Dort muss nun der folgende Block mit Deinem neuen Status integriert werden:

 
{extends file='parent:frontend/account/order_item.tpl'}
 
{block name="frontend_account_order_item_status_value"}
<div class="column--value">
	<span class="order--status-icon status--{$offerPosition.status}"></span>
	{if $offerPosition.status==0}
		{s name="OrderItemInfoNotProcessed"}{/s}
	{elseif $offerPosition.status==1}
		{s name="OrderItemInfoInProgress"}{/s}
	{elseif $offerPosition.status==2}
		{s name="OrderItemInfoCompleted"}{/s}
	{elseif $offerPosition.status==3}
		{s name="OrderItemInfoPartiallyCompleted"}{/s}
	{elseif $offerPosition.status==4}
		{s name="OrderItemInfoCanceled"}{/s}
	{elseif $offerPosition.status==5}
		{s name="OrderItemInfoReadyForShipping"}{/s}
	{elseif $offerPosition.status==6}
		{s name="OrderItemInfoPartiallyShipped"}{/s}
	{elseif $offerPosition.status==7}
		{s name="OrderItemInfoShipped"}{/s}
	{elseif $offerPosition.status==8}
		{s name="OrderItemInfoClarificationNeeded"}{/s}
	{elseif $offerPosition.status==36}
		{s name="OrderItemInfoMeinNeuerStatus"}{/s}
	{/if}
</div>
{/block}
 


Damit nun noch das entsprechende Icon neben dem Status angezeigt wird ist es nötig, eine eigene "all.less" Datei zu erstellen. Der dort verwendete LESS-Code wird vom LESS-Compiler in normales CSS kompiliert.
Wechsle dazu in das Verzeichnis /themes/Frontend/EIGENERTHEMENAME/frontend/_public/src/less und erstellte dort die Datei all.less
Füge dann bitte den folgenden Code ein:

 
.order--status-icon {
  position: static;
 
  &.status--36 { //Mein neuer Status
    background: @highlight-info;
  }
}
 

Testen

Nachdem Du diese Änderungen vorgenommen hast, kannst Du den Status Im Bestellungsmdoul wie gewohnt nutzen:

Und ebenso im Frontend:

Weitere interessante Artikel:

Artikel-Attribute und Eigenschaften in die Suche einbeziehen

Vorwort Ab Shopware 5.1.0 hast Du die Möglichkeit direkt im Shopware Core die Frontend-Suche um die Freitextfelder zu erweitern. Zusätzlich kannst Du mit der Intelligenten Suche die Frontend-Suche auch um die Eigenschaften / Filter...

weiterlesen

Datenschutz Hinweis in die Formulare einbauen

Einleitung An allen Stellen die personenbezogene Daten verarbeiten, solltest Du einen Hinweis auf die Datenschutzbestimmungen platzieren. Hier findest Du ein kleines Tutorial, wie Du einen solchen Hinweis in Deinem Theme einbauen kannst. Als...

weiterlesen

Wie erstelle ich ein Support-Ticket

Vorwort Dieser Artikel beschreibt das Erstellen eines Support Tickets im Rahmen Deiner Support-Subscription und ist somit nur dann für Dich interessant, wenn Du eine aktive Support-Subscription gebucht hast. Bevor Du Dein Support-Ticket...

weiterlesen
€ 10,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*