Modul-Erweiterung
Erweitern Sie das Modul OXID eShop eVAT bei Bedarf.
Wir beschreiben beispielhaft,
wie Sie eine eigene Bestimmungsmethode für den Kundenstandort hinzufügen
wie Sie einen Artikel im Warenkorb farblich hervorheben können, dessen Mehrwertsteuersatz nicht ermittelt werden konnte.
Bestimmungsmethode für Kundenstandort hinzufügen
Um eine eigene Bestimmungsmethode für den Kundenstandort hinzuzufügen, erstellen Sie eine Klasse und registrieren sie. Sie erweitern OXID eShop eVAT also mit einem eigenen Modul.
Note
Die Klasse oeVATTBEGeoLocationEvidence ist derzeit nur vorbereitet und muss implementiert werden.
Das kann durch Erweitern dieser Klasse mit einem Modul und Implementierung der Methode oeVATTBEGeoLocationEvidence::getCountryId() umgesetzt werden.
Vorgehen
Tun Sie Folgendes:
Damit die neue Klasse eine Schnittstelle hat, stellen Sie sicher, dass sie die Klasse oeVATTBEEvidence erweitert.
Registrieren Sie die Klasse mit oeVATTBEEvidenceRegister::registerEvidence().
Wenn die Klasse nicht mehr benötigt wird, beenden Sie die Registrierung der Klasse mit oeVATTBEEvidenceRegister::unregisterEvidence().
Erstellen Sie ein Modul, das die neue Klasse enthält.
Tragen Sie die Klasse in der Datei metadata.php des Moduls ein.
Verwenden Sie für das Registrieren und Abmelden der Klasse die Ereignisse onActivate() und onDeactivate() des Moduls.
public static function onActivate() { if (class_exists('oeVATTBEEvidenceRegister')) { $oConfig = oxRegistry::getConfig(); /** @var oeVATTBEEvidenceRegister $oEvidenceRegister */ $oEvidenceRegister = oxNew('oeVATTBEEvidenceRegister', $oConfig); $oEvidenceRegister->registerEvidence('oeVATTBEExtendedEvidence1'); $oEvidenceRegister->registerEvidence('oeVATTBEExtendedEvidence2'); } } public static function onDeactivate() { if (class_exists('oeVATTBEEvidenceRegister')) { $oConfig = oxRegistry::getConfig(); /** @var oeVATTBEEvidenceRegister $oEvidenceRegister */ $oEvidenceRegister = oxNew('oeVATTBEEvidenceRegister', $oConfig); $oEvidenceRegister->unregisterEvidence('oeVATTBEExtendedEvidence1'); $oEvidenceRegister->unregisterEvidence('oeVATTBEExtendedEvidence2'); } }
Falls das Modul die neue Klasse bei einer Deaktivierung nicht abgemeldet hat, werden die hinzugefügten Bestimmungsmethoden bei der nächsten Bestimmung des Kundenstandortes entfernt.
Aktivieren Sie Ihr Modul mit den zusätzlichen Bestimmungsmethoden nur dann, wenn das Modul OXID eShop eVAT aktiv ist.
Andernfalls wird oeVATTBEEvidenceRegister nicht gefunden.
Nicht kaufbare Artikel im Warenkorb hervorheben
Sie wollen nicht kaufbare Artikel im Warenkorb farblich hervorheben.
Das setzen Sie mit Hilfe einer CSS-Klasse um, die Sie in das Template /tpl/page/checkout/inc/basketcontents.tpl integrieren.
Die Information, ob ein Artikel im Warenkorb kaufbar ist, liefert Ihnen die Controller-Methode isOeVATTBETBEArticleValid.
Hintergrund
In einigen Fällen kann es sein, dass ein Artikel nicht gekauft werden kann, weil sich seine Mehrwertsteuer nicht berechnen lässt.
Ein Beispiel ist der Kauf eines Artikels, welcher als Telekommunikations-, Rundfunk-, Fernseh- und auf elektronischem Weg erbrachte Dienstleistungen gilt.
Fehlen die Mehrwertsteuersätze bei dem Land, aus dem der Kunde bestellen möchte, wird eine Fehlermeldung mit Hinweis auf den betreffenden Artikel angezeigt (siehe Was im Fehlerfall passiert).
Der Kunde muss den Artikel aus dem Warenkorb entfernen.
Durch eine farbliche Hervorhebung kann Ihr Kunde den betreffenden Artikel leichter identifizieren.
Vorgehen
Erstellen Sie ein Erweiterungsmodul mit einer CCS-Klasse (in unserem Beispiel
oeVATTBEBasketItemInvalid
) und erweitern Sie das Template /tpl/page/checkout/inc/basketcontents.tpl:[{foreach key=basketindex from=$oxcmp_basket->getContents() item=basketitem name=basketContents}] [{block name="checkout_basketcontents_basketitem"}] .... <tr class="basketItem [{if !$oView->isOeVATTBETBEArticleValid()}] oeVATTBEBasketItemInvalid[{/if}]" id="cartItem_[{$smarty.foreach.basketContents.iteration}]">
Fügen Sie die CSS-Klasse der CSS-Datei /oe/oevattbe/out/src/css/vattbe.css oder der CSS-Datei des verwendeten Themes hinzu.
.... .oeVATTBEBasketItemInvalid { background-color: #e70404; }
Resultat
In unserem Beispiel ist die Artikelbezeichnung im Warenkorb rot hervorgehoben (Abb.: Nicht kaufbare Artikel im Warenkorb farblich hervorheben, Pos. 1).