API Request zu einer externen API

Hallo,

 

ich habe eine kurze Frage. Ich habe ein Plugin geschrieben welches bei eine Tracking ID appended. Das funktioniert so weit auch alles ganz prima. 
Nun würde ich aber gerne noch beim Aufruf der “frontend/checkout/finish” einen API Post Request zu einer externen API machen um die Daten der Bestellung zu übergeben. 

Nun weis ich nicht wie ich am sinnvollsten an dieser Stelle meinen API Call mache.

Kann mir da evtl. jemand helfen oder Hilfestellung geben. Ich würde über den Controller meinen Curl Request aufbauen. Da ich mich aber nicht so gut mit Shopware auskenne frage ich lieber erst mal die Experten hier. 

Vielen Dank für eure Hilfe + beste Grüße
Daniel 

Smarty Function in die finish.tpl einbauen und in dieser deinen PHP curl request.

ganz normaler curl request oder gibt es von Shopware etwas eigenes?

genau, du kannst auch alternativ den user per ajax die daten an die externe Api übermitteln lassen wenn du kein Serverseitigen Api Request stellen willst.

den user per ajax die daten an die externe Api übermitteln lassen wenn du kein Serverseitigen Api Request stellen willst.

Das ist sicherheitstechnisch aber problematisch wegen der Same-Origin Policy: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin\_policy

Viele Grüße

…und um es dann nicht so kommen zu lassen wie es simkli beschreibt, erstellt man sich zu seiner Shop-Domain eine Sub-Domain, z.B. https://xyzapi.shop.com und stellt die Request an die Externe Api über die Subdomain, welche die Daten weiterleiten an http://xzyapi.com . Ob man darüber auch requestbodys schicken kann oder nur /das/sind/meine/daten/urls, keine Ahnung, musste mal probieren. vll geht auch beides.

Bitte nicht via Smarty ein curl aufruf machen. Smarty sollte nur zum rendern von Html benutzt werden und keine Logik enthalten.

Subscribe dich z.B auf das Event wo die Mail versendet wird und mach dort dein Curl/Guzzle call. Davon abgesehen, würde bei der Smarty Lösung beim reload der call jedes mal abgefeuert werden

Warum es dem user in die hand geben, die bestellung zu exportieren? Mach dir nen cron, der die bestellungen exportiert. Aber nicht vergessen die stati der Bestellung zu ändern: beim start des exports und dann wenn es exportiert ist.