FlexContents in Aftercheckout und Mailing ausgeben.

Fragen und Antworten zu den Templates und eigener Template-Erstellung

FlexContents in Aftercheckout und Mailing ausgeben.

Beitragvon ix_tra » 30. Sep 2014, 13:01

Hallo Merconis Team,

ich habe eine Frage bezüglich der FlexContents.
Contao Version 3.3.2
Merconis Version 2.1.2

Für die Ausgabe von kundenspezifischen Angaben wurden flexible Produktinformation-Felder (FlexContent) verwendet.
Hier werden Dinge wie Qualität, Material, Ausführung etc. angegeben.
Jetzt möchte der Kunde diese Angaben ebenfalls nach Bestellabschluss (letzter Schritt) und in der E-Mail-Benachrichtigung haben.
Die FlexContents stehen mir zwar bis zum Abschlussprozess zu Verfügung, aber, nach Bestellabschluss, also im template_afterCheckout_desktop.html5, habe ich diese Werte nicht mehr.
Gleiches gilt für das template_mail_orderConfirmation.html5.

Gibt es hierfür eine Lösung, so dass ich die FlexContents auch in den o. g. beiden Templates verwenden kann?
Benutzeravatar
ix_tra
 
Beiträge: 8
Registriert: 23. Mai 2014, 14:23

Re: FlexContents in Aftercheckout und Mailing ausgeben.

Beitragvon supportteam » 30. Sep 2014, 15:56

Die nach Abschluss der Bestellung in den genannten Templates verfügbaren Informationen in $this->arrOrder['items'] sind die Informationen, die mit der Bestellung in der Datenbank festgeschrieben wurden. Die Flex-Contents werden hierbei nicht berücksichtigt, da diese potenziell große Datenmengen enthalten können, die in den meisten Fällen nach der Bestellung irrelevant sind.

In Ihrem Fall können Sie auf die Flex-Contents aber dennoch zugreifen, gehen Sie hierzu bitte wie folgt vor:

Notieren Sie in der ersten Zeile des jeweilgen Templates folgenden Code:

Code: Alles auswählen
<?php $this->import('ls_shop_controller'); ?>


Innerhalb der Schleife, die die Informationen der bestellten Produkte ausgibt, erzeugen Sie dann zu jeder bestellten Position ein Produkt-Objekt und greifen dann wie gewohnt auf die Flex-Contents zu:

Code: Alles auswählen
foreach ($this->arrOrder['items'] as $itemPosition => $cartItem) {
   $objProduct = $this->ls_shop_controller->getObjProduct($cartItem['extendedInfo']['_productVariantID']);
   echo !$objProduct->_variantIsSelected ? $objProduct->_flexContents['flex1'] : $objProduct->_selectedVariant->_flexContents['flex1'];
}


Die Flex-Contents, die Sie so ansprechen, sind die dem Produkt zum aktuellen Zeitpunkt hinterlegten Flex-Contents. Für Ihren Zweck ist das natürlich in Ordnung, da sich diese Daten zwischen Abschluss der Bestellung und Verarbeitung der genannten Templates sicher nicht ändern.

Bitte lassen Sie uns wissen, ob wir Ihr Anliegen damit zufriedenstellend lösen konnten.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam
 
Beiträge: 245
Registriert: 28. Aug 2013, 16:58

Re: FlexContents in Aftercheckout und Mailing ausgeben.

Beitragvon ix_tra » 1. Okt 2014, 13:53

Vielen Dank für Ihre prompte Antwort, es funktioniert.
Benutzeravatar
ix_tra
 
Beiträge: 8
Registriert: 23. Mai 2014, 14:23

Re: FlexContents in Aftercheckout und Mailing ausgeben.

Beitragvon supportteam2 » 26. Okt 2018, 06:28

Wichtige Aktualisierung:

Der bislang in diesem Beitrag gezeigte Code funktioniert bis Merconis 3. Ab Merconis 4 muss der Code dann folgendermaßen aussehen:

Code: Alles auswählen
foreach ($this->arrOrder['items'] as $itemPosition => $cartItem) {
    $objProduct = \Merconis\Core\ls_shop_generalHelper::getObjProduct($cartItem['extendedInfo']['_productVariantID']);
    echo !$objProduct->_variantIsSelected ? $objProduct->_flexContents['flex1'] : $objProduct->_selectedVariant->_flexContents['flex1'];
}
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 408
Registriert: 4. Mär 2015, 14:05


Zurück zu Templates

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast