Fehler wg. mangelhafter Rechnungsnummer

  • Hallo,
    ich werkle mit VirtueMart 4.4.4 11101 und Joomla 4.4.10.
    Der Fehler ist letzte Woche auch schon einmal aufgetreten und nach dem Update auf VirtueMart 4.4.4 11101 wieder verschwunden.

    In der Bestellung gibt es normal eine Bestellnummer und eine Rechnungsnummer.
    Bei diesen Bestellungen fehlt die Rechnungsnummer, Status ist "in Bearbeitung",
    Name und Email des Bestellers wird nicht angezeigt.

    Wenn ich die Bestellung durch Klick auf die Bestellnummer öffnen will, erhalte ich die Fehlermeldung
    Attempt to assign property "invoiceNumbers" on null und einen Link zum Dashboard.
    Versuche ich "Drucken", kommt Attempt to assign property "order_total" on null.
    Seltsamerweise hat bei einer Bestellung die Bezahlung per PayPal trotzdem geklappt, so dass ich den Kunden per Email kontaktieren kann.
    Der Andere ist wohl weg.
    In der Datenbank sind unter _virtuemart_order alle Einträge vorhanden.
    In _virtuemart_order_items sind die bestellten Artikel.
    In _virtuemart_order_userinfos und _virtuemart_invoices gibt es KEINE Datensätze zu der Order.

    In Automatic Numbers steht:


    This product is not registered. Please provide your registration number to validate your license.

    The installation of this extension is only licensed when properly registered at extensions.virtuemart.net.

    Registration of the product is necessary for getting support and removes also this message


    The registration number is provided within your order a line below the download link
    (Die Nummer ist eingetragen)

    View my orders at extensions.virtuemart.net


    Klicke ich darauf, komme ich zu meiner ursprünglichen Mitgliedschaft,
    die ich aber da immer noch nicht verlängern kann.
    Langsam nervt das echt.

    Frohes Schaffen
    HaeF

  • Hallo HaeF,


    ich verstehe Dein Problem nicht. Beim Status "in Bearbeitung" wird doch gar keine Rechnung erstellt. Der Status "in Bearbeitung" sagt lediglich aus, dass ein Kunde etwas in den Warenkorb gelegt hat.


    Erst wenn der Kunde auf "Kaufen" klickt, folgt automatisch der Status "U", "Vom Kunden bestätigt", und es wird eine Rechnung mit einer Rechnungsnummer erstellt. Somit kann im Satus "in Bearbeitung" auch keine Rechnungsnummer in deiner Bestellübersicht erzeugt werden.


    Es stimmt, dass wenn ein Kunde den Kauf abbricht, bleibt der Status "in Bearbeitung", und es ist verständlich, dass keine Rechnung erstellt wird. So sollte es auch sein.

  • Servus,


    Zur Zeile:

    - Bei diesen Bestellungen fehlt die Rechnungsnummer, Status ist "in Bearbeitung" -

    (Hiermit kann das alles zusammenhängen.)


    Status P "In Bearbeitung/Pending" ist nur für einen bestimmten Zweck/Zeitraum gedacht.


    --

    Nach:

    -> Der Kunden hat den Kaufen-Button gedrückt.

    Bis:

    -> Das Payment-Plugin gibt einen neuen Status zurück.

    --


    Es gibt im Grunde nur zwei EDIT: drei Szenarien, in denen Status P in der Bestellliste sichtbar sein sollte.


    1. Der Kunde ist gerade dabei, die Bestellung abzuschließen,

    - Hat den Kaufen-Button geklickt.

    - Ist noch beim Zahlungsprovider, z. Bsp. Paypal, und von dort gibt es noch keine Rückmeldung.


    2. Der Kunde hat den Kauf nach dem Klick auf Kaufen durch Schließen des Browser-Fensters beendet.

    - Der Zahlungsprovider schickt in diesem Fall keine Rückmeldung. Z. Bsp. Bestätigt, Abgelehnt, usw.

    -> Der Status "bleibt auf P hängen".


    EDIT:

    3. Die Rückmeldung einer erfolgreichen Zahlung an den Shop ist trotz erfolgreicher Bezahlung nicht vom Zahlungsprovider an den Shop mitgeteilt worden.

    Z. Bsp. weil eine IPN nicht erfolgreich beim Shop angekommen ist.


    Mir ist bewusst, dass dieser Status P sehr oft anders verwendet wird. Mir wäre auch lieber, wenn er anders heißen würde.

    Z. Bsp.: "Kaufen-Button gedrückt, warte auf Zahlungsplugin". Dann würde es nie wieder Missverständnisse geben.


    Wenn der Status P "In Bearbeitung/Pending" aktuell in einer anderen Form verwendet wird, kann ich nur raten, das umzustellen.

    Ich habe oft gesehen, dass die Einstellungen so sind, dass Status P von einem Zahlungsplugin als Status nach erfolgreicher Bezahlung aufgerufen wird.

    Das ist so nicht gedacht, und deshalb gibt es auch keine Mails an den Käufer oder eine Rechnungsnummer. Status P erzeugt keine Rechnungen, damit auch keine Rechnungsnummer und nur E-Mails an den Verkäufer, wenn das so gewünscht ist (VM Konfig).


    Die Standardstatus, die ein Zahlungsplugin nach erfolgreicher Bestellung ausgibt, sind Status U und Status C.

    Status U - Vom Kunden bestätigt / Confirmed by Shopper.

    Status C - Bestätigt / Confirmed.


    Wenn einem die Namen nicht gefallen, kann man diese umbenennen.


    Oder eigene neue Status anlegen. Das ist oft sinnvoll, vor allem, wenn man unterschiedliche Zahlungsplugins vewendet.

    (Ich habe Kunden mit ca. 20 Status für alle möglichen Fälle, spezifische Rückmeldung für Paypal, für Stripe, Zahlungserinnerungen usw.)


    Soviel zur Zeile 5. Ich muss jetzt erst einmal Kaffee trinken.


    STS

  • Hallo STS,
    danke für die Bemühungen.
    Da seit dem letzten Auftreten des Fehlers und jetzt einige zig Bestellungen
    problemlos funktioniert haben sollte es nicht an einer falschen Einstellung liegen.
    Könnte PayPal der Verursacher sein?
    Wir verwenden noch "PayPal Starter", weil die erweiterte Ausführung Probleme gemacht hatte.
    Gruß
    HaeF


    PS.
    Die Email - Benachrichtigung über geringen Lagerbestand ist trotzdem eingegangen. :/

  • richtig, die Bestellung wird bei "in Bearbeitung" abgebrochen.
    Aber nicht vom Kunden.
    Wie könnte er sonst per PayPal bezahlen?

    Wenn PayPal als Zahlungsvariante gewählt wird, wird der Kunde beim Kaufvorgang zu PayPal weitergeleitet. Sollte PayPal den Abschluss nicht Verifizieren, kann das an den PayPal Einstellungen im Plugin liegen.

    Dazu auch mal in die VM Errorlog schauen. Dort werden eigentlich alle Fehler aufgelistet, wenn man diese nicht deaktiviert hat.

  • Paypal schickt nach den Kaufvorgängen IPN-Nachrichten. Diese können schon einmal spät kommen oder überhaupt nicht.

    Schau mal bei Paypal selbst im Kundenbereich, da gibt es irgendwo eine Aufstellung der verschickten IPNs, wenn ich mich nicht irre.


    Das neue Paypal arbeitet nicht mehr mit IPNs, das kommuniziert auf direkterem Wege, deshalb gibt es da keine mir bekannten Probleme.


    Grüße

    Stefan

  • Ich habe wie vorgeschlagen Errorlog ausgelesen.
    Erkenntnisse:
    Beide Fehler wurden von einem Besteller ausgelöst.
    Im Log steht die Adresse, also kann ich Kontakt aufnehmen.
    Kann der Fehler von einer Fehlbedienung kommen, die nicht abgefangen wird?
    ----------------------------------


    2025-01-20 21:30:23 ERROR vmError: vmTable store insertObject #__virtuemart_order_userinfos Incorrect string value: '\xF0\x9F\x8C\xB6' for column `dbs1xxx2008`.`alles_virtuemart_order_userinfos`.`customer_note` at row 1 INSERT INTO `alles_virtuemart_order_userinfos`

    (`virtuemart_order_id`,`virtuemart_user_id`,`address_type`,`last_name`,`first_name`,`phone_2`,`address_1`,`city`,`virtuemart_state_id`,`virtuemart_country_id`,`zip`,`email`,`agreed`,`tos`,`customer_note`,`locked_by`,`AGB`,`created_on`,`created_by`) VALUES

    ('2267','0','BT','Ngxxzi','Gexxxose','017000063264','Kxrwxxxelstraße x4','Eortrg','0','81','8xxx60','gnxxxzi@xmail.com','0','0','🌶','0','1','2025-01-20 21:30:23','0')<pre>#0 xxx/htdocs/t4/administrator/components/com_virtuemart/helpers/vmtable.php(1349): vmError()

    #1 xxx/htdocs/t4/administrator/components/com_virtuemart/helpers/vmtable.php(2034): VmTable->store()

    #2 xxx/htdocs/t4/administrator/components/com_virtuemart/helpers/vmtable.php(1969): VmTable->bindChecknStoreNoLang()

    #3 xxx/htdocs/t4/administrator/components/com_virtuemart/models/orders.php(1989): VmTable->bindChecknStore()

    #4 xxx/htdocs/t4/administrator/components/com_virtuemart/models/orders.php(1715): VirtueMartModelOrders->_writeUserInfo()

    #5 xxx/htdocs/t4/components/com_virtuemart/helpers/cart.php(1934): VirtueMartModelOrders->createOrderFromCart()

    #6 xxx/htdocs/t4/components/com_virtuemart/helpers/cart.php(1627): VirtueMartCart->confirmedOrder()

    -------------------------------
    ChatGPT hilft.
    string value: '\xF0\x9F\x98\x8A'
    ist ein Emoji.
    Muss man das jetzt ausfiltern?
    Ideen haben die Leute.
    Bei dem Fehler vor Wochen war es der gleiche Grund.

  • Hab ich mal an Milbo weitergegeben.


    Emoji in Customer Note sollte schon irgendwie funktioneren. Keine Ahnung, was da für ein Typ oder welche Kodierung da im Moment verwendet wird.


    STS


    PS. Wenn ich das jetzt richtig verstanden habe, sind die Bestelldaten in der Datenbank dann Fritze, und deshalb fehlen dann auch die ganzen Werte, über die das System oben gemeckert hat.
    Frag mich, was das für ein Smily war, sicher kein fröhlich Lächelndes, eher so ein Ding mit Hörnern.

  • Hallo HaeFB,


    auf ChatGPT würde ich mich bei diesem Problem nicht verlassen. Die Algorithmen sind hierbei je nach "Programmierung 8o" zu unterschiedlich.


    Wenn Du Kontakt zum Kunden aufnehmen kannst, würde ich das Tun. Auch ich habe ab und an mal eine Bestellung die hängenbleibt. ich habe darauf hin tatsächlich den Kunden kontaktiert und bekam unterschiedliche Antworten.


    - "Ja Sorry ich hatte mein PayPal Passwort nicht zur Hand und habe dann einfach den Browser zu gemacht".

    - "Sorry, hatte bemerkt dass ich kein PayPal-Guthaben hatte und bin dann einfach raus"


    um nur zwei Gründe zu nennen. Zumindest kann Dir der Kunde sagen, wo es bei ihm hinkte.

  • Wenn Du Kontakt zum Kunden aufnehmen kannst, würde ich das Tun.


    Man kann sich auch einen Bestellstatus dazu bauen.

    Z. Bsp. Status PAF "Paypal Abbruch Frage".
    Dann kann man einen eigenen E-Mail-Text dazu anlegen und wenn man solche Mails rausschicken möchte, ändert man einfach den Status, und schon geht die Mail raus, ohne dass man sonst etwas machen muss. Arbeitszeit, wenn man sowieso in der Bestellliste ist: 5 Sekunden.


    Wenn man öfter abgebrochene Bestellungen hat, kann das viel Zeit sparen und den ein oder anderen Kunden zurückholen.


    STS

  • Man kann sich auch einen Bestellstatus dazu bauen.

    Z. Bsp. Status PAF "Paypal Abbruch Frage".
    Dann kann man einen eigenen E-Mail-Text dazu anlegen und wenn man solche Mails rausschicken möchte, ändert man einfach den Status, und schon geht die Mail raus, ohne dass man sonst etwas machen muss. Arbeitszeit, wenn man sowieso in der Bestellliste ist: 5 Sekunden.

    Eine gute Idee! :)

  • Hallo Faro,
    Log sagt eindeutig, dass "Incorrect string value: '\xF0\x9F\x8C\xB6' " den Fehler verursacht.
    ChatGPT sagt nur:
    "Der String-Wert '\xF0\x9F\x98\x8A' repräsentiert ein Unicode-Zeichen in seiner UTF-8-codierten Form.
    Es handelt sich dabei um die Kodierung für das Emoji 😊 (ein lächelndes Gesicht)."

    Das glaub ich einfach mal.
    Also muss man entweder verhindern, dass jemand irgend ein oder gerade dieses Emoji in den Mitteilungstext eingibt
    oder Virtuemart sagen, dass es Emojis akzeptieren soll.
    Oder ich muss dem Kunden im Checkout sagen, dass er kein Emoji eingeben darf, weil ich das nicht in den Griff kriege.
    Danke und frohes Schaffen

    Zu der Antwort während ich dies schrub:
    Ich kann keine Mehl an jemand schicken dessen Adresse und Email zu speichern durch den Fehler verhindert wurde.

    Ich müsste sie jedes mal aus dem ErrorLog popeln.

  • Hallo HaeFB,


    ich habe es bei mir mal kurz getestet. In menem Feld "Anmerkungen und spezielle Wünsche" werden gar keine Emoji's angezeigt. Ich glaube, ich habe es vor vielen Jahren irgendwo deaktiviert weil ich denke, dass man soetwas nicht braucht.


    Ich würde es an deiner Stelle einfach deaktivieren. Schafft nur Probleme wie Du ja siehst. Leider weiß ich nicht aus dem Kopf, wo genau es deaktiviert wird. Ist wie schon gesagt, einfach zu lange her.


    P.S. ich glaube mich zu erinnern, dass dieses Problem vor vielen Jahren auch bei mir mal auftauchte. Ich glaube, desshalb habe ich es damals deaktiviert.

  • Als Paranoiker mache ich täglich 2 Backups. :)
    Ich habe den Shop Stand 5 Std. davor neu aufgesetzt.
    Funktioniert einwandfrei.
    Dann im Smartphone eine Bestellung mit Smiley in der
    Mitteilung aufgegeben und siehe da:
    "er ist wieder da, er ist wiiieder da!"
    Die abgemurkste Bestellung habe ich gelöscht und
    hoffe schwer dass nicht so schnell wieder Einer auf die dumme Idee kommt.

    Wenn ich an den Eröffnungspost denke finde ich schon lustig,
    auf welchen Umwegen man an einen Witz-Bug kommt.
    Weil eigentlich kein Mensch in der Bestellung eines Kunden einen Smiley braucht,
    auch wenn man gerne freundlich behandelt werden möchte. ^^

  • Haste deine Tabellen mit dem Tool auf utf8mb4 gezogen?


    Alle Tabellen stehen auf utf8mb4_unicode_ci.


    Das ist nicht das Gleiche.


    In den VM-Werkzeugen gibt es das von Milbo angesprochene Tool.

    Bitte benutzen und testen.


    STS

  • Wenn ich den Button "Virtuemart-Tabellen auf UTF8MB$ aktualisieren" drücke kommt ein Popupfenster mit der Meldung:
    "Aktualisiert die Kollation in VirtueMart-Tabellen von der alten utf8_general_ci auf utf8mb4_unicode_ci".
    Warum soll ich meine richtigen Tabellen nochmals bearbeiten?