Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Kopplung von Bestellungen mit externem Service

  1. #1
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard Kopplung von Bestellungen mit externem Service

    Hey,
    folgendes Szenario: Ein Shop mit regulären Produkten die bestellt werden können. Nun soll ein neues Produkt (Produkt X) ergänzt werden, welches nach der Bestellung mit einem externen Service kommuniziert. Produkt X hat Varianten und einen Zusatztext auf dessen Basis dann nach der Bestellung ein POST-Request + zusätzliche Email abgeschickt werden soll.

    Gibt es für dieses Szenario eine Art Best-Practice? Ich habe gesehen, dass es möglich wäre dafür einen eigenen Produkttyp zu entwerfen. Oder würde es reichen im postsale-Hook für jedes Produkt besagten Request + Email zu senden?

    Würde mich über Feedback freuen, vielen Dank!

  2. #2
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Ich denke die sauberste Lösung wäre ein Custom Module nach der Bestellung einzubinden, welches ähnlich wie eine Payment-Method eine URL aufruft, und nach erfolgreicher Ausführung eines Formulars zurück zur Bestellung auf die Success-Seite weiterleitet. Ist das möglich, wenn ja gibt es eine Dokumentation dafür? Ich konnte bisher leider nichts in diese Richtung finden.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Für solche Dinge bietet Isotope einige Hooks an, die du unter $GLOBALS['ISO_HOOKS'] registrieren kannst. Leider finde ich keine Dokumentation über die zur Verfügung stehenden Hooks, du müsstest daher direkt im Code nachsehen. Ich denke der postCheckout Hook würde sich dafür anbieten.
    Geändert von Spooky (11.09.2020 um 11:48 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Vielen Dank! Ich hab mir den postHook und Klassen die diesen benutzen angeschaut. Leider sind mir einige Funktionen noch nicht geläufig. Bietet Contao z.B. eine beispielsweise Utility Class mit der POST-Requests verschickt werden können oder verwendet man ganz einfach cURL dafür? Bzw. bietet Isotope eine Schnittstelle für den Email-Versand? Die Dokumentationen sind leider oft nicht vorhanden oder lückenhaft.

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Zitat Zitat von Sabaid Beitrag anzeigen
    Bietet Contao z.B. eine beispielsweise Utility Class mit der POST-Requests verschickt werden können oder verwendet man ganz einfach cURL dafür?
    Jein, es gibt eine Legacy Request Klasse innerhalb von Contao, aber die solltest du nicht unbedingt nutzen.

    Aber du befindest dich in der PHP Welt, mit einem Projekt, dass über Composer verwaltet wird . Das heißt dir steht "alles" offen, du kannst das Paket nehmen, dass für deine Zwecke am besten passt. Beliebte Pakete für solche Dinge sind symfony/http-client oder guzzlehttp/guzzle



    Zitat Zitat von Sabaid Beitrag anzeigen
    Bzw. bietet Isotope eine Schnittstelle für den Email-Versand?
    Isotope nutzt das Notification Center. Contao selbst hat auch eine alte \Contao\Email Klasse (welche auch vom Notification Center benutzt wird). Du kannst aber auch den jeweiligen Mailer direkt verwenden (Swiftmailer im Falle von Contao 4.4 und 4.9, ab Contao 4.10 ist es der Symfony Mailer).

  6. #6
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Vielen Dank für die Unterstützung! Die Implementierung hat soweit super geklappt! Einzig die Log-Messages werden nicht generiert. Ich nutze aktuell Contao 3 und sollte via \System::log(<String>, __METHOD__, TL_ERROR) normalerweise Error Logs generieren können. Jedoch tauchen keine neuen Logs auf. Fehler wird keiner geworfen. Als würde die Methode gar nie aufgerufen werden. Gibt es spezielle Voraussetzungen um \System::log verwenden zu können?

  7. #7
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    System::log logged in das System Log im Backend, nicht in das error Log unter var/logs.

  8. #8
    Contao-Nutzer
    Registriert seit
    24.02.2016.
    Beiträge
    183

    Standard

    Davon bin ich ausgegangen.

    system > logs > error.log

    Wenn Exceptions auftauchen werden diese im genannten Log ausgegeben. Jedoch nicht die selbst generierten. Ich hab nun folgendes probiert: Meine Hook Klasse erbt nun von \System und anstelle von \System::log verwende ich $this->log, leider ebenso erfolglos.

  9. #9
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    33.898
    Partner-ID
    10107

    Standard

    Wie gesagt, System::log logged nicht in das error Log unter var/logs sondern in das System Log im Backend.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •