Gutschein Fehler bei Eingabe SQL

Hallo,

seit 5.4.6 kommt dieser Fehler bei der Gutschein Eingabe im Frontend:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column ‘currencyFactor’ cannot be null in engine/Library/Zend/Db/Statement/Pdo.php on line 224

Wie kann ich das beheben?

Hi,

hm, beim Hinzufügen eines Gutscheins wird ja die Warenkorb-Tabelle geschrieben - an der Stelle könnte es als theoretisch passieren, dass diese Fehlermeldung geworfen wird, wenn das Shop-Objekt inkonsistent ist - also bspw. aus irgendwelchen Gründen kein Währungsfaktor für den Shop hinterlegt wurde.

Von daher würde ich erstmal empfehlen, in den Grundeinstellungen zu prüfen, ob die Währung für den Shop richtig hinterlegt ist und einen currencyFactor hat. Wundert mich halt nur, dass das Problem dann nur bei Gutscheinen auftritt - aber kannst ja erstmal schauen.

Besten Gruß

Daniel

Hallo Daniel,

gerade nachgesehen, hinterlegt ist EUR und Faktor 1, also eigentlich alles korrekt.

Hast du noch eine Idee wo ich ansetzen könnte?

Hier mal die ganze Meldung:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column ‘currencyFactor’ cannot be null in engine/Library/Zend/Db/Statement/Pdo.php on line 224

Stack trace:

 #0 engine/Library/Zend/Db/Statement.php(297): Zend\_Db\_Statement\_Pdo-\>\_execute(Array) #1 engine/Library/Zend/Db/Adapter/Abstract.php(470): Zend\_Db\_Statement-\>execute(Array) #2 engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(232): Zend\_Db\_Adapter\_Abstract-\>query('\n INSERT...', Array) #3 engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(96): Zend\_Db\_Adapter\_Pdo\_Abstract-\>query('\n INSERT...', Array) #4 engine/Shopware/Core/sBasket.php(827): Enlight\_Components\_Db\_Adapter\_Pdo\_Mysql-\>query('\n INSERT...', Array) #5 var/cache/production\_201807181357/proxies/sBasketProxy.php(7): sBasket-\>sAddVoucher('test', '') #6 engine/Library/Enlight/Hook/HookManager.php(186): Shopware\_Proxies\_sBasketProxy-\>executeParent('sAddVoucher', Array) #7 var/cache/production\_201807181357/proxies/sBasketProxy.php(23): Enlight\_Hook\_HookManager-\>executeHooks(Object(Shopware\_Proxies\_sBasketProxy), 'sAddVoucher', Object(Enlight\_Hook\_HookArgs)) #8 engine/Shopware/Controllers/Frontend/Checkout.php(596): Shopware\_Proxies\_sBasketProxy-\>sAddVoucher('test') #9 engine/Library/Enlight/Controller/Action.php(193): Shopware\_Controllers\_Frontend\_Checkout-\>addVoucherAction() #10 engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight\_Controller\_Action-\>dispatch('addVoucherActio...') #11 engine/Library/Enlight/Controller/Front.php(222): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #12 engine/Shopware/Kernel.php(215): Enlight\_Controller\_Front-\>dispatch() #13 vendor/symfony/http-kernel/HttpCache/HttpCache.php(486): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #15 vendor/symfony/http-kernel/HttpCache/HttpCache.php(253): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true) #16 vendor/symfony/http-kernel/HttpCache/HttpCache.php(270): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation\Request), true) #17 engine/Shopware/Components/HttpCache/AppCache.php(143): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>invalidate(Object(Symfony\Component\HttpFoundation\Request), true) #18 vendor/symfony/http-kernel/HttpCache/HttpCache.php(201): Shopware\Components\HttpCache\AppCache-\>invalidate(Object(Symfony\Component\HttpFoundation\Request), true) #19 engine/Shopware/Components/HttpCache/AppCache.php(116): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #20 shopware.php(122): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request)) #21 {main}

Der Wert „currencyFactor“ hängt doch mit dem Artikel im Warenkorb zusammen. Hat der vielleicht falsche Einstellungen? Ist das bei allen Artiklen so oder nur bei bestimmen?

Das ist egal welchen Artikel man in den Warenkorb legt und auch welchen Gutschein man einlöst.

Was soll man denn bei currenyFacor einstellen können? Da steht 1

Jo 1 sollte da auch stehen. War jetzt nur so eine Vermutung.

Hast du ein Plugin was etwas mit Gutscheinen macht?
Die Fehlermeldung liest sich so, als ob sich da ein Plugin einhakt.

Also istalliert sind diese Plugins:

Die hatte ich auch schon in Verdacht. Wenn ich beide Plugins deaktiviere, dann kommt der Fehler aber trotzdem.

Oder reicht es nicht, die Plugins zu deaktivieren?

Niemand eine Idee, wie ich das Problem lösen kann?

Kann ich vielleicht irgendwo in der DB nachsehen, ob etwas nicht simmt?

Oder die 2 Plugins mal testweise direkt deinstallieren.

Gerade getestet, aber auch das behebt den Fehler nicht :frowning:

Welche Datenbank Tabelle betrifft das denn? Vielleicht stimmt da ja ein Eintrag nicht mehr, warum auch immer.

Nach langem Hin und Her habe ich den Fehler gefunden!

Unser Findologic Plugin verursacht den Fehler warum auch immer.

Haben gerade erstmal den Support da angeschrieben!

Unser derzeitiger Stand ist, dass das Problem auf das Amazon Pay Plugin zurückzuführen war. Lösen ließ sich dieses Problem nur mit einem downgrade auf das Amazon Pay Plugin Version 8.0.1, auch aktuellere Versionen verursachen diesen Fehler.

LG Rihad

FINDOLOGIC Support

Hallo,

zwar mag der Fehler durch ein Downgrade nicht mehr auftreten, dennoch ist das natürlich keine Lösung, da die neueste Version von Amazon Pay stets installiert sein muss, um fortwährende Bestellungen zu gewährleisten. Somit kann man eigentlich nicht ohne Probleme downgraden. 

 

Gibt es denn schon eine dauerhafte Lösung des Problems?

 

Mit freundlichen Grüßen