Fehler bei Aufruf "Shop" im Kontrollzentrum

  • Hallo,


    Joomla 3.10.11

    VM 4.0.12 10777

    PHP 8.023


    Bei Aufruf des "Shop" im VM Kontrollzentrum gibt es die Fehlermeldung


    Es ist ein Fehler aufgetreten!

    0 count(): Argument #1 ($value) must be of type Countable|array, null given


    Alle anderen Menüpunkte lassen sich aufrufen.
    Aufgerufen wird
    ./administrator/index.php?option=com_virtuemart&view=user&task=editshop


    Eine Idee wo ich suchen muss?


    Meldungen:


    .\administrator\components\com_virtuemart\views\user\view.html.php:177



    Call stack

    # Function Location

    1 () JROOT\administrator\components\com_virtuemart\views\user\view.html.php:177

    2 VirtuemartViewUser->display() JROOT\administrator\components\com_virtuemart\helpers\vmcontroller.php:121

    3 VmController->display() JROOT\administrator\components\com_virtuemart\helpers\vmcontroller.php:146

    4 VmController->edit() JROOT\administrator\components\com_virtuemart\controllers\user.php:53

    5 VirtuemartControllerUser->edit() JROOT\administrator\components\com_virtuemart\controllers\user.php:81

    6 VirtuemartControllerUser->editshop() JROOT\libraries\src\MVC\Controller\BaseController.php:702

    7 Joomla\CMS\MVC\Controller\BaseController->execute() JROOT\administrator\components\com_virtuemart\virtuemart.php:75

    8 require_once() JROOT\libraries\src\Component\ComponentHelper.php:402

    9 Joomla\CMS\Component\ComponentHelper::executeComponent() JROOT\libraries\src\Component\ComponentHelper.php:377

    10 Joomla\CMS\Component\ComponentHelper::renderComponent() JROOT\libraries\src\Application\AdministratorApplication.php:101

    11 Joomla\CMS\Application\AdministratorApplication->dispatch() JROOT\libraries\src\Application\AdministratorApplication.php:159

    12 Joomla\CMS\Application\AdministratorApplication->doExecute() JROOT\libraries\src\Application\CMSApplication.php:225

    13 Joomla\CMS\Application\CMSApplication->execute() JROOT\administrator\index.php:51


    Danke!



  • Zeile 177 ist:

    if (count($orderList) > 0 || !empty($userDetails->user_is_vendor)) {

    weiter oben:

    if (!$_new) {

    // Check for existing orders for this user

    $orders = VmModel::getModel('orders');

    $orderList = $orders->getOrdersList($userDetails->JUser->get('id'), true);

    } else {

    $orderList = null;

    }


    Ist das ein neuer Shop ohne Bestellungen?

    Sieht mir aus, dass $orderlist = null ist und null nicht countable ist.


    $orderList = null;
    ->
    $orderList = array();


    STS

    PS. Ohne Smily-Umschreibung wäre das oben ein OR, aber Foren heutzutage, zzzz.

  • Hallo Stefan.

    Ich habe das alte Template, im neuen ist der Fehler auch da,


    Es ist ein total neuer Shop in den die auf VM 4 aktualisierten VM-Daten
    des produktiven (veralteten) Shops per SQL eingespielt wurden.

    Einige Anpassungen sind erfolgt, wenn er funktioniert, geht er produktiv.

    Ich versuche jetzt die Superuser aus dem Produktivshop zu übertragen, könnte vielleicht daran liegen.
    ?!?

    Grüßle

  • Nu, die Lösung is ausm Devchat, allerdings hat der Stefan die Frage so klar eingegrenzt, daß ich praktisch ohne Nachfrage die Lösung bringen konnte. Und ja das ist eine sehr gute Leistung. Danke Stefan. Die Frage ist, wie dein shop in diese Schleife gekommen ist. Diese Schleife wurde mal angelegt, um das Registrieren von neuen Shopbenutzern im Backend zu ermöglichen. Momentan geht das so, joomla user anlegen, in vm aufrufen, abspeichern. Erst dann ist es ein Vmuser. Es wäre halt schöner, man könnte direkt in der VM Liste auf "neu" klicken. Vermutlich wärs heute ein Klax, aber vor vielen Jahren als ich mit VM anfing, wars zu schwer. So schob ich das Thema erstmal beiseite, man hatte ja einen erträglichen Workaround (und wie oft kommt das überhaupt vor, daß man einen Kunden anlegen will).

    Also diese Schleife springt nur an, wenn der Joomla Benutzer neu ist. Aber du bist ja der Admin und nicht neu, hmmm. Das ist das Verwirrende dabei.

  • Ich versuche jetzt die Superuser aus dem Produktivshop zu übertragen, könnte vielleicht daran liegen.

    Ja, schau mal, dass die IDs der alten Super User und vor allem des Verkäufers mit dem alten Shop übereinstimmen.

    Multivendor ist wahrscheinlich ausgeschaltet?

    Unter den VM-Werkzeugen kann man die Benutzer-ID des Verkäufers einfach zuweisen.

    Für solche Geschichten nehme ich gerne den JMigrator, der macht das alles richtig und man muss nicht so viel denken. ;-)


    Stefan

  • Stefan:
    Genau das wars. Dein Schnipsel hat den Zugang zur Konfiguration "Shop" freigegeben und damit die Fehlerquelle offengelegt.
    Man merke:
    Bei meiner Vorgehensweise der Shop-Kompletterneuerung ist wichtig, dass der Superuser und der Verkäufer übertragen werden, auf die greift VM zu.
    Der neue Shop ist total neu: Neues Template mit neuem Framework, Joomla 4 und PHP8 fähig.
    Nur der Markt bleibt mit allen Bestandsdaten, aber auf VM4 übertragen.
    Und das am Ende mit lückenlosem Übergang. Nicht ohne, wenn täglich neue Verkäufe abgewickelt werden.
    Kann das der JKMigrator?
    Ich kanns mit Eurer Hilfe (schulterklopfen).
    <3:saint::thumbup:

  • Kann das der JKMigrator?

    Der JMigrator kann Bestellungen und Produkte vor dem live gehen noch einmal aus dem laufenden Shop holen.

    Man kann also alles in Ruhe übernehmen, dann das Template usw. mit den Daten aufbauen und wenn alles fertig ist, nachmigrieren.


    Das erspart viel manuelle Arbeit in der Datenbank.


    STS