Hey @Ascadian
Danke für die Angaben und hier wäre es wichtig zu abwägen wie viel Zeit und Energie du in diese Google Shopping Kampagne stecken möchtest denn wenn Google hier Probleme macht dann liegt das im Grossen und Ganzen ausserhalb unserer Kontrolle. Oft ist es auch so dass solche Fehler mit der Zeit in der GSC einfach wieder verschwinden.
Das Problem, dass du in der Konsole sehen kannst, bezieht sich also auf CORS. Haben dir dazu unsere Threads hier weiteres dazu aufdecken können? Es handelt sich hier meistens um eine Sicherheitsmaßnahme in Webbrowsern, die sicherstellt, dass Skripte von einer Webseite nicht einfach Ressourcen von einer anderen Webseite abrufen können, es sei denn, die zweite Webseite erlaubt dies explizit. Die Fehler bedeuten, dass bestimmte Ressourcen (in diesem Fall anscheinend Schriftarten und Cookies) nicht korrekt geladen werden können.
Es gibt mehrere Möglichkeiten, warum das passieren kann:
- Erstens: Wenn ein Shop benutzerdefinierte API-Aufrufe oder Apps mit seiner Storefront verwendet, sollte man sicherstellen, dass man dafür keine Admin-API-Aufrufe verwendet und nur unsere Storefront-API nutzt. Admin-API-Aufrufe funktionieren nicht für Front-End-Anfragen.
- Zweitens: Wenn man einen API-Client (wie Postman oder Apollo) verwendet und sich eine der Abhängigkeiten (dependencies) im Entwicklungsmodus befindet, kann der Client Ressourcen wie CORS-Richtlinien als Sicherheitsmaßnahme blockieren. Es hilft, wenn du sicherstellst, dass deine Apps oder Aufrufe mit einem Client durchgeführt werden, der sich im Produktionsmodus befindet.
Im grossen und ganzen ist es also ein 3P (Drittanbieter) Problem und man muss eine Berechtigung einrichten, sonst funktioniert es nicht. Es ist also ausserhalb Shopify und auf unserer Seite können wir da nicht viel ändern.
Ein ähnlicher Fehler kann auftreten, wenn die Access-Control-Allow-Headers zwar vorhanden sind, aber in der Preflight-Antwort nicht erlaubt sind. Wie der Name schon sagt, handelt es sich um eine Ressource, die freigegeben wird und deren Ursprung sich überschneidet (Crossing Origins). Mit anderen Worten: es wird etwas von einem anderen Ort angefordert, der nicht zu Shopify gehört. Eine CORS-Richtlinie ist eine Reihe von Regeln, die festlegen, wie diese Ressourcen miteinander geteilt werden können.
Der Browser bekommt die Response und prüft ob der Access-Control-Allow-Origin Wert mit der in der ursprünglichen Anfrage angegebenen Domain übereinstimmt. Wenn sie übereinstimmen, ist die Anfrage erfolgreich. Wenn sie nicht übereinstimmen, oder wenn der Access-Control-Allow-Origin Header in der Antwort nicht vorhanden ist, schlägt die Anfrage fehl. Kurz gesagt: Gemäß der CORS-Richtlinie muss die externe Ressource die Erlaubnis haben, die Ressource wieder mit dem Shop zu teilen, sonst schlägt die Anfrage fehl.
Ein Beispiel: Ich habe die Domain “example.com” bei Shopify gehostet und die Domain “3p-example.com” gehosted von AWS. Ich habe etwas Javascript auf meiner Storefront, das eine Ressource von 3p-example.com anfordert. Damit 3p-example.com die Erlaubnis hat, diese Ressource freizugeben, muss der Header in der Antwort die Anfrage Access-Control-Allow-Origin: example.com enthalten. Auf diese Weise weiß die Domain auf Shopify (example.com), dass sie die Erlaubnis hat, diese Ressource anzufordern. Falls nötig (und nur falls nötig) kann der Header Access-Control-Allow-Origin: * zurückgeben stattdessen, aber das ist deutlich weniger sicher.
Um es so zusammenzufassen, dass es verständlicher ist - um dieses Problem zu lösen, müsste die Art und Weise, wie die Header-Informationen gehandhabt werden, in deinem Shop angepasst werden, um entweder die erforderlichen Access-Control-Allow-Origin erlaubt, oder alle Access-Control-Allow-Origin Parameter.
Lösung?
Du wirst wahrscheinlich den Support der App, von der die Ressource abgeruft wird, um Hilfe bitten müssen. Der Dienst ist möglicherweise nicht in der Lage, diese Änderung an seinen Antwort-Headern (response headers) was notwendig wäre, um die CORS-Richtlinie zu erfüllen.
Wir hier auf Shopify Seite können für dich jegliche Richtlinien nicht einfach von unserer Seite aus ändern, wie du hoffentlich verstehen kannst, auch wenn du das gerne hättest.
Dafür gibt es keine “technische” Einschränkung oder Erklärung, sondern es ist eine reine Frage der Sicherheit. Ohne diese Richtlinie wäre es böswilligen Akteuren möglich, ungestraft beliebige Ressourcen von überall her zu beziehen. Die Richtlinie ist also da um Shops und Plattforms wie Shopify und andere Plattforms zu schützen.
Ich verstehe es würde bequemer sein, wenn es keine Sicherheitsrichtlinien gäbe, aber das würde auch ein riesen Loch für böswillige Leute öffnen, die dein Shop schaden wollen.
Es gibt derzeit nur sehr wenige Fälle, in denen jemand Shopify auf diese Weise nutzen möchte, da man in der Regel davon ausgeht, dass Händler Shopify nicht ausschließlich als Ressourcenhost für andere Dienste nutzen.
Daher ist es derzeit kaum möglich, die Antwort-Header zu ändern, um sie an die CORS-Richtlinien eines Drittanbieters anzupassen. Dazu müssten wir unsere Bilder und unsere CDN-Konfigurationen sowie wahrscheinlich auch das Shopify Core System erheblich verändern.