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:

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:

Und siehe da, PrestaShop zeigt ab sofort das Gutscheinfeld wieder korrekt an: