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?
FlexContents in Aftercheckout und Mailing ausgeben.
- supportteam
- Beiträge: 245
- Registriert: 28. Aug 2013, 17:58
Re: FlexContents in Aftercheckout und Mailing ausgeben.
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:
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:
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.
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'); ?>
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'];
}
Bitte lassen Sie uns wissen, ob wir Ihr Anliegen damit zufriedenstellend lösen konnten.
Re: FlexContents in Aftercheckout und Mailing ausgeben.
Vielen Dank für Ihre prompte Antwort, es funktioniert.
- supportteam2
- Beiträge: 427
- Registriert: 4. Mär 2015, 14:05
Re: FlexContents in Aftercheckout und Mailing ausgeben.
Wichtige Aktualisierung:
Der bislang in diesem Beitrag gezeigte Code funktioniert bis Merconis 3. Ab Merconis 4 muss der Code dann folgendermaßen aussehen:
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'];
}