Bestellhistorie integrieren

Wenn ein Käufer Bestellungen anschauen will, die er in der Vergangenheit getätigt hat, können Sie eine solche Möglichkeit anbieten in Form eines Links oder einer Schaltfläche im Kundenkonto. Da diese Funktion kundenspezifische Informationen anzeigt, steht sie Käufern erst nach Anmeldung zur Verfügung.

Es gibt zwei Arten, die Bestellhistorie anzuzeigen/zu integrieren:

Mit der aktuellen Integration erhält der Käufer eine frei positionierbare (z. B. tabellarische) Auflistung seiner getätigten Bestellungen. Dabei können neben Datum/Uhrzeit und Bestellnummer weitere Informationen angezeigt werden, z. B. Versandadresse oder Bestellsumme.
Diese Darstellung der Bestellungen ist für alle Kunden ein Mehrwert, die nicht die WWS-Infodatenschnittstelle oder die WS-REST-OrderManagement-Schnittstelle im Einsatz haben.

Bei der bisherigen Integration wird dem Käufer eine Auswahlliste präsentiert, aus der er die gewünschte Bestellung auswählen kann.

Inhalt

Funktionsweise der Anzeige

Integration

Frei positionierbare Anzeige (empfohlen)

Anzeige als Auswahlliste

Migration von V7 auf V8

 

Funktionsweise der Anzeige

In der Bestellhistorie werden die Bestelldaten in der Sprache und mit den Bezeichnungen angezeigt, wie bei der Bestellung verwendet. Jeder Parameter der Bestelldaten besteht aus zwei Elementen: dem angezeigten Parameternamen (technische ID), wie er zum Bestellzeitpunkt im Shop vorhanden war, und dem zugehörigen Wert.

 

Hinweis zu den Bestelldaten

Eine Übersicht der Bestelldaten mit den Bezeichnungen (technische IDs) der Sektionen und Parametern finden Sie unter
Materialien: Übersicht der wichtigsten Sektionen und Parameter in den Bestelldaten

Die tatsächlichen Bestelldaten hängen von der Komplexität und dem Funktionsumfang Ihres WEBSALE-Shops ab.

Benötigen Sie die komplette technische Dokumentation der Bestelldaten? Sie finden diese unter
https://doku.websale.de/schnittstellen.

Es können alle Daten aus früheren Bestellungen angezeigt werden, außer sie sind sicherheitsrelevant. So kann aus Sicherheitsgründen z. B. die Sektion <CreditCard> nicht ausgewählt werden und somit können keine Kreditkartennummern oder Kartenprüfwerte angezeigt werden.

Auswahl der anzuzeigenden Datenbereiche und Anzeige der Daten

Damit sie auf den Shop-Templates klar von aktuellen Produktdaten-Tags des Shops unterscheidbar sind, tragen alle Bestellhistorie-Parameter das Präfix "OH" (für "Order History"). Zur Auswahl eines anzuzeigenden Inhaltes stehen Ihnen zwei Tag-Typen zur Verfügung, nämlich "S"- und "P"-Typen. "S" steht dabei für Sektion und "P" für Parameter. Die Tags haben somit alle den Präfix "OH-S-" oder "OH-P-".

Durch das Tag OH-S-"technische ID" legen Sie die Sektion fest, aus der anschließend mit Tags der Form OH-P-"technische ID" die Werte der Parameter angezeigt werden. Auf Untersektionen können Sie durch eine Verschachtelung von Bereichs- oder Schleifen-Tags zugreifen. Somit kann man z. B. eine Schleife über alle Positionen einer Bestellung legen (Sektionen <Item>). Durch Schließen eines Sektions-Tags "verlässt" man die Sektion.

Tags für Sektionen

OH-S-"technische ID": Navigation und Auswahl einer Sektion der Bestelldaten. Das Bereichs-Tag zeigt an, ob mindestens eine Sektion mit der angegeben ID vorhanden ist. Das Schleifen-Tag läuft über alle Sektionen mit der technischen ID.
Referenz: OH-S-"technische ID"

