Zum Inhalt springen
Shopware 6 Handbuch

Rohstoffberechnung: Kursimport Goldmarkt

Rohstoffberechnung ohne Abtippen: Das Plugin holt die Kursliste von Goldmarkt mit deinen Zugangsdaten im eingestellten Takt ab und schreibt die Kurse in die Rohstoffberechnung.

Version 6.7.0 Kompatibel mit 6.7.7 und neuer 22 Min. Lesezeit
Auf dieser Seite

Einleitung

Rohstoffberechnung: Kursimport Goldmarkt holt die Kursliste von Goldmarkt mit deinen Zugangsdaten ab und schreibt die Kurse in die Kursdaten deiner Rohstoffberechnung. Du musst Kurse nicht mehr von Hand abtippen.

Was du mit diesem Plugin erreichst

  • Du trägst deine Zugangsdaten einmal ein. Danach holt das Plugin die Kurse regelmäßig ab, in einem Abstand, den du selbst festlegst.
  • Du kannst den Abruf jederzeit auch von Hand starten, zum Beispiel um nach dem Einrichten sofort zu prüfen, ob alles klappt.
  • Führst du denselben Kurs in mehreren Kundentypen, bekommt jede dieser Zeilen den neuen Kurs. Du pflegst nichts doppelt. Kundentypen mit eigenem Abrufintervall bekommen ihre Kurse in ihrem Takt, auf Wunsch bis unter einer Minute.
  • Ein offensichtlich falscher Kurs (0, negativ oder keine Zahl) wird nicht übernommen. Dein zuletzt gespeicherter Kurs bleibt dann stehen.
  • Solange du den Abruf nicht einschaltest, nimmt das Plugin keinen Kontakt zu Goldmarkt auf.
  • Nutzt du zusätzlich das Plugin Artikelankauf, folgt auch der Ankaufpreis dem importierten Kurs.

Für wen ist dieses Plugin?

Für Shop-Betreiber, die ihre Artikelpreise mit dem Plugin Rohstoffberechnung aus Rohstoffkursen berechnen und einen Zugang zur Goldmarkt-Schnittstelle haben.

Was du vorher brauchst

  • Das Plugin Rohstoffberechnung, installiert und aktiv. Der Kursimport schreibt seine Kurse in dessen Kursdaten und funktioniert nicht ohne es.
  • Zugangsdaten für die Goldmarkt-Schnittstelle: Schnittstellen-URL, Benutzername und Passwort. Die bekommst du von Goldmarkt.
  • Für den automatischen Abruf: einen Server, auf dem die geplanten Aufgaben von Shopware im Hintergrund laufen. Ob das bei dir der Fall ist, weiß dein Hosting-Anbieter oder dein technischer Administrator (Details in Für Administratoren / Technische Details).

Installation

Nach dem Kauf steht dir das Plugin direkt in deiner Administration zur Verfügung — du musst nichts herunterladen.

Installiere und aktiviere zuerst die Rohstoffberechnung, falls das noch nicht geschehen ist. Der Kursimport setzt sie voraus.

  1. Melde dich in deiner Shopware-Administration an (DeinShop.de/admin)

  2. Öffne Erweiterungen → Meine Erweiterungen

  3. Klicke neben Rohstoffberechnung: Kursimport Goldmarkt auf Installieren

  4. Aktiviere das Plugin über den Schalter neben dem Eintrag — fertig.

    Meine Erweiterungen mit beiden Plugins Abb. 1: Meine Erweiterungen, Suche nach „Rohstoffberechnung“: Rohstoffberechnung und Kursimport sind installiert und aktiv.

Die Plugins stehen im Reiter Apps. Gibst du in die Suche oben „Rohstoffberechnung“ ein, siehst du beide Plugins untereinander. Über Konfigurieren neben dem Eintrag kommst du später zu den Einstellungen.

Nach der Installation ist der Abruf ausgeschaltet. Das Plugin verbindet sich also noch nicht mit Goldmarkt. Das passiert erst, wenn du in den Einstellungen Kurse bei Goldmarkt abrufen einschaltest (siehe Erste Schritte).

Taucht Rohstoffberechnung: Kursimport Goldmarkt nicht in der Liste auf, ist dein Shopware-Konto noch nicht mit dem Shop verbunden. Das erledigst du unter Erweiterungen → Meine Erweiterungen im Reiter Shopware Account über die Anmeldung mit deinem Shopware-Konto.

Erste Schritte

So bringst du die ersten Kurse in deinen Shop:

  1. Einstellungen öffnen: Öffne Erweiterungen → Meine Erweiterungen und klicke neben Rohstoffberechnung: Kursimport Goldmarkt auf Konfigurieren.
  2. Zugangsdaten eintragen: Trag unter der Überschrift Zugangsdaten die Schnittstellen-URL, den Benutzernamen und das Passwort ein, die du von Goldmarkt bekommen hast.
  3. Abruf einschalten: Schalte unter der Überschrift Kursimport den Schalter Kurse bei Goldmarkt abrufen ein. Prüfe das Abrufintervall (Minuten). Ab Werk steht es auf 15 Minuten.
  4. Speichern: Klicke oben rechts auf Speichern.
  5. Ergebnis prüfen: Öffne Kataloge → Rohstoffberechnung → Kursdaten. Bei den importierten Kursen siehst du in der Spalte Aktueller Kurs den neuen Wert und in der Spalte Zuletzt geändert den Zeitpunkt des Abrufs.

Den ersten Abruf startet Shopware beim nächsten Lauf der geplanten Aufgabe. Willst du nicht warten, lass den Abruf einmal von Hand starten (siehe So startest du den Abruf von Hand). Die Ausgabe zeigt dir sofort, ob alles geklappt hat.

Einstellungen

Zu den Einstellungen kommst du über Erweiterungen → Meine Erweiterungen: Klicke dort neben Rohstoffberechnung: Kursimport Goldmarkt auf Konfigurieren. Sie sind auf zwei Überschriften verteilt: Kursimport und Zugangsdaten. Klicke nach jeder Änderung oben rechts auf Speichern.

Konfigurationsseite des Plugins Abb. 2: Konfigurationsseite: oben die Auswahl Verkaufskanal, darunter die Einstellungen unter Kursimport.

Die Einstellungen gelten für den ganzen Shop. Die Kurse der Rohstoffberechnung gelten für alle Verkaufskanäle, deshalb liest das Plugin seine Einstellungen ohne Bezug auf einen Verkaufskanal. Über den Einstellungen steht trotzdem die Auswahl Verkaufskanal. Die brauchst du hier nicht: Lass sie auf Alle Verkaufskanäle stehen und trag deine Einstellungen dort ein. Werte, die du nur für einen einzelnen Verkaufskanal hinterlegst, beachtet das Plugin nicht.

Kursimport

Einstellungen unter Kursimport Abb. 3: Unter Kursimport: Dokumentation öffnen, Kurse bei Goldmarkt abrufen und Abrufintervall (Minuten).

Dokumentation öffnen

Ganz oben unter der Überschrift Kursimport steht die Schaltfläche Dokumentation öffnen. Sie öffnet diese Anleitung in einem neuen Browser-Tab, und zwar in der Sprache, in der du die Administration gerade nutzt.

Wozu das gut ist: Du hast die Anleitung genau dort griffbereit, wo du die Einstellungen änderst.

Kurse bei Goldmarkt abrufen

Mit Kurse bei Goldmarkt abrufen legst du fest, ob das Plugin überhaupt Kontakt zu Goldmarkt aufnimmt. Eingeschaltet verbinden sich sowohl der automatische Abruf als auch der Abruf von Hand mit deinen Zugangsdaten zu Goldmarkt. Ausgeschaltet findet keine Verbindung statt. Nach der Installation ist der Schalter ausgeschaltet.

Der Hilfetext hinter dem Fragezeichen am Schalter nennt dazu: „Die Kurse gelten für alle Verkaufskanäle.“

Wozu das gut ist: Du kannst erst in Ruhe alle Zugangsdaten eintragen und schaltest den Abruf erst ein, wenn alles stimmt. Willst du den Abruf vorübergehend anhalten, etwa während einer Umstellung, schaltest du ihn hier aus. Deine Zugangsdaten bleiben dabei gespeichert.

Abrufintervall (Minuten)

Mit Abrufintervall (Minuten) bestimmst du, wie oft das Plugin die Kurse automatisch abholt. Du kannst einen Wert zwischen 5 und 1440 Minuten eintragen. Ab Werk sind es 15 Minuten. Der Hilfetext hinter dem Fragezeichen am Feld sagt dazu: „Eine Änderung gilt ab dem übernächsten Lauf. Setzt einen laufenden Worker für geplante Aufgaben voraus.“

Ein Worker ist ein Hintergrundprozess auf deinem Server, der die geplanten Aufgaben von Shopware ausführt. Läuft er nicht, findet kein automatischer Abruf statt. Ob er läuft, klärst du mit deinem Hosting-Anbieter oder deinem technischen Administrator.

Das Intervall gilt nur für den automatischen Abruf. Startest du den Abruf von Hand, läuft er sofort.

Wozu das gut ist: Du stimmst den Takt auf deinen Bedarf ab. 60 Minuten heißt stündlich, 1440 Minuten heißt einmal am Tag. Ein kürzerer Abstand hält deine Kurse näher am Markt, ein längerer erzeugt weniger Abrufe.

