Markus Michalski FAQ

Varianten-Preisaufschlag: Fehlerbehebung und FAQ

Fehlerbehebung für den Varianten-Preisaufschlag in Sylius: Preis ändert sich nicht, Fehler nach Update, Setup-Befehl bricht ab, fehlende Channel-Preise, bekannte Einschränkungen und FAQ.

English Version

Zurück zur Übersicht

Varianten-Preisaufschlag: Fehlerbehebung und FAQ

Der Preis ändert sich nicht

Symptom: Eine Variante mit Prozentsatz und Aufschlag zeigt weiter ihren eigenen Preis.

Prüfen:

  1. Ist Preisaufschläge aktivieren auf der Seite Preisaufschlag-Einstellungen eingeschaltet?
  2. Ist bei der Variante Aufschlag anwenden aktiv und die Variante nicht selbst als Basisvariante markiert? Prüfe auch den Abschnitt Einstellungen pro Verkaufskanal: Steht der betroffene Channel dort auf "Nein, für diesen Kanal", gibt es in diesem Channel keinen Aufschlag.
  3. Gibt es bei einer anderen Variante desselben Produkts eine Basisvariante? Ohne Basisvariante bleibt jeder Preis unverändert.
  4. Ist der Prozentsatz 100 und der feste Aufschlag 0? Dann ist das Ergebnis der Preis der Basisvariante, nicht der eigene Preis.
  5. Steht in der Übersicht der Aufschläge eine Zeile für die Variante? Eine Zeile entsteht nur, wenn Basisvariante oder Aufschlag anwenden beim Speichern aktiv war oder ein Channel eine eigene Einstellung trägt.
  6. Steht im Log ein Eintrag der Stufe error mit dem Text "Could not resolve variant price surcharge"? Dann ist beim Ermitteln des Aufschlags ein Fehler aufgetreten, etwa weil die Migrationen fehlen. Das Plugin liefert in dem Fall den eigenen Preis. Führe bin/console mmd:variant-price-surcharge:setup aus.

Nach einem Update liefern Varianten ihren eigenen Preis oder das Variantenformular meldet einen Fehler

Symptom: Nach composer update zeigen Varianten mit Aufschlag ihren eigenen Preis, und das Bearbeiten einer Variante im Admin wirft einen Fehler.

Lösung: Die Tabelle mmd_product_variant_price_surcharge_channel fehlt noch. Führe bin/console mmd:variant-price-surcharge:setup aus und leere den Cache.

Der Setup-Befehl bricht ab

Meldung Ursache und Lösung
"Migrations this plugin builds on are still open." Migrationen von Sylius sind noch offen. Führe bin/console doctrine:migrations:migrate aus und danach den Setup-Befehl erneut
"The migrations of this plugin are not registered with Doctrine." Das Bundle ist nicht aktiv, oder sylius_core.prepend_doctrine_migrations steht auf false. Prüfe config/bundles.php und diese Einstellung
"The migrations ran, but Doctrine does not list them as executed." Die Migrationen liefen, stehen aber nicht in doctrine_migration_versions. Prüfe die Datenbankverbindung und die Tabelle der Migrationen

Meldet der Befehl, die Route sei nicht importiert, und gibt einen YAML-Snippet aus, trage ihn wie unter Installation und Betrieb beschrieben ein. Der Befehl läuft in dem Fall trotzdem weiter.

Der Bereich "Preisaufschlag" fehlt im Variantenformular

Prüfen: Ist das Bundle in config/bundles.php registriert und der Cache geleert? Die Twig-Hooks registriert das Plugin selbst, sobald das Bundle geladen ist.

Der Menüpunkt fehlt oder die Seite liefert einen Fehler

Prüfen: Ist der Routen-Import @MmdSyliusVariantPriceSurchargePlugin/config/routes/admin.yaml vorhanden? Der Menüpunkt verweist auf die Route mmd_variant_price_surcharge_admin_settings.

Fehler wegen fehlender Channel-Konfiguration

Symptom: Eine Produktseite oder der Warenkorb meldet, dass für Variante und Channel kein Preis vorliegt.

Lösung: Hinterlege für die Aufschlagsvariante und für die Basisvariante je einen Preis im betroffenen Channel. Das Plugin fragt beide ab und fängt diesen Fehler absichtlich nicht ab.

Der feste Aufschlag eines Channels hat die falsche Währung

Das Feld Fester Aufschlag im globalen Bereich nimmt die Basiswährung des ersten Channels, bei einem Shop ganz ohne Channel USD. Der gespeicherte Wert ist ein Betrag in der kleinsten Einheit, der in jedem Channel ohne eigene Einstellung gleich gilt, egal welche Währung der Channel hat. Aus 100 wird in jedem solchen Channel also 1,00 der jeweiligen Währung, nicht ein umgerechneter Betrag. Für einen genauen Betrag in einer bestimmten Währung überschreibst du den festen Aufschlag in diesem Channel. Dort gibst du ihn in der Basiswährung des Channels ein.

Bekannte Einschränkungen

FAQ

Wirkt der Aufschlag auch auf andere Varianten, wenn ich die Basisvariante ändere? Ja. Der Preis wird bei jeder Berechnung neu aus dem aktuellen Preis der Basisvariante gebildet, es wird nichts zwischengespeichert.

Kann eine Variante mit Aufschlag selbst Basis für eine dritte sein? Nein. Die Basis ist immer die als Basisvariante markierte Variante, und deren Preis wird nie aufgeschlagen.

Was passiert, wenn ich die Basisvariante lösche? Ihre Aufschlagszeile wird mit ihr gelöscht. Danach hat das Produkt keine Basisvariante, und die übrigen Varianten behalten ihre eigenen Preise.

Kann ich einen Rabatt statt eines Aufschlags abbilden? Ja, mit einem Prozentsatz unter 100.

Kann ein Preis negativ werden? Nein, das Ergebnis wird auf ganze Cent gerundet und liegt mindestens bei 0.

Was gilt in einem Channel, für den ich nichts eingestellt habe? Die globalen Werte der Variante.

Werden personenbezogene Daten verarbeitet oder externe Dienste angefragt? Nein.