OH-S-RawData: Innerhalb eines beliebigen OH-S-"technische ID"-Tags eingesetzt, zeigt das Bereichs-Tag an, ob die aktuelle Sektion der Bestelldaten nur Text enthält (z. B. Sektion <CustomerComment>). Als Einzel-Tag wird dieser Text ausgegeben.
Referenz: OH-S-RawData

OH-S-LoopCounter: Das Einzel-Tag gibt die Position innerhalb der aktuellen Schleife aus. Damit lässt sich z. B. ein Farbwechsel in Schleifen realisieren.
Verwendung mit einem Argument: Führt mit dem Argument und der Zahl der Position der Schleife eine Berechnung durch, die mit jedem Schleifendurchgang von 1 bis zum Argument zählt und dann wieder bei 1 beginnt. Näheres dazu siehe Materialien: Modulo-Rechnung.
Verwendung mit zwei Argumenten: Bei verschachtelten Loops können Sie auch auf die Position einer äußeren Schleife zugreifen, indem Sie hier den ParentLevel angeben. Geben Sie hier z. B. 1 an, so wird die Position der Schleife eine Ebene höher verwendet.
Referenz: OH-S-LoopCounter

Tags für Parameter

OH-P-"technische ID": Das Einzel-Tag gibt den Wert des Parameters "technische ID"_DValue (Anzeigewert zum Parameter) aus. Existiert dieser nicht, so wird der Wert des Parameters "technische ID" ausgegeben. Optional wird beim Bereichs-Tag ein Argument unterstützt. Der Bereich wird nur dann angezeigt, wenn Argument und Wert identisch sind.
Referenz: OH-P-"technische ID"

OH-P-"technische ID"_text: Das Einzel-Tag gibt den Wert des Parameters "technische ID"_DName (Anzeigename zum Parameter) aus. Existiert dieser nicht, so wird der Name des Parameters, also die technische ID selber, angezeigt. Optional wird beim Bereichs-Tag ein Argument unterstützt. Der Bereich wird nur dann angezeigt, wenn Argument und Wert identisch sind.
Referenz: OH-P-"technische ID"_text

OH-P-"technische ID"_rawdata: Zugriff auf den Wert des Parameters "technische ID". Optional wird beim Bereichs-Tag ein Argument unterstützt. Der Bereich wird nur dann angezeigt, wenn Argument und Wert identisch sind.
Referenz: OH-P-"technische ID"_rawdata

Beispiel zum Unterschied zwischen OH-P-"technische ID" und OH-P-"technische ID"_rawdata:

An einigen Stellen wird in den Bestelldaten sowohl ein technischer Wert als auch ein lesbarer/angezeigter Wert gespeichert. Ein Beispiel hierfür ist das Land aus der Bestelldaten-Sektion <CustomerAddress>. Hier werden der 3-stellige ISO-Code und die Länderbezeichnung gespeichert:
 

<CustomerAddress>
  ...
  Country         =   DEU
  Country_DValue  =   Deutschland
  Country_DName   =   Land
  ...
</CustomerAddress>

Materialien: Übersicht der wichtigsten Sektionen und Parameter in den Bestelldaten

Sie könnten jetzt zum Beispiel bei der Anzeige nach dem ausgeschriebenen Land eine Länderflagge anzeigen lassen.
Die Flagge ist eine Bilddatei, die im Bildnamen den 3-stelligen ISO-Code beinhaltet, da dieser sprachunabhängig ist:

{OH-S-CustomerAddress}
   ...   
   ~OH-P-Country_text~                      <!-- Bezeichnung, lesbar (Country_DName: Land) -->
   ~OH-P-Country~                           <!-- gewähltes Land, lesbar (Country_DValue: Deutschland) -->
   <img src="~OH-P-Country_rawdata~.jpg">   <!-- gewähltes Land, technischer Wert (Country: DEU) -->
   ...
{/OH-S-CustomerAddress}

 

Integration

Sie können die Bestellhistorie entweder frei positionierbar (z. B. als Tabelle) oder als Auswahlliste integrieren.

Frei positionierbare Anzeige (empfohlen)

Mit der aktuellen Integration kann dem Käufer beispielsweise eine tabellarische Auflistung seiner getätigten Bestellungen angezeigt werden.

Beispiel:

Schritt 1: Freischaltung/Aktivierung

Für die Bestellhistorie ist keine Freischaltung seitens WEBSALE nötig.

Schritt 2: Anpassung in der Shopkonfiguration shop.config

Mittels des Parameters OrderHistoryAllSubShops-Allow im Abschnitt Basic der Shopkonfiguration shop.config können Sie einstellen, ob sich die Abfrage der Bestellhistorie für ein Kundenkonto auf alle Subshops (z. B. Desktop und mobil) oder nur auf den Subshop beziehen soll, bei dem der Käufer gerade angemeldet ist.

<Basic>
   ...
   OrderHistoryAllSubShops-Allow =  yes
   ...
</Basic>

Referenz: OrderHistoryAllSubShops-Allow

Schritt 3: Template OrderHistory erstellen

Die Integration erfolgt auf dem Template OrderHistory. Ist dieses noch nicht vorhanden, so legen Sie es bitte an oder verwenden Sie eine Beispieldatei und passen diese an. Fügen Sie den Namen des Templates in die Shopkonfiguration shop.config innerhalb des Abschnitts <Templates> ein.

<Templates>
   ...
   OrderHistory = ws_order_history.htm
   ...
</Templates>

Referenz: Templates

Schritt 4: Anzeige der Bestellungen und Blätterfunktion einbinden

In unserem Beispiel werden 10 Bestellungen auf einer Seite angezeigt. Alle weiteren Bestellungen können durch eine Blätterfunktion aufgerufen werden.

Beispiel:

...
{!WS-OTPorderdetail}
<form action="~FORM-OrderHistory~" name="OrderHistory" method="Post" id="wsOrderHistoryForm">
   {MSG-OrderHistory_Notify}~MSG-OrderHistory_Notify~{/MSG-OrderHistory_Notify}
   {WS-OrderHistoryCustomList}
   <input name="~WS-OrderHistoryOpenBtnName~" type="hidden">
   <input type="hidden" name="otporderdetail" value="true">
  
   <table>
      <tr>
         <th>Bestellung #</th>
         <th>Datum</th>
         <th>Verschickt an</th>
         <th>Artikel</th>
         <th>Bestellsumme</th>
         <th>Aktion</th>
      </tr>
      {@WS-OrderHistoryCustomList}
         <tr>
            <td>{OH-S-ID}{OH-P-OrderNumber}~OH-P-OrderNumber~{/OH-P-OrderNumber}{/OH-S-ID}</td>
            <td>{OH-S-ID}{OH-P-Date}~OH-P-Date~{/OH-P-Date}{/OH-S-ID}</td>
            <td>{!OH-S-DeliveryAddress}{OH-S-CustomerAddress}~OH-P-Salutation~ ~OH-P-FirstName~ ~OH-P-LastName~{/OH-S-CustomerAddress}
                {/!OH-S-DeliveryAddress}{OH-S-DeliveryAddress}~OH-P-Salutation~ ~OH-P-FirstName~ ~OH-P-LastName~{/OH-S-DeliveryAddress}</td>
            <td>{OH-S-OrderList}{OH-S-Item}~DC-Counter1_reset~{@OH-S-Item}~DC-Counter1_Inc~{/@OH-S-Item}~DC-Counter1~{/OH-S-Item}{/OH-S-OrderList}</td>
            <td>{OH-S-Order}~OH-P-Total~{/OH-S-Order}</td>
            <td><a href="javascript:void(0)" onclick="wsShowOrder({OH-S-ID}~OH-P-OrderNumber~{/OH-S-ID});">Bestellung ansehen</a></td>
         </tr>
      {/@WS-OrderHistoryCustomList}
   </table>   
 
   {WS-TplComment}<!-- Script um die einzelnen Bestellungen anzuzeigen -->{/WS-TplComment}
   <script>
      function wsShowOrder(ordernumber){
         document.forms['OrderHistory'].~WS-OrderHistoryOpenBtnName~.value = ordernumber;
         document.forms['OrderHistory'].js_order_history.value = "on";
         document.forms['OrderHistory'].submit();
      }
   </script>
   {/WS-OrderHistoryCustomList}
   
   {WS-OrderHistoryCustomListPaging_Pages}
 
      {WS-OrderHistoryCustomListPaging_BackLink}
         <a href="~WS-OrderHistoryCustomListPaging_BackLink~">Back</a>
      {/WS-OrderHistoryCustomListPaging_BackLink}
 
      {@WS-OrderHistoryCustomListPaging_Pages}
         <a href="~WS-OrderHistoryCustomListPaging_PagesLink~" {WS-OrderHistoryCustomListPaging_PagesActive}
         {/WS-OrderHistoryCustomListPaging_PagesActive}>~WS-OrderHistoryCustomListPaging_PagesNumber~</a>
      {/@WS-OrderHistoryCustomListPaging_Pages}
 
      {WS-OrderHistoryCustomListPaging_NextLink}
         <a href="~WS-OrderHistoryCustomListPaging_NextLink~">Next</a>
      {/WS-OrderHistoryCustomListPaging_NextLink}
 
   {/WS-OrderHistoryCustomListPaging_Pages}
 