Abrufintervall je Kundentyp

Die Rohstoffberechnung kann für einzelne Kundentypen ein eigenes Abrufintervall (Sekunden) führen (Kataloge → Rohstoffberechnung → Kundentypen). Dann holt dieses Plugin die Kurse dieses Kundentyps in dem Abstand, der dort eingetragen ist; alle übrigen Kundentypen bekommen ihre Kurse im Intervall hier. Die geplante Aufgabe läuft dann im kürzesten dieser Intervalle, frühestens alle 5 Minuten.

Für Intervalle unter 5 Minuten startet deine IT den Befehl resourcecalc:goldmarkt:import jede Minute per System-Cronjob:

* * * * * cd /pfad/zum/shop && php bin/console resourcecalc:goldmarkt:import

Der Befehl holt dann innerhalb der Minute alle Kurse, die fällig werden — bei Intervallen unter einer Minute mehrmals. Befehl und geplante Aufgabe teilen sich den Zeitplan: Jeder Kurs wird je Intervall nur einmal abgerufen, egal über welchen Weg. Ist nichts fällig, endet der Befehl sofort mit einem Hinweis. Mit php bin/console resourcecalc:goldmarkt:import --force holst du die Kurse sofort für alle Kundentypen.

Zugangsdaten

Unter der Überschrift Zugangsdaten trägst du ein, was du von Goldmarkt bekommen hast.

Einstellungen unter Zugangsdaten Abb. 4: Unter Zugangsdaten, hier mit Beispielwerten. Deine Schnittstellen-URL, deinen Benutzernamen und dein Passwort bekommst du von Goldmarkt.

Schnittstellen-URL

In Schnittstellen-URL trägst du die Adresse der Goldmarkt-Schnittstelle ein, und zwar ohne Parameter. Was das Plugin für den Abruf an die Adresse anhängt, ergänzt es selbst.

  • Schreibst du die Adresse ohne https:// oder http:// davor, verwendet das Plugin automatisch https://, also eine verschlüsselte Verbindung.
  • Trag http:// nur ein, wenn Goldmarkt die Schnittstelle ausschließlich unverschlüsselt anbietet. Dann werden auch Benutzername und Passwort unverschlüsselt übertragen.
  • Trag Benutzername und Passwort nicht in die Adresse ein, sondern in die beiden Felder darunter. Eine Adresse, die Zugangsdaten enthält, verwendet das Plugin nicht.

Wozu das gut ist: Mit der richtigen Adresse weiß das Plugin, wo es die Kursliste abholt.

Benutzername

In Benutzername trägst du den Benutzernamen für die Goldmarkt-Schnittstelle ein.

Passwort

In Passwort trägst du das zugehörige Passwort ein. Die Administration zeigt es verdeckt an. Über das Augensymbol im Feld kannst du es zur Kontrolle einblenden. Gespeichert wird es allerdings im Klartext in den Einstellungen deines Shops. Wer Zugriff auf die Datenbank deines Shops hat, kann es also lesen. In die Logdatei schreibt das Plugin das Passwort nie.

Wozu das gut ist: Erst mit Schnittstellen-URL, Benutzername und Passwort zusammen kann das Plugin die Kursliste abholen. Fehlt eine der drei Angaben, ruft es nichts ab.

So nutzt du die Funktionen

So holst du die Kurse automatisch ab

Was dir das bringt: Deine Kurse bleiben aktuell, ohne dass du daran denken musst.

Den automatischen Abruf erledigt eine geplante Aufgabe. Das ist ein Vorgang, den Shopware im Hintergrund regelmäßig startet.

Schritt für Schritt

  1. Öffne Erweiterungen → Meine Erweiterungen und klicke neben Rohstoffberechnung: Kursimport Goldmarkt auf Konfigurieren
  2. Prüfe, dass unter Zugangsdaten alle drei Angaben eingetragen sind.
  3. Schalte Kurse bei Goldmarkt abrufen ein.
  4. Trag im Abrufintervall (Minuten) ein, wie oft die Kurse kommen sollen.
  5. Klicke oben rechts auf Speichern

Ab jetzt holt das Plugin die Kurse im eingestellten Abstand ab. Jeder Abruf schreibt eine kurze Zusammenfassung in die Logdatei des Plugins (siehe Für Administratoren / Technische Details).

Wichtig: Der automatische Abruf braucht einen laufenden Worker für geplante Aufgaben auf deinem Server. Ohne ihn bleibt der Abruf aus, auch wenn alle Einstellungen stimmen.

So startest du den Abruf von Hand

Was dir das bringt: Du siehst sofort, ob deine Zugangsdaten funktionieren und welche Kurse übernommen wurden, ohne auf den nächsten automatischen Abruf zu warten.

Den Abruf von Hand startest du auf der Kommandozeile deines Servers. Hast du selbst keinen Zugang dazu, bitte deinen Hosting-Anbieter oder technischen Administrator. Der Befehl lautet:

bin/console resourcecalc:goldmarkt:import

Auch beim Abruf von Hand muss Kurse bei Goldmarkt abrufen eingeschaltet sein. Ist der Schalter aus, baut der Befehl keine Verbindung auf und meldet das.

Nach einem erfolgreichen Abruf zeigt der Befehl drei Angaben, auf Englisch:

  • Updated codes: die Kurscodes, deren Kurs aktualisiert wurde
  • Created codes: die Kurscodes, die neu in deinen Kursdaten angelegt wurden
  • Discarded quotes: wie viele Kurse wegen eines ungültigen Werts nicht übernommen wurden

Die übrigen Meldungen des Befehls und ihre Bedeutung findest du in Für Administratoren / Technische Details.

Tipp: Der Befehl eignet sich auch für einen eigenen Cronjob, also einen zeitgesteuerten Auftrag auf dem Server. Bei älteren Versionen hieß er resourcecalcgoldmarkt:cron. Dieser Name funktioniert weiter.

So prüfst du die importierten Kurse

Was dir das bringt: Du siehst auf einen Blick, welche Kurse angekommen sind und wann.

Schritt für Schritt

  1. Gehe zu Kataloge → Rohstoffberechnung → Kursdaten
  2. Sieh dir die Spalten Kursbezeichnung, Kurscode, Aktueller Kurs und Zuletzt geändert an.

Kursdaten nach einem Abruf Abb. 5: Kursdaten nach einem Abruf mit Kursbezeichnung, Kurscode, Aktueller Kurs und Zuletzt geändert.

So ordnet der Import die Kurse zu:

  • Für jeden Eintrag der Kursliste bildet das Plugin einen Kurscode aus dem Code des Eintrags und seiner Währung, zum Beispiel AU_EUR.
  • Jede Zeile deiner Kursdaten mit genau diesem Kurscode bekommt den neuen Kurs, die Währung und den Zeitpunkt der Änderung. Das gilt in jedem Kundentyp.
  • Gibt es den Kurscode in deinen Kursdaten noch nicht, legt der Import ihn einmal im Standard-Kundentyp an. Als Kursbezeichnung nimmt er den Namen aus der Kursliste, als internen Code denselben Wert wie den Kurscode.

Tipp: Der Import erkennt eine Zeile allein am Kurscode. Pflegst du einen Kurs schon unter einem anderen Kurscode, lässt der Import diese Zeile unverändert und legt eine zusätzliche an. Prüfe nach dem ersten Abruf deshalb, welche Zeilen neu dazugekommen sind, und gleiche sie mit deinen bisherigen Kursdaten ab. Welche Kurscodes neu angelegt wurden, zeigt dir der Abruf von Hand unter Created codes.

Tipp: Brauchst du einen neu angelegten Kurs auch in einem weiteren Kundentyp, lege in den Kursdaten über Kursdaten hinzufügen eine Zeile mit diesem Kundentyp und demselben Code an und fülle die übrigen Angaben wie gewohnt aus. Ab dem nächsten Abruf bekommt auch diese Zeile den Kurs.

Tipp: Sieh dir neu angelegte Zeilen einmal an und ergänze, was deine Preisberechnung braucht, zum Beispiel ob es sich um eine Währung handelt (Ist eine Währung).

So kommen die neuen Kurse in deine Artikelpreise

Was dir das bringt: Du weißt, an welcher Stelle aus dem neuen Kurs ein neuer Artikelpreis wird.

Der Kursimport schreibt nur die Kurse in die Kursdaten. Die in den Artikeln gespeicherten Preise aktualisiert der Befehl resourcecalc:cron der Rohstoffberechnung. Der Kursimport startet diesen Befehl nicht selbst.

Nutzt du zusätzlich das Plugin Artikelankauf, folgt auch der Ankaufpreis dem importierten Kurs. Für den Kursimport selbst brauchst du den Artikelankauf nicht.

Artikelseite mit Verkaufs- und Ankaufspreis Abb. 6: Beispielartikel „Goldbarren 10 g“: Der Verkaufspreis (Rohstoffberechnung) und der Preis unter „Aktueller Ankaufspreis“ (Artikelankauf) entstehen aus dem importierten Goldkurs.

Was mit ungültigen oder unvollständigen Kursen passiert

Was dir das bringt: Ein fehlerhafter Wert in der Kursliste wird nicht zu einem fehlerhaften Kurs in deinem Shop.

  • Ungültiger Kurs: Ist ein Kurs 0, negativ oder keine Zahl, übernimmt der Import ihn nicht. Der zuletzt gespeicherte Kurs bleibt stehen, bis ein gültiger Wert kommt. Beim Abruf von Hand siehst du die Anzahl unter Discarded quotes.
  • Unvollständiger Eintrag: Fehlt einem Eintrag der Kursliste der Code oder die Währung, überspringt das Plugin ihn und vermerkt das in seiner Logdatei.
  • Shop-Währungen: Die Währungen deines Shops ändert der Import nicht.

Ein Beispiel zeigt Abb. 5 in So prüfst du die importierten Kurse: Die beiden Zeilen mit dem Kurscode PD_EUR (Palladium und Palladium Händler) stehen unter Zuletzt geändert noch auf dem Stand vom Vortag. Der Import hat ihren gelieferten Kurs 0 verworfen, ihr gespeicherter Kurs ist geblieben. Alle anderen Zeilen hat der Abruf aktualisiert.

So schaltest du den Abruf vorübergehend ab

Was dir das bringt: Du hältst den Abruf an, ohne Zugangsdaten zu löschen oder das Plugin zu deaktivieren.

  1. Öffne Erweiterungen → Meine Erweiterungen und klicke neben Rohstoffberechnung: Kursimport Goldmarkt auf Konfigurieren
  2. Schalte Kurse bei Goldmarkt abrufen aus.
  3. Klicke oben rechts auf Speichern

Ab jetzt verbindet sich das Plugin nicht mehr mit Goldmarkt, weder automatisch noch von Hand. Deine Kursdaten bleiben unverändert. Zum Fortsetzen schaltest du den Schalter wieder ein.

Wenn du von einer älteren Version aktualisierst

Was dir das bringt: Dein bisheriger Abruf läuft nach dem Update ohne neue Einrichtung weiter.

  • Deine Zugangsdaten bleiben erhalten.
  • War vor dem Update eine Schnittstellen-URL eingetragen, ist Kurse bei Goldmarkt abrufen nach dem Update eingeschaltet.
  • Der bisherige Befehlsname resourcecalcgoldmarkt:cron funktioniert weiter. Ein vorhandener Cronjob muss nicht angepasst werden.

Fehlerbehebung

Viele Fragen klärst du am schnellsten mit einem Abruf von Hand (siehe So startest du den Abruf von Hand). Die Meldung zeigt, woran es hängt. Die genauen Meldungstexte stehen in Für Administratoren / Technische Details.

Die Kurse ändern sich nicht

Woran es liegt: Meist ist der Abruf ausgeschaltet, eine Zugangsangabe fehlt oder auf dem Server läuft kein Worker für geplante Aufgaben.

So behebst du es:

  1. Prüfe, dass Kurse bei Goldmarkt abrufen eingeschaltet und gespeichert ist.
  2. Prüfe, dass Schnittstellen-URL, Benutzername und Passwort ausgefüllt sind.
  3. Starte den Abruf einmal von Hand. Klappt er dort, läuft vermutlich der Worker für geplante Aufgaben nicht. Kläre das mit deinem Hosting-Anbieter oder technischen Administrator.

Der Abruf von Hand meldet, dass der Abruf ausgeschaltet ist

Woran es liegt: Kurse bei Goldmarkt abrufen ist ausgeschaltet. Der Befehl hat keine Verbindung aufgebaut.

So behebst du es: Schalte Kurse bei Goldmarkt abrufen ein, klicke auf Speichern und starte den Abruf erneut.

Der Abruf von Hand meldet unvollständige Zugangsdaten

Woran es liegt: Eine der drei Angaben unter Zugangsdaten fehlt oder ist nicht verwendbar. Die Meldung nennt am Ende auf Englisch, welche.

So behebst du es:

  1. Trag die fehlende Angabe ein und klicke auf Speichern.
  2. Wird die Schnittstellen-URL bemängelt, obwohl sie ausgefüllt ist: Prüfe, dass sie mit https:// oder http:// beginnt oder ganz ohne Protokoll eingetragen ist und dass sie keine Zugangsdaten enthält.

Die Verbindung zu Goldmarkt kommt nicht zustande

Woran es liegt: Die Schnittstellen-URL ist falsch geschrieben, die Zugangsdaten stimmen nicht, die Gegenseite antwortet nicht rechtzeitig oder dein Server darf keine Verbindung nach außen aufbauen.

So behebst du es:

  1. Vergleiche Schnittstellen-URL, Benutzername und Passwort Zeichen für Zeichen mit den Angaben von Goldmarkt.
  2. Bleibt der Fehler, gib die Meldung des Befehls oder den Eintrag aus der Logdatei an Goldmarkt oder deinen Hosting-Anbieter weiter. Beide enthalten keine Zugangsdaten.

