News:

Support the VirtueMart project and become a member

Main Menu

Recent posts

#11
Coding Central / Re: Search results varies acco...
Last post by Milbo - May 13, 2026, 19:17:44 PM
Heyho, i am sorry that I answer that late. But we talked already about it in Discord. I think that is the right mode
WHERE MATCH(l.product_name, l.product_s_desc, l.product_desc, category_name, category_description)
      AGAINST ('+Safety +Helmet' IN BOOLEAN MODE)
#12
3rd party extension / Re: VP Neoteric - A Stunning ...
Last post by Jumbo! - May 10, 2026, 16:07:23 PM
VP Neoteric v2.6 released. This is mainly a bug-fix release, but it also includes numerous improvements. We recommend that all users install the update as soon as possible.

Learn more - https://www.virtueplanet.com/joomla-templates/vp-neoteric.
#13
Plugins: Payment, Shipment and others / Widerruf Button
Last post by lotusblut - May 02, 2026, 12:15:23 PM
Hallo, wie bekomme ich den den ab Juni 2026 verpflichtenden Widerrufsbutton in das Template der Bestellbestätigung und der Webseite? Gibt es ein Plugin dafür?
#14
This alternative fix works fine and is really better than modifying the router.php.
#15
Hi all,

I've found an alternative fix that seems to work better than modifying the router.

Instead of changing router.php, I adjusted how limitstart is retrieved in the product model.

File:
/administrator/components/com_virtuemart/models/product.php
Around line ~1090, after this line:
$limitStart = $app->getUserStateFromRequest ($limitStartString, 'limitstart', vRequest::getInt ('limitstart', 0,'GET'), 'int');
I added:
$limitStart = $app->input->getInt('limitstart'); // Fix pagination
Would be great if someone from the VirtueMart team could confirm if this is a valid fix or suggest a proper implementation.
#16
Hi all,

I'm also affected by this issue in VirtueMart 4.6.8 and can confirm the behavior described in this thread.

The suggested workaround in router.php:

if ( $limitstart>=0 ) {
does improve navigation (I can go back to page 1), but it introduces a new problem:

Canonical URLs for page 1 now include the pagination segment, for example:
<link href="https://domain.com/outlet/results,1-20" rel="canonical">Instead of the expected:
<link href="https://domain.com/outlet" rel="canonical">
This is not ideal for SEO, as page 1 should not have a paginated canonical.

Also, I still see inconsistent behavior when returning to the category without the results parameter — sometimes it keeps the previous pagination state.

Is there any official fix planned for this in upcoming VirtueMart versions?

Is there a recommended way to:
  • Keep the pagination fix
  • But avoid adding results,1-XX to canonical URLs?

Thanks in advance!


#17
Your Live Sites / Persona mini market New - Used...
Last post by Graziano - April 27, 2026, 07:17:06 AM
Hi all, I show my mini personal mini market for my personal things (New and Used) at this moment with problem with PHP 8.4 (sintiax error)
... see my sign
#18
The problem is in the file

/administrator/components/com_virtuemart/helpers/mediahandler.php

The following code no longer exists:

if(!isset(self::$theme_url)){
self::$theme_url = VmConfig::get('vm_themeurl',0);
if(empty(self::$theme_url)){
self::$theme_url = 'components/com_virtuemart/';
}
}

When I paste it again into line 104, between line 103 and 105, the path to noimage.gif is correct again.

EDIT: This appears to have been done intentionally. I read the article about beta VM 5 (4.9.3).
"removed old vm_themeurl which was not correctly implemented anylonger."
As I told in an other post: this version can't be installed on any system! I'm testing instead with version 4.6.8.11258 which works with J 6.1.0.

Perhaps there is something else in VM 4.9.3 that is not yet implemented in 4.6.8?
#19
Virtuemart Development and bug reports / Re: Checkout stuck issue
Last post by Voronn - April 24, 2026, 14:27:23 PM
Hello VirtueMart Team,
I would like to report a critical issue in the PayPal Checkout plugin (version 4.6.4).
Problem description:
When third-party cookies are blocked in the browser, the file site.js generates a massive number of repeated network requests (hundreds within seconds). This leads to severe performance degradation, high CPU usage, and browser slowdown.
Technical cause:
Inside Virtuemart.onReadyPP, there is a setInterval loop running every 100ms. While the PayPal SDK is not available (typeof paypal === "undefined"), the code repeatedly calls:

fetch(vmPP.nvpUrl)

This results in continuous network requests until the timeout is reached (up to 60 seconds). If the SDK cannot load (e.g., due to blocked third-party cookies), this becomes an uncontrolled request loop.

Impact:

Hundreds/thousands of unnecessary requests
High CPU usage
Browser slowdown and fan activity
Poor user experience, especially on checkout pages

Temporary fix applied:
I removed the call to fetchButtonSDK() from inside the interval loop. After this change, the issue disappears completely, and the checkout works normally.

Suggested fix:

Do not perform network requests inside a high-frequency interval
Retry logic (if needed) should be limited and not run continuously
Handle the case where PayPal SDK fails to load (e.g., due to browser privacy settings) gracefully

Environment:

VirtueMart: 4.6.4
PayPal Checkout plugin: 4.6.4
Browser: Firefox (issue reproducible with third-party cookies blocked)
Please review this behavior, as it can significantly affect site performance and user experience.

I changed last:
Virtuemart.onReadyPP = function () {

    if (vmPP.debug == '1') {
        console.log("with vmPPStyle, vmPP", vmPPStyle, vmPP);
    }

    if (
        vmPP.products.indexOf('buttons') >= 0 ||
        vmPP.products.indexOf('hosted-fields') >= 0 ||
        vmPP.products.indexOf('pui') >= 0
    ) {

        var paypalCheckAttempts = 0;
        var paypalMaxAttempts = 300; // 30 seconds

        killme = setInterval(function () {

            paypalCheckAttempts++;

            if (typeof paypal === "undefined") {

                if (vmPP.debug == '1') {
                    console.log("PayPal SDK not loaded yet");
                }

                if (paypalCheckAttempts >= paypalMaxAttempts) {
                    clearInterval(killme);
                    clearTimeout(finalPunisher);
                    console.log("PayPal SDK not loaded, stopped checking");
                }

                return;
            }

            clearInterval(killme);
            clearTimeout(finalPunisher);

            if (vmPP.debug == '1') {
                console.log("Paypal loaded");
            }

            if (vmPP.vmPPOrderId == "" && vmPP.products.indexOf('buttons') >= 0) {

                if (vmPP.debug == '1') {
                    console.log("Paypal buttons loaded");
                }

                if (vmPP.withButton == "true") {
                    Virtuemart.renderPayPalButtons("#paypal-button-container");
                }

                if (vmPP.withLogin == "true") {
                    Virtuemart.renderPayPalButtons("#paypal-button-login");
                }
            }

            if (
                vmPP.products.indexOf('hosted-fields') >= 0 &&
                vmPP.selected == 'hosted-fields'
            ) {
                if (vmPP.debug == '1') {
                    console.log("Paypal hosted-fields loaded");
                }

                jQuery('.card_container').hide();
                Virtuemart.renderPayPalCredit();
            }

            if (vmPP.products.indexOf('pui') >= 0) {
                if (vmPP.debug == '1') {
                    console.log("Paypal PUI loaded");
                }

                Virtuemart.renderPUI();
            }

        }, 100);

        finalPunisher = setTimeout(function () {
            clearInterval(killme);
            console.log("Loading Buttons killed");
        }, 30000);
    }
};

});

Best regards
#20
General Questions / Re: create a menu link to regi...
Last post by Graziano - April 23, 2026, 10:00:14 AM
I've similar problem but in register form (joomla form) not show username field, and I can't register new user