</form>
{/!WS-OTPorderdetail}
{WS-OTPorderdetail}
  ...
    <!-- Fügen Sie hier die Tags zur Anzeige der ausgewählten Bestellung ein (siehe Schritt 5) -->
  ...
{/WS-OTPorderdetail}
...

Referenz: WS-OrderHistoryCustomList
Referenz: WS-OrderHistoryOpenBtnName
Referenz: WS-OrderHistoryCustomListPaging_Pages
Referenz: WS-OrderHistoryCustomListPaging_BackLink
Referenz: WS-OrderHistoryCustomListPaging_PagesLink
Referenz: WS-OrderHistoryCustomListPaging_PagesActive
Referenz: WS-OrderHistoryCustomListPaging_PagesNumber
Referenz: WS-OrderHistoryCustomListPaging_NextLink
Referenz: WS-OTPX

Schritt 5: Anzeige der Bestellungen

Innerhalb dieser Sektion können Sie alle Bestelldaten frei positionieren.

...
{OH-S-OrderList}                      <!-- Auswahl der Sektion <OrderList> -->
   {OH-S-Item}                        <!-- Auswahl der Sektion <Item> -->
      {@OH-S-Item}                    <!-- Schleife über alle Einzelpositionen (Sektionen <Item> innerhalb der Sektion <OrderList>) -->
         ~OH-P-Name~                          <!-- Name des Produktes, z. B. "Hose" -->
         ~OH-P-Number~                        <!-- Ausgabe der Produktnummer -->
         ~OH-P-Price_text~: ~OH-P-Price~      <!-- Name des Parameters (z. B. "Preis") und der Wert (z. B. "5,99") -->
         {@OH-S-Variation}     <!-- Schleife über alle Varianten des gekauften Produktes -->
            ~OH-P-Name~        <!-- Name der Variation, z. B. "Farbe" -->
            ~OH-P-Option~      <!-- Wert der Variation, z. B. "rot" -->
            ~OH-P-Number~      <!-- Anzeige der Produktnummer ist hier NICHT möglich, da innerhalb der Sektion <Variation> kein Parameter "Number" existiert -->
         {/@OH-S-Variation}
      {/@OH-S-Item}
   {/OH-S-Item}
{/OH-S-OrderList}
...
{OH-S-CustomerAddress}                             <!-- Auswahl der Sektion <CustomerAddress> -->
   {OH-P-Company}~OH-P-Company~{/OH-P-Company}     <!-- Ausgabe der Rechnungsadresse -->
   ~OH-P-Salutation~
   ~OH-P-FirstName~ ~OH-P-LastName~
   ~OH-P-Street1~
   ~OH-P-Zip~ ~OH-P-City~
   ~OH-P-Country~
{/OH-S-CustomerAddress}
...
{OH-S-CustomerComment}           <!-- Auswahl der Sektion <CustomerComment> -->
   ~OH-S-RawData~                <!-- Ausgabe des Kommentartextes -->
{/OH-S-CustomerComment}
...
{OH-S-Order}                                           <!-- Auswahl der Sektion <Order> -->
   {OH-P-DeliveryCost}
      ~OH-P-DeliveryCost_text~: ~OH-P-DeliveryCost~    <!-- Ausgabe der Versandkosten -->
   {/OH-P-DeliveryCost}
   {OH-P-PaymentCost}
      ~OH-P-PaymentCost_text~: ~OH-P-PaymentCost~      <!-- Ausgabe der Zahlungskosten -->
   {/OH-P-PaymentCost}
   ~OH-P-Total_text~: ~OH-P-Total~                     <!-- Ausgabe der Gesamtsumme -->
{/OH-S-Order}
...

Referenz: OH-S-"technische ID"

Referenz: OH-P-"technische ID"

Schritt 6: Verlinken der Bestellhistorie im Kundenkonto

Fügen Sie folgenden Link auf der Kundenkontoübersichtsseite (ws_user_account.htm) ein.

<a href="~WS-OrderHistoryLink~">Zur Bestellhistorie</a>

Referenz: WS-OrderHistoryLink

 

Haben Sie alle Schritte durchgeführt, ist das Feature erfolgreich in Ihrem Shop integriert und aktiv.

 

Anzeige als Auswahlliste

Bei der bisherigen Integration wird dem Käufer eine Auswahlliste präsentiert, aus der er die gewünschte Bestellung auswählen und im Detail anzeigen lassen kann.

Schritt 1: Freischaltung/Aktivierung

Für die Bestellhistorie ist keine Freischaltung seitens WEBSALE nötig.

Schritt 2: Anpassung in der Shopkonfiguration shop.config

Mittels des Parameters OrderHistoryAllSubShops-Allow im Abschnitt Basic der Shopkonfiguration shop.config können Sie einstellen, ob sich die Abfrage der Bestellhistorie für ein Kundenkonto auf alle Subshops (z. B. Desktop und mobil) oder nur auf den Subshop beziehen soll, bei dem der Käufer gerade angemeldet ist.

<Basic>
   ...
   OrderHistoryAllSubShops-Allow =  yes
   ...
</Basic>

Referenz: OrderHistoryAllSubShops-Allow

Schritt 3: Template OrderHistory erstellen

Die Integration erfolgt auf dem Template OrderHistory. Ist dieses noch nicht vorhanden, so legen Sie es bitte an oder verwenden Sie eine Beispieldatei und passen diese an. Fügen Sie den Namen des HTM-Templates in die Shopkonfiguration shop.config innerhalb des Abschnitts <Templates> ein.

<Templates>
   ...
   OrderHistory = ws_order_history.htm
   ...
</Templates>

Referenz: Templates

Schritt 4: Javascript ins Template einbinden

Fügen Sie folgendes Javascript in den Head-Bereich des Templates OrderHistory ein.

<head>
   ...
   <script>
      function SubmitSelection() {
         document.forms['OrderHistory'].js_order_history.value = "on";
         document.forms['OrderHistory'].submit();
        };
   </script>
   ...
</head>

Schritt 5: Einbinden der Selectbox zur Auswahl der Bestellung sowie Anzeige der Hinweismeldung

Damit kann der Kunde eine Bestellung zur Detailansicht aus der Selectbox auswählen und etwaige Fehler werden dem Kunden angezeigt.

<form action="~FORM-OrderHistory~" name="OrderHistory" method="Post">
   {MSG-OrderHistory_Notify}
      ~MSG-OrderHistory_Notify~
   {/MSG-OrderHistory_Notify}
   {WS-OrderHistoryList}
      Bitte wählen Sie Ihre Bestellung aus:
      ~WS-OrderHistoryList~ <input type="submit" value="OK" class="button">
   {/WS-OrderHistoryList}
   ...
      <!-- Fügen Sie hier die Tags zur Anzeige der ausgewählten Bestellung ein (siehe Schritt 6) -->
   ...
</form>

Referenz: FORM-OrderHistory
Referenz: MSG-OrderHistory_Notify
Referenz: WS-OrderHistoryList

Schritt 6: Anzeige der Bestellungen

Innerhalb dieser Sektion können Sie alle Bestelldaten frei positionieren.

