Written by Max Milbers. Posted in Concepts

Main rules configuring VirtueMart

1. If nothing is set, then the condition is not tested, so means it is valid for any.

  • product has no shoppergroup => visible for any shopper
  • tax rule has no category => effects any product (except other restrictions are set)
  • method has no shoppergroup => useable by any shoppergroup
  • ....

2. Almost nothing must be configured by the shopowner. Almost anything has a fallback or useful default. So usually it is not needed to adjust and configured parameters, just because they are empty and available.

  • templates and layouts use automatically the style selected by joomla
  • slugs are generated automatically if left empty
  • the product currency, select tax and discount setting is correct by default
  • language defaults to joomlas standard site language
  • Managers without vendor id get the vendor id = 1
  • the rounding of the price display set to -1 in the main config, defaults to the decimals set by the currency
  • some defaults are loaded if the value is empty, for example a shopper without shoppergroup has automatically the default shoppergroup. A guest has automatically the guest group.

3. Zero, False, Null, 0 and 0.00. Same, same, but different. Due to some html, php and database behaviours it can happen that a field with a value of 0 is handled as false, or not used at all. In these cases it usually works to use 0.0 or 0.0001. For example, the call for price option will be available, if you set a value of either " " or "0". If you want to create a free product (and don't use the call for price option), use the price value 0.0. This behaviour is a result of rule #2.


Sometimes, due to a PHP or other 500 (critical) error, a Joomla component such as VirtueMart can stop working and just show a blank page. This lack of display hides the relevant error message. The reason is that it is not good to reveal details of errors to visitors.

Virtuemart disables by default the display of php warnings & notices to prevent perceived errors due to harmless php notes. To see the error which caused the blank screen when this happens, there are several possibilities to reveal the error

  1. to use the vm config option enable php debug for admins
  2. to use the vm config option enable php debug for all
  3. Enable php developer error reporting in joomla (always for all)
  4. Checking your server logs (not access logs).

VirtueMart itself has a logging option. It can be important to see the real message behind an error message. Guests do NOT see complete error messages by joomla. For example they just see "Error storing user data" while the administrator would see "Error storing user data with virtuemart_user_id=xyz".

Consider that you can enable the error reporting and debugging for administrators only.

You can also try this: Enable the vmdebug. It allows debugging in many cases for non fatal errors. It gives and idea what is going on behind the scene. For example why a shipment/payment is not selectable. Vmdebug is also very handy for developers and templaters.