Beiträge von sprachrohr

    Hallo,


    ich nutze Joomla 3.10.11, Virtuemart 4.0.12 10777 und PHP 8.0 und habe einen Fehler bei der Gutscheinverwaltung im Warenkorb festgestellt.


    Schritte zum reproduzieren:

    1. Lege einen Gutschein (Betrag X) an mit einem Mindestbestellwert.

    2. Lege ein Produkt teurer als der Mindestrbestellwert in den Warenkorb

    3. Lege ein 2. Produkt billiger als der Mindestrbestellwert in den Warenkorb

    4. Löse den Gutschein ein.

    5. Lösche das teurere Produkt aus dem Warenkorb.

    ==> Der Gutschein dürfte jetzt nicht mehr angewendet werden. Er wird aber immernoch angezeigt, und ist weiterhin eingelöst. Wenn man die Bestellung abschließt, dann wird erst der Gutschein entfernt. Der Kunde erkennt das aber erst bei Bestellbestätigung.


    Kann das jemand nachstellen?


    Beste Grüße

    Dirk

    Hallo,


    ich nutze Virtuemart 4.0.12, Joomla 3.10.11 und PHP 8.0.


    Wenn ich im Warenkorb einen Gutschein hinzufüge und dann das Produkt lösche, dann erhalte ich unten stehende Fehlermeldung.

    Der Fehler tritt nur auf, wenn der Gutschein auf eine Kategorie beschränkt ist!

    Leider kann man im Anschluss die Seite nicht mehr nutzen, bis eine neue Browser-Session gestartet wird.


    Fehlermeldung:

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

    /XX/XX/administrator/components/com_virtuemart/helpers/calculationh.php:1133


    Call stack

    # Function Location

    1 () JROOT/administrator/components/com_virtuemart/helpers/calculationh.php:1133

    2 calculationHelper->couponHandler() JROOT/administrator/components/com_virtuemart/helpers/calculationh.php:952

    3 calculationHelper->getCheckoutPrices() JROOT/components/com_virtuemart/helpers/cart.php:2262

    4 VirtueMartCart->getCartPrices() JROOT/components/com_virtuemart/helpers/cart.php:2371

    5 VirtueMartCart->prepareCartData() JROOT/components/com_virtuemart/helpers/cart.php:2566

    6 VirtueMartCart->prepareAjaxData() JROOT/modules/mod_virtuemart_cart/mod_virtuemart_cart.php:59

    7 include() JROOT/libraries/src/Helper/ModuleHelper.php:200

    8 Joomla\CMS\Helper\ModuleHelper::renderModule() JROOT/libraries/src/Document/Renderer/Html/ModuleRenderer.php:98

    9 Joomla\CMS\Document\Renderer\Html\ModuleRenderer->render() JROOT/libraries/src/Document/Renderer/Html/ModulesRenderer.php:47

    10 Joomla\CMS\Document\Renderer\Html\ModulesRenderer->render() JROOT/libraries/src/Document/HtmlDocument.php:511

    11 Joomla\CMS\Document\HtmlDocument->getBuffer() JROOT/libraries/src/Document/HtmlDocument.php:803

    12 Joomla\CMS\Document\HtmlDocument->_renderTemplate() JROOT/libraries/src/Document/HtmlDocument.php:577

    13 Joomla\CMS\Document\HtmlDocument->render() JROOT/libraries/src/Application/CMSApplication.php:1112

    14 Joomla\CMS\Application\CMSApplication->render() JROOT/libraries/src/Application/SiteApplication.php:778

    15 Joomla\CMS\Application\SiteApplication->render() JROOT/libraries/src/Application/CMSApplication.php:231

    16 Joomla\CMS\Application\CMSApplication->execute() JROOT/index.php:49


    Vermutlich noch ein Fehler im Zusammenhang mit PHP 8?


    Beste Grüße

    Dirk

    Hallo,


    ich habe festgestellt, dass es bei der Erstellung bzw. beim Speichern von Gutscheinen einen Fehler gibt.


    VirtueMart 4.0.6, PHP 8.0, Joomla 3.10.11


    Fehler:


    implode(): Argument #1 ($pieces) must be of type array, string given

    /xxx/administrator/components/com_virtuemart/models/coupon.php:63


    Call stack

    # Function Location

    1 () JROOT/administrator/components/com_virtuemart/models/coupon.php:63

    2 implode() JROOT/administrator/components/com_virtuemart/models/coupon.php:63

    3 VirtueMartModelCoupon->store() JROOT/administrator/components/com_virtuemart/helpers/vmcontroller.php:172

    4 VmController->save() JROOT/libraries/src/MVC/Controller/BaseController.php:702

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

    6 require_once() JROOT/libraries/src/Component/ComponentHelper.php:402

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

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

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

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

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


    Ist das schon bekannt?


    Beste Grüße

    Dirk

    super Danke dir! Jetzt bekomme ich im Frontend keine Fehler mehr!


    Im Backend bei der Installation der Komponente erhalte ich allerdings folgenden Fehler:


    Undefined constant "VMPATH_ADMIN"

    /meinPfad/tmp/install_63357f0483c2a/administrator/components/com_virtuemart/helpers/vmdefines.php:197


    Es scheint aber trotzdem alles zu funktionieren. Möglicherweise liegt es auch an meiner Testumgebung.

    Hallo zusammen,


    wenn ich auf PHP 8 umstelle, dann bekomme ich im Warenkorb folgende Fehlermeldung:

    implode(): Argument #2 ($array) must be of type ?array, string given

    JROOT/administrator/components/com_virtuemart/plugins/vmpsplugin.php:1076


    Ich kann das jetzt kurzfristig für mich schon lösen, es wäre aber super, wenn der Fix in eine der nächsten Versionen eingebaut wird.


    Achja: VM ist aktuell 4.0.7 10701


    Betse Grüße

    Dirk

    Danke dir!


    Wenn es irgendwie geht, dann möchte ich halt dem Kunden nicht noch ein PopUp zumuten. Erst Cookies bestätigen, dann Lieferland wählen und dann sehe ich erst den Inhalt... das ist doch alles langsam zu viel des Guten...


    Mal sehen, ob sich auch noch andere hierzu äußern.

    Welches Plugin nutzt du denn? Das ist doch vermutlich das Standardplugin, welches von Haus aus in VM vorhanden ist, oder nicht?

    Du hast doch hier jetzt sicherlich den MwSt-Satz in der Konfig angegeben, oder? Dort könntest du dann auch anstelle des MwSt-Satzes die Option "Standardregel zuordnen" wählen. Dafür dann aber die Eingrenzung auf ein bestimmtes Land entfernen. Dann sollte anhand des Lieferlandes die MwSt berechnet werden. Du brauchst dann prinzipiell nur eine Versandart. Du kannst aber natürlich auch für jeden Steurersatz eine eigene Versandart erstellen und das dann auf die Länder eingrenzen. Das sollte aber eigentlich nicht nötig sein.


    Sei mir bitte nicht böse, aber ich möchte an dieser Stelle nicht weiter die Funktionalität von VM diskutieren. Dafür ist mir die Umsatzsteuerreform zu wichtig. Diese geht hier gerade unter.


    Ich bin leider immernoch der Meinung, dass die von dir vorgeschlagene Lösung rechtlich schwierig ist und würde gerne weitere Meinungen einholen.


    Du kannst ja ein eigenes Thema erstellen. Deine Fragen haben ja nicht direkt mit der Reform zu tun, sondern eher damit, wie man eine Versandart richtig konfiguriert, damit auch unterschiedliche Steuersätze verwendet werden können.


    Beste Grüße

    nutzt du Overrides oder ein bestimmtes Template? Das sollte eigentlich so nicht sein. Es sollten eigentlich die geänderten Bruttobeträge stehen bleiben und der Steuersatz geändert werden. Ist bei den Produkten und den Versandarten "Standard-Regeln zuordnen" oder die 19% MwSt angegeben? Es sollte auf "Standard-Regeln zuordnen" stehen.