Die Antwort ist keine Kursliste

Woran es liegt: Unter der eingetragenen Adresse kommt eine Antwort, die das Plugin nicht als Kursliste lesen kann, zum Beispiel eine leere Antwort oder eine Webseite.

So behebst du es: Prüfe mit den Angaben von Goldmarkt, ob die Schnittstellen-URL stimmt. Trag sie ohne Parameter ein, das Plugin ergänzt sie selbst.

Ein Kurs bleibt auf seinem alten Wert stehen

Woran es liegt: Entweder war der gelieferte Wert ungültig (0, negativ oder keine Zahl) und wurde verworfen, oder deine Zeile trägt einen anderen Kurscode als der Import.

So behebst du es:

  1. Starte den Abruf von Hand und sieh nach, ob unter Discarded quotes Kurse verworfen wurden. Die Details stehen in der Logdatei.
  2. Vergleiche den Kurscode deiner Zeile mit den Kurscodes, die der Import bildet (siehe So prüfst du die importierten Kurse).

Der Abruf meldet, dass kein Kurs geschrieben wurde

Woran es liegt: Die Verbindung hat geklappt, aber kein einziger Kurs war verwendbar.

So behebst du es: Die Gründe stehen in der Logdatei der Rohstoffberechnung (siehe Für Administratoren / Technische Details). Gib sie bei Bedarf an Goldmarkt weiter.

Für einen Kurs ist eine zweite Zeile entstanden

Woran es liegt: Der Import hat den Kurscode in deinen Kursdaten nicht gefunden und ihn deshalb neu angelegt.

So behebst du es: Gleiche die neue Zeile mit deiner bisherigen ab und entscheide, mit welcher du weiterarbeitest (siehe So prüfst du die importierten Kurse).

Die Artikelpreise ändern sich nach dem Import nicht

Woran es liegt: Der Kursimport schreibt nur die Kurse. Die gespeicherten Artikelpreise aktualisiert der Befehl resourcecalc:cron der Rohstoffberechnung.

So behebst du es: Prüfe mit deinem technischen Administrator, ob und wann resourcecalc:cron in deinem Shop läuft.

Das neue Abrufintervall greift nicht sofort

Woran es liegt: Die geplante Aufgabe übernimmt den neuen Wert erst bei ihrem nächsten Lauf. Bis der neue Abstand wirkt, kommen deshalb noch ein bis zwei Abrufe im bisherigen Takt (Details in Für Administratoren / Technische Details).

So behebst du es: Nichts tun und den nächsten Lauf abwarten. Brauchst du die Kurse sofort, starte den Abruf von Hand.

Die Schaltfläche „Dokumentation öffnen“ fehlt

Woran es liegt: Die Schaltfläche erscheint nur für Benutzer, deren Rolle Plugins lesen darf. Konnte der Link nicht geladen werden, erscheint die Meldung „Der Link zur Dokumentation konnte nicht geladen werden.“

So behebst du es: Lade die Seite neu oder bitte einen Administrator, deiner Rolle das Leserecht für Plugins zu geben. Die Adresse dieser Anleitung findest du auch in Abschnitt 8.

FAQ

F: Brauche ich dafür die Rohstoffberechnung?

A: Ja. Das Plugin Rohstoffberechnung muss installiert und aktiv sein. Der Kursimport schreibt die Kurse in deren Kursdaten.

F: Woher bekomme ich die Zugangsdaten?

A: Du brauchst Zugangsdaten für die Goldmarkt-Schnittstelle: Schnittstellen-URL, Benutzername und Passwort. Die bekommst du von Goldmarkt.

F: Welche Kurse übernimmt das Plugin?

A: Jeden Eintrag der Kursliste, der einen Code und eine Währung hat. Eine Auswahl einzelner Kurse im Plugin gibt es nicht.

F: Kann ich die Kurse je Verkaufskanal unterschiedlich steuern?

A: Nein. Die Kurse gelten für alle Verkaufskanäle, und das Plugin liest seine Einstellungen für den ganzen Shop.

F: Ändert der Import meine Shop-Währungen?

A: Nein. Der Import schreibt nur in die Kursdaten der Rohstoffberechnung.

F: Brauche ich das Plugin Artikelankauf?

A: Nein. Nutzt du es, folgt der Ankaufpreis dem importierten Kurs. Der Kursimport funktioniert auch ohne.

F: Welche Daten verlassen meinen Shop?

A: Nur dein Benutzername und dein Passwort für die Goldmarkt-Schnittstelle, gesendet an die Schnittstellen-URL, die du einträgst. Kunden-, Bestell- und Artikeldaten sendet das Plugin nicht. Ist Kurse bei Goldmarkt abrufen ausgeschaltet, baut es keine Verbindung auf.

