News:

Support the VirtueMart project and become a member

Main Menu

Recent posts

#21
Installation, Migration & Upgrade / Error after VM update
Last post by ViPeS - April 21, 2026, 11:28:40 AM
vmError: FAILED: alterKey ADD INDEX category_child_id: Duplicate entry '174' for key 'category_child_id' ALTER TABLE `tyfz5_virtuemart_category_categories` ADD UNIQUE KEY `category_child_id` (`category_child_id`)
after VM update to 4.6.8.11258

What should be done to fix this error?
#22
Your Live Sites / Bookstore e-redstar.net
Last post by artonweb - April 19, 2026, 14:17:52 PM
The website e-redstar.net is a niche digital e-commerce platform focused on selling PDF-based aviation and defense publications.
It is run by an independent team of authors and engineers producing highly specialized illustrated studies.
The website has unique positioning appeals to:

aviation enthusiasts
engineers
model makers
defense analysts

E redstar has:

* Unique, high-quality niche content
* Expert-driven publications
* Simple and focused eCommerce model
* Clear identity and mission
#23
Hi I've an error link when to generate category or item >>> see pics
VM 4.6.4
Joomla 5.4.5
PHP 8.4
Site >>> https://magentashop.altervista.org/
see attachment
     0 in_array(): Argument #2 ($haystack) must be of type array, null given

Call Stack
#    Function    Location
1    ()    JROOT/components/com_virtuemart/helpers/shopfunctionsf.php:421
2    in_array()    JROOT/components/com_virtuemart/helpers/shopfunctionsf.php:421
3    shopFunctionsF::renderVendorAddress()    JROOT/components/com_virtuemart/views/vendor/tmpl/bs5-details.php:48
4    include()    JROOT/libraries/src/MVC/View/HtmlView.php:416
5    Joomla\CMS\MVC\View\HtmlView->loadTemplate()    JROOT/components/com_virtuemart/helpers/vmview.php:113
6    VmView->display()    JROOT/components/com_virtuemart/views/vendor/view.html.php:140
7    VirtuemartViewVendor->display()    JROOT/libraries/src/MVC/Controller/BaseController.php:697
8    Joomla\CMS\MVC\Controller\BaseController->display()    JROOT/libraries/src/MVC/Controller/BaseController.php:730
9    Joomla\CMS\MVC\Controller\BaseController->execute()    JROOT/components/com_virtuemart/virtuemart.php:135
10    require_once()    JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:71
11    Joomla\CMS\Dispatcher\LegacyComponentDispatcher::{closure:Joomla\CMS\Dispatcher\LegacyComponentDispatcher::dispatch():70}()    JROOT/libraries/src/Dispatcher/LegacyComponentDispatcher.php:73
12    Joomla\CMS\Dispatcher\LegacyComponentDispatcher->dispatch()    JROOT/libraries/src/Component/ComponentHelper.php:361
13    Joomla\CMS\Component\ComponentHelper::renderComponent()    JROOT/libraries/src/Application/SiteApplication.php:217
14    Joomla\CMS\Application\SiteApplication->dispatch()    JROOT/libraries/src/Application/SiteApplication.php:271
15    Joomla\CMS\Application\SiteApplication->doExecute()    JROOT/libraries/src/Application/CMSApplication.php:304
16    Joomla\CMS\Application\CMSApplication->execute()    JROOT/includes/app.php:58
17    require_once()    JROOT/index.php:51
--------------------------------------
The problem only occurs with the category sorting and generation
Probably syntax error with PHP 8.4, waiting for advice on how to proceed, I'm a beginner on PHP8 code thanks to anyone who answers
#24
Your Live Sites / Nutribiotic
Last post by digisys - April 18, 2026, 09:37:58 AM
hi. here is one of the stores i build on VirtueMart.
Selling high quality grapefruit seed extract products in europe.. what you thnik about it? ;)

https://nutribiotic.eu/
#25
General Questions / New Manager for VirtueMart iPh...
Last post by digisys - April 18, 2026, 09:26:14 AM
Hi guys.
I want to share with you our brand new useful tool for iphone / ipad owners.

We created Manager for VirtueMart native ios app. Its a powerful mobile solution that allows administrators to manage their Virtuemart stores directly from their iPhone. Designed for speed, clarity, and control, the app gives you instant access to essential website management tools without needing a desktop or constant log-ins to your VirtueMart stores.

  • View and manage orders & statuses
  • Edit products & inventory
  • Real-time push notifications for new orders
  • Sales reports & statistics
  • Customer management
  • Multi-shop support — manage all your shops



See how it works


Now you can manage all your VirtueMart stores from anywhere — and get notified the moment an order comes in.

Want to try it free? I'm giving a few promo codes to the first users willing to share feedback and report any bugs. If you are interested write me a DM.

Download the app
https://apps.apple.com/us/app/manager-for-virtuemart/id6761630379

Get more info
https://www.digisysweb.com/iphone-apps/manager-for-virtuemart

#26
General Questions / Re: VM 4.2.0
Last post by Teejay - April 16, 2026, 19:25:13 PM
Quote from: hazael on January 15, 2024, 22:44:03 PMHave you installed the language versions for Virtuemart?

https://virtuemart.net/community/translations/virtuemart
https://virtuemart.net/community/translations/virtuemartplugins

Your products are added in NL by default:
https://altenagala.nl/jeugd-prins-en-prinsescarnavalskostuums-html
https://altenagala.nl/en/jeugd-prins-en-prinsescarnavalskostuums-html

In order for the same product to be displayed in a different language version, e.g. EN, you must open it in the administrator panel and save it in the selected language version.


You do the same with categories and manufacturer's name

For these language options to work, you must first select all the languages you are interested in in the Virtuemart settings - select NL as the default - necessarily with the "global configuration" option
Hi Hazel, we have resolved this issue, every product is now displayed in the right language
#27
General Questions / Currency rounding mismatch bet...
Last post by sandomatyas - April 16, 2026, 14:55:31 PM
Hi

I might be misunderstanding something in the configuration, so I'd like to ask.

I'm using two currencies, where one is the default, and the second one is calculated from it via exchange rate. Both are set to 0 decimal places. I also tried switching the "Round only display" setting on and off.

Example:

Product price in default currency: 500
After currency switch, the calculated value is not an integer, but since decimals are set to 0, it is shown as €1 in the frontend (rounded)
But during checkout/payment, the amount becomes €1.33

Because of this, the price shown on the site and in the checkout differs from the amount shown by the payment provider (e.g. PayPal).

What would be the correct way to handle this?
How can I make sure the payment amount matches what is shown in the checkout?

Thanks!
#28
Installation, Migration & Upgrade / Re: class does not exist Plgvm...
Last post by PRO - April 13, 2026, 22:27:00 PM
its from a file,

did you turn on debug, error reporting and find the file?
#29
solved the problem, now any captcha can work also on J5 and J6

components/com_virtuemart/hellpers/shopfunctionsf.php

line 1276: replace both renderCaptcha and checkCaptcha functions with this:

   /*
    * @author Davide Reitano
    */

   static public function renderCaptcha($config = 'reg_captcha', $id = 'dynamic_recaptcha_1') {

   static $counter;
   if (empty($counter)) $counter = 1;

   if ($id === 'dynamic_recaptcha_1') {
      $id = 'dynamic_recaptcha_' . $counter;
      $counter++;
   }

   if (VmConfig::get($config) and ((JFactory::getUser()->guest == 1) || (VmConfig::get($config . '_logged')))) {

      $captchaPlugin = JFactory::getConfig()->get('captcha', '');

      if ($captchaPlugin === '0') {
         $captchaPlugin = null;
      }

      JPluginHelper::importPlugin('captcha', $captchaPlugin);

      try {
         $pluginName = empty($captchaPlugin) ? '' : $captchaPlugin;

         // solo gruppo captcha, non evento globale Joomla
         vDispatcher::directTrigger('captcha', $pluginName, 'onInit', array($id));

         // nome campo STRINGA, non null
         $fieldName = 'cf-turnstile-response';

         $output = vDispatcher::directTrigger(
            'captcha',
            $pluginName,
            'onDisplay',
            array($fieldName, $id, 'required')
         );

      } catch (Exception $e) {
         JFactory::getApplication()->enqueueMessage($e->getMessage(), 'error');
         if (empty($output)) $output = array();
      }

      $out = '';

      if (is_array($output)) {
         foreach ($output as $html) {
            if (empty($html)) continue;
            $out .= $html;
         }
      } else if (is_string($output)) {
         $out .= $output;
      }

      return $out;
   }

   return '';
}

   /**
    * Check the Joomla ReCaptcha Plg
    *
    * @author Davide Reitano
    */
    static function checkCaptcha($config = 'reg_captcha') {

   if (VmConfig::get($config) and ((JFactory::getUser()->guest == 1) || (VmConfig::get($config . '_logged')))) {

      $app   = JFactory::getApplication();
      $input = $app->input;

      $captchaPlugin = JFactory::getConfig()->get('captcha', '');
      if ($captchaPlugin === '0') {
         $captchaPlugin = null;
      }

      $captchaResponse = $input->post->getString('cf-turnstile-response', '');

      if ($captchaResponse === '') {
         $captchaResponse = $input->post->getString('g-recaptcha-response', '');
      }

      if ($captchaResponse === '') {
         $captchaResponse = $input->post->getString('recaptcha_response_field', '');
      }

      if ($captchaResponse === '') {
         vmInfo('COM_VM_RECAPTCHA_ERROR');
         return false;
      }

      JPluginHelper::importPlugin('captcha', $captchaPlugin);

      try {
         $pluginName = empty($captchaPlugin) ? '' : $captchaPlugin;

         $res = vDispatcher::directTrigger(
            'captcha',
            $pluginName,
            'onCheckAnswer',
            array($captchaResponse)
         );
      }
      catch (Exception $e) {
         $errmsg = $e->getMessage();

         switch ($errmsg) {
            case 'missing-input-secret':
            case 'invalid-input-secret':
            case 'missing-input-response':
            case 'invalid-input-response':
            case 'bad-request':
            case 'timeout-or-duplicate':
               vmInfo('COM_VM_RECAPTCHA_ERROR_' . strtoupper(str_replace('-', '_', $errmsg)));
               break;
            default:
               vmInfo($errmsg);
               break;
         }

         return false;
      }

      if (empty($res)) {
         vmInfo('COM_VM_RECAPTCHA_ERROR');
         return false;
      }

      foreach ($res as $ret) {
         if (!$ret) {
            vmInfo('COM_VM_RECAPTCHA_ERROR');
            return false;
         }
      }

      return true;
   }

   return true;
}
#30
Administration & Configuration / Menu side bar
Last post by johnknit - April 08, 2026, 11:00:48 AM
Hello,
Is it possible to hide the menu side bar permanent until you deside you want to use it.
An extra button for permanent or temporaly hiding.??
At the moment the sidebar come back every time there is bin a saving or other action. Therefore you need to hide the sidebar over and over again.
This takes a lot of time when working on it.