In diesem Artikel erklären wir, wie Du einen eigenen Bestell- oder Zahlstatus erstellen und diesen mit einer E-Mail-Vorlage verknüpfen kannst.
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:
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.
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:
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;
}
}
Nachdem Du diese Änderungen vorgenommen hast, kannst Du den Status Im Bestellungsmdoul wie gewohnt nutzen:
Auch im Frontend wird der neue Status nun angezeigt: