Neuen Bestell- und Zahlstatus erstellen

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.

Statusnamen im Backend bereitstellen

Als erstes öffnest Du die Textbausteinverwaltung und erstellst unter "backend/static/payment_status" für Zahlungsstatus oder "backend/static/order_status" für Bestellstatus einen neuen Textbaustein, zum Beispiel "MeinNeuerStatus" als technischem Namen, welchen Du mit Deinem Wunschtext füllst:
 

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:

Auch im Frontend wird der neue Status nun angezeigt: 

War dieser Artikel hilfreich?