Ist es möglich, den Grund dafür zu ermitteln, dass ein Gutscheincode ungültig ist? Wenn ich beispielsweise eine Warenkorbregel habe, die angibt, dass die Zwischensumme der Bestellung 100 US-Dollar oder mehr betragen muss und der Benutzer versucht, den Gutschein für eine Zwischensumme von nur 75 US-Dollar zu verwenden, kann ich eine Nachricht in Anlehnung an "Ihren Warenkorb" anzeigen muss 100 $ oder mehr sein "?
coupon
ce-1.5.1.0
Laura
quelle
quelle
Antworten:
Hier ist ein Ansatz, den ich gewählt habe, um eine bessere Fehlermeldung für zwei bestimmte Filter einzufügen: das von Datum und bis Datum.
Diese Filter sind ziemlich einfach im Vergleich zu den tatsächlichen Regelbedingungen wie Zwischensummen, wie Sie in Ihrer Frage erwähnt haben, aber ich denke, sie bieten immer noch eine signifikante Verbesserung der Benutzerfreundlichkeit mit einer ziemlich einfachen Implementierung.
Es gibt zwei ziemlich saubere Umschreibungen, die durchgeführt werden können, um dies zu erreichen.
Mage_SalesRule_Model_Resource_Rule_Collection :: addWebsiteGroupDateFilter
Überladen Sie die Methode addWebsiteGroupDateFilter, um zu verhindern, dass Regeln, die nicht mit dem Datumsfilter übereinstimmen, vollständig von den verarbeiteten Regeln ausgeschlossen werden.
Clean_Checkout_Model_SalesRule_Validator :: _ canProcessRule
Überladen Sie die Methode _canProcessRule, um die Daten zu überprüfen und der Sitzung eine bestimmte Fehlermeldung hinzuzufügen.
quelle
Nicht ohne Anpassung. Sie müssten Nachrichten schreiben, die mit all den verschiedenen Szenarien verknüpft sind, die die Promotion-Regeln ausführen könnten (keineswegs eine einfache Aufgabe). Das ist höchstwahrscheinlich der Grund, warum die Fehlermeldung ziemlich einfach ist.
Eine Vorschlagslösung für Magento-Entwickler. Sie können ein Textfeldbeschreibungsfeld in die Promotion-Einstellungen aufnehmen. Dies würde es dem Administrator ermöglichen, eine angepasste Nachricht einzuschließen, wenn die Werberegel fehlschlägt, anstatt eine grundlegende Nachricht "Gutscheincode ist ungültig" anzuzeigen. Dies wäre eine schnelle Lösung, anstatt programmgesteuert zu versuchen, eine bestimmte Fehlermeldung basierend auf einer Reihe von Regeln zuzuweisen.
quelle