Gratisartikel

Alle sonstigen Fragen und Antworten (z. B. zu Modulen oder der allgemeinen technischen Realisierung)
Antworten
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Gratisartikel

Beitrag 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??
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Gratisartikel

Beitrag 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.
amimoto
Beiträge: 51
Registriert: 18. Sep 2015, 11:01

Re: Gratisartikel

Beitrag 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
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Gratisartikel

Beitrag 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.
Antworten

Zurück zu „Sonstiges / Misc.“