...
{OH-S-OrderList}                      <!-- Auswahl der Sektion <OrderList> -->
   {OH-S-Item}                        <!-- Auswahl der Sektion <Item> -->
      {@OH-S-Item}                    <!-- Schleife über alle Einzelpositionen (Sektionen <Item> innerhalb der Sektion <OrderList>) -->
         ~OH-P-Name~                          <!-- Name des Produktes, z. B. "Hose" -->
         ~OH-P-Number~                        <!-- Ausgabe der Produktnummer -->
         ~OH-P-Price_text~: ~OH-P-Price~      <!-- Name des Parameters (z. B. "Preis") und der Wert (z. B. "5,99") -->
         {@OH-S-Variation}     <!-- Schleife über alle Varianten des gekauften Produktes -->
            ~OH-P-Name~        <!-- Name der Variation, z. B. "Farbe" -->
            ~OH-P-Option~      <!-- Wert der Variation, z. B. "rot" -->
            ~OH-P-Number~      <!-- Anzeige der Produktnummer ist hier NICHT möglich, da innerhalb der Sektion <Variation> kein Parameter "Number" existiert -->
         {/@OH-S-Variation}
      {/@OH-S-Item}
   {/OH-S-Item}
{/OH-S-OrderList}
...
{OH-S-CustomerAddress}                             <!-- Auswahl der Sektion <CustomerAddress> -->
   {OH-P-Company}~OH-P-Company~{/OH-P-Company}     <!-- Ausgabe der Rechnungsadresse -->
   ~OH-P-Salutation~
   ~OH-P-FirstName~ ~OH-P-LastName~
   ~OH-P-Street1~
   ~OH-P-Zip~ ~OH-P-City~
   ~OH-P-Country~
{/OH-S-CustomerAddress}
...
{OH-S-CustomerComment}           <!-- Auswahl der Sektion <CustomerComment> -->
   ~OH-S-RawData~                <!-- Ausgabe des Kommentartextes -->
{/OH-S-CustomerComment}
...
{OH-S-Order}                                           <!-- Auswahl der Sektion <Order> -->
   {OH-P-DeliveryCost}
      ~OH-P-DeliveryCost_text~: ~OH-P-DeliveryCost~    <!-- Ausgabe der Versandkosten -->
   {/OH-P-DeliveryCost}
   {OH-P-PaymentCost}
      ~OH-P-PaymentCost_text~: ~OH-P-PaymentCost~      <!-- Ausgabe der Zahlungskosten -->
   {/OH-P-PaymentCost}
   ~OH-P-Total_text~: ~OH-P-Total~                     <!-- Ausgabe der Gesamtsumme -->
{/OH-S-Order}
...

Referenz: OH-S-"technische ID"

Referenz: OH-P-"technische ID"

Schritt 7: Verlinken der Bestellhistorie im Kundenkonto

Fügen Sie folgenden Link auf der Kundenkontoübersichtsseite (ws_user_account.htm) ein.

<a href="~WS-OrderHistoryLink~">Zur Bestellhistorie</a>

Referenz: WS-OrderHistoryLink

 

Haben Sie alle Schritte durchgeführt, ist das Feature erfolgreich in Ihrem Shop integriert und aktiv.

 

Migration von V7 auf V8

Wenn Sie von WEBSALE V7 auf V8 wechseln, fügen Sie bitte auf dem Template OrderHistory folgende Klammerungen ein:

Anzeige der Bestellungen, die in Shop-Version 7 aufgegeben wurden

Dieser Bereich wird nur angezeigt, wenn der Käufer die Bestellung in Version 7 aufgegeben hat.

{ST-V7Order}
   ~WS-OrderHistoryData~
{/ST-V7Order}

Referenz: ST-V7Order
Referenz: WS-OrderHistoryData

Anzeige der Bestellungen, die in Shop-Version 8 aufgegeben wurden

Umklammern Sie den Code zur Anzeige der V8-Bestellungen mit dem Tag {ST-V8Order}. Dieser Bereich wird nur angezeigt, wenn der Käufer die Bestellung in Version 8 aufgegeben hat.

{ST-V8Order}
   <!-- Code zur Anzeige der Bestellungen, siehe oben -->
{/ST-V8Order}

Referenz: ST-V8Order