Hallo Leute, Um Verwirrungen zu vermeiden: Ich bin von "Sommerzauber" gebeten worden eine eMail an seine Wawi nach erfolgreicher Bestellung in einen frisch aufgesetzten GX3 einzubauen. Ich schreibe hier unter seinem Account. Nachdem ich nun einige Zeit hier im Forum verbracht habe, bin ich noch verwirrter als vorher. Ich habe lange Jahre einen OSC-Shop gewartet, betrieben und programmiert... da hätte ich einfach einen include in die checkout_success.php eingebaut und gut. Jetzt habe ich schon gelernt, dass ich wegen der Updatebarkeit einen Extender oder Overload oder beides bauen muss. Ich habe mir also das Extender-Sample aus der GXUserComponents/overloads/_extender_samples/CheckoutSuccessExtenderComopnents genommen, das Verzeichnis CheckoutSuccessExtenderComopnents in overloads erstellt und das Sample hinein kopiert. Dann habe ich die ganzen "Samples" aus den Namen gelöscht und die Caches geleert. Die gute Nachicht ist, das tatsächlich etwas ausgeführt wird, was jedoch zur Fehlermeldung FATAL ERROR(1): "Class 'CheckoutSuccessExtender_parent' not found" führt. Ich könnte jetzt erstmal einen Tipp gebrauchen, ob ich grundsätzlich richtig bin an der Stelle, und warum die Klasse nicht vorhanden ist... Danke schonmal im voraus! Denzel.
Findest alles hier: (Link nur für registrierte Nutzer sichtbar.) (Link nur für registrierte Nutzer sichtbar.) (Link nur für registrierte Nutzer sichtbar.)
Eine Weiterleitung würde, wenn ich richtig verstehe, die Bestellbestätigung versenden, oder ? Ich brauche eine speziell konstruierte eMail, die von der Wawi gelesen und als Bestellung erkannt werden kann. Sieht ungefähr so aus: AUTOVORGANGIMPORT: ###AFS_VORGANGIMPORT# ###LIEFERANSCHRIFT:# ###BEMERKUNG:TEST TEST# ###KNUMMER:# ###ANREDE:Herr# ... Ich schätze, dass ich die Konstruktion irgendwie hin bekomme, das Script aus OSC liegt ja vor. Ich brauche nur die entsprechenden Variablen finden ($orders in OSC) und anpassen. Im Moment suche ich erstmal die richtige Stelle, um den Versand anzustoßen.
An welcher Stelle werden denn die Order-Daten aufbereitet, so dass man mit z.B. $customerAdressBlock = $order->getCustomerAddress(); oder $customerAdressBlock->getFirstname(); darauf zugreifen kann ? Ich brauche nämlich so ziemlich alle Orderdetails.
@Sommerzauber Erstelle am besten ein Overload für die Datei system/classes/orders/SendOrderProcess.inc.php. Wenn du schon die Shopversion 3.8 oder höher einsetzt, empfehle ich ein GXModul zu erstellen. Lege dazu eine Datei mit dem Namen WawiMailSendOrderProcess.inc.php im Ordner /GXModules/Sommerzauber/WawiMail/Shop/Overloads/SendOrderProcess/ mit folgemdem Inhalt an: PHP: class WawiMailSendOrderProcess extends WawiMailSendOrderProcess_parent{public function proceed() {parent::proceed();}} Hinter PHP: parent::proceed(); fügst du dann dein eigenen PHP Code zum lesen der Bestelldetails und senden der Mail ein. An die Bestelldetails kommst du mit dem folgenden Code: PHP: $orderReadService = StaticGXCoreLoader::getService('OrderRead'); $order = $orderReadService->getOrderById($orderId);$order->getOrderItems()->getArray(); Weitere Infos findest du unter folgender URL: (Link nur für registrierte Nutzer sichtbar.) Eine Mail sendest du am besten mit folgendem Code, dann wird die Mail auch im Gambio Admin unter "Kunden->E-Mails" gespeichert. Wenn du das nicht möchtest, muss du deine eigene Mail Methode schreiben in PHP: PHP: xtc_php_mail($from_email_address, $order->customer['firstname'].' '.$order->customer['lastname'], EMAIL_BILLING_ADDRESS, STORE_NAME, EMAIL_BILLING_FORWARDING_STRING, $order->customer['email_address'], $order->customer['firstname'].' '.$order->customer['lastname'], $t_mail_attachment_array, '', $order_subject, $t_content_mail, $t_txt_mail );
Hallo Till, mit dem Overload bin ich schon gut voran gekommen. Ich suche mir grade die ganzen Daten für die Mail aus der order Klasse zusammen. Leider habe ich noch nicht so besonders viel mit Objekten gearbeitet und habe grade Schwierigkeiten mit den Artikeln und den Gesamtsummen, weil die in Objektarrays verpackt sind. Kannst Du mir einen Tip geben, wie ich z.B. an den Namen des ersten bestellten Artikels komme ? $order_Items = $order->getOrderItems(); Soweit bin ich, aber wie komme ich dann weiter ? StoredOrderItemCollection Object ( [collectionContentArrayrotected] => Array ( [0] => StoredOrderItem Object ( [idrotected] => 11 [productModelrotected] => 38107 [namerotected] => Artikelname [pricerotected] => 99.99 [quantityrotected] => 1 [taxrotected] => 19 [taxAllowedrotected] => 1 [discountMaderotected] => 0 [shippingTimeInforotected] => ca. 1-3 Tage (Lagerware) [attributesrotected] => StoredOrderItemAttributeCollection Object ( [collectionContentArrayrotected] => Array ( ) ) ... Danke für die Mühe ! P.S. wie fügt man hier übrigens Quellcode ein ?
in der Leiste mit den Icons ist ein "+" - Symbol, darüber öffnet sich eine Code-Box für Quellcodes oder lange Texte.