F: Steht mein Passwort in einer Logdatei?

A: Nein. Das Plugin schreibt das Passwort nie in die Logdatei, und Fehlermeldungen enthalten keine Zugangsdaten.

F: Merkt meine Storefront etwas vom Plugin?

A: Nein. Das Plugin bringt nichts in die Storefront mit. Es arbeitet nur im Hintergrund und auf der Kommandozeile.

F: Was passiert mit meinen Kursen, wenn ich das Plugin deinstalliere?

A: Die importierten Kurse stehen in den Kursdaten der Rohstoffberechnung und bleiben dort erhalten. Behältst du beim Deinstallieren die Daten des Plugins nicht, entfernt Shopware auch die Einstellungen samt Zugangsdaten.

Für Administratoren / Technische Details

Dieser Abschnitt richtet sich an technische Administratoren. Für die normale Nutzung brauchst du ihn nicht.

Systemanforderungen

  • Shopware: 6.7.7 oder höher (Voraussetzung der Rohstoffberechnung)
  • PHP: 8.2 oder neuer
  • Rohstoffberechnung: Plugin SwpResourceCalcSix in Version 6.7, installiert und aktiv
  • Automatischer Abruf: laufender Worker für geplante Aufgaben, zum Beispiel über bin/console scheduled-task:run und bin/console messenger:consume
  • Netzwerk: ausgehende Verbindung vom Server zur Schnittstellen-URL

Installation über die Kommandozeile

Liegt das Plugin bereits im Shop, installierst du es so:

bin/console plugin:refresh
bin/console plugin:install --activate SwpResourceCalcSix          # falls noch nicht installiert
bin/console plugin:install --activate SwpResourceCalcGoldmarktSix
bin/console cache:clear

Abruf auf der Konsole und per Cronjob

bin/console resourcecalc:goldmarkt:import
  • Der frühere Name resourcecalcgoldmarkt:cron ist ein Alias und funktioniert weiter.
  • Exit-Code 0: Kurse geschrieben, oder der Abruf ist ausgeschaltet (Warnung, keine Verbindung).
  • Exit-Code 1: Zugangsdaten unvollständig, Abruf fehlgeschlagen oder kein Kurs geschrieben.
  • Auch der Befehl beachtet Kurse bei Goldmarkt abrufen. Die geplante Aufgabe läuft unabhängig von einem eigenen Cronjob weiter, solange der Abruf eingeschaltet ist und der Worker läuft.

Beispiel für einen Cronjob (Pfad an deinen Shop anpassen):

*/15 * * * * cd /pfad/zum/shop && bin/console resourcecalc:goldmarkt:import

Geplante Aufgabe

  • Name: swp.resource_calc_goldmarkt.rate_import, Standardintervall 900 Sekunden (15 Minuten).
  • Bei jedem Lauf übernimmt die Aufgabe das eingestellte Abrufintervall (Minuten) (5 bis 1440) in ihr eigenes Intervall. Den Zeitpunkt des darauffolgenden Laufs berechnet Shopware dabei noch mit dem bisherigen Intervall, weil es dieses vor dem Lauf gelesen hat. Der neue Abstand gilt deshalb erst ab dem Lauf danach.
  • Schlägt ein Lauf fehl, plant Shopware den nächsten trotzdem ein.

Aufruf der Schnittstelle

Das Plugin ruft die Schnittstelle per GET auf und hängt die Parameter selbst an:

<Schnittstellen-URL>?page=resources&g=<Benutzername>&i=<Passwort>&t=xml
  • Ohne Protokoll wird https:// vorangestellt. http:// wird nur verwendet, wenn es ausdrücklich eingetragen ist.
  • Andere Protokolle als http/https, Adressen ohne Host und Adressen mit Zugangsdaten in der Form benutzer:passwort@ werden abgelehnt. Der Befehl meldet die Schnittstellen-URL dann als fehlend.
  • Höchstens 3 Weiterleitungen.
  • Zeitlimits: Abbruch nach 10 Sekunden ohne Antwort, höchstens 30 Sekunden je Abruf. Antworten über 5 MB werden abgebrochen.
  • Weil Benutzername und Passwort Teil der aufgerufenen Adresse sind, können sie in Zugriffsprotokollen der Gegenseite oder von Proxys auftauchen. Fehlermeldungen und Logdatei des Plugins enthalten weder den Abfrageteil der Adresse noch die Zugangsdaten.

