Navigation and service panel


Content

This text is fallbacked from the German Version. If you need use Google Translate


Retouren und Gutschriften

By Kevin Brechbühl on 28. June 2013, No comments

Sitecore E-Commerce Services besteht aus Produkten und Bestellungen. Eine Bestellung besteht aus Produkten, welche durch einen Benutzer bestellt und gekauft wurden. Nachdem eine Ware ausgeliefert wurde ist der Prozess in Sitecore abgeschlossen. Der E-Commerce Prozess jedoch nicht zwingend. Es kommt immer wieder vor dass Produkte zurückgeschickt werden und vom Händler eine Gutschrift erstattet wird oder ein Produkt repariert werden muss. Dieser Beitrag zeigt Möglichkeiten, wie diese Informationen in Sitecore abgelegt werden können.

Bei der JURA Elektroapparate AG kann ein Benutzer zu jeder seiner Bestellungen eine sogenannte Retoure erstellen. Er kann diese Retoure online zusammenstellen und aus den bestellten Produkten die Anzahl auswählen welche er zurückschicken möchte. Wenn die Sendung beim Händler eingetroffen ist wird diese untersucht und womöglich eine Gutschrift ausgestellt. Diese Gutschrift wird im ERP System gepflegt und über einen Import in Sitecore abgelegt, so dass der Benutzer in seinem Benutzerkonto die entsprechende Gutschrift ansehen kann.

Ursprünglich war die Idee, das wir für jede Gutschrift eine eigene Bestellung in Sitecore ablegen. Diese Bestellung beinhaltet die zurückgeschickten Produkte inkl. Anzahl und einem Betrag. Das Gutschrift-Item wird über einen Droplink der eigentlichen Bestellung zugeordnet. Dies wäre eine technisch einfache und für den Kunden transparente Lösung, allerdings funktionierte diese in der Praxis nicht:

  • Das System macht und speichert Bestellungen welche eigentlich gar keine sind.
  • Es wird nicht zwingend immer der volle Kaufbetrag zurückerstattet.
  • Es kann sein, dass sich der Preis eines Produktes in der Zwischenzeit geändert hat.
  • Es ist schwierig eine völlig transparente Produkte/Preis Struktur für Gutschriften in der Schnittstelle zum ERP System abzubilden.

Hauptproblem war jedoch, dass wir nicht genau wussten für welches Produkt welche Gutschrift mit welcher MwSt. zurückerstattet wurde. Eine Gutschrift auf einer Retoure wird nicht aufgeschlüsselt auf die einzelnen Positionen der Bestellung. Somit konnten wir keine "Gutschrift Bestellung" in Sitecore anlegen. Wir wussten den Preis der Produkte nicht und konnten somit die Preise auch nicht korrekt berechnen. Wir haben uns somit für eine noch einfachere Lösung entschieden.

Wir haben ein neues Datentemplate mit folgenden Feldern:

  • Bestellnummer
  • Datum der Gutschrift
  • Preis inkl. MwSt.
  • Preis exkl. MwSt.

Dies sind die einzigen Informationen welche für eine Gutschrift vorhanden sind und dem Benutzer angezeigt werden können. Jede Gutschrift ergibt somit ein solches Item, welches als Kindelement der eigentlich Bestellung angehängt wird. Die Implemenetation dafür wird über die normale Sitecore API realisiert. Unser Order Objekt wird dafür um ein Property Returns erweitert:

public virtual IEnumerable<Item> Returns
{
    get
    {
        return
            Sitecore.Context.Database.GetItem(this.Alias)
                    .Children
                    .Where(x => x.TemplateID.ToString() == AppSettings.SHOP_RETURN_TEMPLATE_ID)
                    .OrderBy(x => x["RetoureDate"]);
    }
}

Damit können die Gutschriften im Benutzerkonto einfach ausgelesen und dargestellt werden.

Categories  E-Commerce Tags  Gutschriften  Bestellungen

No comments

Add your comment

Your email address will not be published. Required fields are marked *

*