Phoca Cart sendet laufend Mails

Phoca Cart - complex e-commerce extension
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Phoca Cart sendet laufend Mails

Post by p.luks »

Hallo zusammen,

ich hatte meine Seite auf J4 umgestellt und Phocacart auf 4.0.7

Heute kam nach der Umstellung die erste Bestellung mit Paypal (Standard). Kurz Nach der Bestellung haben wir (Kunde und ich) alle 2 Minuten eine E-Mail bekommen, dass die Bestellung abgeschlossen / vollendet ist. Der Anzahl der Mails hat sich mittlerweile verlangsamt, aber es werden immer noch E-Mails versendet.

Woran kann das liegen?
Wo kann ich noch schauen oder etwas einstellen, damit nach Vollendet keine E-Mails mehr versendet werden?

Hier ein Auszug der letzten Mails aus dem Log
Image
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Wenn ich die Logs richtig lese, dann scheint das wohl von Paypal zu kommen. Was mir aufgefallen ist, dass es noch keinen Success Eintrag gibt. Der kam sonst immer als letztes.

Bisher gab es pro Bestellung 3 Einträge im Log:
1. SENDING FORM TO PAYPAL
2. Order Status Change
3. SUCCESS

Bei dieser Bestellung fehlt der 3. Eintrag (SUCCESS). Dafür kommt öfter der 2. Eintrag (Order Status Change). Aber jetzt nicht mehr so häufig wie am Anfang.
User avatar
Benno
Phoca Hero
Phoca Hero
Posts: 9437
Joined: 04 Dec 2008, 11:58
Location: Germany
Contact:

Re: Phoca Cart sendet laufend Mails

Post by Benno »

Hi Peer,
sowas, oder zumindest etwas sehr ähnliches gabs schon mal: viewtopic.php?t=64802
Vielleicht kannst Du damit was anfangen....

Freundliche Grüße,
Benno
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Hallo Benno,

ja das sieht nach dem gleichen Problem aus. Heute Nacht ist noch einmal eine Mail gekommen. Wenn ich in meinem Paypal Account nachsehe, dann sehe ich die Transaktion und dort ist sie abgeschlossen.

Ich hoffe nur, dass das einmalig war. :)
Da ich gerade auf J4 und 4.0.7 umgestellt habe, hätte es auch daran liegen können.
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Gestern Mittag und heute Mittag zur gleichen Zeit ist jeweils wieder eine E-Mail versendet worden.

Ich habe mir auch nochmal das Plugin angeschaut und stehe hier vor einem kleinen Rätsel: In der Funktion "onPCPbeforeCheckPayment" läuft es bis zur Zeile 581 durch und es wird auch jedesmal in die history geschrieben (PhocacartOrderStatus::setHistory)

Der danach folgende Logeintrag findet dagegen nicht statt. Ich konnte daran aber keinen Fehler finden.

Code: Select all

// Add log
$msg = 'Order Id: '. $id . " \n"
. 'Txn Id: '.$txnId. " \n"
. 'Message: Payment successfully made'. " \n"
//. 'POST: '.$val. " \n"
. 'Report: '.$listener->getTextReport();
PhocacartLog::add(1, 'Payment - PayPal Standard - SUCCESS', (int)$id, $msg);
exit(0);
User avatar
Jan
Phoca Hero
Phoca Hero
Posts: 48402
Joined: 10 Nov 2007, 18:23
Location: Czech Republic
Contact:

Re: Phoca Cart sendet laufend Mails

Post by Jan »

Hallo, die einzige Möglichkeit, warum es nicht zu Log kommt, ist, dass drinnen:

Code: Select all

PhocacartOrderStatus::setHistory((int)$id, (int)$statusOption, (int)$notify, $comment);
z.B. Fatal Error passiert und Skript wird gestoppt. Da sollte man da aber Error z.B. in error log sehen.

Du kannst es aber auch testen, ähnliches Log before diese Zeile geben:
z.B.

Code: Select all

// Add log
$msg = 'Order Id: '. $id . " \n"
. 'Txn Id: '.$txnId. " \n"
. 'Message: Payment successfully made (information before sending an email) '. " \n"
//. 'POST: '.$val. " \n"
. 'Report: '.$listener->getTextReport();
PhocacartLog::add(1, 'Payment - PayPal Standard - SUCCESS', (int)$id, $msg);
Ja, da sagt, dass Skript dort OK ist und stoppt nach der setHistory Funktion, dann muss man aber in Error Log finden, was da passiert ist :idea:

Du kannst z.B. auch Log in setHistory Funktion geben, z.B. SQL zu bekommen:

PhocacartLog::add(1, 'Payment - setHistoryDebug', (int)$id, $query);[/code]
vor:
$db->setQuery($query);
in Funktion setHIstory (administrator/components/com_phocacart/libraries/phocacart/order/status.php, Zeile cca 1162)

Das zeigt SQL und du kannst es dann z.B. in phpMyAdmin testen, ob so ein SQL OK ist :idea:

Jan
If you find Phoca extensions useful, please support the project
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Hallo Jan,

