VM Advanced Ordernumbers

IMPORTANT ANNOUNCEMENT: Plugin development ceased, all plugins made available freely (GPL)

With great sadness we have to announce that we are ceasing development of all our VirtueMart, WooCommerce and Joomla plugins. Effective immediately, all our plugins -- even those that were paid downloads -- are made available for free from our homepage (GPL license still applies), but we cannot and will not provide any support anymore.

It has been a great pleasure to be part of the thriving development communities of VirtueMart as well as WooCommerce. However, during the last year it became painstakingly clear that in addition to a full-time job, a young family and several other time-consuming hobbies at professional level (like being a professional singer) the plugin development and the support that it requires is not sustainable and is taking its toll. It has been an honor, but it is now time to say good bye!

Advanced Ordernumbers for VirtueMart

The most flexible and complete solution for your VirtueMart webshop to customize your order, invoice and customer numbers and the order passwords! For VirtueMart 2.x and 3.x. The running counters of the orders and invoices can be configured to use separate counters for different time periods, countries or even customers.
  • 25
  • 30
  • plugin
  • vm2.0
  • vm3.0
Price : FREE
Paid Download
Advanced Ordernumbers for Virtuemart, Version 4.0.6 Advanced Ordernumbers for Virtuemart, Version 4.0.6
Filename: plg_vmshopper_ordernumber_v4.0.6.zip
MIME-Type: application/zip
File size: 64960 Bytes

The most flexible and complete solution for your VirtueMart webshop to customize your order, invoice and customer numbers and the order passwords!

Your order / invoice numbers can contain running counters and many variables, including:

  • Year, month, day, time
  • Country of the customer
  • Random letters or digits
  • Any fixed string
  • Invoice numbers can be set equal to the order number
  • Different counters can be used e.g. for each country, or depending on the order amount or categories in the order (requires plugin version 3.0 and above)

Documentation - Demo server - Support Forum

Endless possibilities to have order/invoice numbers the way YOU like them

Whether you want simple order/invoice numbers with a prefix, or whether you want the invoice number to match the order number, or whether you even want separate number counters for each country or even customer, OpenTools Advanced Order Numbers for VirtueMart is the solution you need!

While the order/invoice numbers might be just a nuissance to your users, using clean, professional numberings will give your customers the assurance that they are dealing with professionals - the small, subtle details are the difference between a good shop and an excellent shop. Rather than showing confusing order numbers like 0b4c011 in VirtueMart's default format, use a clean numbering scheme like "2015-011" or "INV-01/0023"!

 OpenTools VirtueMart Ordernumber Numbers annotated


Easy configuration, yet powerful features

Key features of this module:

  • Freely customize order numbers, invoice numbers, customer numbers and/or order passwords to your desires!
  • Number format is given as an ordinary string that can contain a vast number of variables (date/time, order properties, customer properties, address, and even random numbers or letters) and a counter
  • Customizable counter resets, multiple parallel counters: Counter can be global (one counter for all orders or invoices) with no reset, or yearly/monthly/daily counters, or even more general counter resets. You can even have multiple counters running concurrently (e.g. one counter per country, or different counters and thus different order/invoice numbers for wholesale and retail customers).
  • Alternatively, you can re-use the order number as invoice numbers, too (in some jurisdictions this might be problematic, because the order numbers can have gaps!)
  • Counter formatting: In addition to the number format, you can choose the padding of the counters with zeros on the left (e.g. a counter with value 35 can be displayed as 000035 inside the number format), the counter step and the initial value for each new counter (requires plugin version 3.0 and above)
  • Manually set/change your counters in the module configuration
  • Define your own custom variables for use in the number formats (requires plugin version 3.0 and above).


Fully configurable

OpenTools VirtueMart Ordernumber Settings annotated 

Formatting the counter itself can be configured directly in the number format input field. Usually the counter is indicated by a simple #. To define a counter step larger than 1, or to define an initial value for new counters (i.e. when the counter appears to reset), wrap the # in square brackets and append the step as /step and the inital value as :value, i.e. [#####:startvalue/step]. Additionally, the padding can then be defined by the number of # given inside the square brackets. For example, a number format "[year]-[####:243/3]" means that the numbers will have the form "2015-0546", where the counter uses 4 digits, is increased by 3 for each order and in 2016 will start at the initial value 243. If either startvalue or step is left out, a value of 1 is used.

The exotic...

The incredible flexibility of this VirtueMart plugin means that you do not have to stop at the usual numbering schemes involving a counter. You can even use only the date/time of the order or even random numbers as order or invoice numbers.


Please note that in many jurisdictions there are certain restrictions on invoice numberings (mostly that they have to be / include an increasing number, and that they have to be unique). So a random invoice numbering would not be legal e.g. in the European Union. Just because this module gives you the possibility to choose such invoice numberings, does not mean they are legal everywhere.

On the other hand, to our knowledge, there are no legal restrictions on order or customer numbers, so you should be free to use any numbering scheme for these. (Disclaimer: We are no tax or business consultants and we are are NOT trying to give legal or tax advice. Please check with your tax advisor and/or company lawyer!)


Further information

Frequently Asked Questions (FAQ)

Demo server

Support Forum


Order/Invoice Number Format Strings

The format strings are simple texts like "EK-[year]/#", where the following case-insensitive variables will be replaced (for a comprehensive list with explanations, see the documentation):

  • #  (placeholder for the running counter)
  • [year], [year2], [month], [day], [hour], [hour12], [ampm], [minute], [second]
  • [randomDigit], [randomHex], [randomLetter], [randomULetter], [randomLLetter], [randomAlphanum]
  • [Lastname], [Firstname], [Company], [City], [ZIP], [Country], [CountryCode2], [CountryCode3]
  • [OrderNumber], [OrderStatus]

For example, a format "[year][month]-#" (with 3 set as the minimum number of digits for the counter) will create numbers like:


Similarly, a format "[year]-[country2]/[###:327]" will create numbers like (notice that each year and country has its own numbering, which starts from 327 each year!):


Further examples can be found in the documentation.

Demo Server

Documentation of the Ordernumber Plugin for VirtueMart

Frequently Asked Questions (FAQ)

Support Forum


This plugin is licenced unter the GNU GPLv3. However, you have to pay for the download (all updates are free to our customers). After that, you have all the right and duties that the GPL gives you.