Erwartetes Antwortformat und Bildung des Kurscodes

  • Das Plugin erwartet XML mit einem Element resource je Kurs, darin die Kindelemente code, currency und value sowie das Attribut titel.
  • Kurscode = <code>_<currency>, zum Beispiel AU_EUR. Kursbezeichnung neu angelegter Zeilen = Attribut titel.
  • value muss eine Zahl sein, mit Punkt als Dezimaltrennzeichen. Ein Wert, der keine Zahl ist (auch mit Komma als Dezimaltrennzeichen), zählt als 0 und wird verworfen.
  • Einträge ohne code oder currency werden übersprungen und mit ihrer Position in der Liste protokolliert.
  • Eine leere Antwort, eine Antwort ohne gültiges XML oder ohne verwendbares resource-Element gilt als „keine Kursliste“. Dann wird nichts geschrieben.

Schreiben in die Kursdaten

  • Geschrieben wird über die Import-Schnittstelle der Rohstoffberechnung.
  • Jede Zeile der Kursdaten mit dem Kurscode erhält Kurs, Währung und Änderungszeit, in jedem Kundentyp.
  • Ein unbekannter Kurscode wird einmal im Standard-Kundentyp angelegt, mit Kursbezeichnung aus der Kursliste und internem Code = Kurscode.
  • Kurse, die 0, negativ oder keine Zahl sind, werden verworfen. Der gespeicherte Kurs bleibt.
  • Shop-Währungen werden nicht verändert.
  • Artikelpreise werden nicht neu berechnet. Die gespeicherten Artikelpreise aktualisiert der Befehl resourcecalc:cron der Rohstoffberechnung. Der Kursimport ruft ihn nicht auf.

Logdateien

  • var/log/SwpResourceCalcGoldmarktSix-<datum>.log, eine Datei je Tag: Zusammenfassung jedes Abrufs (Anzahl der Einträge, aktualisierte, neu angelegte und verworfene Kurscodes mit Grund), Verbindungsfehler mit Host, unlesbare Antworten mit ihrer Größe, übersprungene Einträge, unvollständige Zugangsdaten. Die Meldungen lauten:
    • Goldmarkt rates imported
    • Goldmarkt rates could not be fetched
    • Goldmarkt response could not be read
    • Goldmarkt rate import skipped: access data incomplete
    • Goldmarkt rate skipped: code or currency missing
  • var/log/SwpResourceCalcSix-<datum>.log: Verworfene Kurse protokolliert zusätzlich die Rohstoffberechnung.

Meldungen beim Abruf von Hand

  • Fetching rates from Goldmarkt is switched off in the plugin configuration. No connection was made. — Kurse bei Goldmarkt abrufen ist aus. Einschalten und speichern.
  • Goldmarkt access data incomplete, missing: … — Dahinter steht, welche Angabe fehlt oder nicht verwendbar ist: url für Schnittstellen-URL, login für Benutzername, password für Passwort.
  • Goldmarkt request to <host> failed: … — Die Verbindung kam nicht zustande, zum Beispiel wegen Zeitüberschreitung, Namensauflösung oder Zertifikat. Adresse und Netzwerk prüfen.
  • Goldmarkt (<host>) answered with HTTP status <status> — Die Gegenseite hat mit einem Fehlerstatus geantwortet. Adresse und Zugangsdaten prüfen, Status an Goldmarkt weitergeben.
  • Goldmarkt response is not a rate list: … — Die Antwort ist leer, kein gültiges XML oder enthält keinen verwendbaren Eintrag. Dahinter steht der Grund, zum Beispiel empty response, no resource elements, no resource element with code and currency oder no valid XML.
  • No rate was written. Details: log file SwpResourceCalcSix of the resource calculation. — Verbindung in Ordnung, aber kein Kurs war verwendbar. Gründe in der Logdatei der Rohstoffberechnung.
  • Goldmarkt rates imported. Product prices are stored by the command resourcecalc:cron. — Abruf erfolgreich. Darüber stehen Updated codes, Created codes und Discarded quotes.

Update von einer älteren Version

  • Beim Update von einer Version vor 6.7.0 bleiben die Zugangsdaten erhalten. War eine Schnittstellen-URL eingetragen, wird Kurse bei Goldmarkt abrufen eingeschaltet, damit der Abruf wie bisher weiterläuft.
  • Einstellungen früherer Versionen, die das Plugin nicht mehr verwendet, werden bei Installation und Update entfernt.

Deinstallation

Das Plugin hat keine eigenen Tabellen. Beim Deinstallieren entfernt Shopware die geplante Aufgabe und, wenn die Daten nicht behalten werden, die Konfiguration samt Zugangsdaten. Bereits importierte Kurse bleiben in den Kursdaten der Rohstoffberechnung.


Diese Anleitung wurde für Rohstoffberechnung: Kursimport Goldmarkt Version 6.7.0 erstellt.

Wer betreut deinen Shop, wenn es ernst wird?

Wir pflegen Shopware-Shops seit über 20 Jahren, inklusive Updates, Hotfixes und der Plugins, die du hier gerade einrichtest.