vielen Dank für die Tips. Ich habe das Joomla LOG aktiviert und werde morgen nachsehen, wenn wieder etwas kommt. Leider hatte ich das auf der Live-Seite deaktiviert.

Zusätzlich habe ich das PhocacartLog wie beschrieben in setHistory hinzugefügt. Ich glaube aber nicht, dass es einen Fehler gibt. Der Eintrag erfolgt, wie zuvor auch. Wir werden aber sehen. :)

Eine Kopie der aktuellen Seite habe ich auch zum testen in einer Sub-Domain angelegt und Sandkasten-Modus aktiviert. Morgen werde ich mal eine Test-Bestellung durchführen.
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Ich kann das auf meiner Test-Seite reproduzieren. Ich muss hier jetzt nur noch die Logs auswerten, um den Fehler zu identifizieren.
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Der Query in der "setHistory" sieht OK aus.

Code: Select all

 INSERT INTO #__phocacart_order_history
 (
	order_id, 
	order_status_id, 
	notify, 
	comment, 
	date, 
	user_id
 )
 VALUES 
 (
	68, 
	6, 
	1, 
	'Auftragsstatus wurde durch Zahlungsdienstleister geändert(Paypal Standard)\nInformation\nZahlungs-ID: xxx\nZahlungsbetrag: 19.99\nZahlungsgebühr: 0.73\nZahlungsstatus: Completed',
	'2023-08-15 20:16:16',
	0
 )
Das Log von Joomla (everything.php) gab einen Fehler aus:

Code: Select all

2023-08-15T20:16:17+00:00	CRITICAL 173.0.80.117	error	Uncaught Throwable of type Joomla\Database\Exception\ExecutionFailureException thrown with message "Incorrect string value: '\xFCr Zah...' for column `d03dd6e4`.`cms_phocacart_logs`.`description` at row 1". 
Stack trace: 
#0 [ROOT]/libraries/vendor/joomla/database/src/DatabaseDriver.php(675): Joomla\Database\Mysqli\MysqliStatement->execute()
#1 [ROOT]/administrator/components/com_phocacart/libraries/phocacart/log/log.php(100): Joomla\Database\DatabaseDriver->execute()
#2 [ROOT]/plugins/pcp/paypal_standard/paypal_standard.php(589): PhocacartLog::add(1, 'Payment - PayPa...', 68, 'Order Id: 68 \nT...')
#3 [ROOT]/libraries/src/Plugin/CMSPlugin.php(284): plgPCPPaypal_Standard->onPCPbeforeCheckPayment(2, Array)
#4 [ROOT]/libraries/vendor/joomla/event/src/Dispatcher.php(486): Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}(Object(Joomla\Event\Event))
#5 [ROOT]/libraries/src/Application/EventAware.php(111): Joomla\Event\Dispatcher->dispatch('onPCPbeforeChec...', Object(Joomla\Event\Event))
#6 [ROOT]/components/com_phocacart/controllers/response.php(97): Joomla\CMS\Application\WebApplication->triggerEvent('onPCPbeforeChec...', Array)
#7 [ROOT]/libraries/src/MVC/Controller/BaseController.php(678): PhocaCartControllerResponse->paymentnotify()
#8 [ROOT]/components/com_phocacart/phocacart.php(16): Joomla\CMS\MVC\Controller\BaseController->execute('paymentnotify')
In der error.php stand nur dieses:

Code: Select all

#Fields: datetime	priority clientip	category	message
2023-08-15T19:45:26+00:00	INFO 77.3.142.44	joomlacanceled	
Ich habe jetzt in der "administrator/components/com_phocacart/libraries/phocacart/log/log.php" ein Error-Log von Joomla vor db->execute() hinzugefügt:
Log::add(print_r($query, true), LOG::INFO, 'com_phocacart');

Mal schauen, wann da was kommt.
p.luks
Phoca Member
Phoca Member
Posts: 48
Joined: 19 Jan 2020, 20:51

Re: Phoca Cart sendet laufend Mails

Post by p.luks »

Update:
Über das "Log::add(print_r($query, true), LOG::INFO, 'com_phocacart');" habe ich jetzt den "INSERT INTO" bekommen. Das habe ich geprüft uns sieht gut aus.

Direkt in der Datenbank kopiert, konnte ich den Befehl ausführen. Ich weiß nicht, warum das dann Fehler erzeugt und abbricht.

Ich habe das Log in der Konfiguration von PhocaCart auf "Nur Fehler" geändert und dann kann ich die Bestellungen ausführen ohne dieser Fehler. Das werde ich vorläufig in der Live-Seite machen.

----
Ich habe mir die DB-Tabellen angesehen und festgestellt, dass die von PhocaCart alle "utf8mb3_general_ci" kodiert sind, ebenso auch einige Felder. Jetzt habe ich gelesen, dass es damit zusammenhängen kann, wenn diese nicht "utf8mb4_general_ci" sind. Das Installations-Skript gibt "utf8mb4_general_ci" und "utf8mb4" an.

Sollte ich das danach ma ändern?
Ist da etwas bekannt?
Post Reply