v2.5.x Artikel-Aufschläge (MndAddChargeManager)

Achtung

Diese Dokumentation bezieht sich auf eine ältere Software-Version. Die aktuelle Dokumentation finden Sie hier: Artikel-Aufschläge (MndAddChargeManager)

DatumÄnderung
20.02.2018

Aktualisierung der Dokumentation für Version 2.5

Neue Features ab 2.5:

  • Neuer Aufschlag-Typ: Für Kunden optional abwählbare Warenkorb-Aufschläge




Einleitung

Das Plugin MND Shopware Artikel-Aufschläge (MndAddChargeManager) ermöglicht es Aufschläge für Artikel zu definieren, welche für den Artikel oder Warenkorb berechnet werden.
Wird ein solcher Artikel zum Warenkorb hinzugefügt, wird durch das Plugin automatisch ein zugehöriger Aufschlagsartikel im Warenkorb erstellt und gepflegt.

Typische Anwendungsmöglichkeiten sind beispielsweise:

  • Sperrgut
  • Kühlgut
  • Flaschenpfand
  • Dosenpfand
  • Batteriepfand

Vier Aufschlagstypen

Ab Version 2.5 gibt es vier Aufschlagstypen, die konfiguriert werden können:

  1. Artikel-Aufschlag pro Artikelmenge berechnen: z.B. 1x Artikel = 1x Aufschlag, 10x Artikel = 10x Aufschlag

  2. Artikel-Aufschlag nur einmal pro Artikel berechnen: z.B. 1x Artikel = 1x Aufschlag, 10x Artikel = 1x Aufschlag

  3. Warenkorb-Aufschlag: Aufschlag nur 1x pro Warenkorb berechnen.

  4. Optionaler Warenkorb-Aufschlag: Aufschlag 1x pro Warenkorb, kann von Kunden im Warenkorb abgewählt werden.

Besondere Merkmale des Plugins

  • ERP kompatibel: Aufschläge sind eigenständige Artikel im Warenkorb! Artikelnummern können frei definiert werden.
  • Für Aufschläge kann ein eigener MwSt. Satz definiert werden.
  • Texte für Aufschläge können frei definiert werden, inkl. Infotext.
  • Definition beliebig vieler Aufschläge im Shopware Backend.
  • Es können einem Artikel mehrere Aufschläge zugewiesen werden.
  • Aufschläge können pro Artikel, oder pro Kategorie definiert werden.
  • Aufschläge können auf ein oder mehrere Lieferländer eingeschränkt werden.
  • Aufschläge können auf ein oder mehrere Versandarten eingeschränkt werden.
  • Daten der Aufschläge können in Shopware Produktexporte integriert werden.
  • Es können abweichende Preise für Kundengruppen definiert werden.
  • Einzelne Kundengruppen können vollständig aus der Aufschlagsberechnung ausgenommen werden.

Aufschläge werden im Shopware Shop bei Artikeln dargestellt und im Bestellprozess automatisch mit einberechnet.

Screenshots

Anzeige auf der Artikeldetailseite:

Anzeige im Artikellisting:

Anzeige im Warenkorb:

Der Zuschlag wird als Warenkorb-Position angezeigt. Zusätzlich wird eine Info beim Artikel angezeigt, damit der Bezug zum Aufschlag erkennbar ist.

Natürlich können Sie die Templates entsprechend Ihres Wunsch-Verhaltens anpassen.


Installation

Die Installation erfolgt wie gewohnt über den Shopware Plugin Manager.

Weiterführende Informationen zum Installationsvorgang in Shopware:

Plugin-Installation: http://community.shopware.com/Lizenzierung-und-Installation-von-lizenzpflichtigen-Plugins_detail_1340.html
Plugin-Manager: http://community.shopware.com/Plugin-Manager-ab-Shopware-5_detail_1856.html)

Nutzung

Konfigurationsmaske im Backend aufrufen

Im Hauptmenü den Untermenüpunkt "Aufschläge" wählen:


Aufschläge anlegen/bearbeiten

Klicken Sie auf "Hinzufügen" um einen neuen Aufschlag zu erstellen oder einen vorhandenen zu bearbeiten/löschen.

Ein Aufschlag kann mehreren Artikeln im Shop zugeordnet werden und auf bestimmte Lieferländer eingeschränkt werden.

  • Nicht eingeloggte Benutzer: Darstellung im Storefront richtet sich nach für (Sub-)Shop eingestelltem Land. Im Checkout nach dem in der Versandkostenberechnung eingestelltem Land.
  • Bei eingeloggten/frisch registrierten Benutzern: Darstellung im Storefront richtet sich nach dem Land der Lieferadresse – ebenso wie Berechnung im Warenkorb.


Anlegen eines Aufschlages


Folgende Felder sind für die Konfiguration eines Aufschlages relevant:

Feld

Beschreibung
Aufschlagstyp

Typ des Aufschlages:

  1. "Aufschlagsmenge gleich Artikelmenge": Aufschlag wird pro Artikelmenge berechnet. 1x Artikel = 1x Aufschlag, 10x Artikel = 10x Aufschlag etc.
  2. "Nur einmal pro Artikel": Aufschlag wird nur einmal pro Artikelmenge berechnet: 1x Artikel = 1x Aufschlag, 10x Artikel = 1x Aufschlag etc.
  3. "Nur einmal pro Warenkorb": Aufschlag wird nur einmal pro Warenkorb berechnet. Auch wenn mehrere Artikel mit diesem Aufschlag im Warenkorb sind!
  4. "Optional: Nur einmal pro Warenkorb": Aufschlag wird nur einmal pro Warenkorb berechnet. Shop-Kunde kann den Aufschlag im Warenkorb wieder abwählen.
Interner NameName des Aufschlages, der im Backend genutzt wird.
NameName des Aufschlages, der im Shop sichtbar ist.
Aufschlag Art.-Nr.

Shop-Artikelnummer des Aufschlages, wie sie in der Bestellung gespeichert werden soll (und bspw. dann auch an ERP/Warenwirtschaftssystem übergeben wird).

Eine Artikelnummer darf nur einmal vergeben werden.


Obwohl technisch möglich, sollten Sie für Artikelnummern nur Zeichen A-Z, a-z, 0-9 und "-" verwenden.
D.h. keine Umlaute, Sonderzeichen oder Leerzeichen.

BeschreibungKurzbeschreibung des Aufschlages. Wird auf der Artikelseite im Shop unterhalb der Aufschlag-Kosten angezeigt.
Preis TypHier können Sie einstellen, ob Sie den Preis des Aufschlages in Brutto (inkl. MwSt.) / Netto (exkl. MwSt.) eingeben.
PreisPreis des Aufschlages (Dezimaltrenner ist Punkt!)
SteuerEinstellen der Steuerkonfiguration, wie sie für den Aufschlag verwendet werden soll.

Kundengruppen Ausnahmen hinzufügen

Bei der Konfiguration eines Aufschlags können Ausnahmen für Kundengruppen definiert werden. 

In der Liste stehen alle in Shopware eingestellten Kundengruppen. Durch Doppelklick auf eine Zeile können Sie die Ausnahme-Konfiguration definieren.

Um für eine Kundengruppe eine Ausnahme festzulegen, müssen Sie zunächst das Feld "Ausnahme" auf aktiv setzen. Wenn das Feld "Ausnahme" inaktiv ist, wird die Standard-Einstellung genutzt.

Danach können Sie wahlweise einen abweichenden Preis festlegen, oder "Keine Berechnung" aktivieren.

Sobald "keine Berechnung" aktiv ist, wird dieser Aufschlag für die Kundengruppe nicht mehr berechnet (und auch im Frontend nicht mehr angezeigt).

Beispiel für Ausnahmen:

Für Shopkunden wird kein Aufschlag angezeigt.

Für Händler jedoch ein abweichender Preis von 0,20 EUR inkl. MwSt.

Zuweisen von Artikeln

Ein Artikel kann entweder anhand des Namens oder der Artikelnummer mit einem Aufschlag versehen werden.

