Seite 1 von 1

Gratisartikel

Verfasst: 8. Okt 2015, 18:33
von amimoto
Guten Tag,
ist es möglich einen Gratisartikel anzubieten? Dieser soll automatisch jeder Bestellung hinzugefügt werden, ohne Berechnung.
Könnte man natürlich auch einfach mit in das Paket legen, aber er soll halt im Warenkorb mit erscheinen, um das entsprechend zu kommunizieren.
Geht das??

Re: Gratisartikel

Verfasst: 8. Okt 2015, 19:02
von supportteam2
Hallo,

das ist mit Hooks möglich. Der passende Hook heißt "initializeCartController". Im Handbuch gibt es dazu sogar einen Beispielcode, der etwas vergleichbares macht.

Siehe Handbuch: http://www.merconis.com/tl_files/Eigene ... /Hooks.htm und dort eben nach "initializeCartController" suchen.

Re: Gratisartikel

Verfasst: 13. Okt 2015, 10:35
von amimoto
Hallo,
vielen Dank für den Hinweis. Ich verstehe allerdings noch nicht so ganz, wo ich das einbinde und wie dann die ID(s) der Produkte (oder Broschüren in diesem Fall) übergeben werden!? Muß ich dafür eine eigene Erweiterung erstellen?
MfG

Re: Gratisartikel

Verfasst: 13. Okt 2015, 11:33
von supportteam2
Ja, Merconis-Hooks werden so verwendet, wie gewöhnliche Contao-Hooks auch. Sie erstellen also eine einfache Extension, die in der config.php die Hooks registriert und in einer von Ihnen speziell dafür erstellten Klasse die über die Hooks aufzurufenden Funktionen bereitstellt. Diese Sache setzt also grundlegende PHP-Kenntnisse voraus.

Haben Sie den Beispielcode zum Hook "initializeCartController" im Merconis-Handbuch weitestgehend verstanden? In diesem Beispiel geht es darum, zu den Produkten im Warenkorb (die der Kunde dort manuell reingelegt hat) passende Broschüren ebenfalls in den Warenkorb zu legen. Hierzu werden den Produkten in den FlexContent-Feldern Artikelnummern der Gratis-Broschüren hinterlegt, die dann in der vom Hook aufgerufenen Funktion ausgelesen werden. Mit einem Datenbankrequest wird für jede Broschüren-Artikelnummer die Produkt-ID der Broschüre ausgelesen, da diese benötigt wird, um das Produkt im nächsten Schritt dem Warenkorb hinzuzufügen.

Ihr Anwendungsfall ist hier sicher ein wenig anders. Vielleicht möchten Sie immer das selbe Gratisprodukt in den Warenkorb legen oder sie legen unterschiedliche Gratisprodukte in den Warenkorb je nach Warenwert oder, oder... Sie können Sich hier jede beliebige Logik ausdenken, mit der Sie auf die Produkt-IDs kommen, die Sie dem Warenkorb hinzufügen möchten. Wenn Sie hier zukünftig nur sehr selten Änderungen erwarten, könnten Sie die Produkt-ID(s) theoretisch auch auf die schnelle, wenn auch nicht ganz perfekte Art, fest in Ihre Hook-Funktion eintragen.

Der für Sie wirklich wichtige Teil des Beispielcodes ist diese Zeile:

Code: Alles auswählen

$this->ls_shop_cartController->addToCart($brochureID, 1);
So wird ein Produkt, dessen ID Sie irgendwie ermittelt haben, mit der Menge 1 in den Warenkorb gelegt.