Bei PrestaShop kann es vorkommen, dass nach einem Update das Gutscheinfeld nicht mehr angezeigt wird. In diversen PrestaShop-Foren findet man Hinweise wie “Das Template wurde nicht aktualisiert”, “Fehler in /controllers/front/DiscountController.php”, “Fehler in /classes/Cart.php”, “Fehler in /classes/CartRule.php”. Das mag auf einige Versionen von PrestaShop zutreffen, doch zumindest für PrestaShop 1.6.1.10 und evtl. andere Versionen liegt die Ursache woanders.
Warum das Gutscheinfeld in PrestaShop nicht mehr funktioniert
Gutscheine werden in PrestaShop als sogenannte Warenkorb-Regeln (Cart Rules) verwaltet. Sieht man sich den PHP-Code der Datei /classes/CartRule.php genauer an, so stellt man fest, dass PrestaShop an diversen Stellen die Funktion isFeatureActive() aufruft um zu überprüfen, ob Warenkorbregeln generell erlaubt sind.
Die Funktion selbst macht nichts anderes als den Wert der Variablen PS_CARTRULE_FEATURE_ACTIVE aus der Konfigurationstabelle von PrestaShop zurück zu geben. Ist dieser Wert nicht True (oder 1), dann wird das Gutscheinfeld nicht angezeigt:
1 2 3 4 5 6 7 8 |
public static function isFeatureActive() { static $is_feature_active = null; if ($is_feature_active === null) { $is_feature_active = (bool)Configuration::get('PS_CART_RULE_FEATURE_ACTIVE'); } return $is_feature_active; } |
PrestaShop: Gutscheinfeld reparieren
Leider sucht man diese Option im Backend von PrestaShop vergebens. Schaut man z.B. über PHPMyAdmin in die Tabelle ps_configuration, hat diese Variable den Wert NULL. Anscheinend wurde diese Option für zukünftige PrestaShop-Versionen vorgesehen und ist nach einem Update undefiniert (NULL).
Mit der folgenden SQL-Abfrage lässt sich das Problem in der Konfigurationstabelle von PrestaShop korrigieren:
1 |
update ps_configuration set value=1 where name='PS_CART_RULE_FEATURE_ACTIVE'; |
Und siehe da, PrestaShop zeigt ab sofort das Gutscheinfeld wieder korrekt an:
Hallo Harald, hast Du eine Idee, warum ein Gutschein im Kundenkonto nicht angezeigt wird ?
Auf Anhieb leider nicht. Das Problem haben anscheinend noch mehr User – scheint ein Bug in PrestaShop zu sein. Vielleicht meldet sich jemand auf diesen Thread:
https://www.prestashop.com/forums/topic/650921-gutschein-erscheint-nicht-im-kundenkonto/