Die Zuweisung von Aufschlägen zu Artikeln kann derzeit leider nicht über die Artikel-Maske bearbeitet werden.



Artikel wurde erfolgreich zur Aufschlagsgruppe hinzugefügt.

Zuweisen mehrerer Aufschläge pro Artikel oder Kategorie

Es ist möglich einem Artikel (oder einer Kategorie) mehrere Aufschläge zuzuweisen.

Ab zwei Aufschlägen muss ggf. ihr Shopware Template so angepasst werden, dass mehr Platz verfügbar ist.

Zuweisung von Kategorien

Analog zur Zuweisung pro Artikel, können Sie über die Registerkarte "Kategorien zuweisen" den Aufschlag ganzen Kategorien zuweisen. Der Zuschlag ist dann für die ausgewählte Kategorie inkl. Unterkategorien zugewiesen.


Die Kategorie wurde erfolgreich zugewiesen.


Aufschlag auf Lieferländer einschränken

Ein Aufschlag kann einem oder mehreren Lieferländern zugeordnet werden. Nur bei übereinstimmendem Lieferland wird der Aufschlag berechnet.

In Verbindung mit einer Länder-Einschränkung können Sie z.B. erreichen, dass andere Aufschläge für unterschiedliche Lieferländer berechnet werden.


Bei Länderspezifischen Aufschlägen empfehlen wir den angezeigten Namen entsprechend der Einschränkung zu wählen, z.B. "Zoll-Zuschlag bei Lieferungen in die Schweiz". 


Aufschlag wurde für das Lieferland, in diesem Fall "Schweiz", eingeschränkt.



Aufschlag auf Versandarten einschränken

Analog zur Beschränkung auf Lieferländer, können Aufschläge auch auf bestimmte Shopware-Versandarten beschränkt werden.


Wenn Sie Aufschläge und Zuordnungen angepasst haben, sollten Sie zur Sicherheit den Shopware Cache (Frontend und HTTP-Proxy) leeren.



Gerne unterstützen wir Sie bei bei einer individuellen Anpassung.

Template Anpassungen

Für Template-Anpassungen konnte in älteren Versionen des Plugins der Shopware Artikel-Modus genutzt werden um einen Aufschlagsartikel zu erkennen (modus==500).

Ab Version 2.0 funktioniert dies nicht mehr. Der Artikel-Modus entspricht nun einem Shopware-Rabatt-Artikel (== 4).

Ein Aufschlagsartikel kann nun über das Feld mnd_addcharge_modus (== 500) erkannt werden.


Verwendung in den Shopware-Produktexporten (product feeds)

Für die Templates der Produktexporte wird die Variable $sArticle durch Aufschlaginformationen ergänzt:

$sArticle.mnd_addcharge

Diese Variable enthält ein JSON Objekt mit Aufschlagsinformationen.

In diesem JSON Objekt sind folgende Infos enthalten:

VariableBeschreibungBeispielType
nameDer "Interne Name" des Aufschlages.dosenpfand_1string
display_nameDer Name der im Frontend für den Endkunden sichtbar ist.Mehrweg Dosenpfandstring
description

Die Beschreibung des Aufschlages.

Die description kann Zeilenumbrüche enthalten. Sie müssen den Wert für CSV daher ggf. entsprechend mit Smarty anpassen.

Das in Deutschland übliche Dosenpfandstring
priceDer Bruttopreis des Aufschlages in der für den Export eingestellten Währung0.25float
taxDer Steuersatz des Aufschlages19.00float
type

Die Aufschlagsart. Hier gibt es drei Möglichkeiten.

BeschreibungKürzelBerechnung

Aufschlagsmenge gleich Artikelmenge

multiArtikelmenge = Aufschlagsmenge

Nur einmal pro Artikel

singleNur 1x Aufschlag pro entsprechendem Artiekl in Warenkorb

Nur einmal pro Warenkorb

basketDer Aufschlag wird nur einmal pro Warnkorb hinzugefügt
multi | single | basketstring


