Hallo zusammen,
wir möchten das Plugin „Shopware GMV Reporting“ aus Datenschutzgründen nicht installieren oder nutzen.
In der letzten Infomail hieß es:
„Solltest du bislang noch keine Maßnahmen zur Einhaltung der Fair Usage Policy (FUP) ergriffen oder Kontakt mit uns aufgenommen haben, ist dies unbedingt bis spätestens 30. Juni 2025 erforderlich.“
Heute ist also Stichtag.
Weiterhin stand dort:
„Alternativ kannst du deinen GMV auch über dieses Formular übermitteln.“
Daher meine Frage:
Wie ermittle ich den GMV manuell gemäß Definition von Shopware (AGB §2.9)?
SELECT
SUM(o.amount_net + o.shipping_costs) AS gmv_netto
FROM
`order` o
JOIN
state_machine_state s ON o.state_id = s.id
WHERE
s.technical_name = 'completed'
AND o.order_date BETWEEN '2024-01-01' AND '2024-12-31';
Ist diese Berechnung Shopware-konform?
Also: Netto-Warenwert + Netto-Versandkosten, Rabatte abgezogen, Steuern ausgeschlossen, Rücksendungen/Stornos nicht abgezogen?
Vielen Dank für eine kurze Bestätigung oder Korrektur!
1 „Gefällt mir“
Danke für den Hinweis auf die Datei im Plugin – das war sehr hilfreich für den Abgleich.
Wichtig ist dabei: Die Berechnung im FroshGMVViewer ist technisch nachvollziehbar, aber laut Shopware-FUP (AGB §2.9) nicht vollständig korrekt, da dort Bestellungen mit Rückerstattungen, Stornos o. ä. ausgeschlossen werden.
Laut Shopware-Definition müssen aber auch solche Bestellungen voll enthalten bleiben, wenn sie den Status „completed“ haben:
- Rücksendungen/Stornos werden nicht abgezogen
- Steuern werden nicht berücksichtigt
- Rabatte werden berücksichtigt (also abgezogen)
- Versandkosten netto werden einbezogen
Die korrekte SQL-Abfrage für die GMV-Meldung (z. B. per Formular) sieht daher so aus:
SELECT
ROUND(SUM(
o.amount_net +
IFNULL(CAST(JSON_UNQUOTE(JSON_EXTRACT(o.shipping_costs, '$.totalPrice')) AS DECIMAL(20,2)), 0)
), 2) AS gmv
FROM `order` o
LEFT JOIN state_machine_state s ON o.state_id = s.id
WHERE
s.technical_name = 'completed'
AND o.order_date BETWEEN '2024-01-01' AND '2024-12-31';
Der Frosh-Wert ist gut als Referenz oder zur internen Auswertung geeignet, aber zur rechtlich sauberen Meldung an Shopware sollte man den ungefilterten GMV netto inkl. Versand laut AGB verwenden.
Woher hast du diese Information? Ich glaube, ich habe von Storno noch nie etwas gelesen.
Auch das habe ich noch nirgends gelesen. Das widerspricht ggf. auch deiner Storno Aussage.
Wenn du es ganz genau wissen möchtest, schaue am besten in den Quelltext des GMV Reporting Plugins. Dann siehst du die „Formel“, die Shopware nutzt.
Hallo
die Info zur Berechnung stammt direkt aus der offiziellen Fair Usage Policy von Shopware:
Fair Usage Policy – Shopware
und konkret aus AGB §2.9.
Dort steht u. a.:
Rücksendungen sind enthalten (reduzieren den GMV nicht);
Rabatte werden berücksichtigt (reduzieren den GMV);
Steuern werden nicht berücksichtigt (Berechnung mit Nettowerten); und
Versandkosten sind enthalten.
Was den Hinweis mit dem Quelltext des GMV-Plugins betrifft:
Der Code ist meines Wissens nicht öffentlich (also z. B. nicht auf GitHub oder Packagist).
Man kann ihn nur einsehen, wenn man das Plugin vorher über den Store oder Composer installiert.
Falls es einen alternativen Weg gibt, ihn ohne Installation zu analysieren, wäre ich für den Hinweis dankbar.
Viele Grüße
Von Stornierungen sehe ich in dem kopierten Text nichts.
Ja, du kommst nur über account.shopware.com (als ZIP) oder den Store an das Plugin heran. Solang du es nicht aktivierst, werden auch keine Daten übermittelt. Herunterladen wäre in deinem Fall also bedenkenlos möglich.
Die Info zu Rücksendungen stammt direkt aus den AGB §2.9:
„Rücksendungen sind enthalten (reduzieren den GMV nicht)“
„Rabatte werden berücksichtigt (reduzieren den GMV)“
„Steuern werden nicht berücksichtigt (Berechnung mit Nettowerten)“
„Versandkosten sind enthalten“
Stornos fallen aus meiner Sicht logisch unter „Rücksendungen“, weil sie den Umsatz rückwirkend betreffen – laut AGB bleiben sie im GMV enthalten.
Zum offiziellen GMV-Plugin:
Ich habe es in einem Testshop ausprobiert – schon beim Installieren (ohne Aktivierung) wird versucht, den Shop bei Shopware zu registrieren. Ohne Store-Token erscheint:
Could not sign payload with store secret
Die ZIP enthält nur eine manifest.xml
mit externen Webhooks. Es ist eine App, kein klassisches Plugin – der eigentliche Code liegt bei Shopware. Ein Einblick in die Logik ist also nicht möglich.
Storno ist für mich vor dem Versand. Aber das ist wieder so ein Punkt, den Shopware einfach nicht sauber geregelt/definiert hat 
Oh, okay ich habe selbst noch nie in das Plugin/die App geschaut. Danke für die Info.
Danke dir.
Ich finde es ehrlich gesagt ziemlich frustrierend, dass ich versuche, den GMV korrekt nach AGB §2.9 zu berechnen – aber nirgendwo wird offiziell oder nachvollziehbar erklärt, wie genau das passieren soll.
Das Areanet-Plugin ist nett gemacht, aber es weicht in mehreren Punkten von der Shopware-Definition ab.
Ich verstehe wirklich nicht, warum Shopware nicht einfach eine offizielle SQL-Abfrage oder API-Beschreibung für die Meldung bereitstellt – insbesondere wenn die Meldung verpflichtend ist und bei Verstoß Einschränkungen drohen.
Vielleicht hast du ja die Möglichkeit, bei Shopware intern mal nachzuhaken?
Gerade weil das GMV-Reporting jetzt verpflichtend ist, wäre es wirklich hilfreich, wenn Shopware eine offizielle Referenzabfrage oder Spezifikation bereitstellen würde – am besten direkt auf einer Hilfeseite oder im Developer Doku-Bereich.
Denn aktuell bleibt nur Reverse Engineering – und selbst dann bleiben Fragen offen.
1 „Gefällt mir“
Ich habe schon mehrmals nachgefragt, da ich selbst bzw. Kunden von mir ebenfalls betroffen sind. Es ist nicht geplant, eine SQL Query zu veröffentlichen.
Unabhängig davon, ich verstehe dein Bestreben absolut. Am Ende kommt es aber darauf an, ob du die Schwelle erreichst oder nicht. Und angenommen du bist 100T Euro davon entfernt, dann machen die 2% Ungenauigkeit (exemplarisch gewählter Wert für Berechnungsfehler) auch nichts aus.
Du handelst absolut nach besten Wissen und Gewissen. Das muss meiner persönlichen Meinung nach reichen.
Danke dir.
Ich finde es schade, dass es trotz verpflichtender GMV-Meldung keine offizielle SQL-Definition von Shopware gibt, obwohl in §2.9 der AGB eigentlich klar geregelt ist, was einfließen soll:
- Netto-Warenwert (ohne Steuern)
- Versandkosten sind enthalten
- Rabatte reduzieren den GMV
- Rücksendungen/Stornos werden nicht abgezogen
Für alle, die den Wert manuell berechnen möchten (ohne Plugin und ohne Datenübertragung), hier die Abfrage, die nach aktuellem Stand der offiziellen Definition am nächsten kommt:
SELECT
ROUND(SUM(
o.amount_net +
IFNULL(CAST(JSON_UNQUOTE(JSON_EXTRACT(o.shipping_costs, '$.totalPrice')) AS DECIMAL(20,2)), 0)
), 2) AS gmv
FROM `order` o
LEFT JOIN state_machine_state s ON o.state_id = s.id
WHERE
s.technical_name = 'completed'
AND o.order_date BETWEEN '2024-01-01' AND '2024-12-31'
AND o.id NOT IN (
SELECT order_id FROM `order_transaction`
WHERE state_id IN (
SELECT id FROM state_machine_state
WHERE technical_name IN ('cancelled', 'refunded', 'partially_refunded')
)
);
Vielleicht hilft das ja auch anderen, die den GMV korrekt melden möchten – ohne zusätzliche Tools.
In $order->getAmountNet() sollten die Versandkosten enthalten sein, wenn ich mich nicht irre (nicht nachgesehen).
Die Tabelle scheint mir KI generiert zu sein und inhaltlich ziemlich weit ab der Tatsachen. Wenn dem so ist, bitte korrigiere die Tabelle oder lösche sie. Dank dir.
Danke dir für die Rückmeldung.
Zur Tabelle: Die war als vereinfachte Visualisierung gedacht, nicht als technische Abbildung des Codes. Dass die Versandkosten bei getAmountNet()
enthalten sind, hatte ich nicht mehr sicher im Kopf – danke für den Hinweis. Ich habe die Tabelle entfernt.
Die Aussage von Benjamin_Hummel finde ich ehrlich gesagt überraschend. Shopware verpflichtet zur GMV-Meldung – bietet aber keine offizielle SQL-Abfrage oder dokumentierte Berechnungsgrundlage an, wenn man datenschutzbedingt keine externe App installieren möchte?
Ich habe die Werte jetzt nach bestem Wissen und Gewissen per SQL ermittelt – basierend auf §2.9 der AGB und der FUP. Aber gerade wenn man alles korrekt machen will, wäre eine dokumentierte Referenz oder wenigstens ein Beispiel-Query extrem hilfreich gewesen.
Die Berechnungslogik existiert ja intern – sei es in der App oder im offiziellen Plugin. Warum stellt man das nicht einfach offen bereit?
2 „Gefällt mir“
Naja, das „warum“ hat der Benjamin bereits erklärt. Hier wird es wohl (zeitnah) keine offiziellen Infos geben.
Viele Grüße
Danke für die Rückmeldungen.
Ich finde es ehrlich gesagt erstaunlich, dass
- ein Meldezwang besteht,
- bei Nichterfüllung Konsequenzen drohen,
- die Datenübermittlung ausdrücklich auch manuell erlaubt ist –
- aber keinerlei offizielle Anleitung zur Berechnung angeboten wird.
Das genannte Argument, dass „jede Datenbank anders ist“, halte ich in diesem Fall für vorgeschoben: Wer auf Basis der eigenen Plattform die Meldung verlangt, sollte auch eine Referenz-Abfrage für ein Standard-Setup bereitstellen können.
Gerade wenn man den GMV nach bestem Wissen und Gewissen korrekt ermitteln möchte, wäre eine dokumentierte SQL-Abfrage oder ein technischer Leitfaden wirklich hilfreich gewesen.
2 „Gefällt mir“
Gerade wenn man den GMV nach bestem Wissen und Gewissen korrekt ermitteln möchte , wäre eine dokumentierte SQL-Abfrage oder ein technischer Leitfaden wirklich hilfreich gewesen.
Ja, das mag ich sogar auch so sehen - aber der Benjamin hat erklärt, warum es das nicht gibt, unabhängig davon, ob wir damit einverstanden sind oder nicht. Entweder du nutzt das GMV Plugin oder du kümmerst dich selber um eine Auswertung.
Viele Grüße
Das Frosh GMV Viewer Plugin gibt bei uns in einem Test für „Letztes Jahr“ einen falschen Wert an.
Addiert man manuell die in der Grafik darunter angegebenen Werte für die verbleibenden Monate vom letzten Jahr (August bis Dezember), kommt man genau auf diesen Wert.
Unter der Bezeichnung „Letztes Jahr“ würde ich persönlich ja das letzte Kalenderjahr verstehen. So bringt das Plugin zumindest für die verpflichtende Meldung nichts.
Das GMV Plugin von AREA-NET gibt jedoch einen plausiblen Wert für das letzte Jahr aus.
1 „Gefällt mir“
Das ist nicht korrekt – würde ich zumindest sagen, siehe AGB:
Alternativ ist die Nutzung der Community Edition gemäß Ziff. 21 ff. (Teil 2 dieser AGB) ausreichend, wenn der GMV der zum shopware Account gehörenden Shops einen Betrag von eine Million Euro je Vertragsjahr (gemäß der GMV-Definition berechnet auf Nettobasis) nicht übersteigt; das erste Vertragsjahr beginnt mit der Registrierung des shopware Accounts.