Beispiele für Integration in Productfeed-Template

Aufschlagsinformationen als Text ausgeben

Zunächst erweitern wir den Productexport um eine Spalte in der alle Aufschläge als Fliesstext aufgezählt werden.

header
[...]
Aufschläge{#S#}
[...]
template
[...]
{assign var=addChargeData value=$sArticle.mnd_addcharge|unescape:'html'|json_decode:1}
{assign var="output" value=null}
{foreach $addChargeData AS $data}{append 'output' "zzgl. {$data.price|format:"number"} {$sCurrency.currency} {$data.display_name}"}{/foreach}
{", "|implode:$output}{#S#}
[...]

Ergebnis:

Ergebnis
zzgl. 0,25 EUR Test Zuschlag, zzgl. 3,21 EUR Zweiter Test Zuschlag

Erklärung:

Die ersten drei Zeilen bereiten die Daten für die Ausgabe vor und erzeugen selbst keinen Text im Produktexport:

{assign var=addChargeData value=$sArticle.mnd_addcharge|unescape:'html'|json_decode:1}

Zunächst wandeln wir den JSON-String in ein Array um. Mithilfe dem Arrays können die Werte einzeln besser verarbeitet werden. (Diese Zeile führt zu keiner Ausgabe im Export)

{assign var="output" value=null}

Wir erstellen eine Variable, die wir mit unseren Daten befühlen wollen. (Diese Zeile führt ebenfalls noch nicht zu einer Ausgabe)

{foreach $addChargeData AS $data}{append 'output' "zzgl. {$data.price|format:"number"} {$sCurrency.currency} {$data.display_name}"}{/foreach}

Nun wird jeder Aufschlag herangezogen und in das Array "output" gespeichert.

{$data.price|format:"number"} 

Hiermit werden die Preise entsprechend der ausgewählten Einstellungen formatiert

{", "|implode:$output}

Zuletzt werden alle Einzelteile verbunden mit einem Komma ausgegeben


Es kann auch anhand der Aufschlagsart ein Text ausgegeben werden.

Hierfür muss eine Abfrage auf den 'typ' hinzugefügt werden.

template
[...]
{assign var=addChargeData value=$sArticle.mnd_addcharge|unescape:'html'|json_decode:1}
{foreach $addChargeData AS $data}
{if $data.type == 'basket'}
	Dieser Artikel enthält einen Aufschlag der einmalig für den Warenkorb berechnet wird.
    {break}
{/if}
{/foreach}
[...]



Preis von Aufschlägen zu Artikelpreis hinzuaddieren

header
[...]
Preis inkl Aufschläge{#S#}
{/strip}{#L#}
template
[...]
{assign var=addChargeData value=$sArticle.mnd_addcharge|unescape:'html'|json_decode:1}
{assign var="priceIncl" value=$sArticle.price}
{foreach $addChargeData AS $data}{assign var="priceIncl" value=$priceIncl+$data.price}{/foreach}
{$priceIncl}


Ergebnis:

Ergebnis
123.41
Zunächst wandeln wir den JSON-String in ein Array um. Mithilfe dem Arrays können die Werte einzeln besser verarbeitet werden.
{assign var="priceIncl" value=$sArticle.price}
Wir erstellen eine Variable, dieser Variable geben wir den Preis des Artikels mit.
{foreach $addChargeData AS $data}{assign var="priceIncl" value=$priceIncl+$data.price}{/foreach}
Nun wird jeder Aufschlag herangezogen und dem Artikelpreis hinzuaddiert
{$priceIncl}

Zuletzt wird der Preis ohne Formatierung ausgegeben.


Deinstallation

Das Plugin wird auch über den Plugin Manager deinstalliert.

Die angelegten Aufschlagskonfigurationen werden dabei nicht entfernt. Diese sind in folgenden Tabellen gespeichert, welche bei Bedarf manuell in der Datenbank gelöscht werden können:

  • mnd_add_charge
  • mnd_add_charge_articles
  • mnd_add_charge_customer_group_exception
  • mnd_add_charge_country